@js-sugar/angular
Version:
JS-Sugar core package (Angular)
47 lines • 7.62 kB
JavaScript
export class MenuItem {
constructor(options) {
this.id = options?.id;
this.parent = options?.parent;
this.showCondition = options?.showCondition;
this.disabled = Boolean(options?.disabled);
this.active = Boolean(options?.active);
this.show = options?.show == null || options.show == true;
this.data = options?.data;
}
get depth() {
if (typeof this._depth == 'undefined') {
this._depth = 0;
var item = this.parent;
while (item != null) {
item = item.parent;
this._depth++;
}
}
return this._depth;
}
}
export class GroupMenuItem extends MenuItem {
constructor(options) {
super(options);
this.text = options.text;
this.icon = options?.icon;
this.children = options.children;
this.expanded = Boolean(options.expanded);
this.children.forEach(x => x.parent = this);
}
}
export class TextMenuItem extends MenuItem {
constructor(options) {
super(options);
this.text = options?.text;
this.icon = options?.icon;
this.routerLink = options?.routerLink;
this.click = options?.click;
}
}
export class DividerMenuItem extends MenuItem {
constructor(options) {
super(options);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29tbW9uL21lbnUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxPQUFnQixRQUFRO0lBVTFCLFlBQVksT0FBbUM7UUFDM0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsT0FBTyxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2pCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGFBQWlELFNBQVEsUUFBa0I7SUFNcEYsWUFBWSxPQUtYO1FBQ0csS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sWUFBZ0QsU0FBUSxRQUFrQjtJQU9uRixZQUFZLE9BTVg7UUFDRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxFQUFFLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWdDLFNBQVEsUUFBa0I7SUFDbkUsWUFBWSxPQUFtQztRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uL3NlY3VyaXR5JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1PcHRpb25zPERhdGFUeXBlPiB7XHJcbiAgICBpZD86IGFueSxcclxuICAgIHBhcmVudD86IE1lbnVJdGVtLFxyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuLFxyXG4gICAgYWN0aXZlPzogYW55LFxyXG4gICAgc2hvdz86IGJvb2xlYW4sXHJcbiAgICBzaG93Q29uZGl0aW9uPzogU2hvd0NvbmRpdGlvblxyXG4gICAgZGF0YT86IERhdGFUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNZW51SXRlbTxEYXRhVHlwZSA9IGFueT4ge1xyXG4gICAgcHVibGljIGlkPzogYW55O1xyXG4gICAgcHVibGljIHBhcmVudD86IE1lbnVJdGVtO1xyXG4gICAgcHVibGljIGRhdGE/OiBEYXRhVHlwZTtcclxuICAgIHB1YmxpYyBzaG93Q29uZGl0aW9uPzogU2hvd0NvbmRpdGlvbjtcclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgc2hvdzogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX2RlcHRoPzogbnVtYmVyXHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IE1lbnVJdGVtT3B0aW9uczxEYXRhVHlwZT4pIHtcclxuICAgICAgICB0aGlzLmlkID0gb3B0aW9ucz8uaWQ7XHJcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBvcHRpb25zPy5wYXJlbnQ7XHJcbiAgICAgICAgdGhpcy5zaG93Q29uZGl0aW9uID0gb3B0aW9ucz8uc2hvd0NvbmRpdGlvbjtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gQm9vbGVhbihvcHRpb25zPy5kaXNhYmxlZCk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBCb29sZWFuKG9wdGlvbnM/LmFjdGl2ZSk7XHJcbiAgICAgICAgdGhpcy5zaG93ID0gb3B0aW9ucz8uc2hvdyA9PSBudWxsIHx8IG9wdGlvbnMuc2hvdyA9PSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IG9wdGlvbnM/LmRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlcHRoKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVwdGggPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVwdGggPSAwO1xyXG4gICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMucGFyZW50O1xyXG4gICAgICAgICAgICB3aGlsZSAoaXRlbSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS5wYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kZXB0aCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVwdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHcm91cE1lbnVJdGVtPERhdGFUeXBlID0gYW55LCBJY29uVHlwZSA9IHN0cmluZz4gZXh0ZW5kcyBNZW51SXRlbTxEYXRhVHlwZT4ge1xyXG4gICAgcHVibGljIHRleHQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaWNvbj86IEljb25UeXBlO1xyXG4gICAgcHVibGljIGNoaWxkcmVuOiBNZW51SXRlbTxhbnk+W107XHJcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogTWVudUl0ZW1PcHRpb25zPERhdGFUeXBlPiAmIHtcclxuICAgICAgICB0ZXh0Pzogc3RyaW5nO1xyXG4gICAgICAgIGljb24/OiBJY29uVHlwZSxcclxuICAgICAgICBjaGlsZHJlbjogTWVudUl0ZW08YW55PltdO1xyXG4gICAgICAgIGV4cGFuZGVkPzogYm9vbGVhbixcclxuICAgIH0pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLnRleHQgPSBvcHRpb25zLnRleHQ7XHJcbiAgICAgICAgdGhpcy5pY29uID0gb3B0aW9ucz8uaWNvbjtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gb3B0aW9ucy5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gQm9vbGVhbihvcHRpb25zLmV4cGFuZGVkKTtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goeCA9PiB4LnBhcmVudCA9IHRoaXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dE1lbnVJdGVtPERhdGFUeXBlID0gYW55LCBJY29uVHlwZSA9IHN0cmluZz4gZXh0ZW5kcyBNZW51SXRlbTxEYXRhVHlwZT4ge1xyXG4gICAgcHVibGljIHRleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBpY29uPzogSWNvblR5cGU7XHJcbiAgICBwdWJsaWMgcm91dGVyTGluaz86IHN0cmluZ1tdO1xyXG4gICAgLyoqIEBkZXByaWNhdGVkICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xpY2s/OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNZW51SXRlbU9wdGlvbnM8RGF0YVR5cGU+ICYge1xyXG4gICAgICAgIHRleHQ6IHN0cmluZyxcclxuICAgICAgICBpY29uPzogSWNvblR5cGUsXHJcbiAgICAgICAgcm91dGVyTGluaz86IHN0cmluZ1tdLFxyXG4gICAgICAgIC8qKiBAZGVwcmljYXRlZCAqL1xyXG4gICAgICAgIGNsaWNrPzogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQsXHJcbiAgICB9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy50ZXh0ID0gb3B0aW9ucz8udGV4dDtcclxuICAgICAgICB0aGlzLmljb24gPSBvcHRpb25zPy5pY29uO1xyXG4gICAgICAgIHRoaXMucm91dGVyTGluayA9IG9wdGlvbnM/LnJvdXRlckxpbms7XHJcbiAgICAgICAgdGhpcy5jbGljayA9IG9wdGlvbnM/LmNsaWNrO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGl2aWRlck1lbnVJdGVtPERhdGFUeXBlID0gYW55PiBleHRlbmRzIE1lbnVJdGVtPERhdGFUeXBlPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogTWVudUl0ZW1PcHRpb25zPERhdGFUeXBlPikge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==