@theseam/ui-common 0.4.12 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -114,7 +114,7 @@ export class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
-
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
117
|
+
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
120
|
args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
|
|
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
125
125
|
'[attr.tabindex]': '_getTabIndex()',
|
|
126
126
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
127
127
|
'[attr.disabled]': 'disabled || null',
|
|
128
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
128
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"] }]
|
|
129
129
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
130
130
|
type: Inject,
|
|
131
131
|
args: [DOCUMENT]
|
|
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
155
155
|
type: HostListener,
|
|
156
156
|
args: ['mouseenter']
|
|
157
157
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vbWVudS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEssT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUl2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7QUFFdkQsTUFBTSxtQkFBbUI7Q0FBRztBQUU1QixNQUFNLHNCQUFzQixHQUN4QixhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtBQW9CdEMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHNCQUFzQjtJQTBCM0QsWUFDbUIsV0FBb0MsRUFDbkIsU0FBYyxFQUMvQixhQUEyQixFQUMzQixrQkFBcUMsRUFDRyxXQUFrRDtRQUUzRyxLQUFLLEVBQUUsQ0FBQTtRQU5VLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDRyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUM7UUE3QjdHLG1DQUFtQztRQUMxQixTQUFJLEdBQXlFLFVBQVUsQ0FBQTtRQUt2RixpQkFBWSxHQUF5QyxZQUFZLENBQUE7UUFJakUsZUFBVSxHQUE4QixRQUFRLENBQUE7UUFFekQsdURBQXVEO1FBQzlDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQTtRQUVwRCx1REFBdUQ7UUFDOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFBO1FBRXBELDRDQUE0QztRQUM1QyxpQkFBWSxHQUFHLEtBQUssQ0FBQTtRQUVwQiw4REFBOEQ7UUFDOUQscUJBQWdCLEdBQUcsS0FBSyxDQUFBO1FBV3RCLGdDQUFnQztRQUNoQyxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3RDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDMUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDcEQ7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDbEM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsb0ZBQW9GO1lBQ3BGLGlGQUFpRjtZQUNqRiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtTQUNwRDtJQUNILENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsS0FBSyxDQUFDLFNBQXNCLFNBQVM7UUFDbkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtTQUM1RDthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFBO0lBQ3ZDLENBQUM7SUFFRCw4REFBOEQ7SUFFOUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQTtZQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7U0FDeEI7SUFDSCxDQUFDO0lBRUQsaUNBQWlDO0lBRWpDLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUVmLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQTtZQUV4QyxrRUFBa0U7WUFDbEUsbUVBQW1FO1lBQ25FLDhDQUE4QztZQUM5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMvQixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFlBQVksRUFBRTtvQkFDbkQsTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFBO2lCQUM1QzthQUNGO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUFDLGFBQXNCO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFBO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsZUFBd0I7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLENBQUE7SUFDekMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2xGLENBQUM7OzhHQXBJVSxpQkFBaUIsNENBNEJsQixRQUFRLDBFQUdSLGtCQUFrQjtrR0EvQmpCLGlCQUFpQixrdEJDbkM5QiwyeUJBMkJBOzJGRFFhLGlCQUFpQjtrQkFsQjdCLFNBQVM7K0JBRUUsZ0JBQWdCLFlBR2hCLGNBQWMsVUFDaEIsQ0FBRSxVQUFVLENBQUUsUUFDaEI7d0JBQ0osYUFBYSxFQUFFLE1BQU07d0JBQ3JCLE9BQU8sRUFBRSw4QkFBOEI7d0JBQ3ZDLG9DQUFvQyxFQUFFLGNBQWM7d0JBQ3BELHdDQUF3QyxFQUFFLGtCQUFrQjt3QkFDNUQsaUJBQWlCLEVBQUUsZ0JBQWdCO3dCQUNuQyxzQkFBc0IsRUFBRSxxQkFBcUI7d0JBQzdDLGlCQUFpQixFQUFFLGtCQUFrQjtxQkFDdEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQThCNUMsTUFBTTsyQkFBQyxRQUFROzswQkFHZixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTs0Q0E1QjlCLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBeUVOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVWpDLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IGZhQ2FyZXRSaWdodCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IENhbkRpc2FibGVDdG9yLCBtaXhpbkRpc2FibGVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuXG5pbXBvcnQgdHlwZSB7IElUaGVTZWFtTWVudVBhbmVsIH0gZnJvbSAnLi9tZW51LXBhbmVsJ1xuaW1wb3J0IHsgVEhFU0VBTV9NRU5VX1BBTkVMIH0gZnJvbSAnLi9tZW51LXBhbmVsLXRva2VuJ1xuXG5jbGFzcyBUaGVTZWFtTWVudUl0ZW1CYXNlIHt9XG5cbmNvbnN0IF9zZWFtTWVudUl0ZW1NaXhpbkJhc2U6IENhbkRpc2FibGVDdG9yICYgdHlwZW9mIFRoZVNlYW1NZW51SXRlbUJhc2UgPVxuICAgIG1peGluRGlzYWJsZWQoVGhlU2VhbU1lbnVJdGVtQmFzZSlcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3NlYW1NZW51SXRlbV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnc2VhbU1lbnVJdGVtJyxcbiAgaW5wdXRzOiBbICdkaXNhYmxlZCcgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgICAnY2xhc3MnOiAnc2VhbS1tZW51LWl0ZW0gZHJvcGRvd24taXRlbScsXG4gICAgJ1tjbGFzcy5zZWFtLW1lbnUtaXRlbS1oaWdobGlnaHRlZF0nOiAnX2hpZ2hsaWdodGVkJyxcbiAgICAnW2NsYXNzLnNlYW0tbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcl0nOiAnX3RyaWdnZXJzU3VibWVudScsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdfZ2V0VGFiSW5kZXgoKScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgX3NlYW1NZW51SXRlbU1peGluQmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgRm9jdXNhYmxlT3B0aW9uIHtcblxuICAvKiogQVJJQSByb2xlIGZvciB0aGUgbWVudSBpdGVtLiAqL1xuICBASW5wdXQoKSByb2xlOiAnbWVudWl0ZW0nIHwgJ21lbnVpdGVtcmFkaW8nIHwgJ21lbnVpdGVtY2hlY2tib3gnIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdtZW51aXRlbSdcblxuICBASW5wdXQoKSBpY29uOiBTZWFtSWNvbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgaWNvbkNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgc3VibGV2ZWxJY29uOiBTZWFtSWNvbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBmYUNhcmV0UmlnaHRcbiAgQElucHV0KCkgc3ViTGV2ZWxJY29uQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBiYWRnZVRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgYmFkZ2VUaGVtZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdkYW5nZXInXG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1lbnUgaXRlbSBpcyBob3ZlcmVkLiAqL1xuICByZWFkb25seSBfaG92ZXJlZCA9IG5ldyBTdWJqZWN0PE1lbnVJdGVtQ29tcG9uZW50PigpXG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1lbnUgaXRlbSBpcyBmb2N1c2VkLiAqL1xuICByZWFkb25seSBfZm9jdXNlZCA9IG5ldyBTdWJqZWN0PE1lbnVJdGVtQ29tcG9uZW50PigpXG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXRlbSBpcyBoaWdobGlnaHRlZC4gKi9cbiAgX2hpZ2hsaWdodGVkID0gZmFsc2VcblxuICAvKiogV2hldGhlciB0aGUgbWVudSBpdGVtIGFjdHMgYXMgYSB0cmlnZ2VyIGZvciBhIHN1Yi1tZW51LiAqL1xuICBfdHJpZ2dlcnNTdWJtZW51ID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgcmVhZG9ubHkgX2RvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoVEhFU0VBTV9NRU5VX1BBTkVMKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRNZW51PzogSVRoZVNlYW1NZW51UGFuZWw8TWVudUl0ZW1Db21wb25lbnQ+XG4gICkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX3BhcmVudE1lbnUpXG4gICAgaWYgKF9wYXJlbnRNZW51ICYmIF9wYXJlbnRNZW51LmFkZEl0ZW0pIHtcbiAgICAgIF9wYXJlbnRNZW51LmFkZEl0ZW0odGhpcylcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fZm9jdXNNb25pdG9yKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGFyZW50TWVudSAmJiB0aGlzLl9wYXJlbnRNZW51LnJlbW92ZUl0ZW0pIHtcbiAgICAgIHRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSh0aGlzKVxuICAgIH1cblxuICAgIHRoaXMuX2hvdmVyZWQuY29tcGxldGUoKVxuICAgIHRoaXMuX2ZvY3VzZWQuY29tcGxldGUoKVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLl9mb2N1c01vbml0b3IpIHtcbiAgICAgIC8vIFN0YXJ0IG1vbml0b3JpbmcgdGhlIGVsZW1lbnQsIHNvIGl0IGdldHMgdGhlIGFwcHJvcHJpYXRlIGZvY3VzZWQgY2xhc3Nlcy4gV2Ugd2FudFxuICAgICAgLy8gdG8gc2hvdyB0aGUgZm9jdXMgc3R5bGUgZm9yIG1lbnUgaXRlbXMgb25seSB3aGVuIHRoZSBmb2N1cyB3YXMgbm90IGNhdXNlZCBieSBhXG4gICAgICAvLyBtb3VzZSBvciB0b3VjaCBpbnRlcmFjdGlvbi5cbiAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBtZW51IGl0ZW0uICovXG4gIGZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZm9jdXNNb25pdG9yKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSwgb3JpZ2luKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmZvY3VzKClcbiAgICB9XG4gICAgdGhpcy5fZm9jdXNlZC5uZXh0KHRoaXMpXG4gIH1cblxuICAvKiogVXNlZCB0byBzZXQgdGhlIGB0YWJpbmRleGAuICovXG4gIF9nZXRUYWJJbmRleCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJy0xJyA6ICcwJ1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGhvc3QgRE9NIGVsZW1lbnQuICovXG4gIF9nZXRIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICB9XG5cbiAgLyoqIFByZXZlbnRzIHRoZSBkZWZhdWx0IGVsZW1lbnQgYWN0aW9ucyBpZiBpdCBpcyBkaXNhYmxlZC4gKi9cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBfY2hlY2tEaXNhYmxlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9XG4gIH1cblxuICAvKiogRW1pdHMgdG8gdGhlIGhvdmVyIHN0cmVhbS4gKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIF9oYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHRoaXMuX2hvdmVyZWQubmV4dCh0aGlzKVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIGxhYmVsIHRvIGJlIHVzZWQgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIGZvY3VzZWQuICovXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICBjb25zdCB0ZXh0Tm9kZVR5cGUgPSB0aGlzLl9kb2N1bWVudCA/IHRoaXMuX2RvY3VtZW50LlRFWFRfTk9ERSA6IDNcbiAgICBsZXQgb3V0cHV0ID0gJydcblxuICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXMpIHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGhcblxuICAgICAgLy8gR28gdGhyb3VnaCBhbGwgdGhlIHRvcC1sZXZlbCB0ZXh0IG5vZGVzIGFuZCBleHRyYWN0IHRoZWlyIHRleHQuXG4gICAgICAvLyBXZSBza2lwIGFueXRoaW5nIHRoYXQncyBub3QgYSB0ZXh0IG5vZGUgdG8gcHJldmVudCB0aGUgdGV4dCBmcm9tXG4gICAgICAvLyBiZWluZyB0aHJvd24gb2ZmIGJ5IHNvbWV0aGluZyBsaWtlIGFuIGljb24uXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXNbaV0ubm9kZVR5cGUgPT09IHRleHROb2RlVHlwZSkge1xuICAgICAgICAgIG91dHB1dCArPSBlbGVtZW50LmNoaWxkTm9kZXNbaV0udGV4dENvbnRlbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXQudHJpbSgpXG4gIH1cblxuICBfc2V0SGlnaGxpZ2h0ZWQoaXNIaWdobGlnaHRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkID0gaXNIaWdobGlnaHRlZFxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPy5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgX3NldFRyaWdnZXJzU3VibWVudSh0cmlnZ2Vyc1N1Ym1lbnU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1N1Ym1lbnUgPSB0cmlnZ2Vyc1N1Ym1lbnVcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIF9oYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnQgJiYgdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93XCI+XG4gIDxzZWFtLWljb24gKm5nSWY9XCJpY29uXCJcbiAgICBzdHlsZT1cIndpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7IGZsZXg6IDAgMCBhdXRvO1wiXG4gICAgY2xhc3M9XCJwci0yXCJcbiAgICBbaWNvbl09XCJpY29uXCJcbiAgICBbaWNvbkNsYXNzXT1cImljb25DbGFzc1wiXG4gICAgaWNvblR5cGU9XCJpbWFnZS1maWxsXCI+XG4gIDwvc2VhbS1pY29uPlxuICA8ZGl2IGNsYXNzPVwiZmxleC1maWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJiYWRnZVRleHRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbHt7IGJhZGdlVGhlbWUgPyAnIGJhZGdlLScgKyBiYWRnZVRoZW1lIDogJycgfX0gcG9zaXRpb24tcmVsYXRpdmVcIlxuICAgICAgICBzdHlsZT1cInRvcDogLThweFwiXG4gICAgICAgID57eyBiYWRnZVRleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8c2VhbS1pY29uICpuZ0lmPVwiX3RyaWdnZXJzU3VibWVudVwiXG4gICAgc3R5bGU9XCJ3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyBmbGV4OiAwIDAgYXV0bztcIlxuICAgIGNsYXNzPVwicGwtMlwiXG4gICAgW2ljb25dPVwic3VibGV2ZWxJY29uXCJcbiAgICBbaWNvbkNsYXNzXT1cInN1YkxldmVsSWNvbkNsYXNzXCJcbiAgICBpY29uVHlwZT1cImltYWdlLWZpbGxcIj5cbiAgPC9zZWFtLWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vbWVudS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEssT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUl2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7Ozs7QUFFdkQsTUFBTSxtQkFBbUI7Q0FBRztBQUU1QixNQUFNLHNCQUFzQixHQUN4QixhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtBQW9CdEMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHNCQUFzQjtJQTBCM0QsWUFDbUIsV0FBb0MsRUFDbkIsU0FBYyxFQUMvQixhQUEyQixFQUMzQixrQkFBcUMsRUFDRyxXQUFrRDtRQUUzRyxLQUFLLEVBQUUsQ0FBQTtRQU5VLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDRyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUM7UUE3QjdHLG1DQUFtQztRQUMxQixTQUFJLEdBQXlF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Z0JBQWdCO3dCQUNuQyxzQkFBc0IsRUFBRSxxQkFBcUI7d0JBQzdDLGlCQUFpQixFQUFFLGtCQUFrQjtxQkFDdEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQThCNUMsTUFBTTsyQkFBQyxRQUFROzswQkFHZixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTs0Q0E1QjlCLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBeUVOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVWpDLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IGZhQ2FyZXRSaWdodCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IENhbkRpc2FibGVDdG9yLCBtaXhpbkRpc2FibGVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuXG5pbXBvcnQgdHlwZSB7IElUaGVTZWFtTWVudVBhbmVsIH0gZnJvbSAnLi9tZW51LXBhbmVsJ1xuaW1wb3J0IHsgVEhFU0VBTV9NRU5VX1BBTkVMIH0gZnJvbSAnLi9tZW51LXBhbmVsLXRva2VuJ1xuXG5jbGFzcyBUaGVTZWFtTWVudUl0ZW1CYXNlIHt9XG5cbmNvbnN0IF9zZWFtTWVudUl0ZW1NaXhpbkJhc2U6IENhbkRpc2FibGVDdG9yICYgdHlwZW9mIFRoZVNlYW1NZW51SXRlbUJhc2UgPVxuICAgIG1peGluRGlzYWJsZWQoVGhlU2VhbU1lbnVJdGVtQmFzZSlcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3NlYW1NZW51SXRlbV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnc2VhbU1lbnVJdGVtJyxcbiAgaW5wdXRzOiBbICdkaXNhYmxlZCcgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgICAnY2xhc3MnOiAnc2VhbS1tZW51LWl0ZW0gZHJvcGRvd24taXRlbScsXG4gICAgJ1tjbGFzcy5zZWFtLW1lbnUtaXRlbS1oaWdobGlnaHRlZF0nOiAnX2hpZ2hsaWdodGVkJyxcbiAgICAnW2NsYXNzLnNlYW0tbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcl0nOiAnX3RyaWdnZXJzU3VibWVudScsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdfZ2V0VGFiSW5kZXgoKScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgX3NlYW1NZW51SXRlbU1peGluQmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgRm9jdXNhYmxlT3B0aW9uIHtcblxuICAvKiogQVJJQSByb2xlIGZvciB0aGUgbWVudSBpdGVtLiAqL1xuICBASW5wdXQoKSByb2xlOiAnbWVudWl0ZW0nIHwgJ21lbnVpdGVtcmFkaW8nIHwgJ21lbnVpdGVtY2hlY2tib3gnIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdtZW51aXRlbSdcblxuICBASW5wdXQoKSBpY29uOiBTZWFtSWNvbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgaWNvbkNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgc3VibGV2ZWxJY29uOiBTZWFtSWNvbiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBmYUNhcmV0UmlnaHRcbiAgQElucHV0KCkgc3ViTGV2ZWxJY29uQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBiYWRnZVRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgYmFkZ2VUaGVtZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdkYW5nZXInXG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1lbnUgaXRlbSBpcyBob3ZlcmVkLiAqL1xuICByZWFkb25seSBfaG92ZXJlZCA9IG5ldyBTdWJqZWN0PE1lbnVJdGVtQ29tcG9uZW50PigpXG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1lbnUgaXRlbSBpcyBmb2N1c2VkLiAqL1xuICByZWFkb25seSBfZm9jdXNlZCA9IG5ldyBTdWJqZWN0PE1lbnVJdGVtQ29tcG9uZW50PigpXG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXRlbSBpcyBoaWdobGlnaHRlZC4gKi9cbiAgX2hpZ2hsaWdodGVkID0gZmFsc2VcblxuICAvKiogV2hldGhlciB0aGUgbWVudSBpdGVtIGFjdHMgYXMgYSB0cmlnZ2VyIGZvciBhIHN1Yi1tZW51LiAqL1xuICBfdHJpZ2dlcnNTdWJtZW51ID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgcmVhZG9ubHkgX2RvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoVEhFU0VBTV9NRU5VX1BBTkVMKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRNZW51PzogSVRoZVNlYW1NZW51UGFuZWw8TWVudUl0ZW1Db21wb25lbnQ+XG4gICkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX3BhcmVudE1lbnUpXG4gICAgaWYgKF9wYXJlbnRNZW51ICYmIF9wYXJlbnRNZW51LmFkZEl0ZW0pIHtcbiAgICAgIF9wYXJlbnRNZW51LmFkZEl0ZW0odGhpcylcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fZm9jdXNNb25pdG9yKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGFyZW50TWVudSAmJiB0aGlzLl9wYXJlbnRNZW51LnJlbW92ZUl0ZW0pIHtcbiAgICAgIHRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSh0aGlzKVxuICAgIH1cblxuICAgIHRoaXMuX2hvdmVyZWQuY29tcGxldGUoKVxuICAgIHRoaXMuX2ZvY3VzZWQuY29tcGxldGUoKVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLl9mb2N1c01vbml0b3IpIHtcbiAgICAgIC8vIFN0YXJ0IG1vbml0b3JpbmcgdGhlIGVsZW1lbnQsIHNvIGl0IGdldHMgdGhlIGFwcHJvcHJpYXRlIGZvY3VzZWQgY2xhc3Nlcy4gV2Ugd2FudFxuICAgICAgLy8gdG8gc2hvdyB0aGUgZm9jdXMgc3R5bGUgZm9yIG1lbnUgaXRlbXMgb25seSB3aGVuIHRoZSBmb2N1cyB3YXMgbm90IGNhdXNlZCBieSBhXG4gICAgICAvLyBtb3VzZSBvciB0b3VjaCBpbnRlcmFjdGlvbi5cbiAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBtZW51IGl0ZW0uICovXG4gIGZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZm9jdXNNb25pdG9yKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSwgb3JpZ2luKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmZvY3VzKClcbiAgICB9XG4gICAgdGhpcy5fZm9jdXNlZC5uZXh0KHRoaXMpXG4gIH1cblxuICAvKiogVXNlZCB0byBzZXQgdGhlIGB0YWJpbmRleGAuICovXG4gIF9nZXRUYWJJbmRleCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJy0xJyA6ICcwJ1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGhvc3QgRE9NIGVsZW1lbnQuICovXG4gIF9nZXRIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICB9XG5cbiAgLyoqIFByZXZlbnRzIHRoZSBkZWZhdWx0IGVsZW1lbnQgYWN0aW9ucyBpZiBpdCBpcyBkaXNhYmxlZC4gKi9cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBfY2hlY2tEaXNhYmxlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9XG4gIH1cblxuICAvKiogRW1pdHMgdG8gdGhlIGhvdmVyIHN0cmVhbS4gKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIF9oYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHRoaXMuX2hvdmVyZWQubmV4dCh0aGlzKVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIGxhYmVsIHRvIGJlIHVzZWQgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIGZvY3VzZWQuICovXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICBjb25zdCB0ZXh0Tm9kZVR5cGUgPSB0aGlzLl9kb2N1bWVudCA/IHRoaXMuX2RvY3VtZW50LlRFWFRfTk9ERSA6IDNcbiAgICBsZXQgb3V0cHV0ID0gJydcblxuICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXMpIHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGhcblxuICAgICAgLy8gR28gdGhyb3VnaCBhbGwgdGhlIHRvcC1sZXZlbCB0ZXh0IG5vZGVzIGFuZCBleHRyYWN0IHRoZWlyIHRleHQuXG4gICAgICAvLyBXZSBza2lwIGFueXRoaW5nIHRoYXQncyBub3QgYSB0ZXh0IG5vZGUgdG8gcHJldmVudCB0aGUgdGV4dCBmcm9tXG4gICAgICAvLyBiZWluZyB0aHJvd24gb2ZmIGJ5IHNvbWV0aGluZyBsaWtlIGFuIGljb24uXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXNbaV0ubm9kZVR5cGUgPT09IHRleHROb2RlVHlwZSkge1xuICAgICAgICAgIG91dHB1dCArPSBlbGVtZW50LmNoaWxkTm9kZXNbaV0udGV4dENvbnRlbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXQudHJpbSgpXG4gIH1cblxuICBfc2V0SGlnaGxpZ2h0ZWQoaXNIaWdobGlnaHRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkID0gaXNIaWdobGlnaHRlZFxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPy5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgX3NldFRyaWdnZXJzU3VibWVudSh0cmlnZ2Vyc1N1Ym1lbnU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1N1Ym1lbnUgPSB0cmlnZ2Vyc1N1Ym1lbnVcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIF9oYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnQgJiYgdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93XCI+XG4gIDxzZWFtLWljb24gKm5nSWY9XCJpY29uXCJcbiAgICBzdHlsZT1cIndpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7IGZsZXg6IDAgMCBhdXRvO1wiXG4gICAgY2xhc3M9XCJwci0yXCJcbiAgICBbaWNvbl09XCJpY29uXCJcbiAgICBbaWNvbkNsYXNzXT1cImljb25DbGFzc1wiXG4gICAgaWNvblR5cGU9XCJpbWFnZS1maWxsXCI+XG4gIDwvc2VhbS1pY29uPlxuXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiYmFkZ2VUZXh0XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxse3sgYmFkZ2VUaGVtZSA/ICcgYmFkZ2UtJyArIGJhZGdlVGhlbWUgOiAnJyB9fSBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICBzdHlsZT1cInRvcDogLTJweFwiXG4gICAgICA+e3sgYmFkZ2VUZXh0IH19PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICA8c2VhbS1pY29uICpuZ0lmPVwiX3RyaWdnZXJzU3VibWVudVwiXG4gICAgICBzdHlsZT1cIndpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7IGZsZXg6IDAgMCBhdXRvO1wiXG4gICAgICBjbGFzcz1cInBsLTJcIlxuICAgICAgW2ljb25dPVwic3VibGV2ZWxJY29uXCJcbiAgICAgIFtpY29uQ2xhc3NdPVwic3ViTGV2ZWxJY29uQ2xhc3NcIlxuICAgICAgaWNvblR5cGU9XCJpbWFnZS1maWxsXCI+XG4gICAgPC9zZWFtLWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -201,7 +201,7 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
204
|
-
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
204
|
+
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
205
205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
207
207
|
args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
|
|
@@ -212,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
212
212
|
'[attr.tabindex]': '_getTabIndex()',
|
|
213
213
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
214
214
|
'[attr.disabled]': 'disabled || null',
|
|
215
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
215
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"] }]
|
|
216
216
|
}], ctorParameters: function () {
|
|
217
217
|
return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
218
218
|
type: Inject,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnDestroy, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { faCaretRight } from '@fortawesome/free-solid-svg-icons'\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n inputs: [ 'disabled' ],\n host: {\n '[attr.role]': 'role',\n 'class': 'seam-menu-item dropdown-item',\n '[class.seam-menu-item-highlighted]': '_highlighted',\n '[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnDestroy, AfterViewInit, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() sublevelIcon: SeamIcon | string | undefined | null = faCaretRight\n @Input() subLevelIconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered = new Subject<MenuItemComponent>()\n\n /** Stream that emits when the menu item is focused. */\n readonly _focused = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public readonly _document: any,\n private readonly _focusMonitor: FocusMonitor,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n this._focused.complete()\n }\n\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false)\n }\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n this._focused.next(this)\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this._document ? this._document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n _setHighlighted(isHighlighted: boolean) {\n this._highlighted = isHighlighted\n this._changeDetectorRef?.markForCheck()\n }\n\n _setTriggersSubmenu(triggersSubmenu: boolean) {\n this._triggersSubmenu = triggersSubmenu\n this._changeDetectorRef?.markForCheck()\n }\n\n _hasFocus(): boolean {\n return this._document && this._document.activeElement === this._getHostElement()\n }\n}\n","<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <div class=\"flex-fill\">\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n </div>\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n</div>\n","import { animate, group, query, style, transition, trigger, useAnimation, AnimationEvent } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { Direction } from '@angular/cdk/bidi'\n\nlet menuPanelUid = 0\n\n/** Reason why the menu was closed. */\nexport type MenuCloseReason = void | 'click' | 'keydown' | 'tab'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n readonly panelId = `menu-panel-${menuPanelUid++}`\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n /** Layout direction of the menu. */\n direction: Direction | undefined\n\n /** Emits whenever an animation on the menu completes. */\n readonly _animationDone = new Subject<AnimationEvent>()\n\n /** Whether the menu is animating. */\n _isAnimating = false\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<MenuCloseReason>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown')\n }\n break\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown')\n }\n break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event)\n this._isAnimating = false\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true\n\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {\n event.element.scrollTop = 0\n }\n }\n\n}\n","<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { Direction, Directionality } from '@angular/cdk/bidi'\nimport { NumberInput } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, inject, Inject, Input, OnDestroy, Optional, Output, Self, ViewContainerRef } from '@angular/core'\nimport { asapScheduler, delay, filter, merge, Observable, of, Subscription, take, takeUntil } from 'rxjs'\n\nimport { InputNumber } from '@theseam/ui-common/core'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuCloseReason, MenuComponent } from './menu.component'\n\ndeclare const ngDevMode: any\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'seam-menu-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null',\n '[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy, AfterContentInit {\n\n static ngAcceptInputType_seamMenuTogglePositionsOffsetY: NumberInput\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n private _hoverSubscription = Subscription.EMPTY\n private readonly _changeDetectorRef = inject(ChangeDetectorRef)\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | 'keyboard' | null = null\n\n @Input('seamMenuToggle')\n get menu() { return this._menu }\n set menu(menu: MenuComponent | undefined | null) {\n if (menu === this._menu) {\n return\n }\n\n this._menu = menu\n this._menuClosedSubscription.unsubscribe()\n\n if (menu) {\n if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +\n `not a parent of the trigger or move the trigger outside of the menu.`,\n )\n }\n\n this._menuClosedSubscription = menu.closed.subscribe((reason: MenuCloseReason) => {\n // this._destroyMenu(reason)\n this.closeMenu()\n\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {\n this._parentMenuComponent.closed.emit(reason)\n }\n })\n }\n\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu())\n }\n _menu: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() {\n const positions = this._positions\n\n if (this.triggersSubmenu()) {\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n return positions\n }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n // TODO: Figure out how to automatically handle this. I think the offset can\n // be calculated using the first item's offsetTop and borderTop. The problem\n // is that I was only able to calculate it after the animation had started, so\n // the initial transition was slightly off.\n @Input() @InputNumber(0) seamMenuTogglePositionsOffsetY = -11\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuOpened = new EventEmitter<void>()\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuClosed = new EventEmitter<void>()\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault()\n }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n // console.log('keydown', event)\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.menu?.focusFirstItem(this._openedBy || 'program')\n }\n } else if (keyCode === ESCAPE) {\n this.closeMenu()\n }\n\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard'\n }\n\n if (\n this.triggersSubmenu() &&\n ((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||\n (keyCode === LEFT_ARROW && this.dir === 'rtl'))\n ) {\n this._openedBy = 'keyboard'\n this.openMenu()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation()\n this.openMenu()\n } else {\n this.toggle()\n }\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n private readonly _parentMenuComponent?: MenuComponent\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _overlay: Overlay,\n private readonly _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>,\n @Optional() @Self() private readonly _menuItemInstance?: MenuItemComponent,\n @Optional() private readonly _dir?: Directionality,\n ) {\n this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined\n\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n this._hoverSubscription.unsubscribe()\n }\n\n ngAfterContentInit() {\n this._handleHover()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.menu) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: !this._parentMenuComponent,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.menu.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu(this.menu)\n\n this._menuClosedSubscription = this.menu.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr'\n }\n\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu(): boolean {\n return !!(this._menuItemInstance && this._parentMenuComponent && this.menu)\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n let emitCloseEvent = false\n if (this.menuOpen()) {\n emitCloseEvent = true\n }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n if (emitCloseEvent) {\n this.menu?.closed.emit()\n }\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(menu: MenuComponent): void {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n menu.direction = this.dir\n // this._setMenuElevation(menu)\n menu.focusFirstItem(this._openedBy || 'program')\n this._setIsMenuOpen(true)\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n } else if (!this.triggersSubmenu()) {\n this.focus(this._openedBy)\n }\n }\n\n this._openedBy = null\n }\n\n // set state rather than toggle to support triggers sharing a menu\n private _setIsMenuOpen(isOpen: boolean): void {\n if (isOpen !== this.menuOpen()) {\n // this._menuOpen = isOpen\n this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit()\n\n if (this.triggersSubmenu()) {\n this._menuItemInstance?._setHighlighted(isOpen)\n }\n\n this._changeDetectorRef.markForCheck()\n }\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(\n filter(active => active !== this._menuItemInstance),\n filter(() => this.menuOpen())\n ) : of()\n\n return merge(backdrop, parentClose as Observable<MenuCloseReason>, hover, detachments)\n }\n\n /** Handles the cases where the user hovers over the trigger. */\n private _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMenuComponent) {\n return\n }\n\n this._hoverSubscription = this._parentMenuComponent\n ._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(\n filter(active => active === this._menuItemInstance && !active.disabled),\n delay(0, asapScheduler),\n )\n .subscribe(() => {\n this._openedBy = 'mouse'\n\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MenuComponent && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone\n .pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMenuComponent!._hovered()))\n .subscribe(() => this.openMenu())\n } else {\n this.openMenu()\n }\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i3.MenuItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnDestroy, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { faCaretRight } from '@fortawesome/free-solid-svg-icons'\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n inputs: [ 'disabled' ],\n host: {\n '[attr.role]': 'role',\n 'class': 'seam-menu-item dropdown-item',\n '[class.seam-menu-item-highlighted]': '_highlighted',\n '[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnDestroy, AfterViewInit, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() sublevelIcon: SeamIcon | string | undefined | null = faCaretRight\n @Input() subLevelIconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered = new Subject<MenuItemComponent>()\n\n /** Stream that emits when the menu item is focused. */\n readonly _focused = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public readonly _document: any,\n private readonly _focusMonitor: FocusMonitor,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n this._focused.complete()\n }\n\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false)\n }\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n this._focused.next(this)\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this._document ? this._document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n _setHighlighted(isHighlighted: boolean) {\n this._highlighted = isHighlighted\n this._changeDetectorRef?.markForCheck()\n }\n\n _setTriggersSubmenu(triggersSubmenu: boolean) {\n this._triggersSubmenu = triggersSubmenu\n this._changeDetectorRef?.markForCheck()\n }\n\n _hasFocus(): boolean {\n return this._document && this._document.activeElement === this._getHostElement()\n }\n}\n","<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n","import { animate, group, query, style, transition, trigger, useAnimation, AnimationEvent } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { Direction } from '@angular/cdk/bidi'\n\nlet menuPanelUid = 0\n\n/** Reason why the menu was closed. */\nexport type MenuCloseReason = void | 'click' | 'keydown' | 'tab'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n readonly panelId = `menu-panel-${menuPanelUid++}`\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n /** Layout direction of the menu. */\n direction: Direction | undefined\n\n /** Emits whenever an animation on the menu completes. */\n readonly _animationDone = new Subject<AnimationEvent>()\n\n /** Whether the menu is animating. */\n _isAnimating = false\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<MenuCloseReason>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown')\n }\n break\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown')\n }\n break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event)\n this._isAnimating = false\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true\n\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {\n event.element.scrollTop = 0\n }\n }\n\n}\n","<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { Direction, Directionality } from '@angular/cdk/bidi'\nimport { NumberInput } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, inject, Inject, Input, OnDestroy, Optional, Output, Self, ViewContainerRef } from '@angular/core'\nimport { asapScheduler, delay, filter, merge, Observable, of, Subscription, take, takeUntil } from 'rxjs'\n\nimport { InputNumber } from '@theseam/ui-common/core'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuCloseReason, MenuComponent } from './menu.component'\n\ndeclare const ngDevMode: any\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'seam-menu-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null',\n '[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy, AfterContentInit {\n\n static ngAcceptInputType_seamMenuTogglePositionsOffsetY: NumberInput\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n private _hoverSubscription = Subscription.EMPTY\n private readonly _changeDetectorRef = inject(ChangeDetectorRef)\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | 'keyboard' | null = null\n\n @Input('seamMenuToggle')\n get menu() { return this._menu }\n set menu(menu: MenuComponent | undefined | null) {\n if (menu === this._menu) {\n return\n }\n\n this._menu = menu\n this._menuClosedSubscription.unsubscribe()\n\n if (menu) {\n if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +\n `not a parent of the trigger or move the trigger outside of the menu.`,\n )\n }\n\n this._menuClosedSubscription = menu.closed.subscribe((reason: MenuCloseReason) => {\n // this._destroyMenu(reason)\n this.closeMenu()\n\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {\n this._parentMenuComponent.closed.emit(reason)\n }\n })\n }\n\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu())\n }\n _menu: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() {\n const positions = this._positions\n\n if (this.triggersSubmenu()) {\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n return positions\n }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n // TODO: Figure out how to automatically handle this. I think the offset can\n // be calculated using the first item's offsetTop and borderTop. The problem\n // is that I was only able to calculate it after the animation had started, so\n // the initial transition was slightly off.\n @Input() @InputNumber(0) seamMenuTogglePositionsOffsetY = -11\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuOpened = new EventEmitter<void>()\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuClosed = new EventEmitter<void>()\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault()\n }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n // console.log('keydown', event)\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.menu?.focusFirstItem(this._openedBy || 'program')\n }\n } else if (keyCode === ESCAPE) {\n this.closeMenu()\n }\n\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard'\n }\n\n if (\n this.triggersSubmenu() &&\n ((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||\n (keyCode === LEFT_ARROW && this.dir === 'rtl'))\n ) {\n this._openedBy = 'keyboard'\n this.openMenu()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation()\n this.openMenu()\n } else {\n this.toggle()\n }\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n private readonly _parentMenuComponent?: MenuComponent\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _overlay: Overlay,\n private readonly _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>,\n @Optional() @Self() private readonly _menuItemInstance?: MenuItemComponent,\n @Optional() private readonly _dir?: Directionality,\n ) {\n this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined\n\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n this._hoverSubscription.unsubscribe()\n }\n\n ngAfterContentInit() {\n this._handleHover()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.menu) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: !this._parentMenuComponent,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.menu.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu(this.menu)\n\n this._menuClosedSubscription = this.menu.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr'\n }\n\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu(): boolean {\n return !!(this._menuItemInstance && this._parentMenuComponent && this.menu)\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n let emitCloseEvent = false\n if (this.menuOpen()) {\n emitCloseEvent = true\n }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n if (emitCloseEvent) {\n this.menu?.closed.emit()\n }\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(menu: MenuComponent): void {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n menu.direction = this.dir\n // this._setMenuElevation(menu)\n menu.focusFirstItem(this._openedBy || 'program')\n this._setIsMenuOpen(true)\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n } else if (!this.triggersSubmenu()) {\n this.focus(this._openedBy)\n }\n }\n\n this._openedBy = null\n }\n\n // set state rather than toggle to support triggers sharing a menu\n private _setIsMenuOpen(isOpen: boolean): void {\n if (isOpen !== this.menuOpen()) {\n // this._menuOpen = isOpen\n this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit()\n\n if (this.triggersSubmenu()) {\n this._menuItemInstance?._setHighlighted(isOpen)\n }\n\n this._changeDetectorRef.markForCheck()\n }\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(\n filter(active => active !== this._menuItemInstance),\n filter(() => this.menuOpen())\n ) : of()\n\n return merge(backdrop, parentClose as Observable<MenuCloseReason>, hover, detachments)\n }\n\n /** Handles the cases where the user hovers over the trigger. */\n private _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMenuComponent) {\n return\n }\n\n this._hoverSubscription = this._parentMenuComponent\n ._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(\n filter(active => active === this._menuItemInstance && !active.disabled),\n delay(0, asapScheduler),\n )\n .subscribe(() => {\n this._openedBy = 'mouse'\n\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MenuComponent && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone\n .pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMenuComponent!._hovered()))\n .subscribe(() => this.openMenu())\n } else {\n this.openMenu()\n }\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i3.MenuItemComponent"],"mappings":"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"}
|
|
@@ -199,7 +199,7 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
-
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
202
|
+
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
203
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
204
204
|
type: Component,
|
|
205
205
|
args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
|
|
@@ -210,7 +210,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
210
210
|
'[attr.tabindex]': '_getTabIndex()',
|
|
211
211
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
212
212
|
'[attr.disabled]': 'disabled || null',
|
|
213
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
213
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"] }]
|
|
214
214
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
215
215
|
type: Inject,
|
|
216
216
|
args: [DOCUMENT]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnDestroy, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { faCaretRight } from '@fortawesome/free-solid-svg-icons'\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n inputs: [ 'disabled' ],\n host: {\n '[attr.role]': 'role',\n 'class': 'seam-menu-item dropdown-item',\n '[class.seam-menu-item-highlighted]': '_highlighted',\n '[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnDestroy, AfterViewInit, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() sublevelIcon: SeamIcon | string | undefined | null = faCaretRight\n @Input() subLevelIconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered = new Subject<MenuItemComponent>()\n\n /** Stream that emits when the menu item is focused. */\n readonly _focused = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public readonly _document: any,\n private readonly _focusMonitor: FocusMonitor,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n this._focused.complete()\n }\n\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false)\n }\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n this._focused.next(this)\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this._document ? this._document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n _setHighlighted(isHighlighted: boolean) {\n this._highlighted = isHighlighted\n this._changeDetectorRef?.markForCheck()\n }\n\n _setTriggersSubmenu(triggersSubmenu: boolean) {\n this._triggersSubmenu = triggersSubmenu\n this._changeDetectorRef?.markForCheck()\n }\n\n _hasFocus(): boolean {\n return this._document && this._document.activeElement === this._getHostElement()\n }\n}\n","<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <div class=\"flex-fill\">\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n </div>\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n</div>\n","import { animate, group, query, style, transition, trigger, useAnimation, AnimationEvent } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { Direction } from '@angular/cdk/bidi'\n\nlet menuPanelUid = 0\n\n/** Reason why the menu was closed. */\nexport type MenuCloseReason = void | 'click' | 'keydown' | 'tab'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n readonly panelId = `menu-panel-${menuPanelUid++}`\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n /** Layout direction of the menu. */\n direction: Direction | undefined\n\n /** Emits whenever an animation on the menu completes. */\n readonly _animationDone = new Subject<AnimationEvent>()\n\n /** Whether the menu is animating. */\n _isAnimating = false\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<MenuCloseReason>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown')\n }\n break\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown')\n }\n break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event)\n this._isAnimating = false\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true\n\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {\n event.element.scrollTop = 0\n }\n }\n\n}\n","<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { Direction, Directionality } from '@angular/cdk/bidi'\nimport { NumberInput } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, inject, Inject, Input, OnDestroy, Optional, Output, Self, ViewContainerRef } from '@angular/core'\nimport { asapScheduler, delay, filter, merge, Observable, of, Subscription, take, takeUntil } from 'rxjs'\n\nimport { InputNumber } from '@theseam/ui-common/core'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuCloseReason, MenuComponent } from './menu.component'\n\ndeclare const ngDevMode: any\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'seam-menu-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null',\n '[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy, AfterContentInit {\n\n static ngAcceptInputType_seamMenuTogglePositionsOffsetY: NumberInput\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n private _hoverSubscription = Subscription.EMPTY\n private readonly _changeDetectorRef = inject(ChangeDetectorRef)\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | 'keyboard' | null = null\n\n @Input('seamMenuToggle')\n get menu() { return this._menu }\n set menu(menu: MenuComponent | undefined | null) {\n if (menu === this._menu) {\n return\n }\n\n this._menu = menu\n this._menuClosedSubscription.unsubscribe()\n\n if (menu) {\n if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +\n `not a parent of the trigger or move the trigger outside of the menu.`,\n )\n }\n\n this._menuClosedSubscription = menu.closed.subscribe((reason: MenuCloseReason) => {\n // this._destroyMenu(reason)\n this.closeMenu()\n\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {\n this._parentMenuComponent.closed.emit(reason)\n }\n })\n }\n\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu())\n }\n _menu: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() {\n const positions = this._positions\n\n if (this.triggersSubmenu()) {\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n return positions\n }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n // TODO: Figure out how to automatically handle this. I think the offset can\n // be calculated using the first item's offsetTop and borderTop. The problem\n // is that I was only able to calculate it after the animation had started, so\n // the initial transition was slightly off.\n @Input() @InputNumber(0) seamMenuTogglePositionsOffsetY = -11\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuOpened = new EventEmitter<void>()\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuClosed = new EventEmitter<void>()\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault()\n }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n // console.log('keydown', event)\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.menu?.focusFirstItem(this._openedBy || 'program')\n }\n } else if (keyCode === ESCAPE) {\n this.closeMenu()\n }\n\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard'\n }\n\n if (\n this.triggersSubmenu() &&\n ((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||\n (keyCode === LEFT_ARROW && this.dir === 'rtl'))\n ) {\n this._openedBy = 'keyboard'\n this.openMenu()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation()\n this.openMenu()\n } else {\n this.toggle()\n }\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n private readonly _parentMenuComponent?: MenuComponent\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _overlay: Overlay,\n private readonly _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>,\n @Optional() @Self() private readonly _menuItemInstance?: MenuItemComponent,\n @Optional() private readonly _dir?: Directionality,\n ) {\n this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined\n\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n this._hoverSubscription.unsubscribe()\n }\n\n ngAfterContentInit() {\n this._handleHover()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.menu) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: !this._parentMenuComponent,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.menu.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu(this.menu)\n\n this._menuClosedSubscription = this.menu.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr'\n }\n\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu(): boolean {\n return !!(this._menuItemInstance && this._parentMenuComponent && this.menu)\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n let emitCloseEvent = false\n if (this.menuOpen()) {\n emitCloseEvent = true\n }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n if (emitCloseEvent) {\n this.menu?.closed.emit()\n }\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(menu: MenuComponent): void {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n menu.direction = this.dir\n // this._setMenuElevation(menu)\n menu.focusFirstItem(this._openedBy || 'program')\n this._setIsMenuOpen(true)\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n } else if (!this.triggersSubmenu()) {\n this.focus(this._openedBy)\n }\n }\n\n this._openedBy = null\n }\n\n // set state rather than toggle to support triggers sharing a menu\n private _setIsMenuOpen(isOpen: boolean): void {\n if (isOpen !== this.menuOpen()) {\n // this._menuOpen = isOpen\n this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit()\n\n if (this.triggersSubmenu()) {\n this._menuItemInstance?._setHighlighted(isOpen)\n }\n\n this._changeDetectorRef.markForCheck()\n }\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(\n filter(active => active !== this._menuItemInstance),\n filter(() => this.menuOpen())\n ) : of()\n\n return merge(backdrop, parentClose as Observable<MenuCloseReason>, hover, detachments)\n }\n\n /** Handles the cases where the user hovers over the trigger. */\n private _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMenuComponent) {\n return\n }\n\n this._hoverSubscription = this._parentMenuComponent\n ._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(\n filter(active => active === this._menuItemInstance && !active.disabled),\n delay(0, asapScheduler),\n )\n .subscribe(() => {\n this._openedBy = 'mouse'\n\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MenuComponent && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone\n .pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMenuComponent!._hovered()))\n .subscribe(() => this.openMenu())\n } else {\n this.openMenu()\n }\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i3.MenuItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-menu.mjs","sources":["../../../projects/ui-common/menu/menu-animations.ts","../../../projects/ui-common/menu/menu-divider.component.ts","../../../projects/ui-common/menu/menu-panel-token.ts","../../../projects/ui-common/menu/menu-item.component.ts","../../../projects/ui-common/menu/menu-item.component.html","../../../projects/ui-common/menu/menu.component.ts","../../../projects/ui-common/menu/menu.component.html","../../../projects/ui-common/menu/menu-toggle.directive.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.ts","../../../projects/ui-common/menu/menu-footer-action/menu-footer-action.component.html","../../../projects/ui-common/menu/menu-footer/menu-footer.component.ts","../../../projects/ui-common/menu/menu-footer/menu-footer.component.html","../../../projects/ui-common/menu/menu-header/menu-header.component.ts","../../../projects/ui-common/menu/menu-header/menu-header.component.html","../../../projects/ui-common/menu/menu.module.ts","../../../projects/ui-common/menu/theseam-ui-common-menu.ts"],"sourcesContent":["import { animate, animation, group, query, style, useAnimation } from '@angular/animations'\n\nexport const menuDropdownPanelSlideIn = animation([\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n])\n\nexport const menuDropdownPanelSlideOut = animation([\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const menuDropdownPanelExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n\nexport const menuDropdownPanelFadeIn = animation([\n style({ transform: 'translateY(-30px)', opacity: '0' }),\n animate('250ms', style({ transform: 'translateY(0)', opacity: '1' }))\n])\n\nexport const menuDropdownPanelFadeOut = animation([\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('250ms', style({ transform: 'translateY(-30px)', opacity: '0' }))\n])\n\nexport const menuDropdownPanelIn = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideIn), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeIn), { optional: true })\n])\n\nexport const menuDropdownPanelOut = animation([\n query('.seam-menu-container.seam-menu-anim--slide .dropdown-menu', useAnimation(menuDropdownPanelSlideOut), { optional: true }),\n query('.seam-menu-container.seam-menu-anim--fade .dropdown-menu', useAnimation(menuDropdownPanelFadeOut), { optional: true })\n])\n","import { ChangeDetectionStrategy, Component } from '@angular/core'\n\n@Component({\n selector: 'seam-menu-divider',\n template: ``,\n styles: [],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'dropdown-divider d-block'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuDividerComponent { }\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamMenuPanel } from './menu-panel'\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n */\nexport const THESEAM_MENU_PANEL = new InjectionToken<ITheSeamMenuPanel>('THESEAM_MENU_PANEL')\n","import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'\nimport { DOCUMENT } from '@angular/common'\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnDestroy, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { faCaretRight } from '@fortawesome/free-solid-svg-icons'\nimport { CanDisableCtor, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport type { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nclass TheSeamMenuItemBase {}\n\nconst _seamMenuItemMixinBase: CanDisableCtor & typeof TheSeamMenuItemBase =\n mixinDisabled(TheSeamMenuItemBase)\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[seamMenuItem]',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n exportAs: 'seamMenuItem',\n inputs: [ 'disabled' ],\n host: {\n '[attr.role]': 'role',\n 'class': 'seam-menu-item dropdown-item',\n '[class.seam-menu-item-highlighted]': '_highlighted',\n '[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuItemComponent extends _seamMenuItemMixinBase implements OnDestroy, AfterViewInit, FocusableOption {\n\n /** ARIA role for the menu item. */\n @Input() role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox' | undefined | null = 'menuitem'\n\n @Input() icon: SeamIcon | string | undefined | null\n @Input() iconClass: string | undefined | null\n\n @Input() sublevelIcon: SeamIcon | string | undefined | null = faCaretRight\n @Input() subLevelIconClass: string | undefined | null\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: string | undefined | null = 'danger'\n\n /** Stream that emits when the menu item is hovered. */\n readonly _hovered = new Subject<MenuItemComponent>()\n\n /** Stream that emits when the menu item is focused. */\n readonly _focused = new Subject<MenuItemComponent>()\n\n /** Whether the menu item is highlighted. */\n _highlighted = false\n\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) public readonly _document: any,\n private readonly _focusMonitor: FocusMonitor,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) {\n super()\n\n // console.log(this._parentMenu)\n if (_parentMenu && _parentMenu.addItem) {\n _parentMenu.addItem(this)\n }\n }\n\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef)\n }\n\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this)\n }\n\n this._hovered.complete()\n this._focused.complete()\n }\n\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false)\n }\n }\n\n /** Focuses the menu item. */\n focus(origin: FocusOrigin = 'program'): void {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._getHostElement(), origin)\n } else {\n this._getHostElement().focus()\n }\n this._focused.next(this)\n }\n\n /** Used to set the `tabindex`. */\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0'\n }\n\n /** Returns the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n /** Prevents the default element actions if it is disabled. */\n @HostListener('click', ['$event'])\n _checkDisabled(event: Event): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n /** Emits to the hover stream. */\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._hovered.next(this)\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n const element: HTMLElement = this._elementRef.nativeElement\n const textNodeType = this._document ? this._document.TEXT_NODE : 3\n let output = ''\n\n if (element.childNodes) {\n const length = element.childNodes.length\n\n // Go through all the top-level text nodes and extract their text.\n // We skip anything that's not a text node to prevent the text from\n // being thrown off by something like an icon.\n for (let i = 0; i < length; i++) {\n if (element.childNodes[i].nodeType === textNodeType) {\n output += element.childNodes[i].textContent\n }\n }\n }\n\n return output.trim()\n }\n\n _setHighlighted(isHighlighted: boolean) {\n this._highlighted = isHighlighted\n this._changeDetectorRef?.markForCheck()\n }\n\n _setTriggersSubmenu(triggersSubmenu: boolean) {\n this._triggersSubmenu = triggersSubmenu\n this._changeDetectorRef?.markForCheck()\n }\n\n _hasFocus(): boolean {\n return this._document && this._document.activeElement === this._getHostElement()\n }\n}\n","<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\" class=\"ml-2\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -2px\"\n >{{ badgeText }}</span>\n </div>\n\n <div class=\"d-flex flex-grow-1 justify-content-end\">\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n </div>\n</div>\n","import { animate, group, query, style, transition, trigger, useAnimation, AnimationEvent } from '@angular/animations'\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, END, ESCAPE, hasModifierKey, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs'\n\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\nimport { menuDropdownPanelIn, menuDropdownPanelOut, menuDropdownPanelSlideIn, menuDropdownPanelSlideOut } from './menu-animations'\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\n\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { Direction } from '@angular/cdk/bidi'\n\nlet menuPanelUid = 0\n\n/** Reason why the menu was closed. */\nexport type MenuCloseReason = void | 'click' | 'keydown' | 'tab'\n\nexport const LIB_MENU: any = {\n provide: THESEAM_MENU_PANEL,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MenuComponent)\n}\n\n@Component({\n selector: 'seam-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n providers: [ LIB_MENU ],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(menuDropdownPanelIn)),\n transition(':leave', useAnimation(menuDropdownPanelOut)),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'seamMenu'\n})\nexport class MenuComponent implements OnDestroy, AfterContentInit, ITheSeamMenuPanel {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n readonly panelId = `menu-panel-${menuPanelUid++}`\n\n private _footer = new BehaviorSubject<MenuFooterComponent | undefined | null>(undefined)\n public hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined))\n\n private _header = new BehaviorSubject<MenuHeaderComponent | undefined | null>(undefined)\n public hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined))\n\n private _keyManager?: FocusKeyManager<MenuItemComponent>\n\n /** Menu items inside the current menu. */\n private _items: MenuItemComponent[] = []\n\n /** Emits whenever the amount of menu items changes. */\n private _itemChanges = new Subject<MenuItemComponent[]>()\n\n /** Subscription to tab events on the menu panel */\n private _tabSubscription = Subscription.EMPTY\n\n /** Parent menu of the current menu panel. */\n parentMenu: ITheSeamMenuPanel | undefined\n\n /** Layout direction of the menu. */\n direction: Direction | undefined\n\n /** Emits whenever an animation on the menu completes. */\n readonly _animationDone = new Subject<AnimationEvent>()\n\n /** Whether the menu is animating. */\n _isAnimating = false\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n @Output() readonly closed = new EventEmitter<MenuCloseReason>()\n\n @Input() menuClass: string | undefined | null\n\n /**\n * Defines a width for a menu that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(null)\n _menuWidth$: Observable<string | undefined>\n\n @Input() animationType: 'slide' | 'fade' = 'slide'\n\n constructor() {\n this._menuWidth$ = this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n distinctUntilChanged(),\n takeUntil(this._ngUnsubscribe)\n )\n }\n\n ngOnDestroy() {\n this._tabSubscription.unsubscribe()\n this.closed.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager<MenuItemComponent>(this._items).withWrap().withTypeAhead()\n this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'))\n }\n\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered(): Observable<MenuItemComponent> {\n return this._itemChanges.pipe(\n startWith(this._items),\n switchMap(items => merge(...items.map(item => item._hovered)))\n )\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n const manager = this._keyManager\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n this.closed.emit('keydown')\n }\n break\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown')\n }\n break\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown')\n }\n break\n case HOME:\n case END:\n if (!hasModifierKey(event)) {\n keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive()\n event.preventDefault()\n }\n break\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager?.setFocusOrigin('keyboard')\n }\n\n manager?.onKeydown(event)\n }\n }\n\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin: FocusOrigin = 'program'): void {\n this._keyManager?.setFocusOrigin(origin).setFirstItemActive()\n }\n\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager?.setActiveItem(-1)\n }\n\n /** Registers a menu item with the menu. */\n addItem(item: MenuItemComponent) {\n // We register the items through this method, rather than picking them up through\n // `ContentChildren`, because we need the items to be picked up by their closest\n // `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,\n // all descendant items will bleed into the top-level menu in the case where the consumer\n // has `seam-menu` instances nested inside each other.\n if (this._items.indexOf(item) === -1) {\n this._items.push(item)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Removes an item from the menu. */\n removeItem(item: MenuItemComponent) {\n const index = this._items.indexOf(item)\n\n if (this._items.indexOf(item) > -1) {\n this._items.splice(index, 1)\n this._itemChanges.next(this._items)\n }\n }\n\n /** Sets the footer component. */\n setFooter(footer?: MenuFooterComponent) {\n this._footer.next(footer)\n }\n\n /** Sets the header component. */\n setHeader(header?: MenuHeaderComponent) {\n this._header.next(header)\n }\n\n _dropdownMenuClick(event: Event) {\n // This is needed, because some menu's will get stuck open if the component\n // managing the menu is destroyed before the menu finishes its cleanup. I\n // may look for a fix to that eventually.\n this.closed.emit('click')\n }\n\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event: AnimationEvent) {\n this._animationDone.next(event)\n this._isAnimating = false\n }\n\n _onAnimationStart(event: AnimationEvent) {\n this._isAnimating = true\n\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {\n event.element.scrollTop = 0\n }\n }\n\n}\n","<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { Direction, Directionality } from '@angular/cdk/bidi'\nimport { NumberInput } from '@angular/cdk/coercion'\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { TemplatePortal } from '@angular/cdk/portal'\nimport { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, inject, Inject, Input, OnDestroy, Optional, Output, Self, ViewContainerRef } from '@angular/core'\nimport { asapScheduler, delay, filter, merge, Observable, of, Subscription, take, takeUntil } from 'rxjs'\n\nimport { InputNumber } from '@theseam/ui-common/core'\n\nimport { MenuItemComponent } from './menu-item.component'\nimport { ITheSeamMenuPanel } from './menu-panel'\nimport { THESEAM_MENU_PANEL } from './menu-panel-token'\nimport { MenuCloseReason, MenuComponent } from './menu.component'\n\ndeclare const ngDevMode: any\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamMenuToggle]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'class': 'seam-menu-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'menuOpen() || null',\n '[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',\n },\n exportAs: 'seamMenuToggle'\n})\nexport class MenuToggleDirective implements OnDestroy, AfterContentInit {\n\n static ngAcceptInputType_seamMenuTogglePositionsOffsetY: NumberInput\n\n private _active = false\n private _overlayRef?: OverlayRef\n private _menuClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n private _hoverSubscription = Subscription.EMPTY\n private readonly _changeDetectorRef = inject(ChangeDetectorRef)\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | 'keyboard' | null = null\n\n @Input('seamMenuToggle')\n get menu() { return this._menu }\n set menu(menu: MenuComponent | undefined | null) {\n if (menu === this._menu) {\n return\n }\n\n this._menu = menu\n this._menuClosedSubscription.unsubscribe()\n\n if (menu) {\n if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +\n `not a parent of the trigger or move the trigger outside of the menu.`,\n )\n }\n\n this._menuClosedSubscription = menu.closed.subscribe((reason: MenuCloseReason) => {\n // this._destroyMenu(reason)\n this.closeMenu()\n\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {\n this._parentMenuComponent.closed.emit(reason)\n }\n })\n }\n\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu())\n }\n _menu: MenuComponent | undefined | null\n\n @Input()\n set positions(val: ConnectionPositionPair[]) {\n this._positions = val\n if (this.menuOpen()) {\n this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement))\n }\n }\n get positions() {\n const positions = this._positions\n\n if (this.triggersSubmenu()) {\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: this.seamMenuTogglePositionsOffsetY,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n return positions\n }\n private _positions: ConnectionPositionPair[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n\n // TODO: Figure out how to automatically handle this. I think the offset can\n // be calculated using the first item's offsetTop and borderTop. The problem\n // is that I was only able to calculate it after the animation had started, so\n // the initial transition was slightly off.\n @Input() @InputNumber(0) seamMenuTogglePositionsOffsetY = -11\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuOpened = new EventEmitter<void>()\n\n /** Event emitted when the associated menu is opened. */\n @Output() readonly menuClosed = new EventEmitter<void>()\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault()\n }\n }\n }\n\n @HostListener('keydown', [ '$event' ])\n _onKeydown(event: any) {\n this._openedBy = null\n // console.log('keydown', event)\n\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n if (this.menuOpen()) {\n this.menu?.focusFirstItem(this._openedBy || 'program')\n }\n } else if (keyCode === ESCAPE) {\n this.closeMenu()\n }\n\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard'\n }\n\n if (\n this.triggersSubmenu() &&\n ((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||\n (keyCode === LEFT_ARROW && this.dir === 'rtl'))\n ) {\n this._openedBy = 'keyboard'\n this.openMenu()\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation()\n this.openMenu()\n } else {\n this.toggle()\n }\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closeMenu()\n }\n }\n\n // @HostListener('document:mousedown', [ '$event' ])\n // _onDocumentMouseDown(event: any) {\n // console.log('outside click')\n // }\n\n private readonly _parentMenuComponent?: MenuComponent\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _overlay: Overlay,\n private readonly _focusMonitor: FocusMonitor,\n @Inject(THESEAM_MENU_PANEL) @Optional() private readonly _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>,\n @Optional() @Self() private readonly _menuItemInstance?: MenuItemComponent,\n @Optional() private readonly _dir?: Directionality,\n ) {\n this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined\n\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n }\n\n ngOnDestroy() {\n this.closeMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n this._hoverSubscription.unsubscribe()\n }\n\n ngAfterContentInit() {\n this._handleHover()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n }\n\n public openMenu(): void {\n if (this._active || !this.menu) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: !this._parentMenuComponent,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n const tpl = this.menu.templateRef\n if (!tpl) {\n throw Error(`Menu template not found.`)\n }\n\n this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef))\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu())\n this._initMenu(this.menu)\n\n this._menuClosedSubscription = this.menu.closed.subscribe(v => {\n // console.log('closed', v)\n this.closeMenu()\n })\n\n // this._overlayRef.backdropClick().subscribe(v => {\n // console.log('backdropClick', v)\n // })\n }\n\n /** The text direction of the containing app. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr'\n }\n\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu(): boolean {\n return !!(this._menuItemInstance && this._parentMenuComponent && this.menu)\n }\n\n public closeMenu(): void {\n if (!this._active) { return }\n let emitCloseEvent = false\n if (this.menuOpen()) {\n emitCloseEvent = true\n }\n\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach()\n }\n\n this._resetMenu()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._menuClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n if (emitCloseEvent) {\n this.menu?.closed.emit()\n }\n\n this._active = false\n }\n\n public menuOpen(): boolean {\n return (this._overlayRef && this._overlayRef.hasAttached()) ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.positions)\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n private _initMenu(menu: MenuComponent): void {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined\n menu.direction = this.dir\n // this._setMenuElevation(menu)\n menu.focusFirstItem(this._openedBy || 'program')\n this._setIsMenuOpen(true)\n }\n\n /**\n * This method resets the menu when it's closed, most importantly restoring\n * focus to the menu trigger if the menu was opened via the keyboard.\n */\n private _resetMenu(): void {\n this._setIsMenuOpen(false)\n\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n } else if (!this.triggersSubmenu()) {\n this.focus(this._openedBy)\n }\n }\n\n this._openedBy = null\n }\n\n // set state rather than toggle to support triggers sharing a menu\n private _setIsMenuOpen(isOpen: boolean): void {\n if (isOpen !== this.menuOpen()) {\n // this._menuOpen = isOpen\n this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit()\n\n if (this.triggersSubmenu()) {\n this._menuItemInstance?._setHighlighted(isOpen)\n }\n\n this._changeDetectorRef.markForCheck()\n }\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const parentClose = this._parentMenu ? this._parentMenu.closed : of()\n const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(\n filter(active => active !== this._menuItemInstance),\n filter(() => this.menuOpen())\n ) : of()\n\n return merge(backdrop, parentClose as Observable<MenuCloseReason>, hover, detachments)\n }\n\n /** Handles the cases where the user hovers over the trigger. */\n private _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMenuComponent) {\n return\n }\n\n this._hoverSubscription = this._parentMenuComponent\n ._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(\n filter(active => active === this._menuItemInstance && !active.disabled),\n delay(0, asapScheduler),\n )\n .subscribe(() => {\n this._openedBy = 'mouse'\n\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MenuComponent && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone\n .pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMenuComponent!._hovered()))\n .subscribe(() => this.openMenu())\n } else {\n this.openMenu()\n }\n })\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core'\n\n// TODO: Split up the button and anchor classes.\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]',\n templateUrl: './menu-footer-action.component.html',\n styleUrls: ['./menu-footer-action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterActionComponent {\n\n @HostBinding('attr.type') get _attrType() { return this.type }\n\n /** ARIA type for the button. */\n @Input()\n get type() { return this._isButton() ? this._type || 'button' : undefined }\n set type(value: 'button' | 'submit' | 'reset' | undefined | null) {\n this._type = value\n }\n private _type: 'button' | 'submit' | 'reset' | undefined | null\n\n @HostBinding('class.btn') get _classBtn() { return this._isButton() }\n @HostBinding('class.btn-link') get _classBtnLink() { return this._isButton() }\n\n @HostBinding('style.padding.px') get _stylePadding() { return this._isButton() && 0 }\n @HostBinding('style.border.px') get _styleBorder() { return this._isButton() && 0 }\n @HostBinding('style.display.px') get _styleDisplay() { return this._isButton() && 'inline' }\n\n constructor(\n private _elementRef: ElementRef\n ) { }\n\n /** Determines if the component host is a button. */\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-footer',\n templateUrl: './menu-footer.component.html',\n styleUrls: ['./menu-footer.component.scss'],\n host: {\n 'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuFooterComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setFooter) {\n this._parentMenu.setFooter(undefined)\n }\n }\n\n}\n","<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core'\n\nimport { MenuItemComponent } from '../menu-item.component'\nimport type { ITheSeamMenuPanel } from '../menu-panel'\nimport { THESEAM_MENU_PANEL } from '../menu-panel-token'\n\n@Component({\n selector: 'seam-menu-header',\n templateUrl: './menu-header.component.html',\n styleUrls: ['./menu-header.component.scss'],\n host: {\n 'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuHeaderComponent implements OnInit, OnDestroy {\n\n constructor(\n @Inject(THESEAM_MENU_PANEL) @Optional() private _parentMenu?: ITheSeamMenuPanel<MenuItemComponent>\n ) { }\n\n ngOnInit() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(this)\n }\n }\n\n ngOnDestroy() {\n if (this._parentMenu && this._parentMenu.setHeader) {\n this._parentMenu.setHeader(undefined)\n }\n }\n\n}\n","<ng-content></ng-content>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { MenuDividerComponent } from './menu-divider.component'\nimport { MenuFooterActionComponent } from './menu-footer-action/menu-footer-action.component'\nimport { MenuFooterComponent } from './menu-footer/menu-footer.component'\nimport { MenuHeaderComponent } from './menu-header/menu-header.component'\nimport { MenuItemComponent } from './menu-item.component'\nimport { MenuToggleDirective } from './menu-toggle.directive'\nimport { MenuComponent } from './menu.component'\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n TheSeamIconModule\n ],\n exports: [\n MenuComponent,\n MenuToggleDirective,\n MenuItemComponent,\n MenuDividerComponent,\n\n TheSeamIconModule,\n OverlayModule,\n MenuFooterComponent,\n MenuFooterActionComponent,\n MenuHeaderComponent\n ]\n})\nexport class TheSeamMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","takeUntil","i3.MenuItemComponent"],"mappings":"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"}
|