@agorapulse/ui-components 18.1.0 → 18.1.1

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.
@@ -1,3 +1,4 @@
1
+ import { BadgeComponent } from '@agorapulse/ui-components/badge';
1
2
  import { TooltipDirective } from '@agorapulse/ui-components/tooltip';
2
3
  import { apFeatureLock, apInfo, SymbolComponent, withSymbols } from '@agorapulse/ui-symbol';
3
4
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
@@ -17,6 +18,7 @@ export class PopoverMenuComponent {
17
18
  disabled = input(false);
18
19
  largeMenuEnabled = input(false);
19
20
  showBackdrop = input(true);
21
+ customWidth = input(null);
20
22
  menuItemClick = output();
21
23
  opened = output();
22
24
  closed = output();
@@ -196,10 +198,10 @@ export class PopoverMenuComponent {
196
198
  });
197
199
  }
198
200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PopoverMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: PopoverMenuComponent, isStandalone: true, selector: "ap-popover-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, largeMenuEnabled: { classPropertyName: "largeMenuEnabled", publicName: "largeMenuEnabled", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemClick: "menuItemClick", opened: "opened", closed: "closed" }, providers: [withSymbols(apInfo, apFeatureLock)], queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <span class=\"ap-popover-menu__item-label\">{{ item.label }}</span>\n <!-- Label -->\n <span class=\"ap-popover-menu__item-description\">{{ item.description }}</span>\n </div>\n <!-- Tooltip icon -->\n @if (item.tooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.tooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);width:250px;padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: PopoverMenuComponent, isStandalone: true, selector: "ap-popover-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, largeMenuEnabled: { classPropertyName: "largeMenuEnabled", publicName: "largeMenuEnabled", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, customWidth: { classPropertyName: "customWidth", publicName: "customWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemClick: "menuItemClick", opened: "opened", closed: "closed" }, providers: [withSymbols(apInfo, apFeatureLock)], queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--default]=\"!largeMenuEnabled() && !customWidth()\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n [apTooltip]=\"item.itemTooltipText\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.symbolColor ? item.symbolColor : item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <div class=\"ap-popover-menu__item-label-container\">\n <div class=\"ap-popover-menu__item-label\">{{ item.label }}</div>\n <!-- Badge -->\n @if (item.badgeLabel) {\n <ap-badge\n class=\"ap-popover-menu__item-badge\"\n color=\"blue\">\n {{ item.badgeLabel }}\n </ap-badge>\n }\n </div>\n <!-- Description -->\n <div class=\"ap-popover-menu__item-description\">{{ item.description }}</div>\n </div>\n <!-- Tooltip icon -->\n @if (item.iconTooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.iconTooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--default{width:250px}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container{display:flex;align-items:center;gap:var(--comp-popover-menu-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ap-badge", inputs: ["color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
200
202
  }
201
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PopoverMenuComponent, decorators: [{
202
204
  type: Component,
203
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-popover-menu', standalone: true, imports: [CommonModule, SymbolComponent, TooltipDirective], providers: [withSymbols(apInfo, apFeatureLock)], template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <span class=\"ap-popover-menu__item-label\">{{ item.label }}</span>\n <!-- Label -->\n <span class=\"ap-popover-menu__item-description\">{{ item.description }}</span>\n </div>\n <!-- Tooltip icon -->\n @if (item.tooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.tooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);width:250px;padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"] }]
205
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-popover-menu', standalone: true, imports: [BadgeComponent, CommonModule, SymbolComponent, TooltipDirective], providers: [withSymbols(apInfo, apFeatureLock)], template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--default]=\"!largeMenuEnabled() && !customWidth()\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n [apTooltip]=\"item.itemTooltipText\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.symbolColor ? item.symbolColor : item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <div class=\"ap-popover-menu__item-label-container\">\n <div class=\"ap-popover-menu__item-label\">{{ item.label }}</div>\n <!-- Badge -->\n @if (item.badgeLabel) {\n <ap-badge\n class=\"ap-popover-menu__item-badge\"\n color=\"blue\">\n {{ item.badgeLabel }}\n </ap-badge>\n }\n </div>\n <!-- Description -->\n <div class=\"ap-popover-menu__item-description\">{{ item.description }}</div>\n </div>\n <!-- Tooltip icon -->\n @if (item.iconTooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.iconTooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--default{width:250px}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container{display:flex;align-items:center;gap:var(--comp-popover-menu-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"] }]
204
206
  }], ctorParameters: () => [] });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9wb3BvdmVyLW1lbnUvc3JjL3BvcG92ZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wb3Zlci1tZW51L3NyYy9wb3BvdmVyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RyxPQUFPLEVBQXdELE9BQU8sRUFBRSxzQkFBc0IsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFzQnRDLE1BQU0sT0FBTyxvQkFBb0I7SUFDWixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pELGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FB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RCw4OUZBa0VBLHE0R0QzQmMsWUFBWSwrQkFBRSxlQUFlLHNIQUFFLGdCQUFnQjs7MkZBR2hELG9CQUFvQjtrQkFUaEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFDL0MsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBhZ29yYXB1bHNlU3ltYm9sLCBhcEZlYXR1cmVMb2NrLCBhcEluZm8sIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3Zlck1lbnVJdGVtIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBzeW1ib2xJZD86IGFnb3JhcHVsc2VTeW1ib2w7XG4gICAgZmVhdHVyZUxvY2tFbmFibGVkPzogYm9vbGVhbjtcbiAgICByZWRNb2RlRW5hYmxlZD86IGJvb2xlYW47XG4gICAgdG9vbHRpcFRleHQ/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXBvcG92ZXItbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTeW1ib2xDb21wb25lbnQsIFRvb2x0aXBEaXJlY3RpdmVdLFxuICAgIHByb3ZpZGVyczogW3dpdGhTeW1ib2xzKGFwSW5mbywgYXBGZWF0dXJlTG9jayldLFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyTWVudUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvc2l0aW9uQnVpbGRlciA9IGluamVjdChPdmVybGF5UG9zaXRpb25CdWlsZGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBtZW51VGVtcGxhdGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCdtZW51VGVtcGxhdGUnKTtcbiAgICB0cmlnZ2VyID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPHVua25vd24+PigndHJpZ2dlcicpO1xuXG4gICAgaXRlbXMgPSBpbnB1dDxQb3BvdmVyTWVudUl0ZW1bXT4oW10pO1xuICAgIGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuICAgIGxhcmdlTWVudUVuYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgc2hvd0JhY2tkcm9wID0gaW5wdXQodHJ1ZSk7XG5cbiAgICBtZW51SXRlbUNsaWNrID0gb3V0cHV0PFBvcG92ZXJNZW51SXRlbT4oKTtcbiAgICBvcGVuZWQgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgICBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvY3VzZWRJbmRleCA9IHNpZ25hbCgtMSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbXMoKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXZpZGVyKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cEtleWJvYXJkTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuKHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWVudVRlbXBsYXRlID0gdGhpcy5tZW51VGVtcGxhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMuaXNPcGVuKCkgfHwgIW1lbnVUZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHJpZ2dlckVsZW1lbnQgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmNyZWF0ZVBvc2l0aW9uU3RyYXRlZ3kodGFyZ2V0KTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5zaG93QmFja2Ryb3AoKSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJycsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChtZW51VGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWwpO1xuXG4gICAgICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KC0xKTtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgLmtleWRvd25FdmVudHMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3J0YWwgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleC5zZXQoLTEpO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3Blbih0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1lbnVJdGVtQ2xpY2soaXRlbTogUG9wb3Zlck1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1lbnVJdGVtQ2xpY2suZW1pdChpdGVtKTtcblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5tZW51SXRlbXMoKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXgoKTtcbiAgICAgICAgbGV0IG5leHRJbmRleDogbnVtYmVyO1xuICAgICAgICBsZXQgcHJldkluZGV4OiBudW1iZXI7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGggLSAxID8gY3VycmVudEluZGV4ICsgMSA6IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcHJldkluZGV4ID0gY3VycmVudEluZGV4ID4gMCA/IGN1cnJlbnRJbmRleCAtIDEgOiBpdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gMCAmJiBjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2soaXRlbXNbY3VycmVudEluZGV4XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNoaWZ0K1RhYiAtIG1vdmUgdG8gcHJldmlvdXMgaXRlbVxuICAgICAgICAgICAgICAgICAgICBwcmV2SW5kZXggPSBjdXJyZW50SW5kZXggPiAwID8gY3VycmVudEluZGV4IC0gMSA6IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRhYiAtIG1vdmUgdG8gbmV4dCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCA8IGl0ZW1zLmxlbmd0aCAtIDEgPyBjdXJyZW50SW5kZXggKyAxIDogMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQb3NpdGlvblN0cmF0ZWd5KHRhcmdldDogSFRNTEVsZW1lbnQpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBjb25zdCBwb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAgICAgICAgICAvLyBCb3R0b20tcmlnaHQgKGRlZmF1bHQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBCb3R0b20tbGVmdCAoaWYgbm90IGVub3VnaCBzcGFjZSBvbiByaWdodClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiA0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIFRvcC1yaWdodCAoaWYgbm90IGVub3VnaCBzcGFjZSBiZWxvdylcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiAtNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBUb3AtbGVmdCAoaWYgbm90IGVub3VnaCBzcGFjZSBiZWxvdyBhbmQgb24gcmlnaHQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogLTQsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uQnVpbGRlclxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBLZXlib2FyZE5hdmlnYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBrZXlkb3duRXZlbnRzID0gdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKTtcblxuICAgICAgICBrZXlkb3duRXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNtZW51VGVtcGxhdGU+XG4gICAgPCEtLSBNZW51IC0tPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2NvbnRlbnRcIlxuICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNZW51J1wiXG4gICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2NvbnRlbnQtLWxhcmdlXT1cImxhcmdlTWVudUVuYWJsZWQoKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCI+XG4gICAgICAgIDwhLS0gTWVudSBpdGVtcyAtLT5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICA8IS0tIERpdmlkZXIgLS0+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uZGl2aWRlcikge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2RpdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwic2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8IS0tIE1lbnUgaXRlbSAtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2l0ZW0tLWhhcy1kZXNjcmlwdGlvbl09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFwLXBvcG92ZXItbWVudV9faXRlbS0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2l0ZW0tLWZvY3VzZWRdPVwiZm9jdXNlZEluZGV4KCkgPT09ICRpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2l0ZW0tLXJlZC1tb2RlXT1cIml0ZW0ucmVkTW9kZUVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXAtcG9wb3Zlci1tZW51X19pdGVtLS1mZWF0dXJlLWxvY2tdPVwiaXRlbS5mZWF0dXJlTG9ja0VuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMZWZ0IGljb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5zeW1ib2xJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXAtcG9wb3Zlci1tZW51X19pdGVtLWxlZnQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5yZWRNb2RlRW5hYmxlZCA/ICdyZWQnIDogJ2dyZXknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiaXRlbS5zeW1ib2xJZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMYWJlbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbS10ZXh0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW0tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBMYWJlbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXAtcG9wb3Zlci1tZW51X19pdGVtLWRlc2NyaXB0aW9uXCI+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVG9vbHRpcCBpY29uIC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udG9vbHRpcFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbS1yaWdodC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZ3JleS1ibHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcFRvb2x0aXBdPVwiaXRlbS50b29sdGlwVGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBGZWF0dXJlIGxvY2sgaWNvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmZlYXR1cmVMb2NrRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXAtcG9wb3Zlci1tZW51X19pdGVtLXJpZ2h0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwdXJwbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiZmVhdHVyZS1sb2NrXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9wb3BvdmVyLW1lbnUvc3JjL3BvcG92ZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wb3Zlci1tZW51L3NyYy9wb3BvdmVyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sRUFBZSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0gsT0FBTyxFQUF3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6SSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBeUJ0QyxNQUFNLE9BQU8sb0JBQW9CO0lBQ1osVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLGVBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMs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QUM7dUdBN05RLG9CQUFvQjsyRkFBcEIsb0JBQW9CLG8wQkFGbEIsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLHdRQzVDbkQsdXZIQStFQSwwdUhEcENjLGNBQWMsdUVBQUUsWUFBWSwrQkFBRSxlQUFlLHNIQUFFLGdCQUFnQjs7MkZBR2hFLG9CQUFvQjtrQkFUaEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBQy9ELENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IGFnb3JhcHVsc2VTeW1ib2wsIGFwRmVhdHVyZUxvY2ssIGFwSW5mbywgU3ltYm9sQ29sb3IsIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3Zlck1lbnVJdGVtIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBiYWRnZUxhYmVsPzogc3RyaW5nO1xuICAgIHN5bWJvbElkPzogYWdvcmFwdWxzZVN5bWJvbDtcbiAgICBzeW1ib2xDb2xvcj86IFN5bWJvbENvbG9yO1xuICAgIGZlYXR1cmVMb2NrRW5hYmxlZD86IGJvb2xlYW47XG4gICAgcmVkTW9kZUVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGl0ZW1Ub29sdGlwVGV4dD86IHN0cmluZztcbiAgICBpY29uVG9vbHRpcFRleHQ/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXBvcG92ZXItbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQmFkZ2VDb21wb25lbnQsIENvbW1vbk1vZHVsZSwgU3ltYm9sQ29tcG9uZW50LCBUb29sdGlwRGlyZWN0aXZlXSxcbiAgICBwcm92aWRlcnM6IFt3aXRoU3ltYm9scyhhcEluZm8sIGFwRmVhdHVyZUxvY2spXSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3Zlck1lbnVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbkJ1aWxkZXIgPSBpbmplY3QoT3ZlcmxheVBvc2l0aW9uQnVpbGRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgbWVudVRlbXBsYXRlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPHVua25vd24+PignbWVudVRlbXBsYXRlJyk7XG4gICAgdHJpZ2dlciA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ3RyaWdnZXInKTtcblxuICAgIGl0ZW1zID0gaW5wdXQ8UG9wb3Zlck1lbnVJdGVtW10+KFtdKTtcbiAgICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgICBsYXJnZU1lbnVFbmFibGVkID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3dCYWNrZHJvcCA9IGlucHV0KHRydWUpO1xuICAgIGN1c3RvbVdpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgICBtZW51SXRlbUNsaWNrID0gb3V0cHV0PFBvcG92ZXJNZW51SXRlbT4oKTtcbiAgICBvcGVuZWQgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgICBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvY3VzZWRJbmRleCA9IHNpZ25hbCgtMSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbXMoKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXZpZGVyKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cEtleWJvYXJkTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuKHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWVudVRlbXBsYXRlID0gdGhpcy5tZW51VGVtcGxhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMuaXNPcGVuKCkgfHwgIW1lbnVUZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHJpZ2dlckVsZW1lbnQgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmNyZWF0ZVBvc2l0aW9uU3RyYXRlZ3kodGFyZ2V0KTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5zaG93QmFja2Ryb3AoKSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJycsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChtZW51VGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWwpO1xuXG4gICAgICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KC0xKTtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgLmtleWRvd25FdmVudHMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3J0YWwgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleC5zZXQoLTEpO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3Blbih0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1lbnVJdGVtQ2xpY2soaXRlbTogUG9wb3Zlck1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1lbnVJdGVtQ2xpY2suZW1pdChpdGVtKTtcblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5tZW51SXRlbXMoKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXgoKTtcbiAgICAgICAgbGV0IG5leHRJbmRleDogbnVtYmVyO1xuICAgICAgICBsZXQgcHJldkluZGV4OiBudW1iZXI7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGggLSAxID8gY3VycmVudEluZGV4ICsgMSA6IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcHJldkluZGV4ID0gY3VycmVudEluZGV4ID4gMCA/IGN1cnJlbnRJbmRleCAtIDEgOiBpdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gMCAmJiBjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2soaXRlbXNbY3VycmVudEluZGV4XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNoaWZ0K1RhYiAtIG1vdmUgdG8gcHJldmlvdXMgaXRlbVxuICAgICAgICAgICAgICAgICAgICBwcmV2SW5kZXggPSBjdXJyZW50SW5kZXggPiAwID8gY3VycmVudEluZGV4IC0gMSA6IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRhYiAtIG1vdmUgdG8gbmV4dCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCA8IGl0ZW1zLmxlbmd0aCAtIDEgPyBjdXJyZW50SW5kZXggKyAxIDogMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQb3NpdGlvblN0cmF0ZWd5KHRhcmdldDogSFRNTEVsZW1lbnQpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBjb25zdCBwb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAgICAgICAgICAvLyBCb3R0b20tcmlnaHQgKGRlZmF1bHQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBCb3R0b20tbGVmdCAoaWYgbm90IGVub3VnaCBzcGFjZSBvbiByaWdodClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiA0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIFRvcC1yaWdodCAoaWYgbm90IGVub3VnaCBzcGFjZSBiZWxvdylcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiAtNCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBUb3AtbGVmdCAoaWYgbm90IGVub3VnaCBzcGFjZSBiZWxvdyBhbmQgb24gcmlnaHQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogLTQsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uQnVpbGRlclxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBLZXlib2FyZE5hdmlnYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBrZXlkb3duRXZlbnRzID0gdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKTtcblxuICAgICAgICBrZXlkb3duRXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNtZW51VGVtcGxhdGU+XG4gICAgPCEtLSBNZW51IC0tPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2NvbnRlbnRcIlxuICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNZW51J1wiXG4gICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2NvbnRlbnQtLWRlZmF1bHRdPVwiIWxhcmdlTWVudUVuYWJsZWQoKSAmJiAhY3VzdG9tV2lkdGgoKVwiXG4gICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2NvbnRlbnQtLWxhcmdlXT1cImxhcmdlTWVudUVuYWJsZWQoKVwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJjdXN0b21XaWR0aCgpID8gY3VzdG9tV2lkdGgoKSArICdweCcgOiB1bmRlZmluZWRcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICA8IS0tIE1lbnUgaXRlbXMgLS0+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgPCEtLSBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgQGlmIChpdGVtLmRpdmlkZXIpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXAtcG9wb3Zlci1tZW51X19kaXZpZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPCEtLSBNZW51IGl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXAtcG9wb3Zlci1tZW51X19pdGVtLS1oYXMtZGVzY3JpcHRpb25dPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcC1wb3BvdmVyLW1lbnVfX2l0ZW0tLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXAtcG9wb3Zlci1tZW51X19pdGVtLS1mb2N1c2VkXT1cImZvY3VzZWRJbmRleCgpID09PSAkaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXAtcG9wb3Zlci1tZW51X19pdGVtLS1yZWQtbW9kZV09XCJpdGVtLnJlZE1vZGVFbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFwLXBvcG92ZXItbWVudV9faXRlbS0tZmVhdHVyZS1sb2NrXT1cIml0ZW0uZmVhdHVyZUxvY2tFbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXBUb29sdGlwXT1cIml0ZW0uaXRlbVRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljayhpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIExlZnQgaWNvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnN5bWJvbElkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW0tbGVmdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJpdGVtLnN5bWJvbENvbG9yID8gaXRlbS5zeW1ib2xDb2xvciA6IGl0ZW0ucmVkTW9kZUVuYWJsZWQgPyAncmVkJyA6ICdncmV5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N5bWJvbElkXT1cIml0ZW0uc3ltYm9sSWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTGFiZWwgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW0tdGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW0tbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbS1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEJhZGdlIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1iYWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcC1wb3BvdmVyLW1lbnVfX2l0ZW0tYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJibHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcC1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXAtcG9wb3Zlci1tZW51X19pdGVtLWRlc2NyaXB0aW9uXCI+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBUb29sdGlwIGljb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pY29uVG9vbHRpcFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbS1yaWdodC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZ3JleS1ibHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcFRvb2x0aXBdPVwiaXRlbS5pY29uVG9vbHRpcFRleHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRmVhdHVyZSBsb2NrIGljb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5mZWF0dXJlTG9ja0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFwLXBvcG92ZXItbWVudV9faXRlbS1yaWdodC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHVycGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImZlYXR1cmUtbG9ja1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, ElementRef, input, output, HostListener, Directive, ViewContainerRef, viewChild, contentChild, signal, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { BadgeComponent } from '@agorapulse/ui-components/badge';
