| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | angular.module('kityminderEditor')    .directive('selectAll', function() {        return {            restrict: 'E',            templateUrl: 'ui/directive/selectAll/selectAll.html',            scope: {                minder: '='            },            replace: true,            link: function($scope) {                var minder = $scope.minder;                $scope.items = ['revert', 'siblings', 'level', 'path', 'tree'];                $scope.select = {                    all: function() {                        var selection = [];                        minder.getRoot().traverse(function(node) {                            selection.push(node);                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    },                    revert: function() {                        var selected = minder.getSelectedNodes();                        var selection = [];                        minder.getRoot().traverse(function(node) {                            if (selected.indexOf(node) == -1) {                                selection.push(node);                            }                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    },                    siblings: function() {                        var selected = minder.getSelectedNodes();                        var selection = [];                        selected.forEach(function(node) {                            if (!node.parent) return;                            node.parent.children.forEach(function(sibling) {                                if (selection.indexOf(sibling) == -1) selection.push(sibling);                            });                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    },                    level: function() {                        var selectedLevel = minder.getSelectedNodes().map(function(node) {                            return node.getLevel();                        });                        var selection = [];                        minder.getRoot().traverse(function(node) {                            if (selectedLevel.indexOf(node.getLevel()) != -1) {                                selection.push(node);                            }                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    },                    path: function() {                        var selected = minder.getSelectedNodes();                        var selection = [];                        selected.forEach(function(node) {                            while(node && selection.indexOf(node) == -1) {                                selection.push(node);                                node = node.parent;                            }                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    },                    tree: function() {                        var selected = minder.getSelectedNodes();                        var selection = [];                        selected.forEach(function(parent) {                            parent.traverse(function(node) {                                if (selection.indexOf(node) == -1) selection.push(node);                            });                        });                        minder.select(selection, true);                        minder.fire('receiverfocus');                    }                };            }        }    });
 |