@agorapulse/ui-components 15.0.20 → 15.0.21

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.
Files changed (50) hide show
  1. package/agorapulse-ui-components-15.0.21.tgz +0 -0
  2. package/button/button.component.d.ts +8 -14
  3. package/directives/base-button.directive.d.ts +22 -0
  4. package/directives/public_api.d.ts +1 -0
  5. package/esm2020/add-comment/add-comment.component.mjs +1 -1
  6. package/esm2020/button/button.component.mjs +20 -35
  7. package/esm2020/confirm-modal/confirm-modal.component.mjs +2 -2
  8. package/esm2020/directives/base-button.directive.mjs +76 -0
  9. package/esm2020/directives/public_api.mjs +2 -1
  10. package/esm2020/icon-button/icon-button.component.mjs +23 -9
  11. package/esm2020/paginator/paginator-button/paginator-button.component.mjs +1 -1
  12. package/esm2020/social-button/social-button.component.mjs +19 -24
  13. package/esm2020/split-button/split-button.component.mjs +22 -36
  14. package/fesm2015/agorapulse-ui-components-add-comment.mjs +1 -1
  15. package/fesm2015/agorapulse-ui-components-add-comment.mjs.map +1 -1
  16. package/fesm2015/agorapulse-ui-components-button.mjs +19 -34
  17. package/fesm2015/agorapulse-ui-components-button.mjs.map +1 -1
  18. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs +1 -1
  19. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
  20. package/fesm2015/agorapulse-ui-components-directives.mjs +76 -2
  21. package/fesm2015/agorapulse-ui-components-directives.mjs.map +1 -1
  22. package/fesm2015/agorapulse-ui-components-icon-button.mjs +22 -8
  23. package/fesm2015/agorapulse-ui-components-icon-button.mjs.map +1 -1
  24. package/fesm2015/agorapulse-ui-components-paginator.mjs +1 -1
  25. package/fesm2015/agorapulse-ui-components-paginator.mjs.map +1 -1
  26. package/fesm2015/agorapulse-ui-components-social-button.mjs +18 -23
  27. package/fesm2015/agorapulse-ui-components-social-button.mjs.map +1 -1
  28. package/fesm2015/agorapulse-ui-components-split-button.mjs +21 -35
  29. package/fesm2015/agorapulse-ui-components-split-button.mjs.map +1 -1
  30. package/fesm2020/agorapulse-ui-components-add-comment.mjs +1 -1
  31. package/fesm2020/agorapulse-ui-components-add-comment.mjs.map +1 -1
  32. package/fesm2020/agorapulse-ui-components-button.mjs +19 -34
  33. package/fesm2020/agorapulse-ui-components-button.mjs.map +1 -1
  34. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs +1 -1
  35. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
  36. package/fesm2020/agorapulse-ui-components-directives.mjs +76 -2
  37. package/fesm2020/agorapulse-ui-components-directives.mjs.map +1 -1
  38. package/fesm2020/agorapulse-ui-components-icon-button.mjs +22 -8
  39. package/fesm2020/agorapulse-ui-components-icon-button.mjs.map +1 -1
  40. package/fesm2020/agorapulse-ui-components-paginator.mjs +1 -1
  41. package/fesm2020/agorapulse-ui-components-paginator.mjs.map +1 -1
  42. package/fesm2020/agorapulse-ui-components-social-button.mjs +18 -23
  43. package/fesm2020/agorapulse-ui-components-social-button.mjs.map +1 -1
  44. package/fesm2020/agorapulse-ui-components-split-button.mjs +21 -35
  45. package/fesm2020/agorapulse-ui-components-split-button.mjs.map +1 -1
  46. package/icon-button/icon-button.component.d.ts +6 -3
  47. package/package.json +1 -1
  48. package/social-button/social-button.component.d.ts +7 -10
  49. package/split-button/split-button.component.d.ts +7 -11
  50. package/agorapulse-ui-components-15.0.20.tgz +0 -0
@@ -1,53 +1,47 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output } from '@angular/core';
2
+ import { inject, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output } from '@angular/core';
3
3
  import { NgIf, CommonModule } from '@angular/common';
4
4
  import { SymbolComponent } from '@agorapulse/ui-symbol';
5
- import * as i1 from '@angular/material/menu';
5
+ import * as i2 from '@angular/material/menu';
6
6
  import { MatMenuModule } from '@angular/material/menu';
7
+ import * as i1 from '@agorapulse/ui-components/directives';
8
+ import { BaseButtonDirective } from '@agorapulse/ui-components/directives';
7
9
 