3
4
  import { TooltipDirective } from '@agorapulse/ui-components/tooltip';
4
5
  import { SymbolComponent, withSymbols, apInfo, apFeatureLock } from '@agorapulse/ui-symbol';
5
6
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
@@ -74,6 +75,7 @@ class PopoverMenuComponent {
74
75
  disabled = input(false);
75
76
  largeMenuEnabled = input(false);
76
77
  showBackdrop = input(true);
78
+ customWidth = input(null);
77
79
  menuItemClick = output();
78
80
  opened = output();
79
81
  closed = output();
@@ -253,11 +255,11 @@ class PopoverMenuComponent {
253
255
  });
254
256
  }
255
257
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PopoverMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
256
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: PopoverMenuComponent, isStandalone: true, selector: "ap-popover-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, largeMenuEnabled: { classPropertyName: "largeMenuEnabled", publicName: "largeMenuEnabled", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemClick: "menuItemClick", opened: "opened", closed: "closed" }, providers: [withSymbols(apInfo, apFeatureLock)], queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <span class=\"ap-popover-menu__item-label\">{{ item.label }}</span>\n <!-- Label -->\n <span class=\"ap-popover-menu__item-description\">{{ item.description }}</span>\n </div>\n <!-- Tooltip icon -->\n @if (item.tooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.tooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);width:250px;padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
258
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: PopoverMenuComponent, isStandalone: true, selector: "ap-popover-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, largeMenuEnabled: { classPropertyName: "largeMenuEnabled", publicName: "largeMenuEnabled", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, customWidth: { classPropertyName: "customWidth", publicName: "customWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemClick: "menuItemClick", opened: "opened", closed: "closed" }, providers: [withSymbols(apInfo, apFeatureLock)], queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--default]=\"!largeMenuEnabled() && !customWidth()\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n [apTooltip]=\"item.itemTooltipText\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.symbolColor ? item.symbolColor : item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <div class=\"ap-popover-menu__item-label-container\">\n <div class=\"ap-popover-menu__item-label\">{{ item.label }}</div>\n <!-- Badge -->\n @if (item.badgeLabel) {\n <ap-badge\n class=\"ap-popover-menu__item-badge\"\n color=\"blue\">\n {{ item.badgeLabel }}\n </ap-badge>\n }\n </div>\n <!-- Description -->\n <div class=\"ap-popover-menu__item-description\">{{ item.description }}</div>\n </div>\n <!-- Tooltip icon -->\n @if (item.iconTooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.iconTooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--default{width:250px}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container{display:flex;align-items:center;gap:var(--comp-popover-menu-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ap-badge", inputs: ["color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
257
259
  }
