@agorapulse/ui-components 18.0.11 → 18.0.12-beta.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,15 +1,15 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostListener, inject, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
1
  import { BaseButtonDirective } from '@agorapulse/ui-components/directives';
3
2
  import { apChevronDown, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';
3
+ import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostListener, inject, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
4
4
  import { MatMenuModule } from '@angular/material/menu';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@agorapulse/ui-components/directives";
7
7
  import * as i2 from "@angular/material/menu";
8
+ let id = 1;
8
9
  export class SplitButtonComponent {
9
10
  symbolRegistry = inject(SymbolRegistry);
10
11
  baseButtonDirective = inject(BaseButtonDirective, { self: true });
11
12
  buttonElement;
12
- ariaLabel = '';
13
13
  disabled = false;
14
14
  name = '';
15
15
  config;
@@ -26,10 +26,14 @@ export class SplitButtonComponent {
26
26
  focus = new EventEmitter();
27
27
  // eslint-disable-next-line @angular-eslint/no-output-native
28
28
  blur = new EventEmitter();
29
+ id;
29
30
  menuOpen = false;
30
31
  constructor() {
31
32
  this.symbolRegistry.registerSymbols([apChevronDown]);
32
33
  }
34
+ ngAfterViewInit() {
35
+ this.id = this.baseButtonDirective.hostId ?? `ap-split-button-${id++}`;
36
+ }
33
37
  ngAfterContentInit() {
34
38
  if (this.symbolComponent) {
35
39
  this.symbolComponent.size.set('sm');
@@ -67,33 +71,25 @@ export class SplitButtonComponent {
67
71
  }
68
72
  }
69
73
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button", inputs: { ariaLabel: "ariaLabel", disabled: ["disabled", "disabled", booleanAttribute], name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", mainButtonClick: "mainButtonClick", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "(disabled && splitDisabled) || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", mainButtonClick: "mainButtonClick", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "(disabled && splitDisabled) || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}.visually-hidden{width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;position:absolute!important}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
71
75
  }
72
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SplitButtonComponent, decorators: [{
73
77
  type: Component,
74
78
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-split-button', standalone: true, imports: [SymbolComponent, MatMenuModule], providers: [], encapsulation: ViewEncapsulation.None, hostDirectives: [BaseButtonDirective], host: {
75
79
  '[attr.disabled]': '(disabled && splitDisabled) || null',
76
- }, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"] }]
80
+ }, template: "<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}.visually-hidden{width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;position:absolute!important}\n"] }]
77
81
  }], ctorParameters: () => [], propDecorators: { buttonElement: [{
78
82
  type: ViewChild,
79
83
  args: ['button']
80
- }], ariaLabel: [{
81
- type: Input
82
84
  }], disabled: [{
83
85
  type: Input,
84
- args: [{
85
- transform: booleanAttribute,
86
- }]
86
+ args: [{ transform: booleanAttribute }]
87
87
  }], name: [{
88
88
  type: Input,
89
- args: [{
90
- required: true,
91
- }]
89
+ args: [{ required: true }]
92
90
  }], config: [{
93
91
  type: Input,
94
- args: [{
95
- required: true,
96
- }]
92
+ args: [{ required: true }]
97
93
  }], menuTrigger: [{
98
94
  type: Input
99
95
  }], splitDisabled: [{
@@ -122,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
122
118
  type: HostListener,
123
119
  args: ['window:keyup.space', ['$event']]
124
120
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcGxpdC1idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3BsaXQtYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBbUJoRSxNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLGNBQWMsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELG1CQUFtQixHQUF3QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUzRSxhQUFhLENBQWlDO0lBRTFELFNBQVMsR0FBVyxFQUFFLENBQUM7SUFJaEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUkxQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBSVYsTUFBTSxDQUFxQjtJQUNsQixXQUFXLEdBQW1CLElBQUksQ0FBQztJQUNuQyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLGNBQWMsR0FBcUIsT0FBTyxDQUFDO0lBQzNDLG1CQUFt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UTtzQkFIUCxLQUFLO3VCQUFDO3dCQUNILFNBQVMsRUFBRSxnQkFBZ0I7cUJBQzlCO2dCQUtELElBQUk7c0JBSEgsS0FBSzt1QkFBQzt3QkFDSCxRQUFRLEVBQUUsSUFBSTtxQkFDakI7Z0JBS0QsTUFBTTtzQkFITCxLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtnQkFFUSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRW9CLGtCQUFrQjtzQkFBM0MsU0FBUzt1QkFBQyxhQUFhO2dCQUVPLGVBQWU7c0JBQTdDLFlBQVk7dUJBQUMsZUFBZTtnQkFFbkIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsS0FBSztzQkFBZCxNQUFNO2dCQUVHLElBQUk7c0JBQWIsTUFBTTtnQkE2Q1AsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IGFwQ2hldnJvbkRvd24sIFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnkgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG50eXBlIFNwbGl0QnV0dG9uQ29uZmlnID0geyBzdHlsZTogJ3ByaW1hcnknOyBjb2xvcjogJ29yYW5nZScgfCAnYmx1ZScgfTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1zcGxpdC1idXR0b24nLFxuICAgIHN0eWxlVXJsczogWycuL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1N5bWJvbENvbXBvbmVudCwgTWF0TWVudU1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BsaXQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbQmFzZUJ1dHRvbkRpcmVjdGl2ZV0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJyhkaXNhYmxlZCAmJiBzcGxpdERpc2FibGVkKSAgfHwgbnVsbCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwcml2YXRlIHN5bWJvbFJlZ2lzdHJ5OiBTeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG4gICAgcmVhZG9ubHkgYmFzZUJ1dHRvbkRpcmVjdGl2ZTogQmFzZUJ1dHRvbkRpcmVjdGl2ZSA9IGluamVjdChCYXNlQnV0dG9uRGlyZWN0aXZlLCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICBAVmlld0NoaWxkKCdidXR0b24nKSBidXR0b25FbGVtZW50ITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICB9KVxuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSlcbiAgICBuYW1lID0gJyc7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSlcbiAgICBjb25maWchOiBTcGxpdEJ1dHRvbkNvbmZpZztcbiAgICBASW5wdXQoKSBtZW51VHJpZ2dlcjogTWF0TWVudSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNwbGl0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzeW1ib2xQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG4gICAgQElucHV0KCkgc3BsaXRCdXR0b25EYXRhVGVzdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnc3BsaXRCdXR0b24nKSBzcGxpdEJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGQoU3ltYm9sQ29tcG9uZW50KSBzeW1ib2xDb21wb25lbnQhOiBTeW1ib2xDb21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudU9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtZW51Q2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1haW5CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFthcENoZXZyb25Eb3duXSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5zeW1ib2xDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3ltYm9sQ29tcG9uZW50LnNpemUuc2V0KCdzbScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TcGxpdEJ1dHRvbkNsaWNrSGFuZGxlKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlTWVudU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51T3BlbmVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgdGhpcy5zcGxpdEJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlTWVudUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIHRoaXMuc3BsaXRCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIG9uQ2xpY2tIYW5kbGUoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm1haW5CdXR0b25DbGljay5lbWl0KCRldmVudCk7XG4gICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuc3BhY2UnLCBbJyRldmVudCddKVxuICAgIG9uU3BhY2VLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAjYnV0dG9uXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2NsYXNzLnByaW1hcnldPVwiY29uZmlnLnN0eWxlID09PSAncHJpbWFyeSdcIlxuICAgIFtjbGFzcy5vcmFuZ2VdPVwiY29uZmlnLmNvbG9yID09PSAnb3JhbmdlJ1wiXG4gICAgW2NsYXNzLmJsdWVdPVwiY29uZmlnLmNvbG9yID09PSAnYmx1ZSdcIlxuICAgIFtjbGFzcy5pbnZlcnNlXT1cInN5bWJvbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIuaWRdPVwiYmFzZUJ1dHRvbkRpcmVjdGl2ZS5ob3N0SWRcIlxuICAgIFthdHRyLmRhdGEtdGVzdF09XCJiYXNlQnV0dG9uRGlyZWN0aXZlLmhvc3REYXRhVGVzdCA/PyBuYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkPy50b1N0cmluZygpXCJcbiAgICAoY2xpY2spPVwib25DbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwYW5cIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFwLXN5bWJvbFwiIC8+XG48L2J1dHRvbj5cbjxidXR0b25cbiAgICAjc3BsaXRCdXR0b25cbiAgICAjdHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICBbY2xhc3MucHJpbWFyeV09XCJjb25maWcuc3R5bGUgPT09ICdwcmltYXJ5J1wiXG4gICAgW2NsYXNzLm9yYW5nZV09XCJjb25maWcuY29sb3IgPT09ICdvcmFuZ2UnXCJcbiAgICBbY2xhc3MuYmx1ZV09XCJjb25maWcuY29sb3IgPT09ICdibHVlJ1wiXG4gICAgW2Rpc2FibGVkXT1cInNwbGl0RGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwic3BsaXREaXNhYmxlZC50b1N0cmluZygpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RdPVwic3BsaXRCdXR0b25EYXRhVGVzdCA/PyBuYW1lICsgJy1zcGxpdCdcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51VHJpZ2dlclwiXG4gICAgKGNsaWNrKT1cIm9uU3BsaXRCdXR0b25DbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAobWVudUNsb3NlZCk9XCJoYW5kbGVNZW51Q2xvc2VkKClcIlxuICAgIChtZW51T3BlbmVkKT1cImhhbmRsZU1lbnVPcGVuZWQoKVwiPlxuICAgIDxhcC1zeW1ib2xcbiAgICAgICAgc3ltYm9sSWQ9XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICBzaXplPVwic21cIlxuICAgICAgICBbY2xhc3Mub3BlbmVkXT1cIm1lbnVPcGVuXCIgLz5cbjwvYnV0dG9uPlxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcGxpdC1idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3BsaXQtYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUdILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSWhFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQWlCWCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLGNBQWMsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELG1CQUFtQixHQUF3QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUzRSxhQUFhLENBQWlDO0lBR25FLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFMUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVWLE1BQU0sQ0FBcUI7SUFDbEIsV0FBVyxHQUFtQixJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixjQUFjLEdBQXFCLE9BQU8sQ0FBQztJQUMzQyxt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LENBQUMsbUJBQW1CLENBQUMsUUFFL0I7d0JBQ0YsaUJBQWlCLEVBQUUsc0NBQXNDO3FCQUM1RDt3REFNb0IsYUFBYTtzQkFBakMsU0FBUzt1QkFBQyxRQUFRO2dCQUduQixRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBR3RDLElBQUk7c0JBREgsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR3pCLE1BQU07c0JBREwsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFb0Isa0JBQWtCO3NCQUEzQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRU8sZUFBZTtzQkFBN0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVuQixVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU07Z0JBRUcsSUFBSTtzQkFBYixNQUFNO2dCQWtEUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IGFwQ2hldnJvbkRvd24sIFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnkgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbnR5cGUgU3BsaXRCdXR0b25Db25maWcgPSB7IHN0eWxlOiAncHJpbWFyeSc7IGNvbG9yOiAnb3JhbmdlJyB8ICdibHVlJyB9O1xuXG5sZXQgaWQgPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXNwbGl0LWJ1dHRvbicsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3BsaXQtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbU3ltYm9sQ29tcG9uZW50LCBNYXRNZW51TW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtCYXNlQnV0dG9uRGlyZWN0aXZlXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnKGRpc2FibGVkICYmIHNwbGl0RGlzYWJsZWQpICB8fCBudWxsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcbiAgICByZWFkb25seSBiYXNlQnV0dG9uRGlyZWN0aXZlOiBCYXNlQnV0dG9uRGlyZWN0aXZlID0gaW5qZWN0KEJhc2VCdXR0b25EaXJlY3RpdmUsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvbicpIGJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBuYW1lID0gJyc7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBjb25maWchOiBTcGxpdEJ1dHRvbkNvbmZpZztcbiAgICBASW5wdXQoKSBtZW51VHJpZ2dlcjogTWF0TWVudSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNwbGl0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzeW1ib2xQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG4gICAgQElucHV0KCkgc3BsaXRCdXR0b25EYXRhVGVzdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnc3BsaXRCdXR0b24nKSBzcGxpdEJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGQoU3ltYm9sQ29tcG9uZW50KSBzeW1ib2xDb21wb25lbnQhOiBTeW1ib2xDb21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudU9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtZW51Q2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1haW5CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBpZCE6IHN0cmluZztcbiAgICBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFthcENoZXZyb25Eb3duXSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5iYXNlQnV0dG9uRGlyZWN0aXZlLmhvc3RJZCA/PyBgYXAtc3BsaXQtYnV0dG9uLSR7aWQrK31gO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3ltYm9sQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLnN5bWJvbENvbXBvbmVudC5zaXplLnNldCgnc20nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3BsaXRCdXR0b25DbGlja0hhbmRsZSgkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGhhbmRsZU1lbnVPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudU9wZW5lZC5lbWl0KCk7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIHRoaXMuc3BsaXRCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cblxuICAgIGhhbmRsZU1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUNsb3NlZC5lbWl0KCk7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB0aGlzLnNwbGl0QnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBvbkNsaWNrSGFuZGxlKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5tYWluQnV0dG9uQ2xpY2suZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBvblNwYWNlS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgI2J1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5wcmltYXJ5XT1cImNvbmZpZy5zdHlsZSA9PT0gJ3ByaW1hcnknXCJcbiAgICBbY2xhc3Mub3JhbmdlXT1cImNvbmZpZy5jb2xvciA9PT0gJ29yYW5nZSdcIlxuICAgIFtjbGFzcy5ibHVlXT1cImNvbmZpZy5jb2xvciA9PT0gJ2JsdWUnXCJcbiAgICBbY2xhc3MuaW52ZXJzZV09XCJzeW1ib2xQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW2F0dHIuZGF0YS10ZXN0XT1cImJhc2VCdXR0b25EaXJlY3RpdmUuaG9zdERhdGFUZXN0ID8/IG5hbWVcIlxuICAgIChjbGljayk9XCJvbkNsaWNrSGFuZGxlKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxuICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3BhblwiIC8+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXAtc3ltYm9sXCIgLz5cbjwvYnV0dG9uPlxuPGJ1dHRvblxuICAgICNzcGxpdEJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5wcmltYXJ5XT1cImNvbmZpZy5zdHlsZSA9PT0gJ3ByaW1hcnknXCJcbiAgICBbY2xhc3Mub3JhbmdlXT1cImNvbmZpZy5jb2xvciA9PT0gJ29yYW5nZSdcIlxuICAgIFtjbGFzcy5ibHVlXT1cImNvbmZpZy5jb2xvciA9PT0gJ2JsdWUnXCJcbiAgICBbZGlzYWJsZWRdPVwic3BsaXREaXNhYmxlZFwiXG4gICAgW2lkXT1cImlkICsgJy1zcGxpdCdcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctc3BsaXQgJyArIGlkXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RdPVwic3BsaXRCdXR0b25EYXRhVGVzdCA/PyBuYW1lICsgJy1zcGxpdCdcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51VHJpZ2dlclwiXG4gICAgKGNsaWNrKT1cIm9uU3BsaXRCdXR0b25DbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAobWVudUNsb3NlZCk9XCJoYW5kbGVNZW51Q2xvc2VkKClcIlxuICAgIChtZW51T3BlbmVkKT1cImhhbmRsZU1lbnVPcGVuZWQoKVwiPlxuICAgIDxhcC1zeW1ib2xcbiAgICAgICAgc3ltYm9sSWQ9XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICBzaXplPVwic21cIlxuICAgICAgICBbY2xhc3Mub3BlbmVkXT1cIm1lbnVPcGVuXCIgLz5cbiAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlRvZ2dsZTwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
@@ -1,16 +1,16 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, EventEmitter, booleanAttribute, HostListener, Output, ContentChild, ViewChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
1
  import * as i1 from '@agorapulse/ui-components/directives';
4
2
  import { BaseButtonDirective } from '@agorapulse/ui-components/directives';
5
3
  import { SymbolRegistry, apChevronDown, SymbolComponent } from '@agorapulse/ui-symbol';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, EventEmitter, booleanAttribute, HostListener, Output, ContentChild, ViewChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
6
6
  import * as i2 from '@angular/material/menu';
7
7
  import { MatMenuModule } from '@angular/material/menu';
8
8
 
9
+ let id = 1;
9
10
  class SplitButtonComponent {
10
11
  symbolRegistry = inject(SymbolRegistry);
11
12
  baseButtonDirective = inject(BaseButtonDirective, { self: true });
12
13
  buttonElement;
13
- ariaLabel = '';
14
14
  disabled = false;
15
15
  name = '';
16
16
  config;
@@ -27,10 +27,14 @@ class SplitButtonComponent {
27
27
  focus = new EventEmitter();
28
28
  // eslint-disable-next-line @angular-eslint/no-output-native
29
29
  blur = new EventEmitter();
30
+ id;
30
31
  menuOpen = false;
31
32
  constructor() {
32
33
  this.symbolRegistry.registerSymbols([apChevronDown]);
33
34
  }
35
+ ngAfterViewInit() {
36
+ this.id = this.baseButtonDirective.hostId ?? `ap-split-button-${id++}`;
37
+ }
34
38
  ngAfterContentInit() {
35
39
  if (this.symbolComponent) {
36
40
  this.symbolComponent.size.set('sm');
@@ -68,33 +72,25 @@ class SplitButtonComponent {
68
72
  }
69
73
  }
70
74
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button", inputs: { ariaLabel: "ariaLabel", disabled: ["disabled", "disabled", booleanAttribute], name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", mainButtonClick: "mainButtonClick", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "(disabled && splitDisabled) || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button", inputs: { disabled: ["disabled", "disabled", booleanAttribute], name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", mainButtonClick: "mainButtonClick", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "(disabled && splitDisabled) || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}.visually-hidden{width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;position:absolute!important}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
72
76
  }
73
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SplitButtonComponent, decorators: [{
74
78
  type: Component,
75
79
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-split-button', standalone: true, imports: [SymbolComponent, MatMenuModule], providers: [], encapsulation: ViewEncapsulation.None, hostDirectives: [BaseButtonDirective], host: {
76
80
  '[attr.disabled]': '(disabled && splitDisabled) || null',
77
- }, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"] }]
81
+ }, template: "<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}.visually-hidden{width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;position:absolute!important}\n"] }]
78
82
  }], ctorParameters: () => [], propDecorators: { buttonElement: [{
79
83
  type: ViewChild,
80
84
  args: ['button']
81
- }], ariaLabel: [{
82
- type: Input
83
85
  }], disabled: [{
84
86
  type: Input,
85
- args: [{
86
- transform: booleanAttribute,
87
- }]
87
+ args: [{ transform: booleanAttribute }]
88
88
  }], name: [{
89
89
  type: Input,
90
- args: [{
91
- required: true,
92
- }]
90
+ args: [{ required: true }]
93
91
  }], config: [{
94
92
  type: Input,
95
- args: [{
96
- required: true,
97
- }]
93
+ args: [{ required: true }]
98
94
  }], menuTrigger: [{
99
95
  type: Input
100
96
  }], splitDisabled: [{
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-split-button.mjs","sources":["../../../libs/ui-components/split-button/src/split-button.component.ts","../../../libs/ui-components/split-button/src/split-button.component.html","../../../libs/ui-components/split-button/src/agorapulse-ui-components-split-button.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport { apChevronDown, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\ntype SplitButtonConfig = { style: 'primary'; color: 'orange' | 'blue' };\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-split-button',\n styleUrls: ['./split-button.component.scss'],\n standalone: true,\n imports: [SymbolComponent, MatMenuModule],\n providers: [],\n templateUrl: './split-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': '(disabled && splitDisabled) || null',\n },\n})\nexport class SplitButtonComponent implements AfterContentInit {\n private symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input() ariaLabel: string = '';\n @Input({\n transform: booleanAttribute,\n })\n disabled: boolean = false;\n @Input({\n required: true,\n })\n name = '';\n @Input({\n required: true,\n })\n config!: SplitButtonConfig;\n @Input() menuTrigger: MatMenu | null = null;\n @Input() splitDisabled: boolean = false;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n @Input() splitButtonDataTest: string | undefined = undefined;\n\n @ViewChild('splitButton') splitButtonElement!: ElementRef<HTMLButtonElement>;\n\n @ContentChild(SymbolComponent) symbolComponent!: SymbolComponent;\n\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n @Output() mainButtonClick: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n menuOpen = false;\n\n constructor() {\n this.symbolRegistry.registerSymbols([apChevronDown]);\n }\n\n ngAfterContentInit() {\n if (this.symbolComponent) {\n this.symbolComponent.size.set('sm');\n }\n }\n\n onSplitButtonClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n }\n\n handleMenuOpened(): void {\n this.menuOpened.emit();\n this.menuOpen = true;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n handleMenuClosed(): void {\n this.menuClosed.emit();\n this.menuOpen = false;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n $event.stopImmediatePropagation();\n this.mainButtonClick.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n</button>\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-split-button.mjs","sources":["../../../libs/ui-components/split-button/src/split-button.component.ts","../../../libs/ui-components/split-button/src/split-button.component.html","../../../libs/ui-components/split-button/src/agorapulse-ui-components-split-button.ts"],"sourcesContent":["import { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport { apChevronDown, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\ntype SplitButtonConfig = { style: 'primary'; color: 'orange' | 'blue' };\n\nlet id = 1;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-split-button',\n styleUrls: ['./split-button.component.scss'],\n standalone: true,\n imports: [SymbolComponent, MatMenuModule],\n providers: [],\n templateUrl: './split-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': '(disabled && splitDisabled) || null',\n },\n})\nexport class SplitButtonComponent implements AfterContentInit, AfterViewInit {\n private symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input({ transform: booleanAttribute })\n disabled: boolean = false;\n @Input({ required: true })\n name = '';\n @Input({ required: true })\n config!: SplitButtonConfig;\n @Input() menuTrigger: MatMenu | null = null;\n @Input() splitDisabled: boolean = false;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n @Input() splitButtonDataTest: string | undefined = undefined;\n\n @ViewChild('splitButton') splitButtonElement!: ElementRef<HTMLButtonElement>;\n\n @ContentChild(SymbolComponent) symbolComponent!: SymbolComponent;\n\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n @Output() mainButtonClick: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n id!: string;\n menuOpen = false;\n\n constructor() {\n this.symbolRegistry.registerSymbols([apChevronDown]);\n }\n\n ngAfterViewInit() {\n this.id = this.baseButtonDirective.hostId ?? `ap-split-button-${id++}`;\n }\n\n ngAfterContentInit() {\n if (this.symbolComponent) {\n this.symbolComponent.size.set('sm');\n }\n }\n\n onSplitButtonClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n }\n\n handleMenuOpened(): void {\n this.menuOpened.emit();\n this.menuOpen = true;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n handleMenuClosed(): void {\n this.menuClosed.emit();\n this.menuOpen = false;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n $event.stopImmediatePropagation();\n this.mainButtonClick.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n <ng-content select=\"ap-symbol\" />\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;AAsBA,IAAI,EAAE,GAAG,CAAC;MAiBG,oBAAoB,CAAA;AACrB,IAAA,cAAc,GAAmB,MAAM,CAAC,cAAc,CAAC;IACtD,mBAAmB,GAAwB,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAE1E,IAAA,aAAa;IAGlC,QAAQ,GAAY,KAAK;IAEzB,IAAI,GAAG,EAAE;AAET,IAAA,MAAM;IACG,WAAW,GAAmB,IAAI;IAClC,aAAa,GAAY,KAAK;IAC9B,cAAc,GAAqB,OAAO;IAC1C,mBAAmB,GAAuB,SAAS;AAElC,IAAA,kBAAkB;AAEb,IAAA,eAAe;AAEpC,IAAA,UAAU,GAAuB,IAAI,YAAY,EAAE;AACnD,IAAA,UAAU,GAAuB,IAAI,YAAY,EAAE;AACnD,IAAA,eAAe,GAA6B,IAAI,YAAY,EAAE;;AAE9D,IAAA,KAAK,GAA6B,IAAI,YAAY,EAAE;;AAEpD,IAAA,IAAI,GAA6B,IAAI,YAAY,EAAE;AAE7D,IAAA,EAAE;IACF,QAAQ,GAAG,KAAK;AAEhB,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC;;IAGxD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAA,gBAAA,EAAmB,EAAE,EAAE,EAAE;;IAG1E,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;AAI3C,IAAA,wBAAwB,CAAC,MAAkB,EAAA;QACvC,MAAM,CAAC,wBAAwB,EAAE;;IAGrC,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE;AACvC,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE;;IAGhD,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE;AACvC,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE;;IAGhD,OAAO,GAAY,KAAK;AAExB,IAAA,aAAa,CAAC,MAAkB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf;;QAEJ,MAAM,CAAC,wBAAwB,EAAE;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAI1B,IAAA,YAAY,CAAC,KAAoB,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE;;;uGAhFvC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAMT,gBAAgB,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,SAAA,EAfzB,EAAE,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4BC,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1DjC,mxCAqCA,EAAA,MAAA,EAAA,CAAA,6jGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRc,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAU/B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;sCACW,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,iBAAiB,cAEf,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,aAAa,CAAC,EAC9B,SAAA,EAAA,EAAE,iBAEE,iBAAiB,CAAC,IAAI,EACrB,cAAA,EAAA,CAAC,mBAAmB,CAAC,EAE/B,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,sCAAsC;AAC5D,qBAAA,EAAA,QAAA,EAAA,mxCAAA,EAAA,MAAA,EAAA,CAAA,6jGAAA,CAAA,EAAA;wDAMoB,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ;gBAGnB,QAAQ,EAAA,CAAA;sBADP,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAGtC,IAAI,EAAA,CAAA;sBADH,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAGzB,MAAM,EAAA,CAAA;sBADL,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAEhB,WAAW,EAAA,CAAA;sBAAnB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAEyB,kBAAkB,EAAA,CAAA;sBAA3C,SAAS;uBAAC,aAAa;gBAEO,eAAe,EAAA,CAAA;sBAA7C,YAAY;uBAAC,eAAe;gBAEnB,UAAU,EAAA,CAAA;sBAAnB;gBACS,UAAU,EAAA,CAAA;sBAAnB;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBAES,KAAK,EAAA,CAAA;sBAAd;gBAES,IAAI,EAAA,CAAA;sBAAb;gBAkDD,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;;AEnHlD;;AAEG;;;;"}
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.0.11",
4
+ "version": "18.0.12-beta.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,6 +1,6 @@
1
- import { AfterContentInit, ElementRef, EventEmitter } from '@angular/core';
2
1
  import { BaseButtonDirective } from '@agorapulse/ui-components/directives';
3
2
  import { SymbolComponent } from '@agorapulse/ui-symbol';
3
+ import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
4
4
  import { MatMenu } from '@angular/material/menu';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@agorapulse/ui-components/directives";
@@ -8,11 +8,10 @@ type SplitButtonConfig = {
8
8
  style: 'primary';
9
9
  color: 'orange' | 'blue';
10
10
  };
11
- export declare class SplitButtonComponent implements AfterContentInit {
11
+ export declare class SplitButtonComponent implements AfterContentInit, AfterViewInit {
12
12
  private symbolRegistry;
13
13
  readonly baseButtonDirective: BaseButtonDirective;
14
14
  buttonElement: ElementRef<HTMLButtonElement>;
15
- ariaLabel: string;
16
15
  disabled: boolean;
17
16
  name: string;
18
17
  config: SplitButtonConfig;
@@ -27,8 +26,10 @@ export declare class SplitButtonComponent implements AfterContentInit {
27
26
  mainButtonClick: EventEmitter<MouseEvent>;
28
27
  focus: EventEmitter<FocusEvent>;
29
28
  blur: EventEmitter<FocusEvent>;
29
+ id: string;
30
30
  menuOpen: boolean;
31
31
  constructor();
32
+ ngAfterViewInit(): void;
32
33
  ngAfterContentInit(): void;
33
34
  onSplitButtonClickHandle($event: MouseEvent): void;
34
35
  handleMenuOpened(): void;
@@ -37,7 +38,7 @@ export declare class SplitButtonComponent implements AfterContentInit {
37
38
  onClickHandle($event: MouseEvent): void;
38
39
  onSpaceKeyUp(event: KeyboardEvent): void;
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<SplitButtonComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<SplitButtonComponent, "ap-split-button", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "name": { "alias": "name"; "required": true; }; "config": { "alias": "config"; "required": true; }; "menuTrigger": { "alias": "menuTrigger"; "required": false; }; "splitDisabled": { "alias": "splitDisabled"; "required": false; }; "symbolPosition": { "alias": "symbolPosition"; "required": false; }; "splitButtonDataTest": { "alias": "splitButtonDataTest"; "required": false; }; }, { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; "mainButtonClick": "mainButtonClick"; "focus": "focus"; "blur": "blur"; }, ["symbolComponent"], ["span", "ap-symbol"], true, [{ directive: typeof i1.BaseButtonDirective; inputs: {}; outputs: {}; }]>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<SplitButtonComponent, "ap-split-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "name": { "alias": "name"; "required": true; }; "config": { "alias": "config"; "required": true; }; "menuTrigger": { "alias": "menuTrigger"; "required": false; }; "splitDisabled": { "alias": "splitDisabled"; "required": false; }; "symbolPosition": { "alias": "symbolPosition"; "required": false; }; "splitButtonDataTest": { "alias": "splitButtonDataTest"; "required": false; }; }, { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; "mainButtonClick": "mainButtonClick"; "focus": "focus"; "blur": "blur"; }, ["symbolComponent"], ["span", "ap-symbol"], true, [{ directive: typeof i1.BaseButtonDirective; inputs: {}; outputs: {}; }]>;
41
42
  static ngAcceptInputType_disabled: unknown;
42
43
  }
43
44
  export {};