8
10
  class ButtonComponent {
9
- constructor(elementRef) {
10
- this.elementRef = elementRef;
11
+ constructor() {
12
+ this.baseButtonDirective = inject(BaseButtonDirective, { self: true });
13
+ this.disabled = false;
11
14
  this.config = {
12
15
  style: 'primary',
13
16
  color: 'orange',
14
17
  };
15
- this.disabled = false;
16
18
  this.loading = false;
17
19
  this.locked = false;
18
20
  this.menuTrigger = null;
19
21
  this.symbolPosition = 'right';
20
- // eslint-disable-next-line @angular-eslint/no-output-native
21
- this.click = new EventEmitter();
22
- // eslint-disable-next-line @angular-eslint/no-output-native
23
- this.focus = new EventEmitter();
24
- // eslint-disable-next-line @angular-eslint/no-output-native
25
- this.blur = new EventEmitter();
26
22
  this.menuOpened = new EventEmitter();
27
23
  this.menuClosed = new EventEmitter();
28
- this.hostDataTest = elementRef.nativeElement.getAttribute('data-test');
29
- this.hostType = elementRef.nativeElement.getAttribute('type');
30
- }
31
- onClickHandle($event) {
32
- $event.stopImmediatePropagation();
33
- this.buttonElement.nativeElement.blur();
34
- this.click.emit($event);
35
- this.focus.emit($event);
36
24
  }
37
25
  }
38
- ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
39
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ButtonComponent, isStandalone: true, selector: "ap-button[name]", inputs: { ariaLabel: "ariaLabel", config: "config", disabled: "disabled", name: "name", loading: "loading", locked: "locked", menuTrigger: "menuTrigger", symbolPosition: "symbolPosition" }, outputs: { click: "click", focus: "focus", blur: "blur", menuOpened: "menuOpened", menuClosed: "menuClosed" }, providers: [], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }], ngImport: i0, template: "<button\n #button\n #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [attr.type]=\"hostType ?? 'button'\"\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 (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\"\n>\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\">\n </ap-symbol>\n</div>\n", styles: ["ap-button{--loading-bar-width: 50px;display:inline-flex;position:relative}ap-button button{border:none;border-radius:4px;padding:var(--comp-button-padding-horizontal) var(--comp-button-padding-vertical);position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:10px;flex-direction:row;font-size:var(--comp-button-text-size);font-family:var(--comp-button-text-font-family);line-height:var(--comp-button-text-line-height);font-weight:var(--comp-button-text-weight);max-height:36px;min-height:36px;white-space:nowrap;text-overflow:ellipsis;width:100%}ap-button button ap-symbol{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px}ap-button button.inverse{flex-direction:row-reverse}ap-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-button button:disabled{pointer-events:none}@media (hover: hover){ap-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-button button.loading{pointer-events:none}ap-button button.primary{color:var(--ref-color-white)}ap-button button.primary ap-symbol{color:var(--ref-color-white)}ap-button button.primary.orange{background:var(--ref-color-orange-100)}ap-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.secondary.orange{background:var(--ref-color-orange-10);color:var(--ref-color-orange-100)}ap-button button.secondary.orange ap-symbol{color:var(--ref-color-orange-100)}ap-button button.secondary.orange:hover{background-color:var(--ref-color-orange-20)}ap-button button.secondary.orange:active:not(:disabled){background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange:focus:not(:disabled):not(:active){background-color:var(--ref-color-orange-10)}ap-button button.secondary.orange:disabled{background-color:var(--ref-color-orange-10);color:var(--ref-color-orange-20)}ap-button button.secondary.orange:disabled ap-symbol{color:var(--ref-color-orange-20)}ap-button button.secondary.orange.loading{background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.secondary.blue{background:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue:hover{background-color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-10)}ap-button button.secondary.blue:disabled{background-color:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue.loading{background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.stroked{background:var(--ref-color-white);border-width:1px;border-style:solid;color:var(--ref-color-grey-80)}ap-button button.stroked.grey{border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.stroked.grey:hover{border-color:var(--ref-color-grey-40)}ap-button button.stroked.grey:active:not(:disabled){border-color:var(--ref-color-grey-60)}ap-button button.stroked.grey:focus:not(:disabled):not(:active){border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey:disabled{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-80)}ap-button button.stroked.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.stroked.grey.loading{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-40)}ap-button button.stroked.grey.loading ap-symbol{color:var(--ref-color-grey-40)}ap-button button.stroked.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.stroked.blue{border-color:var(--ref-color-electric-blue-60);color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:hover{border-color:var(--ref-color-electric-blue-80)}ap-button button.stroked.blue:active:not(:disabled){border-color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:focus:not(:disabled):not(:active){border-color:var(--ref-color-electric-blue-60)}ap-button button.stroked.blue:disabled{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue.loading{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.transparent{background:transparent}ap-button button.ghost{background:transparent}ap-button button.ghost.grey{color:var(--ref-color-grey-80)}ap-button button.ghost.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.ghost.grey:hover{background-color:var(--ref-color-grey-05)}ap-button button.ghost.grey:active:not(:disabled){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:focus:not(:disabled):not(:active){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:disabled{color:var(--ref-color-grey-20)}ap-button button.ghost.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.ghost.grey.loading:not(.locked){color:var(--ref-color-grey-40)}ap-button button.ghost.grey.loading:not(.locked) ap-symbol{color:var(--ref-color-grey-40)}ap-button button.ghost.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.ghost.blue{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue:hover{background-color:var(--ref-color-electric-blue-10)}ap-button button.ghost.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue.loading{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.ghost.red{color:var(--ref-color-red-100)}ap-button button.ghost.red ap-symbol{color:var(--ref-color-red-100)}ap-button button.ghost.red:hover{background-color:var(--ref-color-red-10)}ap-button button.ghost.red:active:not(:disabled){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:focus:not(:disabled):not(:active){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled{color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-button button.ghost.red.loading{color:var(--ref-color-red-40)}ap-button button.ghost.red.loading ap-symbol{color:var(--ref-color-red-40)}ap-button button.ghost.red .loading-bar{background-color:var(--ref-color-red-100)}ap-button button.locked{background-color:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-button button.locked:hover{border-color:var(--ref-color-purple-40);background-color:var(--ref-color-purple-20)}ap-button button.locked:focus:not(:disabled):not(:active){border-color:var(--ref-color-purple-20);background-color:var(--ref-color-purple-20)}ap-button button.locked:active{border-color:var(--ref-color-purple-60);background-color:var(--ref-color-purple-40)}ap-button .loading-bar{position:absolute;bottom:0;left:var(--comp-button-padding-vertical);width:var(--loading-bar-width);height:5px;border-radius:8px;animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{left:calc(var(--loading-bar-width) * -1)}to{left:100%}}ap-button .locked-symbol{position:absolute;top:-6px;right:-6px;border-radius:100%;background:var(--ref-color-white)}ap-button .locked-symbol ap-symbol{color:var(--ref-color-purple-100)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ButtonComponent, isStandalone: true, selector: "ap-button[name]", inputs: { ariaLabel: "ariaLabel", disabled: "disabled", name: "name", config: "config", loading: "loading", locked: "locked", menuTrigger: "menuTrigger", symbolPosition: "symbolPosition" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed" }, providers: [], hostDirectives: [{ directive: i1.BaseButtonDirective, outputs: ["click", "click", "focus", "focus", "blur", "blur"] }], ngImport: i0, template: "<button\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.type]=\"baseButtonDirective.hostType ?? 'button'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"baseButtonDirective.onClickHandle($event)\"\n (focus)=\"baseButtonDirective.onFocusHandle($event)\"\n (blur)=\"baseButtonDirective.onBlurHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\" class=\"locked-symbol\">\n <ap-symbol symbolId=\"premium-star\" size=\"micro\"> </ap-symbol>\n</div>\n", styles: ["ap-button{--loading-bar-width: 50px;display:inline-flex;position:relative}ap-button button{border:none;border-radius:4px;padding:var(--comp-button-padding-horizontal) var(--comp-button-padding-vertical);position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:10px;flex-direction:row;font-size:var(--comp-button-text-size);font-family:var(--comp-button-text-font-family);line-height:var(--comp-button-text-line-height);font-weight:var(--comp-button-text-weight);max-height:36px;min-height:36px;white-space:nowrap;text-overflow:ellipsis;width:100%}ap-button button ap-symbol{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px}ap-button button.inverse{flex-direction:row-reverse}ap-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-button button:disabled{pointer-events:none}@media (hover: hover){ap-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-button button.loading{pointer-events:none}ap-button button.primary{color:var(--ref-color-white)}ap-button button.primary ap-symbol{color:var(--ref-color-white)}ap-button button.primary.orange{background:var(--ref-color-orange-100)}ap-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.secondary.orange{background:var(--ref-color-orange-10);color:var(--ref-color-orange-100)}ap-button button.secondary.orange ap-symbol{color:var(--ref-color-orange-100)}ap-button button.secondary.orange:hover{background-color:var(--ref-color-orange-20)}ap-button button.secondary.orange:active:not(:disabled){background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange:focus:not(:disabled):not(:active){background-color:var(--ref-color-orange-10)}ap-button button.secondary.orange:disabled{background-color:var(--ref-color-orange-10);color:var(--ref-color-orange-20)}ap-button button.secondary.orange:disabled ap-symbol{color:var(--ref-color-orange-20)}ap-button button.secondary.orange.loading{background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.secondary.blue{background:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue:hover{background-color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-10)}ap-button button.secondary.blue:disabled{background-color:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue.loading{background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.stroked{background:var(--ref-color-white);border-width:1px;border-style:solid;color:var(--ref-color-grey-80)}ap-button button.stroked.grey{border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.stroked.grey:hover{border-color:var(--ref-color-grey-40)}ap-button button.stroked.grey:active:not(:disabled){border-color:var(--ref-color-grey-60)}ap-button button.stroked.grey:focus:not(:disabled):not(:active){border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey:disabled{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-80)}ap-button button.stroked.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.stroked.grey.loading{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-40)}ap-button button.stroked.grey.loading ap-symbol{color:var(--ref-color-grey-40)}ap-button button.stroked.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.stroked.blue{border-color:var(--ref-color-electric-blue-60);color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:hover{border-color:var(--ref-color-electric-blue-80)}ap-button button.stroked.blue:active:not(:disabled){border-color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:focus:not(:disabled):not(:active){border-color:var(--ref-color-electric-blue-60)}ap-button button.stroked.blue:disabled{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue.loading{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.transparent{background:transparent}ap-button button.ghost{background:transparent}ap-button button.ghost.grey{color:var(--ref-color-grey-80)}ap-button button.ghost.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.ghost.grey:hover{background-color:var(--ref-color-grey-05)}ap-button button.ghost.grey:active:not(:disabled){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:focus:not(:disabled):not(:active){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:disabled{color:var(--ref-color-grey-20)}ap-button button.ghost.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.ghost.grey.loading:not(.locked){color:var(--ref-color-grey-40)}ap-button button.ghost.grey.loading:not(.locked) ap-symbol{color:var(--ref-color-grey-40)}ap-button button.ghost.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.ghost.blue{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue:hover{background-color:var(--ref-color-electric-blue-10)}ap-button button.ghost.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue.loading{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.ghost.red{color:var(--ref-color-red-100)}ap-button button.ghost.red ap-symbol{color:var(--ref-color-red-100)}ap-button button.ghost.red:hover{background-color:var(--ref-color-red-10)}ap-button button.ghost.red:active:not(:disabled){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:focus:not(:disabled):not(:active){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled{color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-button button.ghost.red.loading{color:var(--ref-color-red-40)}ap-button button.ghost.red.loading ap-symbol{color:var(--ref-color-red-40)}ap-button button.ghost.red .loading-bar{background-color:var(--ref-color-red-100)}ap-button button.locked{background-color:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-button button.locked:hover{border-color:var(--ref-color-purple-40);background-color:var(--ref-color-purple-20)}ap-button button.locked:focus:not(:disabled):not(:active){border-color:var(--ref-color-purple-20);background-color:var(--ref-color-purple-20)}ap-button button.locked:active{border-color:var(--ref-color-purple-60);background-color:var(--ref-color-purple-40)}ap-button .loading-bar{position:absolute;bottom:0;left:var(--comp-button-padding-vertical);width:var(--loading-bar-width);height:5px;border-radius:8px;animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{left:calc(var(--loading-bar-width) * -1)}to{left:100%}}ap-button .locked-symbol{position:absolute;top:-6px;right:-6px;border-radius:100%;background:var(--ref-color-white)}ap-button .locked-symbol ap-symbol{color:var(--ref-color-purple-100)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ButtonComponent, decorators: [{
41
29
  type: Component,
42
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-button[name]', standalone: true, imports: [NgIf, SymbolComponent, CommonModule, MatMenuModule], providers: [], encapsulation: ViewEncapsulation.None, template: "<button\n #button\n #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [attr.type]=\"hostType ?? 'button'\"\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 (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\"\n>\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\">\n </ap-symbol>\n</div>\n", styles: ["ap-button{--loading-bar-width: 50px;display:inline-flex;position:relative}ap-button button{border:none;border-radius:4px;padding:var(--comp-button-padding-horizontal) var(--comp-button-padding-vertical);position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:10px;flex-direction:row;font-size:var(--comp-button-text-size);font-family:var(--comp-button-text-font-family);line-height:var(--comp-button-text-line-height);font-weight:var(--comp-button-text-weight);max-height:36px;min-height:36px;white-space:nowrap;text-overflow:ellipsis;width:100%}ap-button button ap-symbol{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px}ap-button button.inverse{flex-direction:row-reverse}ap-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-button button:disabled{pointer-events:none}@media (hover: hover){ap-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-button button.loading{pointer-events:none}ap-button button.primary{color:var(--ref-color-white)}ap-button button.primary ap-symbol{color:var(--ref-color-white)}ap-button button.primary.orange{background:var(--ref-color-orange-100)}ap-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.secondary.orange{background:var(--ref-color-orange-10);color:var(--ref-color-orange-100)}ap-button button.secondary.orange ap-symbol{color:var(--ref-color-orange-100)}ap-button button.secondary.orange:hover{background-color:var(--ref-color-orange-20)}ap-button button.secondary.orange:active:not(:disabled){background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange:focus:not(:disabled):not(:active){background-color:var(--ref-color-orange-10)}ap-button button.secondary.orange:disabled{background-color:var(--ref-color-orange-10);color:var(--ref-color-orange-20)}ap-button button.secondary.orange:disabled ap-symbol{color:var(--ref-color-orange-20)}ap-button button.secondary.orange.loading{background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.secondary.blue{background:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue:hover{background-color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-10)}ap-button button.secondary.blue:disabled{background-color:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue.loading{background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.stroked{background:var(--ref-color-white);border-width:1px;border-style:solid;color:var(--ref-color-grey-80)}ap-button button.stroked.grey{border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.stroked.grey:hover{border-color:var(--ref-color-grey-40)}ap-button button.stroked.grey:active:not(:disabled){border-color:var(--ref-color-grey-60)}ap-button button.stroked.grey:focus:not(:disabled):not(:active){border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey:disabled{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-80)}ap-button button.stroked.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.stroked.grey.loading{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-40)}ap-button button.stroked.grey.loading ap-symbol{color:var(--ref-color-grey-40)}ap-button button.stroked.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.stroked.blue{border-color:var(--ref-color-electric-blue-60);color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:hover{border-color:var(--ref-color-electric-blue-80)}ap-button button.stroked.blue:active:not(:disabled){border-color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:focus:not(:disabled):not(:active){border-color:var(--ref-color-electric-blue-60)}ap-button button.stroked.blue:disabled{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue.loading{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.transparent{background:transparent}ap-button button.ghost{background:transparent}ap-button button.ghost.grey{color:var(--ref-color-grey-80)}ap-button button.ghost.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.ghost.grey:hover{background-color:var(--ref-color-grey-05)}ap-button button.ghost.grey:active:not(:disabled){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:focus:not(:disabled):not(:active){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:disabled{color:var(--ref-color-grey-20)}ap-button button.ghost.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.ghost.grey.loading:not(.locked){color:var(--ref-color-grey-40)}ap-button button.ghost.grey.loading:not(.locked) ap-symbol{color:var(--ref-color-grey-40)}ap-button button.ghost.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.ghost.blue{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue:hover{background-color:var(--ref-color-electric-blue-10)}ap-button button.ghost.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue.loading{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.ghost.red{color:var(--ref-color-red-100)}ap-button button.ghost.red ap-symbol{color:var(--ref-color-red-100)}ap-button button.ghost.red:hover{background-color:var(--ref-color-red-10)}ap-button button.ghost.red:active:not(:disabled){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:focus:not(:disabled):not(:active){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled{color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-button button.ghost.red.loading{color:var(--ref-color-red-40)}ap-button button.ghost.red.loading ap-symbol{color:var(--ref-color-red-40)}ap-button button.ghost.red .loading-bar{background-color:var(--ref-color-red-100)}ap-button button.locked{background-color:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-button button.locked:hover{border-color:var(--ref-color-purple-40);background-color:var(--ref-color-purple-20)}ap-button button.locked:focus:not(:disabled):not(:active){border-color:var(--ref-color-purple-20);background-color:var(--ref-color-purple-20)}ap-button button.locked:active{border-color:var(--ref-color-purple-60);background-color:var(--ref-color-purple-40)}ap-button .loading-bar{position:absolute;bottom:0;left:var(--comp-button-padding-vertical);width:var(--loading-bar-width);height:5px;border-radius:8px;animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{left:calc(var(--loading-bar-width) * -1)}to{left:100%}}ap-button .locked-symbol{position:absolute;top:-6px;right:-6px;border-radius:100%;background:var(--ref-color-white)}ap-button .locked-symbol ap-symbol{color:var(--ref-color-purple-100)}\n"] }]
43
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ariaLabel: [{
44
- type: Input
45
- }], config: [{
30
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-button[name]', standalone: true, imports: [NgIf, SymbolComponent, CommonModule, MatMenuModule], providers: [], encapsulation: ViewEncapsulation.None, hostDirectives: [
31
+ {
32
+ directive: BaseButtonDirective,
33
+ //eslint-disable-next-line
34
+ outputs: ['click', 'focus', 'blur'],
35
+ },
36
+ ], template: "<button\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.type]=\"baseButtonDirective.hostType ?? 'button'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"baseButtonDirective.onClickHandle($event)\"\n (focus)=\"baseButtonDirective.onFocusHandle($event)\"\n (blur)=\"baseButtonDirective.onBlurHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\" class=\"locked-symbol\">\n <ap-symbol symbolId=\"premium-star\" size=\"micro\"> </ap-symbol>\n</div>\n", styles: ["ap-button{--loading-bar-width: 50px;display:inline-flex;position:relative}ap-button button{border:none;border-radius:4px;padding:var(--comp-button-padding-horizontal) var(--comp-button-padding-vertical);position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:10px;flex-direction:row;font-size:var(--comp-button-text-size);font-family:var(--comp-button-text-font-family);line-height:var(--comp-button-text-line-height);font-weight:var(--comp-button-text-weight);max-height:36px;min-height:36px;white-space:nowrap;text-overflow:ellipsis;width:100%}ap-button button ap-symbol{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px}ap-button button.inverse{flex-direction:row-reverse}ap-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-button button:disabled{pointer-events:none}@media (hover: hover){ap-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-button button.loading{pointer-events:none}ap-button button.primary{color:var(--ref-color-white)}ap-button button.primary ap-symbol{color:var(--ref-color-white)}ap-button button.primary.orange{background:var(--ref-color-orange-100)}ap-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.secondary.orange{background:var(--ref-color-orange-10);color:var(--ref-color-orange-100)}ap-button button.secondary.orange ap-symbol{color:var(--ref-color-orange-100)}ap-button button.secondary.orange:hover{background-color:var(--ref-color-orange-20)}ap-button button.secondary.orange:active:not(:disabled){background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange:focus:not(:disabled):not(:active){background-color:var(--ref-color-orange-10)}ap-button button.secondary.orange:disabled{background-color:var(--ref-color-orange-10);color:var(--ref-color-orange-20)}ap-button button.secondary.orange:disabled ap-symbol{color:var(--ref-color-orange-20)}ap-button button.secondary.orange.loading{background-color:var(--ref-color-orange-40)}ap-button button.secondary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-button button.secondary.blue{background:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.secondary.blue:hover{background-color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-10)}ap-button button.secondary.blue:disabled{background-color:var(--ref-color-electric-blue-10);color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.secondary.blue.loading{background-color:var(--ref-color-electric-blue-40)}ap-button button.secondary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.stroked{background:var(--ref-color-white);border-width:1px;border-style:solid;color:var(--ref-color-grey-80)}ap-button button.stroked.grey{border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.stroked.grey:hover{border-color:var(--ref-color-grey-40)}ap-button button.stroked.grey:active:not(:disabled){border-color:var(--ref-color-grey-60)}ap-button button.stroked.grey:focus:not(:disabled):not(:active){border-color:var(--ref-color-grey-20)}ap-button button.stroked.grey:disabled{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-80)}ap-button button.stroked.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.stroked.grey.loading{border-color:var(--ref-color-grey-20);color:var(--ref-color-grey-40)}ap-button button.stroked.grey.loading ap-symbol{color:var(--ref-color-grey-40)}ap-button button.stroked.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.stroked.blue{border-color:var(--ref-color-electric-blue-60);color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:hover{border-color:var(--ref-color-electric-blue-80)}ap-button button.stroked.blue:active:not(:disabled){border-color:var(--ref-color-electric-blue-100)}ap-button button.stroked.blue:focus:not(:disabled):not(:active){border-color:var(--ref-color-electric-blue-60)}ap-button button.stroked.blue:disabled{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.stroked.blue.loading{border-color:var(--ref-color-electric-blue-20);color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.stroked.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.transparent{background:transparent}ap-button button.ghost{background:transparent}ap-button button.ghost.grey{color:var(--ref-color-grey-80)}ap-button button.ghost.grey ap-symbol{color:var(--ref-color-grey-80)}ap-button button.ghost.grey:hover{background-color:var(--ref-color-grey-05)}ap-button button.ghost.grey:active:not(:disabled){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:focus:not(:disabled):not(:active){background-color:var(--ref-color-grey-10)}ap-button button.ghost.grey:disabled{color:var(--ref-color-grey-20)}ap-button button.ghost.grey:disabled ap-symbol{color:var(--ref-color-grey-20)}ap-button button.ghost.grey.loading:not(.locked){color:var(--ref-color-grey-40)}ap-button button.ghost.grey.loading:not(.locked) ap-symbol{color:var(--ref-color-grey-40)}ap-button button.ghost.grey .loading-bar{background-color:var(--ref-color-grey-80)}ap-button button.ghost.blue{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue ap-symbol{color:var(--ref-color-electric-blue-100)}ap-button button.ghost.blue:hover{background-color:var(--ref-color-electric-blue-10)}ap-button button.ghost.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:focus:not(:disabled):not(:active){background-color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue:disabled ap-symbol{color:var(--ref-color-electric-blue-20)}ap-button button.ghost.blue.loading{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue.loading ap-symbol{color:var(--ref-color-electric-blue-40)}ap-button button.ghost.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-button button.ghost.red{color:var(--ref-color-red-100)}ap-button button.ghost.red ap-symbol{color:var(--ref-color-red-100)}ap-button button.ghost.red:hover{background-color:var(--ref-color-red-10)}ap-button button.ghost.red:active:not(:disabled){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:focus:not(:disabled):not(:active){background-color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled{color:var(--ref-color-red-20)}ap-button button.ghost.red:disabled ap-symbol{color:var(--ref-color-red-20)}ap-button button.ghost.red.loading{color:var(--ref-color-red-40)}ap-button button.ghost.red.loading ap-symbol{color:var(--ref-color-red-40)}ap-button button.ghost.red .loading-bar{background-color:var(--ref-color-red-100)}ap-button button.locked{background-color:var(--ref-color-purple-10);color:var(--ref-color-purple-80);border:1px solid var(--ref-color-purple-20)}ap-button button.locked:hover{border-color:var(--ref-color-purple-40);background-color:var(--ref-color-purple-20)}ap-button button.locked:focus:not(:disabled):not(:active){border-color:var(--ref-color-purple-20);background-color:var(--ref-color-purple-20)}ap-button button.locked:active{border-color:var(--ref-color-purple-60);background-color:var(--ref-color-purple-40)}ap-button .loading-bar{position:absolute;bottom:0;left:var(--comp-button-padding-vertical);width:var(--loading-bar-width);height:5px;border-radius:8px;animation:slide 1.5s ease-in-out infinite}@keyframes slide{0%{left:calc(var(--loading-bar-width) * -1)}to{left:100%}}ap-button .locked-symbol{position:absolute;top:-6px;right:-6px;border-radius:100%;background:var(--ref-color-white)}ap-button .locked-symbol ap-symbol{color:var(--ref-color-purple-100)}\n"] }]
37
+ }], propDecorators: { ariaLabel: [{
46
38
  type: Input
47
39
  }], disabled: [{
48
40
  type: Input
49
41
  }], name: [{
50
42
  type: Input
43
+ }], config: [{
44
+ type: Input
51
45
  }], loading: [{
52
46
  type: Input
53
47
  }], locked: [{
@@ -56,15 +50,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
56
50
  type: Input
57
51
  }], symbolPosition: [{
58
52
  type: Input
59
- }], buttonElement: [{
60
- type: ViewChild,
61
- args: ['button']
62
- }], click: [{
63
- type: Output
64
- }], focus: [{
65
- type: Output
66
- }], blur: [{
67
- type: Output
68
53
  }], menuOpened: [{
69
54
  type: Output
70
55
  }], menuClosed: [{
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-button.mjs","sources":["../../../libs/ui-components/button/src/button.component.ts","../../../libs/ui-components/button/src/button.component.html","../../../libs/ui-components/button/src/agorapulse-ui-components-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CommonModule, NgIf} from '@angular/common';\nimport {SymbolComponent} from '@agorapulse/ui-symbol';\nimport {MatMenuPanel} from '@angular/material/menu';\nimport {MatMenuModule} from '@angular/material/menu';\n\ntype ButtonConfig =\n | {style: 'primary'; color: 'orange' | 'blue'}\n | {style: 'secondary'; color: 'orange' | 'blue'}\n | {style: 'stroked'; color: 'grey' | 'blue'}\n | {style: 'stroked-transparent'; color: 'grey' | 'blue'}\n | {style: 'ghost'; color: 'grey' | 'blue' | 'red'};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-button[name]',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n imports: [NgIf, SymbolComponent, CommonModule, MatMenuModule],\n providers: [],\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class ButtonComponent {\n @Input() ariaLabel: string;\n @Input() config: ButtonConfig = {\n style: 'primary',\n color: 'orange',\n };\n @Input() disabled: boolean = false;\n @Input() name: string;\n @Input() loading: boolean = false;\n @Input() locked: boolean = false;\n @Input() menuTrigger: MatMenuPanel | null = null;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n @ViewChild('button') buttonElement: ElementRef<HTMLButtonElement>;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click: 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 @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n\n hostDataTest: string;\n hostType: string;\n\n constructor(private elementRef: ElementRef) {\n this.hostDataTest = elementRef.nativeElement.getAttribute('data-test');\n this.hostType = elementRef.nativeElement.getAttribute('type');\n }\n\n onClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n this.buttonElement.nativeElement.blur();\n this.click.emit($event);\n this.focus.emit($event);\n }\n}\n","<button\n #button\n #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [attr.type]=\"hostType ?? 'button'\"\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 (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\"\n>\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\"\n class=\"locked-symbol\">\n <ap-symbol\n symbolId=\"premium-star\"\n size=\"micro\">\n </ap-symbol>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAgCa,eAAe,CAAA;AA0BxB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAxBjC,QAAA,IAAA,CAAA,MAAM,GAAiB;AAC5B,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,KAAK,EAAE,QAAQ;SAClB,CAAC;QACO,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAwB,IAAI,CAAC;QACxC,IAAc,CAAA,cAAA,GAAqB,OAAO,CAAC;;AAI1C,QAAA,IAAA,CAAA,KAAK,GAA6B,IAAI,YAAY,EAAE,CAAC;;AAErD,QAAA,IAAA,CAAA,KAAK,GAA6B,IAAI,YAAY,EAAE,CAAC;;AAErD,QAAA,IAAA,CAAA,IAAI,GAA6B,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAI,YAAY,EAAE,CAAC;QAM1D,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KACjE;AAED,IAAA,aAAa,CAAC,MAAkB,EAAA;QAC5B,MAAM,CAAC,wBAAwB,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;;4GApCQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAJb,EAAE,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BjB,ijDAuCA,EAAA,MAAA,EAAA,CAAA,8ySAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZc,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,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,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,CAAA;2FAKnD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;sCACW,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,iBAAiB,cAEf,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,CAAC,aAClD,EAAE,EAAA,aAAA,EAEE,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,ijDAAA,EAAA,MAAA,EAAA,CAAA,8ySAAA,CAAA,EAAA,CAAA;iGAG5B,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACe,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ,CAAA;gBAGT,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AErDX;;AAEG;;;;"}
1
+ {"version":3,"file":"agorapulse-ui-components-button.mjs","sources":["../../../libs/ui-components/button/src/button.component.ts","../../../libs/ui-components/button/src/button.component.html","../../../libs/ui-components/button/src/agorapulse-ui-components-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CommonModule, NgIf} from '@angular/common';\nimport {SymbolComponent} from '@agorapulse/ui-symbol';\nimport {MatMenuModule, MatMenuPanel} from '@angular/material/menu';\nimport {BaseButtonDirective} from '@agorapulse/ui-components/directives';\n\ntype ButtonConfig =\n | {style: 'primary'; color: 'orange' | 'blue'}\n | {style: 'secondary'; color: 'orange' | 'blue'}\n | {style: 'stroked'; color: 'grey' | 'blue'}\n | {style: 'stroked-transparent'; color: 'grey' | 'blue'}\n | {style: 'ghost'; color: 'grey' | 'blue' | 'red'};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-button[name]',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n imports: [NgIf, SymbolComponent, CommonModule, MatMenuModule],\n providers: [],\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseButtonDirective,\n //eslint-disable-next-line\n outputs: ['click', 'focus', 'blur'],\n },\n ],\n})\nexport class ButtonComponent {\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, {self: true});\n\n @Input() ariaLabel: string;\n @Input() disabled: boolean | undefined = false;\n @Input() name: string;\n @Input() config: ButtonConfig = {\n style: 'primary',\n color: 'orange',\n };\n @Input() loading: boolean | undefined = false;\n @Input() locked: boolean = false;\n @Input() menuTrigger: MatMenuPanel | null = null;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n}\n","<button\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [matMenuTriggerFor]=\"menuTrigger\"\n [class.primary]=\"config.style === 'primary' && !locked\"\n [class.secondary]=\"config.style === 'secondary' && !locked\"\n [class.ghost]=\"config.style === 'ghost' && !locked\"\n [class.stroked]=\"(config.style === 'stroked' || config.style === 'stroked-transparent') && !locked\"\n [class.transparent]=\"config.style === 'stroked-transparent' && !locked\"\n [class.orange]=\"config.color === 'orange' && !locked\"\n [class.blue]=\"config.color === 'blue' && !locked\"\n [class.red]=\"config.color === 'red' && !locked\"\n [class.grey]=\"config.color === 'grey' && !locked\"\n [class.loading]=\"loading && !locked\"\n [class.locked]=\"locked\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled && !locked\"\n [name]=\"name\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.type]=\"baseButtonDirective.hostType ?? 'button'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"baseButtonDirective.onClickHandle($event)\"\n (focus)=\"baseButtonDirective.onFocusHandle($event)\"\n (blur)=\"baseButtonDirective.onBlurHandle($event)\"\n (menuOpened)=\"menuOpened.emit()\"\n (menuClosed)=\"menuClosed.emit()\">\n <ng-content></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n <div *ngIf=\"loading && !locked\" class=\"loading-bar\"></div>\n</button>\n<div *ngIf=\"locked\" class=\"locked-symbol\">\n <ap-symbol symbolId=\"premium-star\" size=\"micro\"> </ap-symbol>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ class ConfirmModalComponent {
41
41
  }
42
42
  }
43
43
  ConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ConfirmModalComponent, deps: [{ token: i1.MatLegacyDialogRef }], target: i0.ɵɵFactoryTarget.Component });