258
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PopoverMenuComponent, decorators: [{
259
261
  type: Component,
260
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-popover-menu', standalone: true, imports: [CommonModule, SymbolComponent, TooltipDirective], providers: [withSymbols(apInfo, apFeatureLock)], template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <span class=\"ap-popover-menu__item-label\">{{ item.label }}</span>\n <!-- Label -->\n <span class=\"ap-popover-menu__item-description\">{{ item.description }}</span>\n </div>\n <!-- Tooltip icon -->\n @if (item.tooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.tooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);width:250px;padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"] }]
262
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-popover-menu', standalone: true, imports: [BadgeComponent, CommonModule, SymbolComponent, TooltipDirective], providers: [withSymbols(apInfo, apFeatureLock)], template: "<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--default]=\"!largeMenuEnabled() && !customWidth()\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n [apTooltip]=\"item.itemTooltipText\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.symbolColor ? item.symbolColor : item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <div class=\"ap-popover-menu__item-label-container\">\n <div class=\"ap-popover-menu__item-label\">{{ item.label }}</div>\n <!-- Badge -->\n @if (item.badgeLabel) {\n <ap-badge\n class=\"ap-popover-menu__item-badge\"\n color=\"blue\">\n {{ item.badgeLabel }}\n </ap-badge>\n }\n </div>\n <!-- Description -->\n <div class=\"ap-popover-menu__item-description\">{{ item.description }}</div>\n </div>\n <!-- Tooltip icon -->\n @if (item.iconTooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.iconTooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n", styles: [".ap-popover-menu__content{background-color:var(--comp-popover-menu-background-color);border:1px solid var(--comp-popover-menu-border-color);border-radius:var(--comp-popover-menu-border-radius);box-shadow:var(--comp-popover-menu-box-shadow);padding:var(--comp-popover-menu-padding);outline:none;overflow:hidden;z-index:1000}.ap-popover-menu__content.ap-popover-menu__content--default{width:250px}.ap-popover-menu__content.ap-popover-menu__content--large{width:340px}.ap-popover-menu__content:focus{outline:2px solid var(--comp-popover-menu-item-background-color-focused);outline-offset:2px}.ap-popover-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-popover-menu-item-padding);border:none;background:transparent;color:var(--comp-popover-menu-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-popover-menu-item-text-size);line-height:var(--comp-popover-menu-item-text-line-height);text-align:left;transition:background-color .2s ease,color .2s ease}.ap-popover-menu__item:hover{background-color:var(--comp-popover-menu-item-background-color-hover)}.ap-popover-menu__item:focus{outline:none;background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--has-description{height:auto;min-height:50px}.ap-popover-menu__item.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled{cursor:not-allowed;opacity:.4}.ap-popover-menu__item.ap-popover-menu__item--red-mode{color:var(--comp-popover-menu-item-text-color-red-mode)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:hover{background-color:var(--comp-popover-menu-item-background-color-red-mode-hover)}.ap-popover-menu__item.ap-popover-menu__item--red-mode:focus{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--red-mode.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-red-mode-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:hover{background-color:var(--comp-popover-menu-item-background-color-feature-lock-hover)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock:focus{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--feature-lock.ap-popover-menu__item--focused{background-color:var(--comp-popover-menu-item-background-color-feature-lock-focused)}.ap-popover-menu__item.ap-popover-menu__item--disabled:hover{background-color:transparent}.ap-popover-menu__item .ap-popover-menu__item-left-icon{margin-right:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-right-icon{margin-left:var(--comp-popover-menu-item-icon-spacing)}.ap-popover-menu__item .ap-popover-menu__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container{display:flex;align-items:center;gap:var(--comp-popover-menu-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-label-container .ap-popover-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-popover-menu__item .ap-popover-menu__item-text-container .ap-popover-menu__item-description{color:var(--ref-color-grey-80);font-size:var(--ref-font-size-xs);line-height:var(--ref-font-line-height-xs)}.ap-popover-menu__divider{height:1px;background-color:var(--comp-popover-menu-divider-color);margin:var(--comp-popover-menu-divider-margin)}\n"] }]
261
263
  }], ctorParameters: () => [] });
