multiple-selection.js
function getSelectableElements(element) {
    var out = [];
    var childs = element.children();
    for (var i = 0; i < childs.length; i++) {
        var child = angular.element(childs[i]);
        if (child.scope().isSelectable) {
            out.push(child);
        } else {
            if (child.scope().$id!=element.scope().$id && child.scope().isSelectableZone === true) {

            } else {
                out = out.concat(getSelectableElements(child));
            }
        }
    }
    return out;
}
function getSelectableElements(element) {
    var out = [];
    var childs = element.children();
    for (var i = 0; i < childs.length; i++) {
        var child = angular.element(childs[i]);
        if (child.scope().isSelectable) {
            out.push(child);
        } else {
            if (child.scope().$id!=element.scope().$id && child.scope().isSelectableZone === true) {

            } else {
                out = out.concat(getSelectableElements(child));
            }
        }
    }
    return out;
}
function getSelectableElements ( element ) { var out = [ ] ; var childs = element . children ( ) ; for ( var i = 0 ; i < childs . length ; i ++ ) { var child = angular . element ( childs [ i ] ) ; if ( child . scope ( ) . isSelectable ) { out . push ( child ) ; } else { if ( child . scope ( ) . $id != element . scope ( ) . $id && child . scope ( ) . isSelectableZone === true ) { } else { out = out . concat ( getSelectableElements ( child ) ) ; } } } return out ; }
Angular JS multiple-selection module
@author Maksym Pomazan
@version 0.0.3
Angular JS multiple - selection module