@energinet/watt 4.0.7 → 4.0.9
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.
- package/esm2022/icon/icon.component.js +3 -3
- package/esm2022/menu/energinet-watt-menu.js +5 -0
- package/esm2022/menu/index.js +23 -0
- package/esm2022/menu/watt-menu-group.component.js +45 -0
- package/esm2022/menu/watt-menu-item.component.js +69 -0
- package/esm2022/menu/watt-menu-trigger.directive.js +85 -0
- package/esm2022/menu/watt-menu.component.js +102 -0
- package/menu/energinet-watt-menu.d.ts +5 -0
- package/menu/index.d.ts +20 -0
- package/menu/watt-menu-group.component.d.ts +9 -0
- package/menu/watt-menu-item.component.d.ts +22 -0
- package/menu/watt-menu-trigger.directive.d.ts +36 -0
- package/menu/watt-menu.component.d.ts +56 -0
- package/package.json +5 -1
|
@@ -62,7 +62,7 @@ export class WattIconComponent {
|
|
|
62
62
|
<ng-content />
|
|
63
63
|
</div>
|
|
64
64
|
}
|
|
65
|
-
`, isInline: true, styles: [":root{--watt-icon-fill: 0}watt-icon{display:flex;justify-content:center;align-items:center}watt-icon[fill]{--watt-icon-fill: 1}watt-icon.icon-size-xs .mat-icon,watt-icon.icon-size-xs .watt-custom-icon{font-size:
|
|
65
|
+
`, isInline: true, styles: [":root{--watt-icon-fill: 0;--watt-icon-size-xs: 16px;--watt-icon-size-s: 20px;--watt-icon-size-m: 24px;--watt-icon-size-l: 32px;--watt-icon-size-xl: 64px;--watt-icon-size-xxl: 128px}watt-icon{display:flex;justify-content:center;align-items:center}watt-icon[fill]{--watt-icon-fill: 1}watt-icon.icon-size-xs .mat-icon,watt-icon.icon-size-xs .watt-custom-icon{font-size:var(--watt-icon-size-xs);line-height:var(--watt-icon-size-xs);width:var(--watt-icon-size-xs);height:var(--watt-icon-size-xs)}watt-icon.icon-size-xs .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" 0,\"opsz\" 20}watt-icon.icon-size-s .mat-icon,watt-icon.icon-size-s .watt-custom-icon{font-size:var(--watt-icon-size-s);line-height:var(--watt-icon-size-s);width:var(--watt-icon-size-s);height:var(--watt-icon-size-s)}watt-icon.icon-size-s .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" regular,\"opsz\" 20}watt-icon.icon-size-m .mat-icon,watt-icon.icon-size-m .watt-custom-icon{font-size:var(--watt-icon-size-m);line-height:var(--watt-icon-size-m);width:var(--watt-icon-size-m);height:var(--watt-icon-size-m)}watt-icon.icon-size-m .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-size-l .mat-icon,watt-icon.icon-size-l .watt-custom-icon{font-size:var(--watt-icon-size-l);line-height:var(--watt-icon-size-l);width:var(--watt-icon-size-l);height:var(--watt-icon-size-l)}watt-icon.icon-size-l .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}watt-icon.icon-size-xl .mat-icon,watt-icon.icon-size-xl .watt-custom-icon{font-size:var(--watt-icon-size-xl);line-height:var(--watt-icon-size-xl);width:var(--watt-icon-size-xl);height:var(--watt-icon-size-xl)}watt-icon.icon-size-xl .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 200,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-size-xxl .mat-icon,watt-icon.icon-size-xxl .watt-custom-icon{font-size:var(--watt-icon-size-xxl);line-height:var(--watt-icon-size-xxl);width:var(--watt-icon-size-xxl);height:var(--watt-icon-size-xxl)}watt-icon.icon-size-xxl .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 100,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-state-success .mat-icon{color:var(--watt-color-state-success)}watt-icon.icon-state-danger .mat-icon{color:var(--watt-color-state-danger)}watt-icon.icon-state-warning .mat-icon{color:var(--watt-color-state-warning)}watt-icon.icon-state-info .mat-icon{color:var(--watt-color-state-info)}.watt-custom-icon svg{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
66
66
|
}
|
|
67
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattIconComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
@@ -76,6 +76,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
76
76
|
<ng-content />
|
|
77
77
|
</div>
|
|
78
78
|
}
|
|
79
|
-
`, styles: [":root{--watt-icon-fill: 0}watt-icon{display:flex;justify-content:center;align-items:center}watt-icon[fill]{--watt-icon-fill: 1}watt-icon.icon-size-xs .mat-icon,watt-icon.icon-size-xs .watt-custom-icon{font-size:
|
|
79
|
+
`, styles: [":root{--watt-icon-fill: 0;--watt-icon-size-xs: 16px;--watt-icon-size-s: 20px;--watt-icon-size-m: 24px;--watt-icon-size-l: 32px;--watt-icon-size-xl: 64px;--watt-icon-size-xxl: 128px}watt-icon{display:flex;justify-content:center;align-items:center}watt-icon[fill]{--watt-icon-fill: 1}watt-icon.icon-size-xs .mat-icon,watt-icon.icon-size-xs .watt-custom-icon{font-size:var(--watt-icon-size-xs);line-height:var(--watt-icon-size-xs);width:var(--watt-icon-size-xs);height:var(--watt-icon-size-xs)}watt-icon.icon-size-xs .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" 0,\"opsz\" 20}watt-icon.icon-size-s .mat-icon,watt-icon.icon-size-s .watt-custom-icon{font-size:var(--watt-icon-size-s);line-height:var(--watt-icon-size-s);width:var(--watt-icon-size-s);height:var(--watt-icon-size-s)}watt-icon.icon-size-s .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" regular,\"opsz\" 20}watt-icon.icon-size-m .mat-icon,watt-icon.icon-size-m .watt-custom-icon{font-size:var(--watt-icon-size-m);line-height:var(--watt-icon-size-m);width:var(--watt-icon-size-m);height:var(--watt-icon-size-m)}watt-icon.icon-size-m .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 300,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-size-l .mat-icon,watt-icon.icon-size-l .watt-custom-icon{font-size:var(--watt-icon-size-l);line-height:var(--watt-icon-size-l);width:var(--watt-icon-size-l);height:var(--watt-icon-size-l)}watt-icon.icon-size-l .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}watt-icon.icon-size-xl .mat-icon,watt-icon.icon-size-xl .watt-custom-icon{font-size:var(--watt-icon-size-xl);line-height:var(--watt-icon-size-xl);width:var(--watt-icon-size-xl);height:var(--watt-icon-size-xl)}watt-icon.icon-size-xl .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 200,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-size-xxl .mat-icon,watt-icon.icon-size-xxl .watt-custom-icon{font-size:var(--watt-icon-size-xxl);line-height:var(--watt-icon-size-xxl);width:var(--watt-icon-size-xxl);height:var(--watt-icon-size-xxl)}watt-icon.icon-size-xxl .material-symbols-sharp{font-variation-settings:\"FILL\" var(--watt-icon-fill),\"wght\" 100,\"GRAD\" 0,\"opsz\" 48}watt-icon.icon-state-success .mat-icon{color:var(--watt-color-state-success)}watt-icon.icon-state-danger .mat-icon{color:var(--watt-color-state-danger)}watt-icon.icon-state-warning .mat-icon{color:var(--watt-color-state-warning)}watt-icon.icon-state-info .mat-icon{color:var(--watt-color-state-info)}.watt-custom-icon svg{width:100%;height:100%}\n"] }]
|
|
80
80
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBeUJ0QyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLDJDQUEyQztJQUMzQyxJQUFJLEdBQUcsS0FBSywwREFBWSxDQUFDO0lBRXpCLHFDQUFxQztJQUNyQyxLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBRXhCLHdCQUF3QjtJQUN4QixJQUFJLEdBQUcsS0FBSyxDQUFlLEdBQUcsZ0RBQUMsQ0FBQztJQUVoQyw4Q0FBOEM7SUFDOUMsS0FBSyxHQUFHLEtBQUssMkRBQWlCLENBQUM7SUFFL0IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxnREFBQyxDQUFDO0lBRUgsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUMseURBQUMsQ0FBQztJQUVILFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLHNEQUFDLENBQUM7dUdBbENoRixpQkFBaUI7MkZBQWpCLGlCQUFpQiw4bEJBWmxCOzs7Ozs7Ozs7O0dBVVQseXRGQWJTLE9BQU87OzJGQWVOLGlCQUFpQjtrQkFuQjdCLFNBQVM7c0NBQ1MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FDMUIsQ0FBQyxPQUFPLENBQUMsWUFDUixXQUFXLFlBRVg7Ozs7Ozs7Ozs7R0FVVCIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgV2F0dEljb25NYXAgfSBmcm9tICcuL2ljb25zJztcblxuZXhwb3J0IHR5cGUgV2F0dEljb24gPSBrZXlvZiB0eXBlb2YgV2F0dEljb25NYXA7XG5leHBvcnQgdHlwZSBXYXR0SWNvblNpemUgPSAneHMnIHwgJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyB8ICd4eGwnO1xuZXhwb3J0IHR5cGUgV2F0dEljb25TdGF0ZSA9ICdkZWZhdWx0JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiAnY2xhc3NOYW1lcygpJyB9LFxuICBpbXBvcnRzOiBbTWF0SWNvbl0sXG4gIHNlbGVjdG9yOiAnd2F0dC1pY29uJyxcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoaWNvbigpKSB7XG4gICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJmYWxzZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWwoKVwiIGZvbnRTZXQ9XCJtYXRlcmlhbC1zeW1ib2xzLXNoYXJwXCI+XG4gICAgICAgIHt7IGljb24oKSB9fVxuICAgICAgPC9tYXQtaWNvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3YXR0LWN1c3RvbS1pY29uXCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRJY29uQ29tcG9uZW50IHtcbiAgLyoqIE5hbWUgb2YgYW4gaWNvbiB3aXRoaW4gdGhlIGZvbnQgc2V0LiAqL1xuICBuYW1lID0gaW5wdXQ8V2F0dEljb24+KCk7XG5cbiAgLyoqIEFjY2Vzc2libGUgbGFiZWwgZm9yIHRoZSBpY29uLiAqL1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKiogU2l6ZSBvZiB0aGUgaWNvbi4gKi9cbiAgc2l6ZSA9IGlucHV0PFdhdHRJY29uU2l6ZT4oJ20nKTtcblxuICAvKiogQ29sb3IgdGhlIGljb24gdG8gbWF0Y2ggYSBjaG9zZW4gc3RhdGUuICovXG4gIHN0YXRlID0gaW5wdXQ8V2F0dEljb25TdGF0ZT4oKTtcblxuICBpY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUoKTtcbiAgICBpZiAoIW5hbWUpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBXYXR0SWNvbk1hcFtuYW1lXTtcbiAgfSk7XG5cbiAgY29tcHV0ZWRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lKCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgaWYgKHN0YXRlKSByZXR1cm4gc3RhdGU7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgIGNhc2UgJ2Rhbmdlcic6XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgfVxuICB9KTtcblxuICBjbGFzc05hbWVzID0gY29tcHV0ZWQoKCkgPT4gYGljb24tc2l6ZS0ke3RoaXMuc2l6ZSgpfSBpY29uLXN0YXRlLSR7dGhpcy5jb21wdXRlZFN0YXRlKCl9YCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5lcmdpbmV0LXdhdHQtbWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL21lbnUvZW5lcmdpbmV0LXdhdHQtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region License
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
//#endregion
|
|
19
|
+
export { WattMenuComponent } from './watt-menu.component';
|
|
20
|
+
export { WattMenuItemComponent } from './watt-menu-item.component';
|
|
21
|
+
export { WattMenuGroupComponent } from './watt-menu-group.component';
|
|
22
|
+
export { WattMenuTriggerDirective } from './watt-menu-trigger.directive';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9tZW51L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBXYXR0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vd2F0dC1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgeyBXYXR0TWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3dhdHQtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgeyBXYXR0TWVudUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LW1lbnUtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFdhdHRNZW51VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vd2F0dC1tZW51LXRyaWdnZXIuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region License
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
//#endregion
|
|
19
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, input } from '@angular/core';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
export class WattMenuGroupComponent {
|
|
22
|
+
/**
|
|
23
|
+
* The label for the menu group.
|
|
24
|
+
*/
|
|
25
|
+
label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattMenuGroupComponent, isStandalone: true, selector: "watt-menu-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "watt-menu-group" }, ngImport: i0, template: `
|
|
28
|
+
@if (label()) {
|
|
29
|
+
<div class="watt-menu-group-heading watt-text-s-highlighted">{{ label() }}</div>
|
|
30
|
+
}
|
|
31
|
+
<ng-content />
|
|
32
|
+
`, isInline: true, styles: [".watt-menu-group-heading{padding-block:var(--watt-menu-padding-block);padding-inline:var(--watt-menu-padding-inline)}.watt-menu-panel--has-icons .watt-menu-group-heading{padding-inline-start:calc(var(--watt-menu-padding-inline) + var(--watt-menu-icon-space))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuGroupComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'watt-menu-group', template: `
|
|
37
|
+
@if (label()) {
|
|
38
|
+
<div class="watt-menu-group-heading watt-text-s-highlighted">{{ label() }}</div>
|
|
39
|
+
}
|
|
40
|
+
<ng-content />
|
|
41
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
42
|
+
class: 'watt-menu-group',
|
|
43
|
+
}, styles: [".watt-menu-group-heading{padding-block:var(--watt-menu-padding-block);padding-inline:var(--watt-menu-padding-inline)}.watt-menu-panel--has-icons .watt-menu-group-heading{padding-inline-start:calc(var(--watt-menu-padding-inline) + var(--watt-menu-icon-space))}\n"] }]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tZW51LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL21lbnUvd2F0dC1tZW51LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTZCN0YsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQzs7T0FFRztJQUNILEtBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxpREFBQyxDQUFDO3VHQUpmLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDRQQXpCdkI7Ozs7O0dBS1Q7OzJGQW9CVSxzQkFBc0I7a0JBM0JsQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQjs7Ozs7R0FLVCxpQkFjYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtbWVudS1ncm91cCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChsYWJlbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwid2F0dC1tZW51LWdyb3VwLWhlYWRpbmcgd2F0dC10ZXh0LXMtaGlnaGxpZ2h0ZWRcIj57eyBsYWJlbCgpIH19PC9kaXY+XG4gICAgfVxuICAgIDxuZy1jb250ZW50IC8+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC53YXR0LW1lbnUtZ3JvdXAtaGVhZGluZyB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXdhdHQtbWVudS1wYWRkaW5nLWJsb2NrKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXdhdHQtbWVudS1wYWRkaW5nLWlubGluZSk7XG5cbiAgICAgICAgLyogQWxpZ24gd2l0aCBtZW51IGl0ZW1zIHdoZW4gaWNvbnMgYXJlIHByZXNlbnQgKi9cbiAgICAgICAgLndhdHQtbWVudS1wYW5lbC0taGFzLWljb25zICYge1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXdhdHQtbWVudS1wYWRkaW5nLWlubGluZSkgKyB2YXIoLS13YXR0LW1lbnUtaWNvbi1zcGFjZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3dhdHQtbWVudS1ncm91cCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRNZW51R3JvdXBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGUgbWVudSBncm91cC5cbiAgICovXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//#region License
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
//#endregion
|
|
19
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, input, ElementRef, inject, signal, afterNextRender, } from '@angular/core';
|
|
20
|
+
import { MatMenuItem } from '@angular/material/menu';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
export class WattMenuItemComponent {
|
|
23
|
+
elementRef = inject(ElementRef);
|
|
24
|
+
/**
|
|
25
|
+
* Whether the menu item is disabled.
|
|
26
|
+
*/
|
|
27
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
28
|
+
/**
|
|
29
|
+
* Whether this menu item has an icon.
|
|
30
|
+
* @ignore
|
|
31
|
+
*/
|
|
32
|
+
_hasIcon = signal(false, ...(ngDevMode ? [{ debugName: "_hasIcon" }] : []));
|
|
33
|
+
hasIcon = this._hasIcon.asReadonly();
|
|
34
|
+
/**
|
|
35
|
+
* Whether the parent menu has any items with icons.
|
|
36
|
+
* @ignore
|
|
37
|
+
*/
|
|
38
|
+
menuHasIcons = signal(false, ...(ngDevMode ? [{ debugName: "menuHasIcons" }] : []));
|
|
39
|
+
constructor() {
|
|
40
|
+
// Check if this menu item has an icon
|
|
41
|
+
afterNextRender(() => {
|
|
42
|
+
const iconElement = this.elementRef.nativeElement.querySelector('watt-icon');
|
|
43
|
+
this._hasIcon.set(!!iconElement);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: WattMenuItemComponent, isStandalone: true, selector: "watt-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "disabled() || null" } }, ngImport: i0, template: `<button mat-menu-item [disabled]="disabled()">
|
|
48
|
+
<span class="watt-menu-item-content">
|
|
49
|
+
<span class="watt-menu-item-icon" [class.watt-menu-item-icon--show]="menuHasIcons()">
|
|
50
|
+
<ng-content select="watt-icon" />
|
|
51
|
+
</span>
|
|
52
|
+
<ng-content />
|
|
53
|
+
</span>
|
|
54
|
+
</button>`, isInline: true, styles: ["watt-menu-item .mat-mdc-menu-item{padding-inline:var(--watt-menu-padding-inline)}watt-menu-item .watt-menu-item-content{display:flex;align-items:center;gap:var(--watt-menu-item-gap);width:100%}watt-menu-item .watt-menu-item-icon{display:flex;align-items:center;justify-content:center;width:var(--watt-menu-icon-size);height:var(--watt-menu-icon-size);flex-shrink:0}watt-menu-item .watt-menu-item-icon:not(.watt-menu-item-icon--show){display:none}watt-menu-item .watt-menu-item-icon watt-icon{display:flex}watt-menu-item .watt-menu-item-icon--show:empty{visibility:hidden}\n"], dependencies: [{ kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuItemComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'watt-menu-item', imports: [MatMenuItem], template: `<button mat-menu-item [disabled]="disabled()">
|
|
59
|
+
<span class="watt-menu-item-content">
|
|
60
|
+
<span class="watt-menu-item-icon" [class.watt-menu-item-icon--show]="menuHasIcons()">
|
|
61
|
+
<ng-content select="watt-icon" />
|
|
62
|
+
</span>
|
|
63
|
+
<ng-content />
|
|
64
|
+
</span>
|
|
65
|
+
</button>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
66
|
+
'[attr.disabled]': 'disabled() || null',
|
|
67
|
+
}, styles: ["watt-menu-item .mat-mdc-menu-item{padding-inline:var(--watt-menu-padding-inline)}watt-menu-item .watt-menu-item-content{display:flex;align-items:center;gap:var(--watt-menu-item-gap);width:100%}watt-menu-item .watt-menu-item-icon{display:flex;align-items:center;justify-content:center;width:var(--watt-menu-icon-size);height:var(--watt-menu-icon-size);flex-shrink:0}watt-menu-item .watt-menu-item-icon:not(.watt-menu-item-icon--show){display:none}watt-menu-item .watt-menu-item-icon watt-icon{display:flex}watt-menu-item .watt-menu-item-icon--show:empty{visibility:hidden}\n"] }]
|
|
68
|
+
}], ctorParameters: () => [] });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvbWVudS93YXR0LW1lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQXlEckQsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQ7O09BRUc7SUFDSCxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUV4Qjs7O09BR0c7SUFDYyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssd0RBQUMsQ0FBQztJQUU3QjtRQUNFLHNDQUFzQztRQUN0QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTNCVSxxQkFBcUI7MkZBQXJCLHFCQUFxQix3UkFwRHRCOzs7Ozs7O1lBT0EsdW9CQVJBLFdBQVc7OzJGQXFEVixxQkFBcUI7a0JBdkRqQyxTQUFTOytCQUNFLGdCQUFnQixXQUNqQixDQUFDLFdBQVcsQ0FBQyxZQUNaOzs7Ozs7O1lBT0EsaUJBdUNLLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osaUJBQWlCLEVBQUUsb0JBQW9CO3FCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBpbnB1dCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGFmdGVyTmV4dFJlbmRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LW1lbnUtaXRlbScsXG4gIGltcG9ydHM6IFtNYXRNZW51SXRlbV0sXG4gIHRlbXBsYXRlOiBgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ3YXR0LW1lbnUtaXRlbS1jb250ZW50XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIndhdHQtbWVudS1pdGVtLWljb25cIiBbY2xhc3Mud2F0dC1tZW51LWl0ZW0taWNvbi0tc2hvd109XCJtZW51SGFzSWNvbnMoKVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWljb25cIiAvPlxuICAgICAgPC9zcGFuPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPmAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHdhdHQtbWVudS1pdGVtIHtcbiAgICAgICAgLm1hdC1tZGMtbWVudS1pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0td2F0dC1tZW51LXBhZGRpbmctaW5saW5lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC53YXR0LW1lbnUtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZ2FwOiB2YXIoLS13YXR0LW1lbnUtaXRlbS1nYXApO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLndhdHQtbWVudS1pdGVtLWljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogdmFyKC0td2F0dC1tZW51LWljb24tc2l6ZSk7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS13YXR0LW1lbnUtaWNvbi1zaXplKTtcbiAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgIC8qIEhpZGUgd2hlbiBtZW51IGhhcyBubyBpY29ucyAqL1xuICAgICAgICAgICY6bm90KC53YXR0LW1lbnUtaXRlbS1pY29uLS1zaG93KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHdhdHQtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC53YXR0LW1lbnUtaXRlbS1pY29uLS1zaG93OmVtcHR5IHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKSB8fCBudWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1lbnVJdGVtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtZW51IGl0ZW0gaXMgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIG1lbnUgaXRlbSBoYXMgYW4gaWNvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaGFzSWNvbiA9IHNpZ25hbChmYWxzZSk7XG4gIGhhc0ljb24gPSB0aGlzLl9oYXNJY29uLmFzUmVhZG9ubHkoKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGFyZW50IG1lbnUgaGFzIGFueSBpdGVtcyB3aXRoIGljb25zLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBtZW51SGFzSWNvbnMgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIENoZWNrIGlmIHRoaXMgbWVudSBpdGVtIGhhcyBhbiBpY29uXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGljb25FbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignd2F0dC1pY29uJyk7XG4gICAgICB0aGlzLl9oYXNJY29uLnNldCghIWljb25FbGVtZW50KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
//#region License
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
//#endregion
|
|
19
|
+
import { Directive, inject, input, effect } from '@angular/core';
|
|
20
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@angular/material/menu";
|
|
23
|
+
/**
|
|
24
|
+
* Watt Menu Trigger Directive
|
|
25
|
+
*
|
|
26
|
+
* A wrapper around Angular Material's MatMenuTrigger directive that maintains
|
|
27
|
+
* the same API while keeping the Watt design system abstraction.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```html
|
|
31
|
+
* <watt-button [wattMenuTriggerFor]="menu">
|
|
32
|
+
* Open Menu
|
|
33
|
+
* </watt-button>
|
|
34
|
+
*
|
|
35
|
+
* <watt-menu #menu>
|
|
36
|
+
* <watt-menu-item>Option 1</watt-menu-item>
|
|
37
|
+
* <watt-menu-item>Option 2</watt-menu-item>
|
|
38
|
+
* </watt-menu>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export class WattMenuTriggerDirective {
|
|
42
|
+
matMenuTrigger = inject(MatMenuTrigger);
|
|
43
|
+
wattMenuTriggerFor = input.required(...(ngDevMode ? [{ debugName: "wattMenuTriggerFor" }] : []));
|
|
44
|
+
constructor() {
|
|
45
|
+
// Set the MatMenu instance from the WattMenuComponent when it changes
|
|
46
|
+
effect(() => {
|
|
47
|
+
const menu = this.wattMenuTriggerFor();
|
|
48
|
+
if (menu) {
|
|
49
|
+
this.matMenuTrigger.menu = menu.menu();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** Opens the menu */
|
|
54
|
+
openMenu() {
|
|
55
|
+
this.matMenuTrigger.openMenu();
|
|
56
|
+
}
|
|
57
|
+
/** Closes the menu */
|
|
58
|
+
closeMenu() {
|
|
59
|
+
this.matMenuTrigger.closeMenu();
|
|
60
|
+
}
|
|
61
|
+
/** Toggles the menu between the open and closed states */
|
|
62
|
+
toggleMenu() {
|
|
63
|
+
this.matMenuTrigger.toggleMenu();
|
|
64
|
+
}
|
|
65
|
+
/** Whether the menu is open */
|
|
66
|
+
get menuOpen() {
|
|
67
|
+
return this.matMenuTrigger.menuOpen;
|
|
68
|
+
}
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
70
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: WattMenuTriggerDirective, isStandalone: true, selector: "[wattMenuTriggerFor]", inputs: { wattMenuTriggerFor: { classPropertyName: "wattMenuTriggerFor", publicName: "wattMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["wattMenuTrigger"], hostDirectives: [{ directive: i1.MatMenuTrigger, outputs: ["menuOpened", "menuOpened", "menuClosed", "menuClosed"] }], ngImport: i0 });
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuTriggerDirective, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: '[wattMenuTriggerFor]',
|
|
76
|
+
exportAs: 'wattMenuTrigger',
|
|
77
|
+
hostDirectives: [
|
|
78
|
+
{
|
|
79
|
+
directive: MatMenuTrigger,
|
|
80
|
+
outputs: ['menuOpened', 'menuClosed'],
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
}]
|
|
84
|
+
}], ctorParameters: () => [] });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tZW51LXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvbWVudS93YXR0LW1lbnUtdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBR3hEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQVdILE1BQU0sT0FBTyx3QkFBd0I7SUFDbEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6RCxrQkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSw2REFBcUIsQ0FBQztJQUV6RDtRQUNFLHNFQUFzRTtRQUN0RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELCtCQUErQjtJQUMvQixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ3RDLENBQUM7dUdBakNVLHdCQUF3QjsyRkFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQVZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLGNBQWMsRUFBRTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsY0FBYzs0QkFDekIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQzt5QkFDdEM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFdhdHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi93YXR0LW1lbnUuY29tcG9uZW50JztcblxuLyoqXG4gKiBXYXR0IE1lbnUgVHJpZ2dlciBEaXJlY3RpdmVcbiAqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIEFuZ3VsYXIgTWF0ZXJpYWwncyBNYXRNZW51VHJpZ2dlciBkaXJlY3RpdmUgdGhhdCBtYWludGFpbnNcbiAqIHRoZSBzYW1lIEFQSSB3aGlsZSBrZWVwaW5nIHRoZSBXYXR0IGRlc2lnbiBzeXN0ZW0gYWJzdHJhY3Rpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx3YXR0LWJ1dHRvbiBbd2F0dE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAqICAgT3BlbiBNZW51XG4gKiA8L3dhdHQtYnV0dG9uPlxuICpcbiAqIDx3YXR0LW1lbnUgI21lbnU+XG4gKiAgIDx3YXR0LW1lbnUtaXRlbT5PcHRpb24gMTwvd2F0dC1tZW51LWl0ZW0+XG4gKiAgIDx3YXR0LW1lbnUtaXRlbT5PcHRpb24gMjwvd2F0dC1tZW51LWl0ZW0+XG4gKiA8L3dhdHQtbWVudT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbd2F0dE1lbnVUcmlnZ2VyRm9yXScsXG4gIGV4cG9ydEFzOiAnd2F0dE1lbnVUcmlnZ2VyJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IE1hdE1lbnVUcmlnZ2VyLFxuICAgICAgb3V0cHV0czogWydtZW51T3BlbmVkJywgJ21lbnVDbG9zZWQnXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0TWVudVRyaWdnZXJEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IG1hdE1lbnVUcmlnZ2VyID0gaW5qZWN0KE1hdE1lbnVUcmlnZ2VyKTtcblxuICB3YXR0TWVudVRyaWdnZXJGb3IgPSBpbnB1dC5yZXF1aXJlZDxXYXR0TWVudUNvbXBvbmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBTZXQgdGhlIE1hdE1lbnUgaW5zdGFuY2UgZnJvbSB0aGUgV2F0dE1lbnVDb21wb25lbnQgd2hlbiBpdCBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1lbnUgPSB0aGlzLndhdHRNZW51VHJpZ2dlckZvcigpO1xuICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgdGhpcy5tYXRNZW51VHJpZ2dlci5tZW51ID0gbWVudS5tZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogT3BlbnMgdGhlIG1lbnUgKi9cbiAgb3Blbk1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRNZW51VHJpZ2dlci5vcGVuTWVudSgpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbWVudSAqL1xuICBjbG9zZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRNZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGVzIHRoZSBtZW51IGJldHdlZW4gdGhlIG9wZW4gYW5kIGNsb3NlZCBzdGF0ZXMgKi9cbiAgdG9nZ2xlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLm1hdE1lbnVUcmlnZ2VyLnRvZ2dsZU1lbnUoKTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBtZW51IGlzIG9wZW4gKi9cbiAgZ2V0IG1lbnVPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1hdE1lbnVUcmlnZ2VyLm1lbnVPcGVuO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
//#region License
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
//#endregion
|
|
19
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, viewChild, contentChildren, computed, effect, } from '@angular/core';
|
|
20
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
21
|
+
import { WattMenuItemComponent } from './watt-menu-item.component';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "@angular/material/menu";
|
|
24
|
+
/**
|
|
25
|
+
* Watt Menu Component
|
|
26
|
+
*
|
|
27
|
+
* A wrapper around Angular Material's menu component that provides consistent styling
|
|
28
|
+
* and integration with the Watt design system.
|
|
29
|
+
*
|
|
30
|
+
* @example Basic usage
|
|
31
|
+
* ```html
|
|
32
|
+
* <watt-button [wattMenuTriggerFor]="menu">
|
|
33
|
+
* Open Menu
|
|
34
|
+
* </watt-button>
|
|
35
|
+
*
|
|
36
|
+
* <watt-menu #menu>
|
|
37
|
+
* <watt-menu-item>Option 1</watt-menu-item>
|
|
38
|
+
* <watt-menu-item>Option 2</watt-menu-item>
|
|
39
|
+
* </watt-menu>
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example With groups
|
|
43
|
+
* ```html
|
|
44
|
+
* <watt-menu #menu>
|
|
45
|
+
* <watt-menu-group label="File">
|
|
46
|
+
* <watt-menu-item>New</watt-menu-item>
|
|
47
|
+
* <watt-menu-item>Open</watt-menu-item>
|
|
48
|
+
* </watt-menu-group>
|
|
49
|
+
*
|
|
50
|
+
* <watt-menu-group label="Edit">
|
|
51
|
+
* <watt-menu-item>Cut</watt-menu-item>
|
|
52
|
+
* <watt-menu-item>Copy</watt-menu-item>
|
|
53
|
+
* </watt-menu-group>
|
|
54
|
+
* </watt-menu>
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export class WattMenuComponent {
|
|
58
|
+
/**
|
|
59
|
+
* Reference to the underlying MatMenu instance.
|
|
60
|
+
* @ignore
|
|
61
|
+
*/
|
|
62
|
+
menu = viewChild.required('menu');
|
|
63
|
+
/**
|
|
64
|
+
* All menu items in this menu.
|
|
65
|
+
* @ignore
|
|
66
|
+
*/
|
|
67
|
+
menuItems = contentChildren(WattMenuItemComponent, ...(ngDevMode ? [{ debugName: "menuItems", descendants: true }] : [{ descendants: true }]));
|
|
68
|
+
/**
|
|
69
|
+
* Whether any menu item has an icon.
|
|
70
|
+
* @ignore
|
|
71
|
+
*/
|
|
72
|
+
hasIcons = computed(() => this.menuItems().some((item) => item.hasIcon()), ...(ngDevMode ? [{ debugName: "hasIcons" }] : []));
|
|
73
|
+
constructor() {
|
|
74
|
+
effect(() => {
|
|
75
|
+
const hasIcons = this.hasIcons();
|
|
76
|
+
this.menuItems().forEach((item) => {
|
|
77
|
+
item.menuHasIcons.set(hasIcons);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.3", type: WattMenuComponent, isStandalone: true, selector: "watt-menu", queries: [{ propertyName: "menuItems", predicate: WattMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }], exportAs: ["wattMenu"], ngImport: i0, template: `
|
|
83
|
+
<mat-menu
|
|
84
|
+
#menu="matMenu"
|
|
85
|
+
[class]="'watt-menu-panel' + (hasIcons() ? ' watt-menu-panel--has-icons' : '')"
|
|
86
|
+
>
|
|
87
|
+
<ng-content select="watt-menu-group, watt-menu-item" />
|
|
88
|
+
</mat-menu>
|
|
89
|
+
`, isInline: true, styles: [":root{--watt-menu-padding-block: var(--watt-space-s);--watt-menu-padding-inline: var(--watt-space-m);--watt-menu-item-gap: var(--watt-space-s);--watt-menu-icon-space: calc(var(--watt-menu-icon-size) + var(--watt-menu-item-gap));--watt-menu-icon-size: var(--watt-icon-size-s)}.watt-menu-panel .mat-mdc-menu-content{padding-block:var(--watt-menu-padding-block)}.watt-menu-panel:not(.watt-menu-panel--has-icons) .watt-menu-item-icon{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattMenuComponent, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'watt-menu', template: `
|
|
94
|
+
<mat-menu
|
|
95
|
+
#menu="matMenu"
|
|
96
|
+
[class]="'watt-menu-panel' + (hasIcons() ? ' watt-menu-panel--has-icons' : '')"
|
|
97
|
+
>
|
|
98
|
+
<ng-content select="watt-menu-group, watt-menu-item" />
|
|
99
|
+
</mat-menu>
|
|
100
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatMenuModule], exportAs: 'wattMenu', styles: [":root{--watt-menu-padding-block: var(--watt-space-s);--watt-menu-padding-inline: var(--watt-space-m);--watt-menu-item-gap: var(--watt-space-s);--watt-menu-icon-space: calc(var(--watt-menu-icon-size) + var(--watt-menu-item-gap));--watt-menu-icon-size: var(--watt-icon-size-s)}.watt-menu-panel .mat-mdc-menu-content{padding-block:var(--watt-menu-padding-block)}.watt-menu-panel:not(.watt-menu-panel--has-icons) .watt-menu-item-icon{display:none}\n"] }]
|
|
101
|
+
}], ctorParameters: () => [] });
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL21lbnUvd2F0dC1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBd0NILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7OztPQUdHO0lBQ0gsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQVUsTUFBTSxDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsNkNBQUksV0FBVyxFQUFFLElBQUksT0FBbkIsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUMsQ0FBQztJQUUxRTs7O09BR0c7SUFDSCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxvREFBQyxDQUFDO0lBRTNFO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTFCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQiwrRkFXQSxxQkFBcUIsc01BaER2Qzs7Ozs7OztHQU9ULHNnQkEyQlMsYUFBYTs7MkZBR1osaUJBQWlCO2tCQXZDN0IsU0FBUzsrQkFDRSxXQUFXLFlBQ1g7Ozs7Ozs7R0FPVCxpQkF5QmMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsQ0FBQyxZQUNkLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgdmlld0NoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgV2F0dE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFdhdHQgTWVudSBDb21wb25lbnRcbiAqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIEFuZ3VsYXIgTWF0ZXJpYWwncyBtZW51IGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGNvbnNpc3RlbnQgc3R5bGluZ1xuICogYW5kIGludGVncmF0aW9uIHdpdGggdGhlIFdhdHQgZGVzaWduIHN5c3RlbS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgaHRtbFxuICogPHdhdHQtYnV0dG9uIFt3YXR0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuICogICBPcGVuIE1lbnVcbiAqIDwvd2F0dC1idXR0b24+XG4gKlxuICogPHdhdHQtbWVudSAjbWVudT5cbiAqICAgPHdhdHQtbWVudS1pdGVtPk9wdGlvbiAxPC93YXR0LW1lbnUtaXRlbT5cbiAqICAgPHdhdHQtbWVudS1pdGVtPk9wdGlvbiAyPC93YXR0LW1lbnUtaXRlbT5cbiAqIDwvd2F0dC1tZW51PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBncm91cHNcbiAqIGBgYGh0bWxcbiAqIDx3YXR0LW1lbnUgI21lbnU+XG4gKiAgIDx3YXR0LW1lbnUtZ3JvdXAgbGFiZWw9XCJGaWxlXCI+XG4gKiAgICAgPHdhdHQtbWVudS1pdGVtPk5ldzwvd2F0dC1tZW51LWl0ZW0+XG4gKiAgICAgPHdhdHQtbWVudS1pdGVtPk9wZW48L3dhdHQtbWVudS1pdGVtPlxuICogICA8L3dhdHQtbWVudS1ncm91cD5cbiAqXG4gKiAgIDx3YXR0LW1lbnUtZ3JvdXAgbGFiZWw9XCJFZGl0XCI+XG4gKiAgICAgPHdhdHQtbWVudS1pdGVtPkN1dDwvd2F0dC1tZW51LWl0ZW0+XG4gKiAgICAgPHdhdHQtbWVudS1pdGVtPkNvcHk8L3dhdHQtbWVudS1pdGVtPlxuICogICA8L3dhdHQtbWVudS1ncm91cD5cbiAqIDwvd2F0dC1tZW51PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtbWVudScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1tZW51XG4gICAgICAjbWVudT1cIm1hdE1lbnVcIlxuICAgICAgW2NsYXNzXT1cIid3YXR0LW1lbnUtcGFuZWwnICsgKGhhc0ljb25zKCkgPyAnIHdhdHQtbWVudS1wYW5lbC0taGFzLWljb25zJyA6ICcnKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1tZW51LWdyb3VwLCB3YXR0LW1lbnUtaXRlbVwiIC8+XG4gICAgPC9tYXQtbWVudT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOnJvb3Qge1xuICAgICAgICAtLXdhdHQtbWVudS1wYWRkaW5nLWJsb2NrOiB2YXIoLS13YXR0LXNwYWNlLXMpO1xuICAgICAgICAtLXdhdHQtbWVudS1wYWRkaW5nLWlubGluZTogdmFyKC0td2F0dC1zcGFjZS1tKTtcbiAgICAgICAgLS13YXR0LW1lbnUtaXRlbS1nYXA6IHZhcigtLXdhdHQtc3BhY2Utcyk7XG4gICAgICAgIC0td2F0dC1tZW51LWljb24tc3BhY2U6IGNhbGModmFyKC0td2F0dC1tZW51LWljb24tc2l6ZSkgKyB2YXIoLS13YXR0LW1lbnUtaXRlbS1nYXApKTtcbiAgICAgICAgLS13YXR0LW1lbnUtaWNvbi1zaXplOiB2YXIoLS13YXR0LWljb24tc2l6ZS1zKTtcbiAgICAgIH1cblxuICAgICAgLyogTWVudSBwYW5lbCBzdHlsZXMgKi9cbiAgICAgIC53YXR0LW1lbnUtcGFuZWwge1xuICAgICAgICAvKiBPdmVycmlkZSBNYXRlcmlhbCBtZW51IHBhZGRpbmcgdG8gaGF2ZSBjb25zaXN0ZW50IHNwYWNpbmcgKi9cbiAgICAgICAgLm1hdC1tZGMtbWVudS1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS13YXR0LW1lbnUtcGFkZGluZy1ibG9jayk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBXaGVuIG1lbnUgaGFzIG5vIGljb25zLCBoaWRlIHRoZSBpY29uIHNwYWNlIGVudGlyZWx5ICovXG4gICAgICAgICY6bm90KC53YXR0LW1lbnUtcGFuZWwtLWhhcy1pY29ucykgLndhdHQtbWVudS1pdGVtLWljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdE1lbnVNb2R1bGVdLFxuICBleHBvcnRBczogJ3dhdHRNZW51Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dE1lbnVDb21wb25lbnQge1xuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB1bmRlcmx5aW5nIE1hdE1lbnUgaW5zdGFuY2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG1lbnUgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8TWF0TWVudT4oJ21lbnUnKTtcblxuICAvKipcbiAgICogQWxsIG1lbnUgaXRlbXMgaW4gdGhpcyBtZW51LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBtZW51SXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oV2F0dE1lbnVJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFueSBtZW51IGl0ZW0gaGFzIGFuIGljb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhc0ljb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51SXRlbXMoKS5zb21lKChpdGVtKSA9PiBpdGVtLmhhc0ljb24oKSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYXNJY29ucyA9IHRoaXMuaGFzSWNvbnMoKTtcbiAgICAgIHRoaXMubWVudUl0ZW1zKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLm1lbnVIYXNJY29ucy5zZXQoaGFzSWNvbnMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/menu/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2020 Energinet DataHub A/S
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License2");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export { WattMenuComponent } from './watt-menu.component';
|
|
18
|
+
export { WattMenuItemComponent } from './watt-menu-item.component';
|
|
19
|
+
export { WattMenuGroupComponent } from './watt-menu-group.component';
|
|
20
|
+
export { WattMenuTriggerDirective } from './watt-menu-trigger.directive';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class WattMenuGroupComponent {
|
|
3
|
+
/**
|
|
4
|
+
* The label for the menu group.
|
|
5
|
+
*/
|
|
6
|
+
label: import("@angular/core").InputSignal<string>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WattMenuGroupComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattMenuGroupComponent, "watt-menu-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class WattMenuItemComponent {
|
|
3
|
+
private readonly elementRef;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the menu item is disabled.
|
|
6
|
+
*/
|
|
7
|
+
disabled: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* Whether this menu item has an icon.
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
private readonly _hasIcon;
|
|
13
|
+
hasIcon: import("@angular/core").Signal<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the parent menu has any items with icons.
|
|
16
|
+
* @ignore
|
|
17
|
+
*/
|
|
18
|
+
menuHasIcons: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
constructor();
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WattMenuItemComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattMenuItemComponent, "watt-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["watt-icon", "*"], true, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { WattMenuComponent } from './watt-menu.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/menu";
|
|
4
|
+
/**
|
|
5
|
+
* Watt Menu Trigger Directive
|
|
6
|
+
*
|
|
7
|
+
* A wrapper around Angular Material's MatMenuTrigger directive that maintains
|
|
8
|
+
* the same API while keeping the Watt design system abstraction.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```html
|
|
12
|
+
* <watt-button [wattMenuTriggerFor]="menu">
|
|
13
|
+
* Open Menu
|
|
14
|
+
* </watt-button>
|
|
15
|
+
*
|
|
16
|
+
* <watt-menu #menu>
|
|
17
|
+
* <watt-menu-item>Option 1</watt-menu-item>
|
|
18
|
+
* <watt-menu-item>Option 2</watt-menu-item>
|
|
19
|
+
* </watt-menu>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class WattMenuTriggerDirective {
|
|
23
|
+
private readonly matMenuTrigger;
|
|
24
|
+
wattMenuTriggerFor: import("@angular/core").InputSignal<WattMenuComponent>;
|
|
25
|
+
constructor();
|
|
26
|
+
/** Opens the menu */
|
|
27
|
+
openMenu(): void;
|
|
28
|
+
/** Closes the menu */
|
|
29
|
+
closeMenu(): void;
|
|
30
|
+
/** Toggles the menu between the open and closed states */
|
|
31
|
+
toggleMenu(): void;
|
|
32
|
+
/** Whether the menu is open */
|
|
33
|
+
get menuOpen(): boolean;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WattMenuTriggerDirective, never>;
|
|
35
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<WattMenuTriggerDirective, "[wattMenuTriggerFor]", ["wattMenuTrigger"], { "wattMenuTriggerFor": { "alias": "wattMenuTriggerFor"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.MatMenuTrigger; inputs: {}; outputs: { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }; }]>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { MatMenu } from '@angular/material/menu';
|
|
2
|
+
import { WattMenuItemComponent } from './watt-menu-item.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Watt Menu Component
|
|
6
|
+
*
|
|
7
|
+
* A wrapper around Angular Material's menu component that provides consistent styling
|
|
8
|
+
* and integration with the Watt design system.
|
|
9
|
+
*
|
|
10
|
+
* @example Basic usage
|
|
11
|
+
* ```html
|
|
12
|
+
* <watt-button [wattMenuTriggerFor]="menu">
|
|
13
|
+
* Open Menu
|
|
14
|
+
* </watt-button>
|
|
15
|
+
*
|
|
16
|
+
* <watt-menu #menu>
|
|
17
|
+
* <watt-menu-item>Option 1</watt-menu-item>
|
|
18
|
+
* <watt-menu-item>Option 2</watt-menu-item>
|
|
19
|
+
* </watt-menu>
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example With groups
|
|
23
|
+
* ```html
|
|
24
|
+
* <watt-menu #menu>
|
|
25
|
+
* <watt-menu-group label="File">
|
|
26
|
+
* <watt-menu-item>New</watt-menu-item>
|
|
27
|
+
* <watt-menu-item>Open</watt-menu-item>
|
|
28
|
+
* </watt-menu-group>
|
|
29
|
+
*
|
|
30
|
+
* <watt-menu-group label="Edit">
|
|
31
|
+
* <watt-menu-item>Cut</watt-menu-item>
|
|
32
|
+
* <watt-menu-item>Copy</watt-menu-item>
|
|
33
|
+
* </watt-menu-group>
|
|
34
|
+
* </watt-menu>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class WattMenuComponent {
|
|
38
|
+
/**
|
|
39
|
+
* Reference to the underlying MatMenu instance.
|
|
40
|
+
* @ignore
|
|
41
|
+
*/
|
|
42
|
+
menu: import("@angular/core").Signal<MatMenu>;
|
|
43
|
+
/**
|
|
44
|
+
* All menu items in this menu.
|
|
45
|
+
* @ignore
|
|
46
|
+
*/
|
|
47
|
+
menuItems: import("@angular/core").Signal<readonly WattMenuItemComponent[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Whether any menu item has an icon.
|
|
50
|
+
* @ignore
|
|
51
|
+
*/
|
|
52
|
+
hasIcons: import("@angular/core").Signal<boolean>;
|
|
53
|
+
constructor();
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WattMenuComponent, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattMenuComponent, "watt-menu", ["wattMenu"], {}, {}, ["menuItems"], ["watt-menu-group, watt-menu-item"], true, never>;
|
|
56
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@energinet/watt",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.9",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -95,6 +95,10 @@
|
|
|
95
95
|
"types": "./icon/energinet-watt-icon.d.ts",
|
|
96
96
|
"default": "./esm2022/icon/energinet-watt-icon.js"
|
|
97
97
|
},
|
|
98
|
+
"./menu": {
|
|
99
|
+
"types": "./menu/energinet-watt-menu.d.ts",
|
|
100
|
+
"default": "./esm2022/menu/energinet-watt-menu.js"
|
|
101
|
+
},
|
|
98
102
|
"./modal": {
|
|
99
103
|
"types": "./modal/energinet-watt-modal.d.ts",
|
|
100
104
|
"default": "./esm2022/modal/energinet-watt-modal.js"
|