262
264
 
263
265
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-popover-menu.mjs","sources":["../../../libs/ui-components/popover-menu/src/popover-menu-trigger.directive.ts","../../../libs/ui-components/popover-menu/src/popover-menu.component.ts","../../../libs/ui-components/popover-menu/src/popover-menu.component.html","../../../libs/ui-components/popover-menu/src/agorapulse-ui-components-popover-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { PopoverMenuComponent, PopoverMenuItem } from './popover-menu.component';\n\n@Directive({\n selector: '[apPopoverMenuTrigger]',\n standalone: true,\n})\nexport class PopoverMenuTriggerDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n apPopoverMenuTrigger = input.required<PopoverMenuComponent>();\n popoverMenuItems = input<PopoverMenuItem[]>([]);\n disabled = input(false);\n\n menuItemClick = output<PopoverMenuItem>();\n opened = output<void>();\n closed = output<void>();\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n const popoverMenu = this.apPopoverMenuTrigger();\n if (popoverMenu) {\n popoverMenu.toggle(this.elementRef.nativeElement);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n const popoverMenu = this.apPopoverMenuTrigger();\n if (popoverMenu) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n event.preventDefault();\n popoverMenu.open(this.elementRef.nativeElement);\n break;\n\n case 'Escape':\n event.preventDefault();\n popoverMenu.close();\n break;\n }\n }\n }\n}\n","import { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { agorapulseSymbol, apFeatureLock, apInfo, SymbolComponent, withSymbols } from '@agorapulse/ui-symbol';\nimport { ConnectedPosition, FlexibleConnectedPositionStrategy, Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nexport interface PopoverMenuItem {\n label?: string;\n description?: string;\n symbolId?: agorapulseSymbol;\n featureLockEnabled?: boolean;\n redModeEnabled?: boolean;\n tooltipText?: string;\n disabled?: boolean;\n divider?: boolean;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-popover-menu',\n templateUrl: './popover-menu.component.html',\n styleUrls: ['./popover-menu.component.scss'],\n standalone: true,\n imports: [CommonModule, SymbolComponent, TooltipDirective],\n providers: [withSymbols(apInfo, apFeatureLock)],\n})\nexport class PopoverMenuComponent {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly positionBuilder = inject(OverlayPositionBuilder);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n menuTemplate = viewChild<TemplateRef<unknown>>('menuTemplate');\n trigger = contentChild<TemplateRef<unknown>>('trigger');\n\n items = input<PopoverMenuItem[]>([]);\n disabled = input(false);\n largeMenuEnabled = input(false);\n showBackdrop = input(true);\n\n menuItemClick = output<PopoverMenuItem>();\n opened = output<void>();\n closed = output<void>();\n\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal<unknown> | null = null;\n\n protected readonly isOpen = signal(false);\n protected readonly focusedIndex = signal(-1);\n protected readonly menuItems = computed(() => this.items().filter(item => !item.divider));\n\n constructor() {\n effect(() => {\n if (this.isOpen()) {\n this.setupKeyboardNavigation();\n }\n });\n }\n\n open(triggerElement?: HTMLElement): void {\n const menuTemplate = this.menuTemplate();\n\n if (this.disabled() || this.isOpen() || !menuTemplate) {\n return;\n }\n\n const target = triggerElement || this.elementRef.nativeElement;\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n const positionStrategy = this.createPositionStrategy(target);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: this.showBackdrop(),\n backdropClass: '',\n panelClass: '',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n this.portal = new TemplatePortal(menuTemplate, this.viewContainerRef);\n this.overlayRef.attach(this.portal);\n\n this.isOpen.set(true);\n this.focusedIndex.set(-1);\n this.opened.emit();\n\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n\n this.overlayRef\n .keydownEvents()\n .pipe(take(1))\n .subscribe((event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n }\n\n close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n\n this.portal = null;\n this.isOpen.set(false);\n this.focusedIndex.set(-1);\n this.closed.emit();\n }\n\n toggle(triggerElement?: HTMLElement): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open(triggerElement);\n }\n }\n\n onMenuItemClick(item: PopoverMenuItem): void {\n if (item.disabled) {\n return;\n }\n\n this.menuItemClick.emit(item);\n\n this.close();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n const items = this.menuItems();\n const currentIndex = this.focusedIndex();\n let nextIndex: number;\n let prevIndex: number;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n this.focusedIndex.set(nextIndex);\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n this.focusedIndex.set(prevIndex);\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (currentIndex >= 0 && currentIndex < items.length) {\n this.onMenuItemClick(items[currentIndex]);\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n\n case 'Tab':\n event.preventDefault();\n if (event.shiftKey) {\n // Shift+Tab - move to previous item\n prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n this.focusedIndex.set(prevIndex);\n } else {\n // Tab - move to next item\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n this.focusedIndex.set(nextIndex);\n }\n break;\n }\n }\n\n private createPositionStrategy(target: HTMLElement): FlexibleConnectedPositionStrategy {\n const positions: ConnectedPosition[] = [\n // Bottom-right (default)\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n // Bottom-left (if not enough space on right)\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n // Top-right (if not enough space below)\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n // Top-left (if not enough space below and on right)\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n ];\n\n return this.positionBuilder\n .flexibleConnectedTo(target)\n .withPositions(positions)\n .withFlexibleDimensions(true)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withViewportMargin(8);\n }\n\n private setupKeyboardNavigation(): void {\n if (!this.overlayRef) {\n return;\n }\n\n const keydownEvents = this.overlayRef.keydownEvents();\n\n keydownEvents.subscribe((event: KeyboardEvent) => {\n this.onKeyDown(event);\n });\n }\n}\n","<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <span class=\"ap-popover-menu__item-label\">{{ item.label }}</span>\n <!-- Label -->\n <span class=\"ap-popover-menu__item-description\">{{ item.description }}</span>\n </div>\n <!-- Tooltip icon -->\n @if (item.tooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.tooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agorapulse-ui-components-popover-menu.mjs","sources":["../../../libs/ui-components/popover-menu/src/popover-menu-trigger.directive.ts","../../../libs/ui-components/popover-menu/src/popover-menu.component.ts","../../../libs/ui-components/popover-menu/src/popover-menu.component.html","../../../libs/ui-components/popover-menu/src/agorapulse-ui-components-popover-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';\nimport { PopoverMenuComponent, PopoverMenuItem } from './popover-menu.component';\n\n@Directive({\n selector: '[apPopoverMenuTrigger]',\n standalone: true,\n})\nexport class PopoverMenuTriggerDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n apPopoverMenuTrigger = input.required<PopoverMenuComponent>();\n popoverMenuItems = input<PopoverMenuItem[]>([]);\n disabled = input(false);\n\n menuItemClick = output<PopoverMenuItem>();\n opened = output<void>();\n closed = output<void>();\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n const popoverMenu = this.apPopoverMenuTrigger();\n if (popoverMenu) {\n popoverMenu.toggle(this.elementRef.nativeElement);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n const popoverMenu = this.apPopoverMenuTrigger();\n if (popoverMenu) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n event.preventDefault();\n popoverMenu.open(this.elementRef.nativeElement);\n break;\n\n case 'Escape':\n event.preventDefault();\n popoverMenu.close();\n break;\n }\n }\n }\n}\n","import { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { agorapulseSymbol, apFeatureLock, apInfo, SymbolColor, SymbolComponent, withSymbols } from '@agorapulse/ui-symbol';\nimport { ConnectedPosition, FlexibleConnectedPositionStrategy, Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nexport interface PopoverMenuItem {\n label?: string;\n description?: string;\n badgeLabel?: string;\n symbolId?: agorapulseSymbol;\n symbolColor?: SymbolColor;\n featureLockEnabled?: boolean;\n redModeEnabled?: boolean;\n itemTooltipText?: string;\n iconTooltipText?: string;\n disabled?: boolean;\n divider?: boolean;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-popover-menu',\n templateUrl: './popover-menu.component.html',\n styleUrls: ['./popover-menu.component.scss'],\n standalone: true,\n imports: [BadgeComponent, CommonModule, SymbolComponent, TooltipDirective],\n providers: [withSymbols(apInfo, apFeatureLock)],\n})\nexport class PopoverMenuComponent {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly positionBuilder = inject(OverlayPositionBuilder);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n menuTemplate = viewChild<TemplateRef<unknown>>('menuTemplate');\n trigger = contentChild<TemplateRef<unknown>>('trigger');\n\n items = input<PopoverMenuItem[]>([]);\n disabled = input(false);\n largeMenuEnabled = input(false);\n showBackdrop = input(true);\n customWidth = input<number | null>(null);\n\n menuItemClick = output<PopoverMenuItem>();\n opened = output<void>();\n closed = output<void>();\n\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal<unknown> | null = null;\n\n protected readonly isOpen = signal(false);\n protected readonly focusedIndex = signal(-1);\n protected readonly menuItems = computed(() => this.items().filter(item => !item.divider));\n\n constructor() {\n effect(() => {\n if (this.isOpen()) {\n this.setupKeyboardNavigation();\n }\n });\n }\n\n open(triggerElement?: HTMLElement): void {\n const menuTemplate = this.menuTemplate();\n\n if (this.disabled() || this.isOpen() || !menuTemplate) {\n return;\n }\n\n const target = triggerElement || this.elementRef.nativeElement;\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n const positionStrategy = this.createPositionStrategy(target);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: this.showBackdrop(),\n backdropClass: '',\n panelClass: '',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n this.portal = new TemplatePortal(menuTemplate, this.viewContainerRef);\n this.overlayRef.attach(this.portal);\n\n this.isOpen.set(true);\n this.focusedIndex.set(-1);\n this.opened.emit();\n\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => {\n this.close();\n });\n\n this.overlayRef\n .keydownEvents()\n .pipe(take(1))\n .subscribe((event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n }\n\n close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n\n this.portal = null;\n this.isOpen.set(false);\n this.focusedIndex.set(-1);\n this.closed.emit();\n }\n\n toggle(triggerElement?: HTMLElement): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open(triggerElement);\n }\n }\n\n onMenuItemClick(item: PopoverMenuItem): void {\n if (item.disabled) {\n return;\n }\n\n this.menuItemClick.emit(item);\n\n this.close();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n const items = this.menuItems();\n const currentIndex = this.focusedIndex();\n let nextIndex: number;\n let prevIndex: number;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n this.focusedIndex.set(nextIndex);\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n this.focusedIndex.set(prevIndex);\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (currentIndex >= 0 && currentIndex < items.length) {\n this.onMenuItemClick(items[currentIndex]);\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n\n case 'Tab':\n event.preventDefault();\n if (event.shiftKey) {\n // Shift+Tab - move to previous item\n prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n this.focusedIndex.set(prevIndex);\n } else {\n // Tab - move to next item\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n this.focusedIndex.set(nextIndex);\n }\n break;\n }\n }\n\n private createPositionStrategy(target: HTMLElement): FlexibleConnectedPositionStrategy {\n const positions: ConnectedPosition[] = [\n // Bottom-right (default)\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n // Bottom-left (if not enough space on right)\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n // Top-right (if not enough space below)\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n // Top-left (if not enough space below and on right)\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n ];\n\n return this.positionBuilder\n .flexibleConnectedTo(target)\n .withPositions(positions)\n .withFlexibleDimensions(true)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withViewportMargin(8);\n }\n\n private setupKeyboardNavigation(): void {\n if (!this.overlayRef) {\n return;\n }\n\n const keydownEvents = this.overlayRef.keydownEvents();\n\n keydownEvents.subscribe((event: KeyboardEvent) => {\n this.onKeyDown(event);\n });\n }\n}\n","<ng-template #menuTemplate>\n <!-- Menu -->\n <div\n class=\"ap-popover-menu__content\"\n role=\"menu\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Menu'\"\n [class.ap-popover-menu__content--default]=\"!largeMenuEnabled() && !customWidth()\"\n [class.ap-popover-menu__content--large]=\"largeMenuEnabled()\"\n [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n (keydown)=\"onKeyDown($event)\">\n <!-- Menu items -->\n @for (item of items(); track item.label) {\n <!-- Divider -->\n @if (item.divider) {\n <div\n class=\"ap-popover-menu__divider\"\n role=\"separator\"></div>\n } @else {\n <!-- Menu item -->\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"ap-popover-menu__item\"\n [class.ap-popover-menu__item--has-description]=\"item.description\"\n [class.ap-popover-menu__item--disabled]=\"item.disabled\"\n [class.ap-popover-menu__item--focused]=\"focusedIndex() === $index\"\n [class.ap-popover-menu__item--red-mode]=\"item.redModeEnabled\"\n [class.ap-popover-menu__item--feature-lock]=\"item.featureLockEnabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n [apTooltip]=\"item.itemTooltipText\"\n (click)=\"onMenuItemClick(item)\">\n <!-- Left icon -->\n @if (item.symbolId) {\n <ap-symbol\n class=\"ap-popover-menu__item-left-icon\"\n size=\"sm\"\n [color]=\"item.symbolColor ? item.symbolColor : item.redModeEnabled ? 'red' : 'grey'\"\n [symbolId]=\"item.symbolId\" />\n }\n <!-- Label -->\n <div class=\"ap-popover-menu__item-text-container\">\n <div class=\"ap-popover-menu__item-label-container\">\n <div class=\"ap-popover-menu__item-label\">{{ item.label }}</div>\n <!-- Badge -->\n @if (item.badgeLabel) {\n <ap-badge\n class=\"ap-popover-menu__item-badge\"\n color=\"blue\">\n {{ item.badgeLabel }}\n </ap-badge>\n }\n </div>\n <!-- Description -->\n <div class=\"ap-popover-menu__item-description\">{{ item.description }}</div>\n </div>\n <!-- Tooltip icon -->\n @if (item.iconTooltipText) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"grey-blue\"\n symbolId=\"info\"\n [apTooltip]=\"item.iconTooltipText\" />\n }\n <!-- Feature lock icon -->\n @if (item.featureLockEnabled) {\n <ap-symbol\n class=\"ap-popover-menu__item-right-icon\"\n size=\"sm\"\n color=\"purple\"\n symbolId=\"feature-lock\" />\n }\n </button>\n }\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-components",
3
3
  "description": "Agorapulse UI Components Library",
4
- "version": "18.1.0",
4
+ "version": "18.1.1",
5
5
  "author": "Benoit Hediard",
6
6
  "repository": {
7
7
  "type": "git",
@@ -67,18 +67,18 @@
67
67
  "esm": "./esm2022/button/agorapulse-ui-components-button.mjs",
68
68
  "default": "./fesm2022/agorapulse-ui-components-button.mjs"
69
69
  },
70
- "./checkbox": {
71
- "types": "./checkbox/index.d.ts",
72
- "esm2022": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
73
- "esm": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
74
- "default": "./fesm2022/agorapulse-ui-components-checkbox.mjs"
75
- },
76
70
  "./close-button": {
77
71
  "types": "./close-button/index.d.ts",
78
72
  "esm2022": "./esm2022/close-button/agorapulse-ui-components-close-button.mjs",
79
73
  "esm": "./esm2022/close-button/agorapulse-ui-components-close-button.mjs",
80
74
  "default": "./fesm2022/agorapulse-ui-components-close-button.mjs"
81
75
  },
76
+ "./checkbox": {
77
+ "types": "./checkbox/index.d.ts",
78
+ "esm2022": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
79
+ "esm": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
80
+ "default": "./fesm2022/agorapulse-ui-components-checkbox.mjs"
81
+ },
82
82
  "./confirm-modal": {
83
83
  "types": "./confirm-modal/index.d.ts",
84
84
  "esm2022": "./esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs",
@@ -1,13 +1,16 @@
1
- import { agorapulseSymbol } from '@agorapulse/ui-symbol';
1
+ import { agorapulseSymbol, SymbolColor } from '@agorapulse/ui-symbol';
2
2
  import { TemplateRef } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export interface PopoverMenuItem {
5
5
  label?: string;
6
6
  description?: string;
7
+ badgeLabel?: string;
7
8
  symbolId?: agorapulseSymbol;
9
+ symbolColor?: SymbolColor;
8
10
  featureLockEnabled?: boolean;
9
11
  redModeEnabled?: boolean;
10
- tooltipText?: string;
12
+ itemTooltipText?: string;
13
+ iconTooltipText?: string;
11
14
  disabled?: boolean;
12
15
  divider?: boolean;
13
16
  }
@@ -22,6 +25,7 @@ export declare class PopoverMenuComponent {
22
25
  disabled: import("@angular/core").InputSignal<boolean>;
23
26
  largeMenuEnabled: import("@angular/core").InputSignal<boolean>;
24
27
  showBackdrop: import("@angular/core").InputSignal<boolean>;
28
+ customWidth: import("@angular/core").InputSignal<number | null>;
25
29
  menuItemClick: import("@angular/core").OutputEmitterRef<PopoverMenuItem>;
26
30
  opened: import("@angular/core").OutputEmitterRef<void>;
27
31
  closed: import("@angular/core").OutputEmitterRef<void>;
@@ -39,5 +43,5 @@ export declare class PopoverMenuComponent {
39
43
  private createPositionStrategy;
40
44
  private setupKeyboardNavigation;
41
45
  static ɵfac: i0.ɵɵFactoryDeclaration<PopoverMenuComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<PopoverMenuComponent, "ap-popover-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "largeMenuEnabled": { "alias": "largeMenuEnabled"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; }, { "menuItemClick": "menuItemClick"; "opened": "opened"; "closed": "closed"; }, ["trigger"], never, true, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<PopoverMenuComponent, "ap-popover-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "largeMenuEnabled": { "alias": "largeMenuEnabled"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "customWidth": { "alias": "customWidth"; "required": false; "isSignal": true; }; }, { "menuItemClick": "menuItemClick"; "opened": "opened"; "closed": "closed"; }, ["trigger"], never, true, never>;
43
47
  }
Binary file