44
- ConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ConfirmModalComponent, isStandalone: true, selector: "ap-confirm-modal", inputs: { contentText: "contentText", footerCancelButtonId: "footerCancelButtonId", footerCancelButtonLabel: "footerCancelButtonLabel", footerConfirmButtonId: "footerConfirmButtonId", footerConfirmButtonLabel: "footerConfirmButtonLabel", headerTitle: "headerTitle" }, ngImport: i0, template: "<ng-template #headerTemplate>\n <h2>{{headerTitle}}</h2>\n</ng-template>\n\n<ng-template #mainTemplate>\n <p>{{contentText}}</p>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ap-button\n name=\"confirm-modal-cancel-button\"\n [config]=\"{\n style: 'ghost',\n color: 'grey'\n }\"\n (click)=\"onCancel()\" [id]=\"footerCancelButtonId\">\n <span>\n {{ footerCancelButtonLabel }}\n </span>\n </ap-button>\n <ap-button\n name=\"confirm-modal-confirm-button\"\n [config]=\"{\n style: 'primary',\n color: 'orange'\n }\"\n cdkFocusInitial [id]=footerConfirmButtonId\n (click)=\"onConfirm()\">\n <span>\n {{ footerConfirmButtonLabel }}\n </span>\n </ap-button>\n</ng-template>\n\n<ap-modal [closable]=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"\n></ap-modal>\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "ap-button[name]", inputs: ["ariaLabel", "config", "disabled", "name", "loading", "locked", "menuTrigger", "symbolPosition"], outputs: ["click", "focus", "blur", "menuOpened", "menuClosed"] }, { kind: "component", type: ModalComponent, selector: "ap-modal", inputs: ["closable", "headerBottomBorderEnabled", "footerTemplate", "footerVisible", "headerTemplate", "headerVisible", "mainTemplate", "config", "sidePaneTemplate", "sidePaneStyle", "containerStyle", "headerStyle", "contentStyle", "footerStyle", "defaultLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ ConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ConfirmModalComponent, isStandalone: true, selector: "ap-confirm-modal", inputs: { contentText: "contentText", footerCancelButtonId: "footerCancelButtonId", footerCancelButtonLabel: "footerCancelButtonLabel", footerConfirmButtonId: "footerConfirmButtonId", footerConfirmButtonLabel: "footerConfirmButtonLabel", headerTitle: "headerTitle" }, ngImport: i0, template: "<ng-template #headerTemplate>\n <h2>{{headerTitle}}</h2>\n</ng-template>\n\n<ng-template #mainTemplate>\n <p>{{contentText}}</p>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ap-button\n name=\"confirm-modal-cancel-button\"\n [config]=\"{\n style: 'ghost',\n color: 'grey'\n }\"\n (click)=\"onCancel()\" [id]=\"footerCancelButtonId\">\n <span>\n {{ footerCancelButtonLabel }}\n </span>\n </ap-button>\n <ap-button\n name=\"confirm-modal-confirm-button\"\n [config]=\"{\n style: 'primary',\n color: 'orange'\n }\"\n cdkFocusInitial [id]=footerConfirmButtonId\n (click)=\"onConfirm()\">\n <span>\n {{ footerConfirmButtonLabel }}\n </span>\n </ap-button>\n</ng-template>\n\n<ap-modal [closable]=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"\n></ap-modal>\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "ap-button[name]", inputs: ["ariaLabel", "disabled", "name", "config", "loading", "locked", "menuTrigger", "symbolPosition"], outputs: ["menuOpened", "menuClosed"] }, { kind: "component", type: ModalComponent, selector: "ap-modal", inputs: ["closable", "headerBottomBorderEnabled", "footerTemplate", "footerVisible", "headerTemplate", "headerVisible", "mainTemplate", "config", "sidePaneTemplate", "sidePaneStyle", "containerStyle", "headerStyle", "contentStyle", "footerStyle", "defaultLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ConfirmModalComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-confirm-modal', imports: [ButtonComponent, ModalComponent], standalone: true, template: "<ng-template #headerTemplate>\n <h2>{{headerTitle}}</h2>\n</ng-template>\n\n<ng-template #mainTemplate>\n <p>{{contentText}}</p>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ap-button\n name=\"confirm-modal-cancel-button\"\n [config]=\"{\n style: 'ghost',\n color: 'grey'\n }\"\n (click)=\"onCancel()\" [id]=\"footerCancelButtonId\">\n <span>\n {{ footerCancelButtonLabel }}\n </span>\n </ap-button>\n <ap-button\n name=\"confirm-modal-confirm-button\"\n [config]=\"{\n style: 'primary',\n color: 'orange'\n }\"\n cdkFocusInitial [id]=footerConfirmButtonId\n (click)=\"onConfirm()\">\n <span>\n {{ footerConfirmButtonLabel }}\n </span>\n </ap-button>\n</ng-template>\n\n<ap-modal [closable]=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"\n></ap-modal>\n" }]
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-confirm-modal.mjs","sources":["../../../libs/ui-components/confirm-modal/src/confirm-modal.component.ts","../../../libs/ui-components/confirm-modal/src/confirm-modal.component.html","../../../libs/ui-components/confirm-modal/src/agorapulse-ui-components-confirm-modal.ts"],"sourcesContent":["import {ModalComponent, ModalConfig} from '@agorapulse/ui-components/modal';\nimport {ComponentType} from '@angular/cdk/portal';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef} from '@angular/material/legacy-dialog';\nimport {ConfirmModalTexts} from './confirm-modal-texts.model';\nimport {ButtonComponent} from \"@agorapulse/ui-components/button\";\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-confirm-modal',\n templateUrl: 'confirm-modal.component.html',\n imports: [ButtonComponent, ModalComponent],\n standalone: true,\n})\nexport class ConfirmModalComponent {\n @Input() contentText: string = '';\n @Input() footerCancelButtonId: string = 'cancel';\n @Input() footerCancelButtonLabel: string = '';\n @Input() footerConfirmButtonId: string = 'confirm';\n @Input() footerConfirmButtonLabel: string = '';\n @Input() headerTitle: string = '';\n\n constructor(public dialogRef: MatDialogRef<ComponentType<any>>) {\n dialogRef.disableClose = true;\n }\n\n onCancel() {\n this.dialogRef.close(false);\n }\n\n onConfirm() {\n this.dialogRef.close(true);\n }\n\n static open(dialog: MatDialog, confirmModalTexts: ConfirmModalTexts, modalConfig: ModalConfig = null) {\n if (!modalConfig) {\n modalConfig = {};\n }\n if (!modalConfig.matDialogConfig) {\n modalConfig.matDialogConfig = {\n width: '550px',\n };\n }\n const confirmModal = ModalComponent.openWithComponent(dialog, modalConfig, ConfirmModalComponent);\n confirmModal.componentInstance.contentText = confirmModalTexts.contentText;\n confirmModal.componentInstance.footerConfirmButtonId = confirmModalTexts.footerConfirmButtonId;\n confirmModal.componentInstance.footerConfirmButtonLabel = confirmModalTexts.footerConfirmButtonLabel;\n confirmModal.componentInstance.footerCancelButtonId = confirmModalTexts.footerCancelButtonId;\n confirmModal.componentInstance.footerCancelButtonLabel = confirmModalTexts.footerCancelButtonLabel;\n confirmModal.componentInstance.headerTitle = confirmModalTexts.headerTitle;\n return confirmModal;\n }\n}\n","<ng-template #headerTemplate>\n <h2>{{headerTitle}}</h2>\n</ng-template>\n\n<ng-template #mainTemplate>\n <p>{{contentText}}</p>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ap-button\n name=\"confirm-modal-cancel-button\"\n [config]=\"{\n style: 'ghost',\n color: 'grey'\n }\"\n (click)=\"onCancel()\" [id]=\"footerCancelButtonId\">\n <span>\n {{ footerCancelButtonLabel }}\n </span>\n </ap-button>\n <ap-button\n name=\"confirm-modal-confirm-button\"\n [config]=\"{\n style: 'primary',\n color: 'orange'\n }\"\n cdkFocusInitial [id]=footerConfirmButtonId\n (click)=\"onConfirm()\">\n <span>\n {{ footerConfirmButtonLabel }}\n </span>\n </ap-button>\n</ng-template>\n\n<ap-modal [closable]=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"\n></ap-modal>\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-confirm-modal.mjs","sources":["../../../libs/ui-components/confirm-modal/src/confirm-modal.component.ts","../../../libs/ui-components/confirm-modal/src/confirm-modal.component.html","../../../libs/ui-components/confirm-modal/src/agorapulse-ui-components-confirm-modal.ts"],"sourcesContent":["import {ModalComponent, ModalConfig} from '@agorapulse/ui-components/modal';\nimport {ComponentType} from '@angular/cdk/portal';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef} from '@angular/material/legacy-dialog';\nimport {ConfirmModalTexts} from './confirm-modal-texts.model';\nimport {ButtonComponent} from \"@agorapulse/ui-components/button\";\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-confirm-modal',\n templateUrl: 'confirm-modal.component.html',\n imports: [ButtonComponent, ModalComponent],\n standalone: true,\n})\nexport class ConfirmModalComponent {\n @Input() contentText: string = '';\n @Input() footerCancelButtonId: string = 'cancel';\n @Input() footerCancelButtonLabel: string = '';\n @Input() footerConfirmButtonId: string = 'confirm';\n @Input() footerConfirmButtonLabel: string = '';\n @Input() headerTitle: string = '';\n\n constructor(public dialogRef: MatDialogRef<ComponentType<any>>) {\n dialogRef.disableClose = true;\n }\n\n onCancel() {\n this.dialogRef.close(false);\n }\n\n onConfirm() {\n this.dialogRef.close(true);\n }\n\n static open(dialog: MatDialog, confirmModalTexts: ConfirmModalTexts, modalConfig: ModalConfig = null) {\n if (!modalConfig) {\n modalConfig = {};\n }\n if (!modalConfig.matDialogConfig) {\n modalConfig.matDialogConfig = {\n width: '550px',\n };\n }\n const confirmModal = ModalComponent.openWithComponent(dialog, modalConfig, ConfirmModalComponent);\n confirmModal.componentInstance.contentText = confirmModalTexts.contentText;\n confirmModal.componentInstance.footerConfirmButtonId = confirmModalTexts.footerConfirmButtonId;\n confirmModal.componentInstance.footerConfirmButtonLabel = confirmModalTexts.footerConfirmButtonLabel;\n confirmModal.componentInstance.footerCancelButtonId = confirmModalTexts.footerCancelButtonId;\n confirmModal.componentInstance.footerCancelButtonLabel = confirmModalTexts.footerCancelButtonLabel;\n confirmModal.componentInstance.headerTitle = confirmModalTexts.headerTitle;\n return confirmModal;\n }\n}\n","<ng-template #headerTemplate>\n <h2>{{headerTitle}}</h2>\n</ng-template>\n\n<ng-template #mainTemplate>\n <p>{{contentText}}</p>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ap-button\n name=\"confirm-modal-cancel-button\"\n [config]=\"{\n style: 'ghost',\n color: 'grey'\n }\"\n (click)=\"onCancel()\" [id]=\"footerCancelButtonId\">\n <span>\n {{ footerCancelButtonLabel }}\n </span>\n </ap-button>\n <ap-button\n name=\"confirm-modal-confirm-button\"\n [config]=\"{\n style: 'primary',\n color: 'orange'\n }\"\n cdkFocusInitial [id]=footerConfirmButtonId\n (click)=\"onConfirm()\">\n <span>\n {{ footerConfirmButtonLabel }}\n </span>\n </ap-button>\n</ng-template>\n\n<ap-modal [closable]=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"\n></ap-modal>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostListener, Input, EventEmitter, Output, forwardRef, Attribute } from '@angular/core';
2
+ import { Directive, HostListener, inject, ElementRef, ChangeDetectorRef, EventEmitter, Output, Input, forwardRef, Attribute } from '@angular/core';
3
3
  import { NG_VALIDATORS } from '@angular/forms';
