ng2-tree
Version:
angular2 component for visualizing data that can be naturally represented as a tree
81 lines • 10.2 kB
JavaScript
import { defaultsDeep, get, omit } from './utils/fn.utils';
export class FoldingType {
_cssClass;
static Expanded = new FoldingType('node-expanded');
static Collapsed = new FoldingType('node-collapsed');
static Empty = new FoldingType('node-empty');
static Leaf = new FoldingType('node-leaf');
constructor(_cssClass) {
this._cssClass = _cssClass;
}
get cssClass() {
return this._cssClass;
}
}
export class TreeModelSettings {
/* cssClasses - set custom css classes which will be used for a tree */
cssClasses;
/* Templates - set custom html templates to be used in a tree */
templates;
/**
* "leftMenu" property when set to true makes left menu available.
* @name TreeModelSettings#leftMenu
* @type boolean
* @default false
*/
leftMenu;
/**
* "rightMenu" property when set to true makes right menu available.
* @name TreeModelSettings#rightMenu
* @type boolean
* @default true
*/
rightMenu;
/**
* "menu" property when set will be available as custom context menu.
* @name TreeModelSettings#MenuItems
* @type NodeMenuItem
*/
menuItems;
/**
* "static" property when set to true makes it impossible to drag'n'drop tree or call a menu on it.
* @name TreeModelSettings#static
* @type boolean
* @default false
*/
static;
isCollapsedOnInit;
checked;
selectionAllowed;
keepNodesInDOM;
static NOT_CASCADING_SETTINGS = ['selectionAllowed'];
static merge(child, parent) {
const parentCascadingSettings = omit(get(parent, 'settings'), TreeModelSettings.NOT_CASCADING_SETTINGS);
return defaultsDeep({}, get(child, 'settings'), parentCascadingSettings, {
static: false,
leftMenu: false,
rightMenu: true,
isCollapsedOnInit: false,
checked: false,
keepNodesInDOM: false,
selectionAllowed: true
});
}
}
export class Ng2TreeSettings {
/**
* Indicates root visibility in the tree. When true - root is invisible.
* @name Ng2TreeSettings#rootIsVisible
* @type boolean
*/
rootIsVisible = true;
showCheckboxes = false;
enableCheckboxes = true;
}
export var TreeStatus;
(function (TreeStatus) {
TreeStatus[TreeStatus["New"] = 0] = "New";
TreeStatus[TreeStatus["Modified"] = 1] = "Modified";
TreeStatus[TreeStatus["IsBeingRenamed"] = 2] = "IsBeingRenamed";
})(TreeStatus || (TreeStatus = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmVlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzNELE1BQU0sT0FBTyxXQUFXO0lBTUs7SUFMcEIsTUFBTSxDQUFDLFFBQVEsR0FBZ0IsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEUsTUFBTSxDQUFDLFNBQVMsR0FBZ0IsSUFBSSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRSxNQUFNLENBQUMsS0FBSyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRCxNQUFNLENBQUMsSUFBSSxHQUFnQixJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvRCxZQUEyQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQUcsQ0FBQztJQUVoRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7O0FBMENILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsdUVBQXVFO0lBQ2hFLFVBQVUsQ0FBYztJQUUvQixnRUFBZ0U7SUFDekQsU0FBUyxDQUFhO0lBRTdCOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFXO0lBRTFCOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFXO0lBRTNCOzs7O09BSUc7SUFDSSxTQUFTLENBQWtCO0lBRWxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFXO0lBRWpCLGlCQUFpQixDQUFXO0lBRTVCLE9BQU8sQ0FBVztJQUVsQixnQkFBZ0IsQ0FBVztJQUUzQixjQUFjLENBQVc7SUFFekIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU5RCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWdCLEVBQUUsTUFBaUI7UUFDckQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hHLE9BQU8sWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLHVCQUF1QixFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxjQUFjLEVBQUUsS0FBSztZQUNyQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBR0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7Ozs7T0FJRztJQUNILGFBQWEsR0FBSSxJQUFJLENBQUM7SUFDdEIsY0FBYyxHQUFJLEtBQUssQ0FBQztJQUN4QixnQkFBZ0IsR0FBSSxJQUFJLENBQUM7Q0FDMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUFHLENBQUE7SUFDSCxtREFBUSxDQUFBO0lBQ1IsK0RBQWMsQ0FBQTtBQUNoQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZhdWx0c0RlZXAsIGdldCwgb21pdCB9IGZyb20gJy4vdXRpbHMvZm4udXRpbHMnO1xuaW1wb3J0IHsgTm9kZU1lbnVJdGVtIH0gZnJvbSAnLi9tZW51L25vZGUtbWVudS5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRm9sZGluZ1R5cGUge1xuICBwdWJsaWMgc3RhdGljIEV4cGFuZGVkOiBGb2xkaW5nVHlwZSA9IG5ldyBGb2xkaW5nVHlwZSgnbm9kZS1leHBhbmRlZCcpO1xuICBwdWJsaWMgc3RhdGljIENvbGxhcHNlZDogRm9sZGluZ1R5cGUgPSBuZXcgRm9sZGluZ1R5cGUoJ25vZGUtY29sbGFwc2VkJyk7XG4gIHB1YmxpYyBzdGF0aWMgRW1wdHk6IEZvbGRpbmdUeXBlID0gbmV3IEZvbGRpbmdUeXBlKCdub2RlLWVtcHR5Jyk7XG4gIHB1YmxpYyBzdGF0aWMgTGVhZjogRm9sZGluZ1R5cGUgPSBuZXcgRm9sZGluZ1R5cGUoJ25vZGUtbGVhZicpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jc3NDbGFzczogc3RyaW5nKSB7fVxuXG4gIHB1YmxpYyBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3NzQ2xhc3M7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ2hpbGRyZW5Mb2FkaW5nRnVuY3Rpb24gPSAoY2FsbGJhY2s6IChjaGlsZHJlbjogVHJlZU1vZGVsW10pID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU1vZGVsIHtcbiAgdmFsdWU6IHN0cmluZyB8IFJlbmFtYWJsZU5vZGU7XG4gIGlkPzogc3RyaW5nIHwgbnVtYmVyO1xuICBjaGlsZHJlbj86IFRyZWVNb2RlbFtdO1xuICBsb2FkQ2hpbGRyZW4/OiBDaGlsZHJlbkxvYWRpbmdGdW5jdGlvbjtcbiAgc2V0dGluZ3M/OiBUcmVlTW9kZWxTZXR0aW5ncztcbiAgZW1pdExvYWROZXh0TGV2ZWw/OiBib29sZWFuO1xuICBfc3RhdHVzPzogVHJlZVN0YXR1cztcbiAgX2ZvbGRpbmdUeXBlPzogRm9sZGluZ1R5cGU7XG4gIFthZGRpdGlvbmFsRGF0YTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENzc0NsYXNzZXMge1xuICAvKiBUaGUgY2xhc3Mgb3IgY2xhc3NlcyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZXhwYW5kZWQgbm9kZSAqL1xuICBleHBhbmRlZD86IHN0cmluZztcblxuICAvKiBUaGUgY2xhc3Mgb3IgY2xhc3NlcyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29sbGFwc2VkIG5vZGUgKi9cbiAgY29sbGFwc2VkPzogc3RyaW5nO1xuXG4gIC8qIFRoZSBjbGFzcyBvciBjbGFzc2VzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBlbXB0eSBub2RlICovXG4gIGVtcHR5Pzogc3RyaW5nO1xuXG4gIC8qIFRoZSBjbGFzcyBvciBjbGFzc2VzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBleHBhbmRlZCB0byB0aGUgbGVhZiAqL1xuICBsZWFmPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlcyB7XG4gIC8qIEEgdGVtcGxhdGUgZm9yIGEgbm9kZSAqL1xuICBub2RlPzogc3RyaW5nO1xuXG4gIC8qIEEgdGVtcGxhdGUgZm9yIGEgbGVhZiBub2RlICovXG4gIGxlYWY/OiBzdHJpbmc7XG5cbiAgLyogQSB0ZW1wbGF0ZSBmb3IgbGVmdCBtZW51IGh0bWwgZWxlbWVudCAqL1xuICBsZWZ0TWVudT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRyZWVNb2RlbFNldHRpbmdzIHtcbiAgLyogY3NzQ2xhc3NlcyAtIHNldCBjdXN0b20gY3NzIGNsYXNzZXMgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBhIHRyZWUgKi9cbiAgcHVibGljIGNzc0NsYXNzZXM/OiBDc3NDbGFzc2VzO1xuXG4gIC8qIFRlbXBsYXRlcyAtIHNldCBjdXN0b20gaHRtbCB0ZW1wbGF0ZXMgdG8gYmUgdXNlZCBpbiBhIHRyZWUgKi9cbiAgcHVibGljIHRlbXBsYXRlcz86IFRlbXBsYXRlcztcblxuICAvKipcbiAgICogXCJsZWZ0TWVudVwiIHByb3BlcnR5IHdoZW4gc2V0IHRvIHRydWUgbWFrZXMgbGVmdCBtZW51IGF2YWlsYWJsZS5cbiAgICogQG5hbWUgVHJlZU1vZGVsU2V0dGluZ3MjbGVmdE1lbnVcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIGxlZnRNZW51PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogXCJyaWdodE1lbnVcIiBwcm9wZXJ0eSB3aGVuIHNldCB0byB0cnVlIG1ha2VzIHJpZ2h0IG1lbnUgYXZhaWxhYmxlLlxuICAgKiBAbmFtZSBUcmVlTW9kZWxTZXR0aW5ncyNyaWdodE1lbnVcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBwdWJsaWMgcmlnaHRNZW51PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogXCJtZW51XCIgcHJvcGVydHkgd2hlbiBzZXQgd2lsbCBiZSBhdmFpbGFibGUgYXMgY3VzdG9tIGNvbnRleHQgbWVudS5cbiAgICogQG5hbWUgVHJlZU1vZGVsU2V0dGluZ3MjTWVudUl0ZW1zXG4gICAqIEB0eXBlIE5vZGVNZW51SXRlbVxuICAgKi9cbiAgcHVibGljIG1lbnVJdGVtcz86IE5vZGVNZW51SXRlbVtdO1xuXG4gIC8qKlxuICAgKiBcInN0YXRpY1wiIHByb3BlcnR5IHdoZW4gc2V0IHRvIHRydWUgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBkcmFnJ24nZHJvcCB0cmVlIG9yIGNhbGwgYSBtZW51IG9uIGl0LlxuICAgKiBAbmFtZSBUcmVlTW9kZWxTZXR0aW5ncyNzdGF0aWNcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYz86IGJvb2xlYW47XG5cbiAgcHVibGljIGlzQ29sbGFwc2VkT25Jbml0PzogYm9vbGVhbjtcblxuICBwdWJsaWMgY2hlY2tlZD86IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGlvbkFsbG93ZWQ/OiBib29sZWFuO1xuXG4gIHB1YmxpYyBrZWVwTm9kZXNJbkRPTT86IGJvb2xlYW47XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfQ0FTQ0FESU5HX1NFVFRJTkdTID0gWydzZWxlY3Rpb25BbGxvd2VkJ107XG5cbiAgcHVibGljIHN0YXRpYyBtZXJnZShjaGlsZDogVHJlZU1vZGVsLCBwYXJlbnQ6IFRyZWVNb2RlbCk6IFRyZWVNb2RlbFNldHRpbmdzIHtcbiAgICBjb25zdCBwYXJlbnRDYXNjYWRpbmdTZXR0aW5ncyA9IG9taXQoZ2V0KHBhcmVudCwgJ3NldHRpbmdzJyksIFRyZWVNb2RlbFNldHRpbmdzLk5PVF9DQVNDQURJTkdfU0VUVElOR1MpO1xuICAgIHJldHVybiBkZWZhdWx0c0RlZXAoe30sIGdldChjaGlsZCwgJ3NldHRpbmdzJyksIHBhcmVudENhc2NhZGluZ1NldHRpbmdzLCB7XG4gICAgICBzdGF0aWM6IGZhbHNlLFxuICAgICAgbGVmdE1lbnU6IGZhbHNlLFxuICAgICAgcmlnaHRNZW51OiB0cnVlLFxuICAgICAgaXNDb2xsYXBzZWRPbkluaXQ6IGZhbHNlLFxuICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICBrZWVwTm9kZXNJbkRPTTogZmFsc2UsXG4gICAgICBzZWxlY3Rpb25BbGxvd2VkOiB0cnVlXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5nMlRyZWVTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgcm9vdCB2aXNpYmlsaXR5IGluIHRoZSB0cmVlLiBXaGVuIHRydWUgLSByb290IGlzIGludmlzaWJsZS5cbiAgICogQG5hbWUgTmcyVHJlZVNldHRpbmdzI3Jvb3RJc1Zpc2libGVcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgcm9vdElzVmlzaWJsZT8gPSB0cnVlO1xuICBzaG93Q2hlY2tib3hlcz8gPSBmYWxzZTtcbiAgZW5hYmxlQ2hlY2tib3hlcz8gPSB0cnVlO1xufVxuXG5leHBvcnQgZW51bSBUcmVlU3RhdHVzIHtcbiAgTmV3LFxuICBNb2RpZmllZCxcbiAgSXNCZWluZ1JlbmFtZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5hbWFibGVOb2RlIHtcbiAgLyoqXG4gICAqIFNldCBuZXcgdmFsdWUgb2YgdGhlIHJlbmFtYWJsZSBub2RlLiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyB1cCB0byB1c2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIEEgbmV3IHZhbHVlIG9mIHRoZSBub2RlLlxuICAgKi9cbiAgc2V0TmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBub2RlLiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyB1cCB0byB1c2VyLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIEEgbm9kZSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG4iXX0=