4
4
  import { fromEvent } from 'rxjs';
5
5
  import * as i1 from '@agorapulse/ui-components/tooltip-neo';
@@ -46,6 +46,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
46
46
  args: ['input']
47
47
  }] } });
48
48
 
49
+ class BaseButtonDirective {
50
+ constructor() {
51
+ this.elementRef = inject(ElementRef);
52
+ this.changeDetectorRef = inject(ChangeDetectorRef);
53
+ // eslint-disable-next-line @angular-eslint/no-output-native
54
+ this.click = new EventEmitter();
55
+ // eslint-disable-next-line @angular-eslint/no-output-native
56
+ this.focus = new EventEmitter();
57
+ // eslint-disable-next-line @angular-eslint/no-output-native
58
+ this.blur = new EventEmitter();
59
+ this.hostType = 'button';
60
+ this.focused = false;
61
+ this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
62
+ this.hostId = this.elementRef.nativeElement.getAttribute('id');
63
+ this.elementRef.nativeElement.removeAttribute('data-test');
64
+ this.elementRef.nativeElement.removeAttribute('id');
65
+ }
66
+ // Sometimes attributes like the id, or the data-test are dynamic and can change between the constructor and the initialization.
67
+ // In order to have the last attributes value we check if it changes, and if it does, we run a mark for check to update the view.
68
+ ngAfterViewInit() {
69
+ const hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');
70
+ const hostId = this.elementRef.nativeElement.getAttribute('id');
71
+ if (hostDataTest && this.hostDataTest !== hostDataTest) {
72
+ this.hostDataTest = hostDataTest;
73
+ this.elementRef.nativeElement.removeAttribute('data-test');
74
+ this.changeDetectorRef.markForCheck();
75
+ }
76
+ if (hostId && this.hostId !== hostId) {
77
+ this.hostId = hostId;
78
+ this.elementRef.nativeElement.removeAttribute('id');
79
+ this.changeDetectorRef.markForCheck();
80
+ }
81
+ this.buttonElement = this.elementRef.nativeElement.children[0];
82
+ }
83
+ onClickHandle($event) {
84
+ $event.stopImmediatePropagation();
85
+ this.buttonElement.blur();
86
+ this.click.emit($event);
87
+ this.focus.emit($event);
88
+ }
89
+ onBlurHandle($event) {
90
+ this.focused = false;
91
+ this.blur.emit($event);
92
+ }
93
+ onFocusHandle($event) {
94
+ this.focused = true;
95
+ this.focus.emit($event);
96
+ }
97
+ onSpaceKeyUp(event) {
98
+ if (this.focused) {
99
+ event.preventDefault();
100
+ this.buttonElement.click();
101
+ }
102
+ }
103
+ }
104
+ BaseButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: BaseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
105
+ BaseButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: BaseButtonDirective, isStandalone: true, selector: "[apBaseButton]", outputs: { click: "click", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" } }, ngImport: i0 });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: BaseButtonDirective, decorators: [{
107
+ type: Directive,
108
+ args: [{
109
+ selector: '[apBaseButton]',
110
+ standalone: true,
111
+ }]
112
+ }], ctorParameters: function () { return []; }, propDecorators: { click: [{
113
+ type: Output
114
+ }], focus: [{
115
+ type: Output
116
+ }], blur: [{
117
+ type: Output
118
+ }], onSpaceKeyUp: [{
119
+ type: HostListener,
120
+ args: ['window:keyup.space', ['$event']]
121
+ }] } });
122
+
49
123
  class DefaultImageDirective {
50
124
  updateUrl() {
51
125
  if (this.default) {
@@ -511,5 +585,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
511
585
  * Generated bundle index. Do not edit.
512
586
  */
513
587
 
514
- export { AutosizeTextareaDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective, TruncateTooltipDirective };
588
+ export { AutosizeTextareaDirective, BaseButtonDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective, TruncateTooltipDirective };
515
589
  //# sourceMappingURL=agorapulse-ui-components-directives.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-directives.mjs","sources":["../../../libs/ui-components/directives/src/autosize-textarea.directive.ts","../../../libs/ui-components/directives/src/default-image.directive.ts","../../../libs/ui-components/directives/src/ellipsis.directive.ts","../../../libs/ui-components/directives/src/equal-validator.directive.ts","../../../libs/ui-components/directives/src/frozen-gif.directive.ts","../../../libs/ui-components/directives/src/multi-style-text.directive.ts","../../../libs/ui-components/directives/src/truncate-tooltip.directive.ts","../../../libs/ui-components/directives/src/agorapulse-ui-components-directives.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: 'textarea[apAutosize]',\n standalone: true\n})\n/**\n * expand textarea to fit content. Doesn't shrink.\n */\nexport class AutosizeTextareaDirective implements AfterContentChecked {\n\n static maxHeight: number = 200;\n\n constructor(public element: ElementRef) {}\n\n @HostListener('input')\n public onInput() {\n this.resize();\n }\n\n public ngAfterContentChecked() {\n this.resize();\n }\n\n public resize() {\n const style = this.element.nativeElement.style;\n const scrollHeight = this.element.nativeElement.scrollHeight;\n const actualHeight = this.element.nativeElement.offsetHeight;\n if (AutosizeTextareaDirective.maxHeight < scrollHeight) {\n // we arrived at the max\n style.overflow = 'auto';\n style.height = `${AutosizeTextareaDirective.maxHeight}px`;\n } else if (actualHeight < scrollHeight) {\n style.overflow = 'hidden';\n style.height = `${scrollHeight}px`;\n }\n }\n\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'img[default]',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '(error)': 'updateUrl()',\n '[src]': 'src'\n }\n})\nexport class DefaultImageDirective {\n @Input() src: string;\n @Input() default: string;\n\n updateUrl() {\n if (this.default) {\n this.src = this.default;\n } else {\n this.src = 'assets/lib-ui-components/img/default-avatar.png';\n }\n }\n}\n","import {AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output,} from '@angular/core';\n\n/**\n * Removes excess text from element until it fits in elements\n * and appends a ellipsis symbol to end of text. This requires that\n * the elements height be fixed\n *\n * @example\n * ```html\n * <p apEllipsis>Ullamco esse laborum</p>\n * ```\n *\n */\n@Directive({\n selector: '[apEllipsis]',\n standalone: true,\n})\nexport class EllipsisDirective implements AfterContentChecked {\n\n @Input() apEllipsisSeparator: string;\n @Input() apEllipsisClip: boolean = false;\n @Input() apEllipsisIndex: number;\n @Input() apEllipsisChar: string = '...';\n @Input() apEllipsisClickable: boolean = false;\n\n @Output() apEllipsisRemovedElementsCount = new EventEmitter<number>();\n @Output() apEllipsisRemovedText = new EventEmitter<string>();\n\n private get hasOverflow(): boolean {\n const el: HTMLElement = this.el.nativeElement;\n return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);\n }\n\n constructor(private el: ElementRef) { }\n\n ngAfterContentChecked() {\n this.clipText();\n }\n\n private clipText(): void {\n const el: HTMLElement = this.el.nativeElement;\n let text = el.innerText;\n let removedText = '';\n if (this.apEllipsisIndex > -1) {\n removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;\n text = text.substring(0, this.apEllipsisIndex);\n el.innerText = `${text}${this.apEllipsisChar}`;\n\n if (this.apEllipsisClickable) {\n el.addEventListener('click', () => {\n el.innerText = `${text}${removedText}`;\n });\n }\n } else {\n while (this.hasOverflow && text.length > 0) {\n removedText = text[text.length - 1] + removedText;\n text = text.substring(0, text.length - 1);\n el.innerText = `${text}${this.apEllipsisChar}`;\n }\n }\n\n if (this.apEllipsisSeparator) {\n const removedElementsCount = removedText.split(this.apEllipsisSeparator)\n .filter(element => !!element && element.length > 0).length;\n if (removedElementsCount > 0) {\n this.apEllipsisRemovedElementsCount.emit(removedElementsCount);\n }\n }\n if (removedText && removedText.length > 0) {\n this.apEllipsisRemovedText.emit(removedText);\n }\n }\n}\n","// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2\nimport { Directive, forwardRef, Attribute } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidatorDirective),\n multi: true\n }\n ],\n standalone: true,\n})\nexport class EqualValidatorDirective implements Validator {\n\n constructor(@Attribute('validateEqual') public validateEqual: string,\n @Attribute('validateEqualReference') public validateEqualReference: string) {}\n\n validate(self: AbstractControl): { [key: string]: any } {\n const other = self.root.get(this.validateEqual);\n if (other) {\n if (this.isReference()) {\n if (self.value === other.value) {\n delete other.errors['validateEqual'];\n if (!Object.keys(other.errors).length) {\n other.setErrors(null);\n }\n } else {\n other.setErrors({ validateEqual: false });\n }\n } else if (self.value !== other.value) {\n return { validateEqual: false };\n }\n }\n return null;\n }\n\n private isReference(): boolean {\n if (!this.validateEqualReference) {\n return false;\n }\n return this.validateEqualReference === 'true';\n }\n\n}\n","import {Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\n\nexport class GifService {\n static isGif(src: string) {\n return src && src.split('?')[0].endsWith('.gif');\n }\n}\n\n/**\n * If the image is a GIF then replace the img element by a canvas containing a frozen gif.\n * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the\n * new canvas element will have the same condition.\n * Note 2: the image must not have the properties \"display\" and \"visibility\" in its style. Since they are used to frozen\n * the GIF. You need to apply this properties on the parent element.\n * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched\n * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.\n */\n\n@Directive({\n selector: 'img[apFrozenGif]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[src]': 'src'\n },\n standalone: true,\n})\nexport class FrozenGifDirective implements OnChanges {\n @Input() src: string;\n @Input() apFrozen = true;\n // Add all the events that need to be propagated.\n @Input() apGifEvents: string[] = ['click'];\n\n private readonly element: HTMLImageElement;\n private canvas: HTMLCanvasElement;\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n if (!(element instanceof HTMLImageElement)) {\n return;\n }\n\n this.element = element;\n }\n\n ngOnChanges(changes: any): void {\n let freeze = false;\n if (changes.src) {\n freeze = true;\n }\n if (changes.frozen) {\n if (changes.frozen.currentValue) {\n freeze = true;\n } else {\n this.unfreeze();\n }\n }\n\n if (freeze) {\n this.freeze();\n }\n\n }\n\n private freeze() {\n if (!GifService.isGif(this.src) || !this.apFrozen) {\n this.unfreeze();\n return;\n }\n\n // hack to avoid displaying the GIF before replacing it by the canvas\n this.element.style.visibility = 'hidden';\n this.element.addEventListener('load', () => this.addCanvas());\n }\n\n private addCanvas() {\n if (this.canvas) {\n this.canvas.remove();\n }\n\n this.canvas = document.createElement('canvas');\n this.canvas.width = this.element.width;\n this.canvas.height = this.element.height;\n this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);\n for (let i = 0; i < this.element.attributes.length; i++) {\n const attr = this.element.attributes[i];\n if (attr.name === 'id') { // avoid two elements with the same id\n this.canvas.setAttribute('id', attr.value + '_frozenGif');\n } else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {\n // remove the added 'visibility: hidden' and 'display: none'\n const styleValue = attr.value;\n this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));\n } else if (attr.name !== '\"') { // test for invalid attributes\n this.canvas.setAttribute(attr.name, attr.value);\n }\n }\n\n this.addEvents();\n\n this.element.parentNode.insertBefore(this.canvas, this.element);\n this.element.style.display = 'none';\n }\n\n private addEvents() {\n this.apGifEvents.forEach((eventName: string) => {\n this.canvas.addEventListener(eventName, (ev: Event) => this.element.dispatchEvent(\n // wm: find a way to dispatch the right event type\n new Event(ev.type, ev)\n ));\n });\n }\n\n private unfreeze() {\n if (this.canvas) {\n this.canvas.remove();\n this.canvas = null;\n }\n this.element.style.visibility = 'inherit';\n this.element.style.display = 'inherit';\n }\n}\n","import {Directive, Input, Renderer2, ElementRef, Output, EventEmitter} from '@angular/core';\n\nconst PART_START = '<ng-container data-mst=\"';\nconst PARSE_MIDDLE = '\">';\nconst PARSE_END = '</ng-container>';\nconst DATA_SEPARATOR = ',';\nconst OPTIONAL_EVENTS_SEPARATOR = ';';\n\ninterface Part {\n content: string;\n clazz?: string[]; // Not defined on sterile text\n clickName?: string; // Not defined on sterile text\n}\n\n/**\n * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.\n * The specific tags must this schema: <ng-container data-mst=\"STYLING-CLASSES\">TEXT</ng-container>.\n * Example: 'Lorem <ng-container data-mst=\"my-style\">ipsum</ng-container> dolor sit amet'.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[multiStyleText]',\n standalone: true,\n})\nexport class MultiStyleTextDirective {\n\n private childrenCreated: any[] = [];\n\n @Input() set multiStyleText(fullText: string) {\n // First remove previously added children (on update).\n for (const child of this.childrenCreated) {\n this.renderer.removeChild(this.elRef.nativeElement, child);\n }\n\n if (fullText && fullText.length > 0) {\n MultiStyleTextDirective.parse(fullText).forEach((part: Part) => {\n if (part.clazz || part.clickName) {\n // Parsed item with styling classes and/or event listening.\n const span = this.renderer.createElement('span');\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(span, text);\n if (part.clazz) {\n part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));\n }\n if (part.clickName) {\n this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));\n }\n this.renderer.appendChild(this.elRef.nativeElement, span);\n this.childrenCreated.push(span);\n } else {\n // Specific of part without styling classes (could be used to get event listening only)\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(this.elRef.nativeElement, text);\n this.childrenCreated.push(text);\n }\n });\n }\n }\n\n @Output() partEvent = new EventEmitter<string>();\n\n public constructor(\n private elRef: ElementRef,\n private renderer: Renderer2\n ) {\n }\n\n private static parse(toParse: string): Part[] {\n const parts: Part[] = [];\n let startIndex = toParse.indexOf(PART_START);\n while (startIndex >= 0) {\n if (startIndex > 0) {\n // Optional text before first parsed part.\n parts.push({content: toParse.substring(0, startIndex)});\n }\n const elem = this.cutFirstGroup(toParse.substring(startIndex));\n if (elem === 'invalid') {\n return [];\n } else if (elem) {\n parts.push({\n content: elem.content,\n clazz: elem.classes,\n clickName: elem.clickName\n });\n toParse = elem.rest;\n startIndex = toParse.indexOf(PART_START);\n } else {\n parts.push({content: toParse});\n }\n }\n // Very end\n if (toParse.length > 0) {\n parts.push({content: toParse});\n }\n return parts;\n }\n\n private static cutFirstGroup(toCut: string): {content: string, classes: string[], clickName: string, rest: string} | 'invalid' | null {\n if (!toCut.startsWith(PART_START)) {\n // String doesn't start with expected parser start.\n return null;\n }\n\n const afterParserStart = toCut.substring(PART_START.length);\n let index = afterParserStart.indexOf(PARSE_MIDDLE);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const data = afterParserStart.substring(0, index);\n let classes;\n let clickName;\n const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);\n if (eventsPartSeparatorIndex > 0) {\n // Case the data contains events part with dedicated separator\n classes = data.substring(0, eventsPartSeparatorIndex);\n clickName = data.substring(eventsPartSeparatorIndex + 1);\n } else {\n // Otherwise, only design classes are provided\n classes = data;\n clickName = undefined;\n }\n let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);\n index = rest.indexOf(PARSE_END);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const content = rest.substring(0, index);\n rest = rest.substring(index + PARSE_END.length);\n\n return {\n content,\n classes: classes.split(DATA_SEPARATOR),\n clickName,\n rest\n };\n }\n}\n","// Agorapulse\nimport {TooltipNeoDirective, TooltipNeoParams} from '@agorapulse/ui-components/tooltip-neo';\n// Angular\nimport {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\n// Third-parties\nimport {fromEvent, Subscription} from 'rxjs';\nimport {TruncateTooltipNeoParams} from './truncate-tooltip.model';\n\n@Directive({selector: '[apTooltipNeo][truncateTooltip]', standalone: true,})\nexport class TruncateTooltipDirective implements OnInit, OnDestroy {\n\n @Input() truncateTooltip: string | TruncateTooltipNeoParams;\n\n private elementRefMouseOver$: Subscription;\n\n constructor(\n private tooltipNeo: TooltipNeoDirective,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n private updateTruncateState(): void {\n const element = this.elementRef.nativeElement;\n const truncated = element.scrollWidth > element.clientWidth;\n\n let defaultTooltip: string | TooltipNeoParams = '';\n // In case a default tooltip content exists, even not truncated, the tooltip stay displayed\n if (typeof(this.truncateTooltip) === 'object' && this.truncateTooltip.defaultContent) {\n defaultTooltip = {\n ...this.truncateTooltip,\n content: this.truncateTooltip.defaultContent\n }\n }\n this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : defaultTooltip;\n\n }\n\n ngOnInit(): void {\n this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')\n .subscribe(() => this.updateTruncateState());\n }\n\n ngOnDestroy(): void {\n this.elementRefMouseOver$.unsubscribe();\n }\n}\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-directives.mjs","sources":["../../../libs/ui-components/directives/src/autosize-textarea.directive.ts","../../../libs/ui-components/directives/src/base-button.directive.ts","../../../libs/ui-components/directives/src/default-image.directive.ts","../../../libs/ui-components/directives/src/ellipsis.directive.ts","../../../libs/ui-components/directives/src/equal-validator.directive.ts","../../../libs/ui-components/directives/src/frozen-gif.directive.ts","../../../libs/ui-components/directives/src/multi-style-text.directive.ts","../../../libs/ui-components/directives/src/truncate-tooltip.directive.ts","../../../libs/ui-components/directives/src/agorapulse-ui-components-directives.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: 'textarea[apAutosize]',\n standalone: true\n})\n/**\n * expand textarea to fit content. Doesn't shrink.\n */\nexport class AutosizeTextareaDirective implements AfterContentChecked {\n\n static maxHeight: number = 200;\n\n constructor(public element: ElementRef) {}\n\n @HostListener('input')\n public onInput() {\n this.resize();\n }\n\n public ngAfterContentChecked() {\n this.resize();\n }\n\n public resize() {\n const style = this.element.nativeElement.style;\n const scrollHeight = this.element.nativeElement.scrollHeight;\n const actualHeight = this.element.nativeElement.offsetHeight;\n if (AutosizeTextareaDirective.maxHeight < scrollHeight) {\n // we arrived at the max\n style.overflow = 'auto';\n style.height = `${AutosizeTextareaDirective.maxHeight}px`;\n } else if (actualHeight < scrollHeight) {\n style.overflow = 'hidden';\n style.height = `${scrollHeight}px`;\n }\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[apBaseButton]',\n standalone: true,\n})\nexport class BaseButtonDirective implements AfterViewInit {\n private elementRef: ElementRef = inject(ElementRef);\n private changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n buttonElement: HTMLButtonElement;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click: 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 hostId: string;\n hostDataTest: string;\n hostType: string = 'button';\n focused: boolean = false;\n constructor() {\n this.hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');\n this.hostId = this.elementRef.nativeElement.getAttribute('id');\n this.elementRef.nativeElement.removeAttribute('data-test');\n this.elementRef.nativeElement.removeAttribute('id');\n }\n\n // Sometimes attributes like the id, or the data-test are dynamic and can change between the constructor and the initialization.\n // In order to have the last attributes value we check if it changes, and if it does, we run a mark for check to update the view.\n ngAfterViewInit(): void {\n const hostDataTest = this.elementRef.nativeElement.getAttribute('data-test');\n const hostId = this.elementRef.nativeElement.getAttribute('id');\n if (hostDataTest && this.hostDataTest !== hostDataTest) {\n this.hostDataTest = hostDataTest;\n this.elementRef.nativeElement.removeAttribute('data-test');\n this.changeDetectorRef.markForCheck();\n }\n if (hostId && this.hostId !== hostId) {\n this.hostId = hostId;\n this.elementRef.nativeElement.removeAttribute('id');\n this.changeDetectorRef.markForCheck();\n }\n this.buttonElement = this.elementRef.nativeElement.children[0];\n }\n\n onClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n this.buttonElement.blur();\n this.click.emit($event);\n this.focus.emit($event);\n }\n\n onBlurHandle($event: FocusEvent): void {\n this.focused = false;\n this.blur.emit($event);\n }\n\n onFocusHandle($event: FocusEvent): void {\n this.focused = true;\n this.focus.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.click();\n }\n }\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'img[default]',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '(error)': 'updateUrl()',\n '[src]': 'src'\n }\n})\nexport class DefaultImageDirective {\n @Input() src: string;\n @Input() default: string;\n\n updateUrl() {\n if (this.default) {\n this.src = this.default;\n } else {\n this.src = 'assets/lib-ui-components/img/default-avatar.png';\n }\n }\n}\n","import {AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output,} from '@angular/core';\n\n/**\n * Removes excess text from element until it fits in elements\n * and appends a ellipsis symbol to end of text. This requires that\n * the elements height be fixed\n *\n * @example\n * ```html\n * <p apEllipsis>Ullamco esse laborum</p>\n * ```\n *\n */\n@Directive({\n selector: '[apEllipsis]',\n standalone: true,\n})\nexport class EllipsisDirective implements AfterContentChecked {\n\n @Input() apEllipsisSeparator: string;\n @Input() apEllipsisClip: boolean = false;\n @Input() apEllipsisIndex: number;\n @Input() apEllipsisChar: string = '...';\n @Input() apEllipsisClickable: boolean = false;\n\n @Output() apEllipsisRemovedElementsCount = new EventEmitter<number>();\n @Output() apEllipsisRemovedText = new EventEmitter<string>();\n\n private get hasOverflow(): boolean {\n const el: HTMLElement = this.el.nativeElement;\n return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);\n }\n\n constructor(private el: ElementRef) { }\n\n ngAfterContentChecked() {\n this.clipText();\n }\n\n private clipText(): void {\n const el: HTMLElement = this.el.nativeElement;\n let text = el.innerText;\n let removedText = '';\n if (this.apEllipsisIndex > -1) {\n removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;\n text = text.substring(0, this.apEllipsisIndex);\n el.innerText = `${text}${this.apEllipsisChar}`;\n\n if (this.apEllipsisClickable) {\n el.addEventListener('click', () => {\n el.innerText = `${text}${removedText}`;\n });\n }\n } else {\n while (this.hasOverflow && text.length > 0) {\n removedText = text[text.length - 1] + removedText;\n text = text.substring(0, text.length - 1);\n el.innerText = `${text}${this.apEllipsisChar}`;\n }\n }\n\n if (this.apEllipsisSeparator) {\n const removedElementsCount = removedText.split(this.apEllipsisSeparator)\n .filter(element => !!element && element.length > 0).length;\n if (removedElementsCount > 0) {\n this.apEllipsisRemovedElementsCount.emit(removedElementsCount);\n }\n }\n if (removedText && removedText.length > 0) {\n this.apEllipsisRemovedText.emit(removedText);\n }\n }\n}\n","// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2\nimport { Directive, forwardRef, Attribute } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidatorDirective),\n multi: true\n }\n ],\n standalone: true,\n})\nexport class EqualValidatorDirective implements Validator {\n\n constructor(@Attribute('validateEqual') public validateEqual: string,\n @Attribute('validateEqualReference') public validateEqualReference: string) {}\n\n validate(self: AbstractControl): { [key: string]: any } {\n const other = self.root.get(this.validateEqual);\n if (other) {\n if (this.isReference()) {\n if (self.value === other.value) {\n delete other.errors['validateEqual'];\n if (!Object.keys(other.errors).length) {\n other.setErrors(null);\n }\n } else {\n other.setErrors({ validateEqual: false });\n }\n } else if (self.value !== other.value) {\n return { validateEqual: false };\n }\n }\n return null;\n }\n\n private isReference(): boolean {\n if (!this.validateEqualReference) {\n return false;\n }\n return this.validateEqualReference === 'true';\n }\n\n}\n","import {Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\n\nexport class GifService {\n static isGif(src: string) {\n return src && src.split('?')[0].endsWith('.gif');\n }\n}\n\n/**\n * If the image is a GIF then replace the img element by a canvas containing a frozen gif.\n * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the\n * new canvas element will have the same condition.\n * Note 2: the image must not have the properties \"display\" and \"visibility\" in its style. Since they are used to frozen\n * the GIF. You need to apply this properties on the parent element.\n * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched\n * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.\n */\n\n@Directive({\n selector: 'img[apFrozenGif]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[src]': 'src'\n },\n standalone: true,\n})\nexport class FrozenGifDirective implements OnChanges {\n @Input() src: string;\n @Input() apFrozen = true;\n // Add all the events that need to be propagated.\n @Input() apGifEvents: string[] = ['click'];\n\n private readonly element: HTMLImageElement;\n private canvas: HTMLCanvasElement;\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n if (!(element instanceof HTMLImageElement)) {\n return;\n }\n\n this.element = element;\n }\n\n ngOnChanges(changes: any): void {\n let freeze = false;\n if (changes.src) {\n freeze = true;\n }\n if (changes.frozen) {\n if (changes.frozen.currentValue) {\n freeze = true;\n } else {\n this.unfreeze();\n }\n }\n\n if (freeze) {\n this.freeze();\n }\n\n }\n\n private freeze() {\n if (!GifService.isGif(this.src) || !this.apFrozen) {\n this.unfreeze();\n return;\n }\n\n // hack to avoid displaying the GIF before replacing it by the canvas\n this.element.style.visibility = 'hidden';\n this.element.addEventListener('load', () => this.addCanvas());\n }\n\n private addCanvas() {\n if (this.canvas) {\n this.canvas.remove();\n }\n\n this.canvas = document.createElement('canvas');\n this.canvas.width = this.element.width;\n this.canvas.height = this.element.height;\n this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);\n for (let i = 0; i < this.element.attributes.length; i++) {\n const attr = this.element.attributes[i];\n if (attr.name === 'id') { // avoid two elements with the same id\n this.canvas.setAttribute('id', attr.value + '_frozenGif');\n } else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {\n // remove the added 'visibility: hidden' and 'display: none'\n const styleValue = attr.value;\n this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));\n } else if (attr.name !== '\"') { // test for invalid attributes\n this.canvas.setAttribute(attr.name, attr.value);\n }\n }\n\n this.addEvents();\n\n this.element.parentNode.insertBefore(this.canvas, this.element);\n this.element.style.display = 'none';\n }\n\n private addEvents() {\n this.apGifEvents.forEach((eventName: string) => {\n this.canvas.addEventListener(eventName, (ev: Event) => this.element.dispatchEvent(\n // wm: find a way to dispatch the right event type\n new Event(ev.type, ev)\n ));\n });\n }\n\n private unfreeze() {\n if (this.canvas) {\n this.canvas.remove();\n this.canvas = null;\n }\n this.element.style.visibility = 'inherit';\n this.element.style.display = 'inherit';\n }\n}\n","import {Directive, Input, Renderer2, ElementRef, Output, EventEmitter} from '@angular/core';\n\nconst PART_START = '<ng-container data-mst=\"';\nconst PARSE_MIDDLE = '\">';\nconst PARSE_END = '</ng-container>';\nconst DATA_SEPARATOR = ',';\nconst OPTIONAL_EVENTS_SEPARATOR = ';';\n\ninterface Part {\n content: string;\n clazz?: string[]; // Not defined on sterile text\n clickName?: string; // Not defined on sterile text\n}\n\n/**\n * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.\n * The specific tags must this schema: <ng-container data-mst=\"STYLING-CLASSES\">TEXT</ng-container>.\n * Example: 'Lorem <ng-container data-mst=\"my-style\">ipsum</ng-container> dolor sit amet'.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[multiStyleText]',\n standalone: true,\n})\nexport class MultiStyleTextDirective {\n\n private childrenCreated: any[] = [];\n\n @Input() set multiStyleText(fullText: string) {\n // First remove previously added children (on update).\n for (const child of this.childrenCreated) {\n this.renderer.removeChild(this.elRef.nativeElement, child);\n }\n\n if (fullText && fullText.length > 0) {\n MultiStyleTextDirective.parse(fullText).forEach((part: Part) => {\n if (part.clazz || part.clickName) {\n // Parsed item with styling classes and/or event listening.\n const span = this.renderer.createElement('span');\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(span, text);\n if (part.clazz) {\n part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));\n }\n if (part.clickName) {\n this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));\n }\n this.renderer.appendChild(this.elRef.nativeElement, span);\n this.childrenCreated.push(span);\n } else {\n // Specific of part without styling classes (could be used to get event listening only)\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(this.elRef.nativeElement, text);\n this.childrenCreated.push(text);\n }\n });\n }\n }\n\n @Output() partEvent = new EventEmitter<string>();\n\n public constructor(\n private elRef: ElementRef,\n private renderer: Renderer2\n ) {\n }\n\n private static parse(toParse: string): Part[] {\n const parts: Part[] = [];\n let startIndex = toParse.indexOf(PART_START);\n while (startIndex >= 0) {\n if (startIndex > 0) {\n // Optional text before first parsed part.\n parts.push({content: toParse.substring(0, startIndex)});\n }\n const elem = this.cutFirstGroup(toParse.substring(startIndex));\n if (elem === 'invalid') {\n return [];\n } else if (elem) {\n parts.push({\n content: elem.content,\n clazz: elem.classes,\n clickName: elem.clickName\n });\n toParse = elem.rest;\n startIndex = toParse.indexOf(PART_START);\n } else {\n parts.push({content: toParse});\n }\n }\n // Very end\n if (toParse.length > 0) {\n parts.push({content: toParse});\n }\n return parts;\n }\n\n private static cutFirstGroup(toCut: string): {content: string, classes: string[], clickName: string, rest: string} | 'invalid' | null {\n if (!toCut.startsWith(PART_START)) {\n // String doesn't start with expected parser start.\n return null;\n }\n\n const afterParserStart = toCut.substring(PART_START.length);\n let index = afterParserStart.indexOf(PARSE_MIDDLE);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const data = afterParserStart.substring(0, index);\n let classes;\n let clickName;\n const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);\n if (eventsPartSeparatorIndex > 0) {\n // Case the data contains events part with dedicated separator\n classes = data.substring(0, eventsPartSeparatorIndex);\n clickName = data.substring(eventsPartSeparatorIndex + 1);\n } else {\n // Otherwise, only design classes are provided\n classes = data;\n clickName = undefined;\n }\n let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);\n index = rest.indexOf(PARSE_END);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const content = rest.substring(0, index);\n rest = rest.substring(index + PARSE_END.length);\n\n return {\n content,\n classes: classes.split(DATA_SEPARATOR),\n clickName,\n rest\n };\n }\n}\n","// Agorapulse\nimport {TooltipNeoDirective, TooltipNeoParams} from '@agorapulse/ui-components/tooltip-neo';\n// Angular\nimport {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\n// Third-parties\nimport {fromEvent, Subscription} from 'rxjs';\nimport {TruncateTooltipNeoParams} from './truncate-tooltip.model';\n\n@Directive({selector: '[apTooltipNeo][truncateTooltip]', standalone: true,})\nexport class TruncateTooltipDirective implements OnInit, OnDestroy {\n\n @Input() truncateTooltip: string | TruncateTooltipNeoParams;\n\n private elementRefMouseOver$: Subscription;\n\n constructor(\n private tooltipNeo: TooltipNeoDirective,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n private updateTruncateState(): void {\n const element = this.elementRef.nativeElement;\n const truncated = element.scrollWidth > element.clientWidth;\n\n let defaultTooltip: string | TooltipNeoParams = '';\n // In case a default tooltip content exists, even not truncated, the tooltip stay displayed\n if (typeof(this.truncateTooltip) === 'object' && this.truncateTooltip.defaultContent) {\n defaultTooltip = {\n ...this.truncateTooltip,\n content: this.truncateTooltip.defaultContent\n }\n }\n this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : defaultTooltip;\n\n }\n\n ngOnInit(): void {\n this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')\n .subscribe(() => this.updateTruncateState());\n }\n\n ngOnDestroy(): void {\n this.elementRefMouseOver$.unsubscribe();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAMA;;AAEG;MACU,yBAAyB,CAAA;AAIlC,IAAA,WAAA,CAAmB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAAI;IAGnC,OAAO,GAAA;QACV,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,qBAAqB,GAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,MAAM,GAAA;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;AAC7D,QAAA,IAAI,yBAAyB,CAAC,SAAS,GAAG,YAAY,EAAE;;AAEpD,YAAA,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YACxB,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,yBAAyB,CAAC,SAAS,IAAI,CAAC;AAC7D,SAAA;aAAM,IAAI,YAAY,GAAG,YAAY,EAAE;AACpC,YAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,YAAA,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,YAAY,IAAI,CAAC;AACtC,SAAA;KACJ;;AAzBM,yBAAS,CAAA,SAAA,GAAW,GAAG,CAAC;sHAFtB,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAWU,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;MCAZ,mBAAmB,CAAA;AAiB5B,IAAA,WAAA,GAAA;AAhBQ,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,iBAAiB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAK/D,QAAA,IAAA,CAAA,KAAK,GAA6B,IAAI,YAAY,EAAE,CAAC;;AAErD,QAAA,IAAA,CAAA,KAAK,GAA6B,IAAI,YAAY,EAAE,CAAC;;AAErD,QAAA,IAAA,CAAA,IAAI,GAA6B,IAAI,YAAY,EAAE,CAAC;QAI9D,IAAQ,CAAA,QAAA,GAAW,QAAQ,CAAC;QAC5B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAErB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACvD;;;IAID,eAAe,GAAA;AACX,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC7E,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACpD,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAClC,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClE;AAED,IAAA,aAAa,CAAC,MAAkB,EAAA;QAC5B,MAAM,CAAC,wBAAwB,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;AAED,IAAA,YAAY,CAAC,MAAkB,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,MAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;AAGD,IAAA,YAAY,CAAC,KAAoB,EAAA;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9B,SAAA;KACJ;;gHAjEQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;0EAQa,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBAiDP,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC9DrC,qBAAqB,CAAA;IAI9B,SAAS,GAAA;QACL,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AAC3B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,GAAG,GAAG,iDAAiD,CAAC;AAChE,SAAA;KACJ;;kHAVQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;;AAEhB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,aAAa;AACxB,wBAAA,OAAO,EAAE,KAAK;AACjB,qBAAA;AACJ,iBAAA,CAAA;8BAEY,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;ACZV;;;;;;;;;;AAUG;MAKU,iBAAiB,CAAA;AAW1B,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,MAAM,EAAE,GAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC9C,QAAA,OAAO,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;KACnF;AAED,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAbzB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAEhC,IAAc,CAAA,cAAA,GAAW,KAAK,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;AAEpC,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5D,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;KAOtB;IAEvC,qBAAqB,GAAA;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAEO,QAAQ,GAAA;AACZ,QAAA,MAAM,EAAE,GAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC9C,QAAA,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;QACxB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE;AAC3B,YAAA,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;YAClF,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/C,EAAE,CAAC,SAAS,GAAG,CAAG,EAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAA,CAAE,CAAC;YAE/C,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1B,gBAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;oBAC9B,EAAE,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAG,EAAA,WAAW,EAAE,CAAC;AAC3C,iBAAC,CAAC,CAAC;AACN,aAAA;AACJ,SAAA;AAAM,aAAA;YACH,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;AAClD,gBAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1C,EAAE,CAAC,SAAS,GAAG,CAAG,EAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAA,CAAE,CAAC;AAClD,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACnE,iBAAA,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,IAAI,oBAAoB,GAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAClE,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD,SAAA;KACJ;;8GAtDQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAGY,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,8BAA8B,EAAA,CAAA;sBAAvC,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;AC1BX;MAgBa,uBAAuB,CAAA;IAEhC,WAA+C,CAAA,aAAqB,EACZ,sBAA8B,EAAA;QADvC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAQ;QACZ,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAQ;KAAI;AAE1F,IAAA,QAAQ,CAAC,IAAqB,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAChD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AAC5B,oBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AACnC,wBAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,qBAAA;AACJ,iBAAA;AAAM,qBAAA;oBACH,KAAK,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,iBAAA;AACJ,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AACnC,gBAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AACnC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC9B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,sBAAsB,KAAK,MAAM,CAAC;KACjD;;oHA7BQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAET,eAAe,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACf,wBAAwB,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAHtC,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EATrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wFAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAGQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,wFAAwF;AAClG,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;0BAGgB,SAAS;2BAAC,eAAe,CAAA;;0BACzB,SAAS;2BAAC,wBAAwB,CAAA;;;MCjBtC,UAAU,CAAA;IACnB,OAAO,KAAK,CAAC,GAAW,EAAA;AACpB,QAAA,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACpD;AACJ,CAAA;AAED;;;;;;;;AAQG;MAUU,kBAAkB,CAAA;AAS3B,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAPjC,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;AAEhB,QAAA,IAAA,CAAA,WAAW,GAAa,CAAC,OAAO,CAAC,CAAC;AAMvC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC9C,QAAA,IAAI,EAAE,OAAO,YAAY,gBAAgB,CAAC,EAAE;YACxC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;QACpB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,OAAO,CAAC,GAAG,EAAE;YACb,MAAM,GAAG,IAAI,CAAC;AACjB,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC7B,MAAM,GAAG,IAAI,CAAC;AACjB,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnB,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,EAAE,CAAC;AACjB,SAAA;KAEJ;IAEO,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;AACV,SAAA;;QAGD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACjE;IAEO,SAAS,GAAA;QACb,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACxB,SAAA;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClG,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpB,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;AAC7D,aAAA;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;;AAErH,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClH,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;AAC1B,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AAEjB,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KACvC;IAEO,SAAS,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;AAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAS,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa;;YAE7E,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAEO,QAAQ,GAAA;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB,SAAA;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;KAC1C;;+GA5FQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;;AAE5B,oBAAA,IAAI,EAAE;AACF,wBAAA,OAAO,EAAE,KAAK;AACjB,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;iGAEY,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AC5BV,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAC9C,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAQtC;;;;AAIG;MAMU,uBAAuB,CAAA;IAIhC,IAAa,cAAc,CAAC,QAAgB,EAAA;;AAExC,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAU,KAAI;AAC3D,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;;oBAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACjD,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACtC,IAAI,IAAI,CAAC,KAAK,EAAE;wBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACpE,qBAAA;oBACD,IAAI,IAAI,CAAC,SAAS,EAAE;wBAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,qBAAA;AACD,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1D,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAA;AAAM,qBAAA;;AAEH,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1D,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAID,WACY,CAAA,KAAiB,EACjB,QAAmB,EAAA;QADnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QArCvB,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;AAiC1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;KAMhD;IAEO,OAAO,KAAK,CAAC,OAAe,EAAA;QAChC,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,UAAU,IAAI,CAAC,EAAE;YACpB,IAAI,UAAU,GAAG,CAAC,EAAE;;AAEhB,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,EAAC,CAAC,CAAC;AAC3D,aAAA;AACD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/D,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AAAM,iBAAA,IAAI,IAAI,EAAE;gBACb,KAAK,CAAC,IAAI,CAAC;oBACP,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,KAAK,EAAE,IAAI,CAAC,OAAO;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC5B,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;AACpB,gBAAA,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC5C,aAAA;AAAM,iBAAA;gBACH,KAAK,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;AAClC,aAAA;AACJ,SAAA;;AAED,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IAEO,OAAO,aAAa,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;;AAE/B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,KAAK,CAAC,CAAC;AAC5D,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,IAAI,SAAS,CAAC;QACd,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACzE,IAAI,wBAAwB,GAAG,CAAC,EAAE;;YAE9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACtD,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;AAC5D,SAAA;AAAM,aAAA;;YAEH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,GAAG,SAAS,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACnE,QAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,KAAK,CAAC,CAAC;AAC5D,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO;YACH,OAAO;AACP,YAAA,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,SAAS;YACT,IAAI;SACP,CAAC;KACL;;oHAjHQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;yHAKgB,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBA+BI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;ACzDX;MAOa,wBAAwB,CAAA;IAMjC,WACY,CAAA,UAA+B,EAC/B,UAAmC,EAAA;QADnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;QAC/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;KAE9C;IAEO,mBAAmB,GAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAE5D,IAAI,cAAc,GAA8B,EAAE,CAAC;;AAEnD,QAAA,IAAI,QAAO,IAAI,CAAC,eAAe,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;AAClF,YAAA,cAAc,GAAG;gBACb,GAAG,IAAI,CAAC,eAAe;AACvB,gBAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc;aAC/C,CAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;KAEpF;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;aAC5E,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACpD;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;KAC3C;;qHAnCQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,QAAQ,EAAE,iCAAiC,EAAE,UAAU,EAAE,IAAI,GAAE,CAAA;mIAG9D,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;ACXV;;AAEG;;;;"}