@frame-ui-ng/components 0.3.0-beta.0 → 0.4.0-beta.0

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 (51) hide show
  1. package/button/src/styles/button.css +5 -1
  2. package/button-group/src/styles/button-group.css +6 -0
  3. package/fesm2022/frame-ui-ng-components-combobox.mjs +48 -51
  4. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  5. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +162 -0
  6. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -0
  7. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +1 -1
  8. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  9. package/fesm2022/frame-ui-ng-components-input-otp.mjs +64 -69
  10. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  11. package/fesm2022/frame-ui-ng-components-modal.mjs +93 -15
  12. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  13. package/fesm2022/frame-ui-ng-components-pagination.mjs +37 -36
  14. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  15. package/fesm2022/frame-ui-ng-components-progress.mjs +2 -1
  16. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  17. package/fesm2022/frame-ui-ng-components-resizable.mjs +16 -26
  18. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  19. package/fesm2022/frame-ui-ng-components-sheet.mjs +19 -16
  20. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  21. package/fesm2022/frame-ui-ng-components-sidebar.mjs +19 -13
  22. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  23. package/fesm2022/frame-ui-ng-components-slider.mjs +53 -59
  24. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  25. package/fesm2022/frame-ui-ng-components-tooltip.mjs +44 -0
  26. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  27. package/fesm2022/frame-ui-ng-components-utils.mjs +20 -0
  28. package/fesm2022/frame-ui-ng-components-utils.mjs.map +1 -0
  29. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +10 -12
  30. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  31. package/fesm2022/frame-ui-ng-components.mjs +353 -296
  32. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  33. package/item/src/styles/item.css +188 -187
  34. package/modal/src/styles/modal.css +10 -1
  35. package/package.json +10 -2
  36. package/sidebar/src/styles/sidebar.css +10 -4
  37. package/src/styles/blueprint.css +98 -0
  38. package/src/styles/components.css +4 -4
  39. package/styles/blueprint.css +98 -0
  40. package/styles/components.css +4 -4
  41. package/styles.css +4 -4
  42. package/tooltip/src/styles/tooltip.css +4 -4
  43. package/types/frame-ui-ng-components-combobox.d.ts +1 -1
  44. package/types/frame-ui-ng-components-confirm-modal.d.ts +48 -0
  45. package/types/frame-ui-ng-components-input-otp.d.ts +1 -1
  46. package/types/frame-ui-ng-components-modal.d.ts +18 -7
  47. package/types/frame-ui-ng-components-sheet.d.ts +2 -0
  48. package/types/frame-ui-ng-components-sidebar.d.ts +2 -2
  49. package/types/frame-ui-ng-components-tooltip.d.ts +5 -0
  50. package/types/frame-ui-ng-components-utils.d.ts +5 -0
  51. package/types/frame-ui-ng-components.d.ts +68 -55
@@ -29,7 +29,7 @@
29
29
  --frame-spinner-indicator-color: currentColor;
30
30
  position: relative;
31
31
  display: inline-flex;
32
- min-width: 2rem;
32
+ min-width: fit-content;
33
33
  min-height: var(--frame-button-root-height, 2.5rem);
34
34
  align-items: center;
35
35
  justify-content: center;
@@ -81,6 +81,10 @@
81
81
  transition: opacity 150ms ease;
82
82
  }
83
83
 
84
+ :root[data-frame-corner-handles='false'] .frame-button::before {
85
+ content: none;
86
+ }
87
+
84
88
  .frame-icon-button {
85
89
  inline-size: var(--frame-button-root-height, 2.5rem);
86
90
  min-inline-size: var(--frame-button-root-height, 2.5rem);
@@ -90,6 +90,12 @@ frame-button-group::before {
90
90
  pointer-events: none;
91
91
  }
92
92
 
93
+ :root[data-frame-corner-handles='false'] .frame-button-group::before,
94
+ :root[data-frame-corner-handles='false'] [frButtonGroup]::before,
95
+ :root[data-frame-corner-handles='false'] frame-button-group::before {
96
+ content: none;
97
+ }
98
+
93
99
  .frame-button-group > .frame-button::before,
94
100
  .frame-button-group > [frButton]::before,
95
101
  [frButtonGroup] > .frame-button::before,
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, DestroyRef, ElementRef, signal, contentChild, input, booleanAttribute, model, computed, effect, afterNextRender, ViewChild, Component, Renderer2, NgModule } from '@angular/core';
3
- import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
2
+ import { inject, TemplateRef, Directive, DestroyRef, ElementRef, signal, viewChild, contentChild, input, booleanAttribute, model, computed, effect, afterNextRender, Component, Renderer2, NgModule } from '@angular/core';
3
+ import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
4
4
  import { NgTemplateOutlet } from '@angular/common';
5
5
  import { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';
6
6
 
@@ -141,7 +141,7 @@ class FrCombobox extends FrControlValueAccessor {
141
141
  itemsVersion = signal(0, ...(ngDevMode ? [{ debugName: "itemsVersion" }] : /* istanbul ignore next */ []));
142
142
  selectedLabels = new Map();
143
143
  resizeObserver = null;
144
- origin;
144
+ origin = viewChild(CdkOverlayOrigin, ...(ngDevMode ? [{ debugName: "origin" }] : /* istanbul ignore next */ []));
145
145
  content = contentChild(FrComboboxContent, ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
146
146
  autoHighlight = input(false, { ...(ngDevMode ? { debugName: "autoHighlight" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
147
147
  debugVisible = input(false, { ...(ngDevMode ? { debugName: "debugVisible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
@@ -308,7 +308,7 @@ class FrCombobox extends FrControlValueAccessor {
308
308
  this.itemsVersion.update((value) => value + 1);
309
309
  }
310
310
  measureAnchor() {
311
- const element = this.origin?.elementRef.nativeElement ?? this.elementRef.nativeElement;
311
+ const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;
312
312
  if (typeof element?.getBoundingClientRect !== 'function') {
313
313
  this.anchorWidth.set(null);
314
314
  return;
@@ -319,7 +319,7 @@ class FrCombobox extends FrControlValueAccessor {
319
319
  if (typeof ResizeObserver === 'undefined') {
320
320
  return;
321
321
  }
322
- const element = this.origin?.elementRef.nativeElement ?? this.elementRef.nativeElement;
322
+ const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;
323
323
  if (typeof element?.getBoundingClientRect !== 'function') {
324
324
  return;
325
325
  }
@@ -333,27 +333,27 @@ class FrCombobox extends FrControlValueAccessor {
333
333
  provide: FrComboboxRootLookup,
334
334
  useExisting: FrCombobox,
335
335
  },
336
- ], queries: [{ propertyName: "content", first: true, predicate: FrComboboxContent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "origin", first: true, predicate: CdkOverlayOrigin, descendants: true }], exportAs: ["frCombobox"], usesInheritance: true, ngImport: i0, template: `
337
- <span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-combobox__anchor">
338
- <ng-content />
339
- </span>
340
-
341
- <ng-template
342
- cdkConnectedOverlay
343
- [cdkConnectedOverlayOrigin]="origin"
344
- [cdkConnectedOverlayOpen]="isOpen()"
345
- [cdkConnectedOverlayPositions]="positions"
346
- [cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
347
- [cdkConnectedOverlayWidth]="overlayMinWidth()"
348
- [cdkConnectedOverlayMinWidth]="overlayMinWidth()"
349
- (overlayOutsideClick)="close()"
350
- (positionChange)="handlePositionChange($event)"
351
- (detach)="close()"
352
- >
353
- @if (content()) {
354
- <ng-container [ngTemplateOutlet]="content()!.templateRef" />
355
- }
356
- </ng-template>
336
+ ], queries: [{ propertyName: "content", first: true, predicate: FrComboboxContent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "origin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }], exportAs: ["frCombobox"], usesInheritance: true, ngImport: i0, template: `
337
+ <span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-combobox__anchor">
338
+ <ng-content />
339
+ </span>
340
+
341
+ <ng-template
342
+ cdkConnectedOverlay
343
+ [cdkConnectedOverlayOrigin]="origin"
344
+ [cdkConnectedOverlayOpen]="isOpen()"
345
+ [cdkConnectedOverlayPositions]="positions"
346
+ [cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
347
+ [cdkConnectedOverlayWidth]="overlayMinWidth()"
348
+ [cdkConnectedOverlayMinWidth]="overlayMinWidth()"
349
+ (overlayOutsideClick)="close()"
350
+ (positionChange)="handlePositionChange($event)"
351
+ (detach)="close()"
352
+ >
353
+ @if (content()) {
354
+ <ng-container [ngTemplateOutlet]="content()!.templateRef" />
355
+ }
356
+ </ng-template>
357
357
  `, isInline: true, dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
358
358
  }
359
359
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCombobox, decorators: [{
@@ -374,33 +374,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
374
374
  '[attr.data-disabled]': 'disabled() ? "" : null',
375
375
  '[attr.data-invalid]': 'invalid() ? "" : null'
376
376
  },
377
- template: `
378
- <span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-combobox__anchor">
379
- <ng-content />
380
- </span>
381
-
382
- <ng-template
383
- cdkConnectedOverlay
384
- [cdkConnectedOverlayOrigin]="origin"
385
- [cdkConnectedOverlayOpen]="isOpen()"
386
- [cdkConnectedOverlayPositions]="positions"
387
- [cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
388
- [cdkConnectedOverlayWidth]="overlayMinWidth()"
389
- [cdkConnectedOverlayMinWidth]="overlayMinWidth()"
390
- (overlayOutsideClick)="close()"
391
- (positionChange)="handlePositionChange($event)"
392
- (detach)="close()"
393
- >
394
- @if (content()) {
395
- <ng-container [ngTemplateOutlet]="content()!.templateRef" />
396
- }
397
- </ng-template>
377
+ template: `
378
+ <span cdkOverlayOrigin #origin="cdkOverlayOrigin" class="frame-combobox__anchor">
379
+ <ng-content />
380
+ </span>
381
+
382
+ <ng-template
383
+ cdkConnectedOverlay
384
+ [cdkConnectedOverlayOrigin]="origin"
385
+ [cdkConnectedOverlayOpen]="isOpen()"
386
+ [cdkConnectedOverlayPositions]="positions"
387
+ [cdkConnectedOverlayPanelClass]="overlayPanelClasses()"
388
+ [cdkConnectedOverlayWidth]="overlayMinWidth()"
389
+ [cdkConnectedOverlayMinWidth]="overlayMinWidth()"
390
+ (overlayOutsideClick)="close()"
391
+ (positionChange)="handlePositionChange($event)"
392
+ (detach)="close()"
393
+ >
394
+ @if (content()) {
395
+ <ng-container [ngTemplateOutlet]="content()!.templateRef" />
396
+ }
397
+ </ng-template>
398
398
  `,
399
399
  }]
400
- }], ctorParameters: () => [], propDecorators: { origin: [{
401
- type: ViewChild,
402
- args: [CdkOverlayOrigin]
403
- }], content: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FrComboboxContent), { isSignal: true }] }], autoHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoHighlight", required: false }] }], debugVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "debugVisible", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], itemToStringValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemToStringValue", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClear", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
400
+ }], ctorParameters: () => [], propDecorators: { origin: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkOverlayOrigin), { isSignal: true }] }], content: [{ type: i0.ContentChild, args: [i0.forwardRef(() => FrComboboxContent), { isSignal: true }] }], autoHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoHighlight", required: false }] }], debugVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "debugVisible", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], itemToStringValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemToStringValue", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClear", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
404
401
 
405
402
  class FrComboboxInput {
406
403
  root = inject(FrCombobox);
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-combobox.mjs","sources":["../../../projects/components/combobox/src/combobox.content.ts","../../../projects/components/combobox/src/combobox.root.ts","../../../projects/components/combobox/src/combobox.input.ts","../../../projects/components/combobox/src/combobox.items.ts","../../../projects/components/combobox/src/combobox.value.ts","../../../projects/components/combobox/combobox.module.ts","../../../projects/components/combobox/frame-ui-ng-components-combobox.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[frComboboxContent]',\n exportAs: 'frComboboxContent',\n})\nexport class FrComboboxContent {\n readonly templateRef = inject(TemplateRef<unknown>);\n}\n\n@Directive({\n selector: '[frComboboxPanel], frame-combobox-panel',\n host: {\n class: 'frame-combobox__panel',\n role: 'listbox',\n },\n})\nexport class FrComboboxPanel {}\n\n@Directive({\n selector: '[frComboboxList], frame-combobox-list',\n host: {\n class: 'frame-combobox__list',\n },\n})\nexport class FrComboboxList {}\n\n@Directive({\n selector: '[frComboboxEmpty], frame-combobox-empty',\n host: {\n class: 'frame-combobox__empty',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n },\n})\nexport class FrComboboxEmpty {\n private readonly root = inject(FrComboboxRootLookup);\n\n protected hidden(): boolean {\n return this.root.visibleCount() > 0;\n }\n}\n\n@Directive({\n selector: '[frComboboxGroup], frame-combobox-group',\n host: {\n class: 'frame-combobox__group',\n },\n})\nexport class FrComboboxGroup {}\n\n@Directive({\n selector: '[frComboboxLabel], frame-combobox-label',\n host: {\n class: 'frame-combobox__label',\n },\n})\nexport class FrComboboxLabel {}\n\n@Directive({\n selector: '[frComboboxSeparator], frame-combobox-separator',\n host: {\n class: 'frame-combobox__separator',\n role: 'separator',\n },\n})\nexport class FrComboboxSeparator {}\n\n@Directive({\n selector: '[frComboboxCollection], frame-combobox-collection',\n host: {\n class: 'frame-combobox__collection',\n },\n})\nexport class FrComboboxCollection {}\n\n// Resolved by the root file to avoid a circular import in decorator metadata.\nexport abstract class FrComboboxRootLookup {\n abstract visibleCount(): number;\n}\n","import {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n Component,\n DestroyRef,\n ElementRef,\n ViewChild,\n booleanAttribute,\n computed,\n contentChild,\n effect,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\n\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\nimport { FrComboboxContent, FrComboboxRootLookup } from './combobox.content';\nimport { FrComboboxItem } from './combobox.items';\n\nexport type FrComboboxValue = unknown;\nexport type FrComboboxStringifier = (item: FrComboboxValue) => string;\n\nconst POSITIONS: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n },\n];\n\n@Component({\n selector: '[frCombobox], frame-combobox',\n exportAs: 'frCombobox',\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, NgTemplateOutlet],\n providers: [\n provideDsValueAccessor(FrCombobox),\n {\n provide: FrComboboxRootLookup,\n useExisting: FrCombobox,\n },\n ],\n host: {\n class: 'frame-combobox',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.data-invalid]': 'invalid() ? \"\" : null'\n },\n template: `\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-combobox__anchor\">\n <ng-content />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\n [cdkConnectedOverlayWidth]=\"overlayMinWidth()\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth()\"\n (overlayOutsideClick)=\"close()\"\n (positionChange)=\"handlePositionChange($event)\"\n (detach)=\"close()\"\n >\n @if (content()) {\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" />\n }\n </ng-template>\n `,\n})\nexport class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null> {\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly items = new Set<FrComboboxItem>();\n private readonly itemsVersion = signal(0);\n private readonly selectedLabels = new Map<FrComboboxValue, string>();\n private resizeObserver: ResizeObserver | null = null;\n\n @ViewChild(CdkOverlayOrigin) private origin?: CdkOverlayOrigin;\n\n readonly content = contentChild(FrComboboxContent);\n readonly autoHighlight = input(false, { transform: booleanAttribute });\n readonly debugVisible = input(false, { transform: booleanAttribute });\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\n readonly itemToStringValue = input<FrComboboxStringifier>((item) => String(item ?? ''));\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly showClear = input(false, { transform: booleanAttribute });\n readonly value = model<FrComboboxValue | FrComboboxValue[] | null>(null);\n\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\n readonly isOpen = signal(false);\n readonly query = signal('');\n readonly anchorWidth = signal<number | null>(null);\n readonly highlightedIndex = signal(0);\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\n readonly positions = POSITIONS;\n\n readonly selectedValues = computed(() => {\n const value = this.value();\n return Array.isArray(value) ? value : value === null ? [] : [value];\n });\n\n readonly displayValue = computed(() => {\n if (this.multiple()) {\n return this.query();\n }\n\n const value = this.value();\n\n if (value === null || Array.isArray(value)) {\n return this.query();\n }\n\n return this.query() || this.selectedLabels.get(value) || this.itemToStringValue()(value);\n });\n\n readonly hasValue = computed(() => this.selectedValues().length > 0 || this.query().length > 0);\n\n constructor() {\n super();\n\n effect(() => {\n if (this.debugVisible()) {\n afterNextRender(() => this.open());\n }\n });\n\n effect(() => {\n this.query();\n this.itemsVersion();\n\n if (this.autoHighlight()) {\n this.highlightedIndex.set(0);\n }\n });\n\n queueMicrotask(() => {\n this.measureAnchor();\n this.attachResizeObserver();\n });\n\n this.destroyRef.onDestroy(() => {\n this.resizeObserver?.disconnect();\n });\n }\n\n registerItem(item: FrComboboxItem): void {\n this.items.add(item);\n this.bumpItems();\n }\n\n unregisterItem(item: FrComboboxItem): void {\n this.items.delete(item);\n this.bumpItems();\n }\n\n visibleItems(): FrComboboxItem[] {\n this.itemsVersion();\n return Array.from(this.items).filter((item) => item.isVisible());\n }\n\n visibleCount(): number {\n return this.visibleItems().length;\n }\n\n overlayMinWidth(): number {\n return this.anchorWidth() ?? 0;\n }\n\n overlayPanelClasses(): string[] {\n return ['frame-combobox-overlay', `frame-combobox-overlay--${this.overlaySide()}`];\n }\n\n isSelected(value: FrComboboxValue): boolean {\n return this.selectedValues().some((selected) => Object.is(selected, value));\n }\n\n isHighlighted(item: FrComboboxItem): boolean {\n return this.visibleItems()[this.highlightedIndex()] === item;\n }\n\n rememberItemLabel(value: FrComboboxValue, label: string): void {\n this.selectedLabels.set(value, label);\n }\n\n itemVisible(label: string): boolean {\n const query = this.query().trim().toLowerCase();\n return !query || label.toLowerCase().includes(query);\n }\n\n open(): void {\n if (this.disabled()) {\n return;\n }\n\n this.measureAnchor();\n this.isOpen.set(true);\n }\n\n close(): void {\n if (this.debugVisible()) {\n return;\n }\n\n this.isOpen.set(false);\n this.markAsTouched();\n }\n\n touch(): void {\n this.markAsTouched();\n }\n\n clear(): void {\n this.query.set('');\n this.value.set(this.multiple() ? [] : null);\n this.notifyValueChange(this.value());\n this.markAsTouched();\n }\n\n selectItem(value: FrComboboxValue, label: string): void {\n this.selectedLabels.set(value, label);\n\n if (this.multiple()) {\n const current = this.selectedValues();\n const exists = current.some((item) => Object.is(item, value));\n const next = exists ? current.filter((item) => !Object.is(item, value)) : [...current, value];\n this.value.set(next);\n this.notifyValueChange(next);\n this.query.set('');\n this.open();\n return;\n }\n\n this.value.set(value);\n this.notifyValueChange(value);\n this.query.set('');\n this.close();\n }\n\n removeItem(value: FrComboboxValue): void {\n if (!this.multiple()) {\n this.clear();\n return;\n }\n\n const next = this.selectedValues().filter((item) => !Object.is(item, value));\n this.value.set(next);\n this.notifyValueChange(next);\n this.markAsTouched();\n }\n\n updateQuery(value: string): void {\n this.query.set(value);\n this.highlightedIndex.set(0);\n this.open();\n }\n\n moveHighlight(delta: number): void {\n const count = this.visibleCount();\n\n if (count === 0) {\n this.highlightedIndex.set(0);\n return;\n }\n\n this.highlightedIndex.set((this.highlightedIndex() + delta + count) % count);\n }\n\n selectHighlighted(): void {\n const item = this.visibleItems()[this.highlightedIndex()];\n item?.select();\n }\n\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\n }\n\n protected setViewValue(value: FrComboboxValue | FrComboboxValue[] | null): void {\n this.value.set(value);\n this.query.set('');\n }\n\n private bumpItems(): void {\n this.itemsVersion.update((value) => value + 1);\n }\n\n private measureAnchor(): void {\n const element = this.origin?.elementRef.nativeElement ?? this.elementRef.nativeElement;\n\n if (typeof element?.getBoundingClientRect !== 'function') {\n this.anchorWidth.set(null);\n return;\n }\n\n this.anchorWidth.set(element.getBoundingClientRect().width || null);\n }\n\n private attachResizeObserver(): void {\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const element = this.origin?.elementRef.nativeElement ?? this.elementRef.nativeElement;\n\n if (typeof element?.getBoundingClientRect !== 'function') {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => this.measureAnchor());\n this.resizeObserver.observe(element);\n }\n}\n\r\n","import { Directive, ElementRef, inject } from '@angular/core';\n\nimport { FrCombobox } from './combobox.root';\n\n@Directive({\n selector: 'input[frComboboxInput]',\n host: {\n class: 'frame-combobox__input',\n '[attr.aria-disabled]': 'root.disabled() ? \"true\" : null',\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\n '[attr.aria-invalid]': 'root.invalid() ? \"true\" : null',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n '[attr.data-has-value]': 'root.hasValue() ? \"true\" : \"false\"',\n '[value]': 'root.displayValue()',\n autocomplete: 'off',\n role: 'combobox',\n type: 'text',\n '(blur)': 'handleBlur()',\n '(focus)': 'root.open()',\n '(input)': 'handleInput()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class FrComboboxInput {\n protected readonly root = inject(FrCombobox);\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n protected handleInput(): void {\n this.root.updateQuery(this.elementRef.nativeElement.value);\n }\n\n protected handleBlur(): void {\n this.root.touch();\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(1);\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(-1);\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n this.root.selectHighlighted();\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.root.close();\n }\n }\n}\n\n@Directive({\n selector: 'button[frComboboxTrigger]',\n host: {\n class: 'frame-combobox__trigger',\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n role: 'combobox',\n type: 'button',\n '(click)': 'root.isOpen() ? root.close() : root.open()',\n },\n})\nexport class FrComboboxTrigger {\n protected readonly root = inject(FrCombobox);\n}\n\n@Directive({\n selector: 'button[frComboboxClear]',\n host: {\n class: 'frame-combobox__clear',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n type: 'button',\n '(click)': 'root.clear()',\n },\n})\nexport class FrComboboxClear {\n protected readonly root = inject(FrCombobox);\n\n protected hidden(): boolean {\n return !this.root.showClear() || !this.root.hasValue();\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\n\n@Directive({\n selector: 'button[frComboboxItem]',\n host: {\n class: 'frame-combobox__item',\n '[attr.aria-selected]': 'isSelected() ? \"true\" : \"false\"',\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n role: 'option',\n type: 'button',\n '(click)': 'select()',\n '(mouseenter)': 'highlightSelf()',\n },\n})\nexport class FrComboboxItem {\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly root = inject(FrCombobox);\n private mutationObserver: MutationObserver | null = null;\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\n readonly value = input.required<FrComboboxValue>();\n readonly resolvedLabel = signal('');\n\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\n readonly visible = computed(() => this.root.itemVisible(this.label()));\n\n constructor() {\n this.root.registerItem(this);\n this.destroyRef.onDestroy(() => {\n this.mutationObserver?.disconnect();\n this.root.unregisterItem(this);\n });\n\n afterNextRender(() => {\n this.refreshResolvedLabel();\n this.observeTextChanges();\n });\n\n effect(() => {\n if (this.root.isSelected(this.value())) {\n this.root.rememberItemLabel(this.value(), this.label());\n }\n });\n }\n\n isVisible(): boolean {\n return this.visible();\n }\n\n isSelected(): boolean {\n return this.root.isSelected(this.value());\n }\n\n isHighlighted(): boolean {\n return this.root.isHighlighted(this);\n }\n\n select(): void {\n if (!this.disabled() && this.isVisible()) {\n this.root.selectItem(this.value(), this.label());\n }\n }\n\n protected highlightSelf(): void {\n const index = this.root.visibleItems().indexOf(this);\n\n if (index >= 0) {\n this.root.highlightedIndex.set(index);\n }\n }\n\n private resolveLabel(): string {\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\n }\n\n private refreshResolvedLabel(): void {\n this.resolvedLabel.set(this.resolveLabel());\n }\n\n private observeTextChanges(): void {\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\n return;\n }\n\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\n this.mutationObserver.observe(this.elementRef.nativeElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n}\n\n@Directive({\n selector: '[frComboboxItemIndicator]',\n host: {\n class: 'frame-combobox__item-indicator',\n 'aria-hidden': 'true',\n },\n})\nexport class FrComboboxItemIndicator {}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n afterNextRender,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\n\n@Directive({\n selector: '[frComboboxChips], frame-combobox-chips',\n host: {\n class: 'frame-combobox__chips',\n '[attr.data-disabled]': 'root.disabled() ? \"\" : null',\n '[attr.data-invalid]': 'root.invalid() ? \"\" : null',\n },\n})\nexport class FrComboboxChips {\n protected readonly root = inject(FrCombobox);\n}\n\n@Directive({\n selector: '[frComboboxValue], frame-combobox-value',\n exportAs: 'frComboboxValue',\n host: {\n class: 'frame-combobox__value',\n },\n})\nexport class FrComboboxValueList {\n private readonly root = inject(FrCombobox);\n\n values(): FrComboboxValue[] {\n return this.root.selectedValues();\n }\n}\n\n@Directive({\n selector: '[frComboboxChip], frame-combobox-chip',\n exportAs: 'frComboboxChip',\n host: {\n class: 'frame-combobox__chip',\n },\n})\nexport class FrComboboxChip {\n private readonly root = inject(FrCombobox);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n readonly value = input.required<FrComboboxValue>();\n readonly removable = input(true, { transform: booleanAttribute });\n\n constructor() {\n afterNextRender(() => this.attachDefaultRemoveButton());\n }\n\n remove(): void {\n if (this.root.disabled()) {\n return;\n }\n\n this.root.removeItem(this.value());\n }\n\n private attachDefaultRemoveButton(): void {\n const element = this.elementRef.nativeElement;\n\n if (!this.removable() || element.querySelector('[frComboboxChipRemove], [frcomboboxchipremove]')) {\n return;\n }\n\n const button = this.renderer.createElement('button') as HTMLButtonElement;\n const label = this.renderer.createText('×');\n this.renderer.setAttribute(button, 'type', 'button');\n this.renderer.setAttribute(button, 'aria-label', 'Remove selected item');\n this.renderer.setAttribute(button, 'data-default-remove', '');\n this.renderer.addClass(button, 'frame-combobox__chip-remove');\n this.renderer.appendChild(button, label);\n this.renderer.listen(button, 'click', (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.remove();\n });\n this.renderer.appendChild(element, button);\n }\n}\n\n@Directive({\n selector: 'button[frComboboxChipRemove]',\n host: {\n class: 'frame-combobox__chip-remove',\n type: 'button',\n '(click)': 'remove($event)',\n },\n})\nexport class FrComboboxChipRemove {\n private readonly chip = inject(FrComboboxChip);\n\n protected remove(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.chip.remove();\n }\n}\n\n@Directive({\n selector: 'input[frComboboxChipsInput]',\n host: {\n class: 'frame-combobox__chips-input',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n '[value]': 'root.query()',\n autocomplete: 'off',\n type: 'text',\n '(focus)': 'root.open()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class FrComboboxChipsInput {\n protected readonly root = inject(FrCombobox);\n\n protected handleInput(event: Event): void {\n this.root.updateQuery((event.target as HTMLInputElement).value);\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (event.key === 'Backspace' && this.root.query() === '') {\n const values = this.root.selectedValues();\n const last = values.at(-1);\n\n if (last !== undefined) {\n this.root.removeItem(last);\n }\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(1);\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n this.root.selectHighlighted();\n }\n }\n}\n\n@Directive({\n selector: '[frComboboxError], frame-combobox-error',\n host: {\n class: 'frame-combobox__error',\n 'aria-live': 'polite',\n },\n})\nexport class FrComboboxError {}\n","import { NgModule } from '@angular/core';\nimport {\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n} from './src/combobox';\n\n@NgModule({\n imports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n exports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n})\nexport class FrComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAMa,iBAAiB,CAAA;AACnB,IAAA,WAAW,GAAG,MAAM,EAAC,WAAoB,EAAC;wGADxC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;MAYY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA;AACF,iBAAA;;MASY,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,sBAAsB;AAC9B,qBAAA;AACF,iBAAA;;MAUY,eAAe,CAAA;AACT,IAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAE1C,MAAM,GAAA;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;IACrC;wGALW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,eAAe,EAAE,sBAAsB;AACxC,qBAAA;AACF,iBAAA;;MAeY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC/B,qBAAA;AACF,iBAAA;;MASY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC/B,qBAAA;AACF,iBAAA;;MAUY,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iDAAiD;AAC3D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,2BAA2B;AAClC,wBAAA,IAAI,EAAE,WAAW;AAClB,qBAAA;AACF,iBAAA;;MASY,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mDAAmD;AAC7D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,4BAA4B;AACpC,qBAAA;AACF,iBAAA;;AAGD;MACsB,oBAAoB,CAAA;AAEzC;;AChDD,MAAM,SAAS,GAAwB;AACrC,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACZ,KAAA;CACF;AAyCK,MAAO,UAAW,SAAQ,sBAAkE,CAAA;AAC/E,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,KAAK,GAAG,IAAI,GAAG,EAAkB;AACjC,IAAA,YAAY,GAAG,MAAM,CAAC,CAAC,mFAAC;AACxB,IAAA,cAAc,GAAG,IAAI,GAAG,EAA2B;IAC5D,cAAc,GAA0B,IAAI;AAEf,IAAA,MAAM;AAElC,IAAA,OAAO,GAAG,YAAY,CAAC,iBAAiB,8EAAC;IACzC,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC7D,YAAY,GAAG,KAAK,CAAC,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC5D,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,GAAG;AAChF,IAAA,YAAY,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG;AAC9E,IAAA,iBAAiB,GAAG,KAAK,CAAwB,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,wFAAC;IAC9E,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACzD,IAAA,KAAK,GAAG,KAAK,CAA6C,IAAI,4EAAC;AAE/D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,+EAAC;AACtE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,8EAAC;AACnE,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,6EAAC;AACtB,IAAA,KAAK,GAAG,MAAM,CAAC,EAAE,4EAAC;AAClB,IAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,kFAAC;AACzC,IAAA,gBAAgB,GAAG,MAAM,CAAC,CAAC,uFAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAmB,QAAQ,kFAAC;IAChD,SAAS,GAAG,SAAS;AAErB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AACrE,IAAA,CAAC,qFAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE;QACrB;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAE1B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE;QACrB;QAEA,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC;AAC1F,IAAA,CAAC,mFAAC;IAEO,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAE/F,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAEP,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvB,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,YAAY,EAAE;AAEnB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;QAEF,cAAc,CAAC,MAAK;YAClB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,oBAAoB,EAAE;AAC7B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,YAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AACnC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,cAAc,CAAC,IAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,YAAY,EAAE;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;IAClE;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;IACnC;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;IAChC;IAEA,mBAAmB,GAAA;QACjB,OAAO,CAAC,wBAAwB,EAAE,CAAA,wBAAA,EAA2B,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;IACpF;AAEA,IAAA,UAAU,CAAC,KAAsB,EAAA;QAC/B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7E;AAEA,IAAA,aAAa,CAAC,IAAoB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,IAAI;IAC9D;IAEA,iBAAiB,CAAC,KAAsB,EAAE,KAAa,EAAA;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IACvC;AAEA,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,QAAA,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;IACtD;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB;QACF;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,UAAU,CAAC,KAAsB,EAAE,KAAa,EAAA;QAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAErC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7D,YAAA,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC;AAC7F,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE;YACX;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE;IACd;AAEA,IAAA,UAAU,CAAC,KAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE;YACZ;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE;IACb;AAEA,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;AAEjC,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;IAC9E;IAEA,iBAAiB,GAAA;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzD,IAAI,EAAE,MAAM,EAAE;IAChB;AAEA,IAAA,oBAAoB,CAAC,KAAqC,EAAA;QACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IACrF;AAEU,IAAA,YAAY,CAAC,KAAiD,EAAA;AACtE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACpB;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;IAChD;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa;AAEtF,QAAA,IAAI,OAAO,OAAO,EAAE,qBAAqB,KAAK,UAAU,EAAE;AACxD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B;QACF;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;IACrE;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YACzC;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa;AAEtF,QAAA,IAAI,OAAO,OAAO,EAAE,qBAAqB,KAAK,UAAU,EAAE;YACxD;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AACpE,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;IACtC;wGAlPW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAnCV;YACT,sBAAsB,CAAC,UAAU,CAAC;AAClC,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE,UAAU;AACxB,aAAA;SACF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuC+B,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAFtC,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/BjB;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlCS,mBAAmB,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,EAAA,+BAAA,EAAA,+BAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAoCtD,UAAU,EAAA,UAAA,EAAA,CAAA;kBAvCtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;AAClE,oBAAA,SAAS,EAAE;AACT,wBAAA,sBAAsB,CAAA,UAAA,CAAY;AAClC,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAA,UAAY;AACxB,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,qBAAqB,EAAE;AACxB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA;AACF,iBAAA;;sBASE,SAAS;uBAAC,gBAAgB;8EAEK,iBAAiB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MCzEtC,eAAe,CAAA;AACP,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,IAAA,UAAU,GAAG,MAAM,CAA+B,UAAU,CAAC;IAEpE,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5D;IAEU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACnB;AAEU,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACnB;IACF;wGArCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,mCAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,mBAAA,EAAA,kCAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,qBAAA,EAAA,wCAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,sBAAsB,EAAE,iCAAiC;AACzD,wBAAA,sBAAsB,EAAE,kCAAkC;AAC1D,wBAAA,qBAAqB,EAAE,gCAAgC;AACvD,wBAAA,iBAAiB,EAAE,6BAA6B;AAChD,wBAAA,uBAAuB,EAAE,oCAAoC;AAC7D,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,YAAY,EAAE,KAAK;AACnB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,SAAS,EAAE,aAAa;AACxB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,WAAW,EAAE,uBAAuB;AACrC,qBAAA;AACF,iBAAA;;MAoDY,iBAAiB,CAAA;AACT,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;wGADjC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,4CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,yBAAyB;AAChC,wBAAA,sBAAsB,EAAE,kCAAkC;AAC1D,wBAAA,iBAAiB,EAAE,6BAA6B;AAChD,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,4CAA4C;AACxD,qBAAA;AACF,iBAAA;;MAcY,eAAe,CAAA;AACP,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAElC,MAAM,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IACxD;wGALW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,eAAe,EAAE,sBAAsB;AACvC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,cAAc;AAC1B,qBAAA;AACF,iBAAA;;;MCxDY,cAAc,CAAA;AACR,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAClC,gBAAgB,GAA4B,IAAI;IAE/C,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAC1D,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAmB;AACzC,IAAA,aAAa,GAAG,MAAM,CAAC,EAAE,oFAAC;AAE1B,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,4EAAC;AAChE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;AAEtE,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,YAAA,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAChC,QAAA,CAAC,CAAC;QAEF,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACzD;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3C;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACtC;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAEpD,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QACvC;IACF;IAEQ,YAAY,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IAChE;IAEQ,oBAAoB,GAAA;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7C;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACxE;QACF;AAEA,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/E,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC3D,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;IACJ;wGA9EW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,qCAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAf1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,sBAAsB,EAAE,iCAAiC;AACzD,wBAAA,yBAAyB,EAAE,6BAA6B;AACxD,wBAAA,oBAAoB,EAAE,yBAAyB;AAC/C,wBAAA,sBAAsB,EAAE,0BAA0B;AAClD,wBAAA,iBAAiB,EAAE,wBAAwB;AAC3C,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,cAAc,EAAE,iBAAiB;AAClC,qBAAA;AACF,iBAAA;;MAyFY,uBAAuB,CAAA;wGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gCAAgC;AACvC,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;AACF,iBAAA;;;MCjGY,eAAe,CAAA;AACP,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;wGADjC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,qBAAqB,EAAE,4BAA4B;AACpD,qBAAA;AACF,iBAAA;;MAYY,mBAAmB,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAE1C,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACnC;wGALW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC/B,qBAAA;AACF,iBAAA;;MAgBY,cAAc,CAAA;AACR,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAEpC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAmB;IACzC,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjE,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACzD;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxB;QACF;QAEA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpC;IAEQ,yBAAyB,GAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,gDAAgD,CAAC,EAAE;YAChG;QACF;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAsB;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAiB,KAAI;YAC1D,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,MAAM,EAAE;AACf,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5C;wGAxCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,sBAAsB;AAC9B,qBAAA;AACF,iBAAA;;MAoDY,oBAAoB,CAAA;AACd,IAAA,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;AAEpC,IAAA,MAAM,CAAC,KAAiB,EAAA;QAChC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACpB;wGAPW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,gBAAgB;AAC5B,qBAAA;AACF,iBAAA;;MAwBY,oBAAoB,CAAA;AACZ,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAElC,IAAA,WAAW,CAAC,KAAY,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IACjE;AAEU,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1B,YAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5B;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC/B;IACF;wGA3BW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,iBAAiB,EAAE,6BAA6B;AAChD,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,YAAY,EAAE,KAAK;AACnB,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,SAAS,EAAE,aAAa;AACxB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,WAAW,EAAE,uBAAuB;AACrC,qBAAA;AACF,iBAAA;;MAsCY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,WAAW,EAAE,QAAQ;AACtB,qBAAA;AACF,iBAAA;;;MCtFY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YA5CzB,UAAU;YACV,cAAc;YACd,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,cAAc;YACd,uBAAuB;YACvB,eAAe;YACf,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,iBAAiB;AACjB,YAAA,mBAAmB,aAGnB,UAAU;YACV,cAAc;YACd,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,cAAc;YACd,uBAAuB;YACvB,eAAe;YACf,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB,CAAA,EAAA,CAAA;yGAGV,gBAAgB,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA9C5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,cAAc;wBACd,oBAAoB;wBACpB,eAAe;wBACf,oBAAoB;wBACpB,eAAe;wBACf,oBAAoB;wBACpB,iBAAiB;wBACjB,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,cAAc;wBACd,uBAAuB;wBACvB,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,cAAc;wBACd,oBAAoB;wBACpB,eAAe;wBACf,oBAAoB;wBACpB,eAAe;wBACf,oBAAoB;wBACpB,iBAAiB;wBACjB,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,cAAc;wBACd,uBAAuB;wBACvB,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;AACpB,qBAAA;AACF,iBAAA;;;ACrED;;AAEG;;;;"}
1
+ {"version":3,"file":"frame-ui-ng-components-combobox.mjs","sources":["../../../projects/components/combobox/src/combobox.content.ts","../../../projects/components/combobox/src/combobox.root.ts","../../../projects/components/combobox/src/combobox.input.ts","../../../projects/components/combobox/src/combobox.items.ts","../../../projects/components/combobox/src/combobox.value.ts","../../../projects/components/combobox/combobox.module.ts","../../../projects/components/combobox/frame-ui-ng-components-combobox.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[frComboboxContent]',\n exportAs: 'frComboboxContent',\n})\nexport class FrComboboxContent {\n readonly templateRef = inject(TemplateRef<unknown>);\n}\n\n@Directive({\n selector: '[frComboboxPanel], frame-combobox-panel',\n host: {\n class: 'frame-combobox__panel',\n role: 'listbox',\n },\n})\nexport class FrComboboxPanel {}\n\n@Directive({\n selector: '[frComboboxList], frame-combobox-list',\n host: {\n class: 'frame-combobox__list',\n },\n})\nexport class FrComboboxList {}\n\n@Directive({\n selector: '[frComboboxEmpty], frame-combobox-empty',\n host: {\n class: 'frame-combobox__empty',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n },\n})\nexport class FrComboboxEmpty {\n private readonly root = inject(FrComboboxRootLookup);\n\n protected hidden(): boolean {\n return this.root.visibleCount() > 0;\n }\n}\n\n@Directive({\n selector: '[frComboboxGroup], frame-combobox-group',\n host: {\n class: 'frame-combobox__group',\n },\n})\nexport class FrComboboxGroup {}\n\n@Directive({\n selector: '[frComboboxLabel], frame-combobox-label',\n host: {\n class: 'frame-combobox__label',\n },\n})\nexport class FrComboboxLabel {}\n\n@Directive({\n selector: '[frComboboxSeparator], frame-combobox-separator',\n host: {\n class: 'frame-combobox__separator',\n role: 'separator',\n },\n})\nexport class FrComboboxSeparator {}\n\n@Directive({\n selector: '[frComboboxCollection], frame-combobox-collection',\n host: {\n class: 'frame-combobox__collection',\n },\n})\nexport class FrComboboxCollection {}\n\n// Resolved by the root file to avoid a circular import in decorator metadata.\nexport abstract class FrComboboxRootLookup {\n abstract visibleCount(): number;\n}\n","import {\r\n CdkConnectedOverlay,\r\n CdkOverlayOrigin,\r\n ConnectedOverlayPositionChange,\r\n ConnectedPosition,\r\n} from '@angular/cdk/overlay';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n afterNextRender,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n contentChild,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\r\nimport { FrComboboxContent, FrComboboxRootLookup } from './combobox.content';\r\nimport { FrComboboxItem } from './combobox.items';\r\n\r\nexport type FrComboboxValue = unknown;\r\nexport type FrComboboxStringifier = (item: FrComboboxValue) => string;\r\n\r\nconst POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 4,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -4,\r\n },\r\n];\r\n\r\n@Component({\r\n selector: '[frCombobox], frame-combobox',\r\n exportAs: 'frCombobox',\r\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, NgTemplateOutlet],\r\n providers: [\r\n provideDsValueAccessor(FrCombobox),\r\n {\r\n provide: FrComboboxRootLookup,\r\n useExisting: FrCombobox,\r\n },\r\n ],\r\n host: {\r\n class: 'frame-combobox',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"\" : null'\r\n },\r\n template: `\r\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-combobox__anchor\">\r\n <ng-content />\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"origin\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayWidth]=\"overlayMinWidth()\"\r\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth()\"\r\n (overlayOutsideClick)=\"close()\"\r\n (positionChange)=\"handlePositionChange($event)\"\r\n (detach)=\"close()\"\r\n >\r\n @if (content()) {\r\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" />\r\n }\r\n </ng-template>\r\n `,\r\n})\r\nexport class FrCombobox extends FrControlValueAccessor<FrComboboxValue | FrComboboxValue[] | null> {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly items = new Set<FrComboboxItem>();\r\n private readonly itemsVersion = signal(0);\r\n private readonly selectedLabels = new Map<FrComboboxValue, string>();\r\n private resizeObserver: ResizeObserver | null = null;\r\n\r\n private readonly origin = viewChild(CdkOverlayOrigin);\r\n\r\n readonly content = contentChild(FrComboboxContent);\r\n readonly autoHighlight = input(false, { transform: booleanAttribute });\r\n readonly debugVisible = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\r\n readonly itemToStringValue = input<FrComboboxStringifier>((item) => String(item ?? ''));\r\n readonly multiple = input(false, { transform: booleanAttribute });\r\n readonly showClear = input(false, { transform: booleanAttribute });\r\n readonly value = model<FrComboboxValue | FrComboboxValue[] | null>(null);\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\r\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\r\n readonly isOpen = signal(false);\r\n readonly query = signal('');\r\n readonly anchorWidth = signal<number | null>(null);\r\n readonly highlightedIndex = signal(0);\r\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\r\n readonly positions = POSITIONS;\r\n\r\n readonly selectedValues = computed(() => {\r\n const value = this.value();\r\n return Array.isArray(value) ? value : value === null ? [] : [value];\r\n });\r\n\r\n readonly displayValue = computed(() => {\r\n if (this.multiple()) {\r\n return this.query();\r\n }\r\n\r\n const value = this.value();\r\n\r\n if (value === null || Array.isArray(value)) {\r\n return this.query();\r\n }\r\n\r\n return this.query() || this.selectedLabels.get(value) || this.itemToStringValue()(value);\r\n });\r\n\r\n readonly hasValue = computed(() => this.selectedValues().length > 0 || this.query().length > 0);\r\n\r\n constructor() {\r\n super();\r\n\r\n effect(() => {\r\n if (this.debugVisible()) {\r\n afterNextRender(() => this.open());\r\n }\r\n });\r\n\r\n effect(() => {\r\n this.query();\r\n this.itemsVersion();\r\n\r\n if (this.autoHighlight()) {\r\n this.highlightedIndex.set(0);\r\n }\r\n });\r\n\r\n queueMicrotask(() => {\r\n this.measureAnchor();\r\n this.attachResizeObserver();\r\n });\r\n\r\n this.destroyRef.onDestroy(() => {\r\n this.resizeObserver?.disconnect();\r\n });\r\n }\r\n\r\n registerItem(item: FrComboboxItem): void {\r\n this.items.add(item);\r\n this.bumpItems();\r\n }\r\n\r\n unregisterItem(item: FrComboboxItem): void {\r\n this.items.delete(item);\r\n this.bumpItems();\r\n }\r\n\r\n visibleItems(): FrComboboxItem[] {\r\n this.itemsVersion();\r\n return Array.from(this.items).filter((item) => item.isVisible());\r\n }\r\n\r\n visibleCount(): number {\r\n return this.visibleItems().length;\r\n }\r\n\r\n overlayMinWidth(): number {\r\n return this.anchorWidth() ?? 0;\r\n }\r\n\r\n overlayPanelClasses(): string[] {\r\n return ['frame-combobox-overlay', `frame-combobox-overlay--${this.overlaySide()}`];\r\n }\r\n\r\n isSelected(value: FrComboboxValue): boolean {\r\n return this.selectedValues().some((selected) => Object.is(selected, value));\r\n }\r\n\r\n isHighlighted(item: FrComboboxItem): boolean {\r\n return this.visibleItems()[this.highlightedIndex()] === item;\r\n }\r\n\r\n rememberItemLabel(value: FrComboboxValue, label: string): void {\r\n this.selectedLabels.set(value, label);\r\n }\r\n\r\n itemVisible(label: string): boolean {\r\n const query = this.query().trim().toLowerCase();\r\n return !query || label.toLowerCase().includes(query);\r\n }\r\n\r\n open(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n this.measureAnchor();\r\n this.isOpen.set(true);\r\n }\r\n\r\n close(): void {\r\n if (this.debugVisible()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(false);\r\n this.markAsTouched();\r\n }\r\n\r\n touch(): void {\r\n this.markAsTouched();\r\n }\r\n\r\n clear(): void {\r\n this.query.set('');\r\n this.value.set(this.multiple() ? [] : null);\r\n this.notifyValueChange(this.value());\r\n this.markAsTouched();\r\n }\r\n\r\n selectItem(value: FrComboboxValue, label: string): void {\r\n this.selectedLabels.set(value, label);\r\n\r\n if (this.multiple()) {\r\n const current = this.selectedValues();\r\n const exists = current.some((item) => Object.is(item, value));\r\n const next = exists ? current.filter((item) => !Object.is(item, value)) : [...current, value];\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.query.set('');\r\n this.open();\r\n return;\r\n }\r\n\r\n this.value.set(value);\r\n this.notifyValueChange(value);\r\n this.query.set('');\r\n this.close();\r\n }\r\n\r\n removeItem(value: FrComboboxValue): void {\r\n if (!this.multiple()) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n const next = this.selectedValues().filter((item) => !Object.is(item, value));\r\n this.value.set(next);\r\n this.notifyValueChange(next);\r\n this.markAsTouched();\r\n }\r\n\r\n updateQuery(value: string): void {\r\n this.query.set(value);\r\n this.highlightedIndex.set(0);\r\n this.open();\r\n }\r\n\r\n moveHighlight(delta: number): void {\r\n const count = this.visibleCount();\r\n\r\n if (count === 0) {\r\n this.highlightedIndex.set(0);\r\n return;\r\n }\r\n\r\n this.highlightedIndex.set((this.highlightedIndex() + delta + count) % count);\r\n }\r\n\r\n selectHighlighted(): void {\r\n const item = this.visibleItems()[this.highlightedIndex()];\r\n item?.select();\r\n }\r\n\r\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\r\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\r\n }\r\n\r\n protected setViewValue(value: FrComboboxValue | FrComboboxValue[] | null): void {\r\n this.value.set(value);\r\n this.query.set('');\r\n }\r\n\r\n private bumpItems(): void {\r\n this.itemsVersion.update((value) => value + 1);\r\n }\r\n\r\n private measureAnchor(): void {\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n this.anchorWidth.set(null);\r\n return;\r\n }\r\n\r\n this.anchorWidth.set(element.getBoundingClientRect().width || null);\r\n }\r\n\r\n private attachResizeObserver(): void {\r\n if (typeof ResizeObserver === 'undefined') {\r\n return;\r\n }\r\n\r\n const element = this.origin()?.elementRef.nativeElement ?? this.elementRef.nativeElement;\r\n\r\n if (typeof element?.getBoundingClientRect !== 'function') {\r\n return;\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.measureAnchor());\r\n this.resizeObserver.observe(element);\r\n }\r\n}\r\n\r\n","import { Directive, ElementRef, inject } from '@angular/core';\n\nimport { FrCombobox } from './combobox.root';\n\n@Directive({\n selector: 'input[frComboboxInput]',\n host: {\n class: 'frame-combobox__input',\n '[attr.aria-disabled]': 'root.disabled() ? \"true\" : null',\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\n '[attr.aria-invalid]': 'root.invalid() ? \"true\" : null',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n '[attr.data-has-value]': 'root.hasValue() ? \"true\" : \"false\"',\n '[value]': 'root.displayValue()',\n autocomplete: 'off',\n role: 'combobox',\n type: 'text',\n '(blur)': 'handleBlur()',\n '(focus)': 'root.open()',\n '(input)': 'handleInput()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class FrComboboxInput {\n protected readonly root = inject(FrCombobox);\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n protected handleInput(): void {\n this.root.updateQuery(this.elementRef.nativeElement.value);\n }\n\n protected handleBlur(): void {\n this.root.touch();\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(1);\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(-1);\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n this.root.selectHighlighted();\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.root.close();\n }\n }\n}\n\n@Directive({\n selector: 'button[frComboboxTrigger]',\n host: {\n class: 'frame-combobox__trigger',\n '[attr.aria-expanded]': 'root.isOpen() ? \"true\" : \"false\"',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n role: 'combobox',\n type: 'button',\n '(click)': 'root.isOpen() ? root.close() : root.open()',\n },\n})\nexport class FrComboboxTrigger {\n protected readonly root = inject(FrCombobox);\n}\n\n@Directive({\n selector: 'button[frComboboxClear]',\n host: {\n class: 'frame-combobox__clear',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n type: 'button',\n '(click)': 'root.clear()',\n },\n})\nexport class FrComboboxClear {\n protected readonly root = inject(FrCombobox);\n\n protected hidden(): boolean {\n return !this.root.showClear() || !this.root.hasValue();\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\n\n@Directive({\n selector: 'button[frComboboxItem]',\n host: {\n class: 'frame-combobox__item',\n '[attr.aria-selected]': 'isSelected() ? \"true\" : \"false\"',\n '[attr.data-highlighted]': 'isHighlighted() ? \"\" : null',\n '[attr.data-hidden]': 'isVisible() ? null : \"\"',\n '[attr.data-selected]': 'isSelected() ? \"\" : null',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n role: 'option',\n type: 'button',\n '(click)': 'select()',\n '(mouseenter)': 'highlightSelf()',\n },\n})\nexport class FrComboboxItem {\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly root = inject(FrCombobox);\n private mutationObserver: MutationObserver | null = null;\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly itemLabel = input<string | null>(null, { alias: 'label' });\n readonly value = input.required<FrComboboxValue>();\n readonly resolvedLabel = signal('');\n\n readonly label = computed(() => this.itemLabel() ?? this.resolvedLabel());\n readonly visible = computed(() => this.root.itemVisible(this.label()));\n\n constructor() {\n this.root.registerItem(this);\n this.destroyRef.onDestroy(() => {\n this.mutationObserver?.disconnect();\n this.root.unregisterItem(this);\n });\n\n afterNextRender(() => {\n this.refreshResolvedLabel();\n this.observeTextChanges();\n });\n\n effect(() => {\n if (this.root.isSelected(this.value())) {\n this.root.rememberItemLabel(this.value(), this.label());\n }\n });\n }\n\n isVisible(): boolean {\n return this.visible();\n }\n\n isSelected(): boolean {\n return this.root.isSelected(this.value());\n }\n\n isHighlighted(): boolean {\n return this.root.isHighlighted(this);\n }\n\n select(): void {\n if (!this.disabled() && this.isVisible()) {\n this.root.selectItem(this.value(), this.label());\n }\n }\n\n protected highlightSelf(): void {\n const index = this.root.visibleItems().indexOf(this);\n\n if (index >= 0) {\n this.root.highlightedIndex.set(index);\n }\n }\n\n private resolveLabel(): string {\n return this.elementRef.nativeElement.textContent?.trim() ?? '';\n }\n\n private refreshResolvedLabel(): void {\n this.resolvedLabel.set(this.resolveLabel());\n }\n\n private observeTextChanges(): void {\n if (typeof MutationObserver === 'undefined' || this.itemLabel() !== null) {\n return;\n }\n\n this.mutationObserver = new MutationObserver(() => this.refreshResolvedLabel());\n this.mutationObserver.observe(this.elementRef.nativeElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n}\n\n@Directive({\n selector: '[frComboboxItemIndicator]',\n host: {\n class: 'frame-combobox__item-indicator',\n 'aria-hidden': 'true',\n },\n})\nexport class FrComboboxItemIndicator {}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n afterNextRender,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\nimport { FrCombobox, FrComboboxValue } from './combobox.root';\n\n@Directive({\n selector: '[frComboboxChips], frame-combobox-chips',\n host: {\n class: 'frame-combobox__chips',\n '[attr.data-disabled]': 'root.disabled() ? \"\" : null',\n '[attr.data-invalid]': 'root.invalid() ? \"\" : null',\n },\n})\nexport class FrComboboxChips {\n protected readonly root = inject(FrCombobox);\n}\n\n@Directive({\n selector: '[frComboboxValue], frame-combobox-value',\n exportAs: 'frComboboxValue',\n host: {\n class: 'frame-combobox__value',\n },\n})\nexport class FrComboboxValueList {\n private readonly root = inject(FrCombobox);\n\n values(): FrComboboxValue[] {\n return this.root.selectedValues();\n }\n}\n\n@Directive({\n selector: '[frComboboxChip], frame-combobox-chip',\n exportAs: 'frComboboxChip',\n host: {\n class: 'frame-combobox__chip',\n },\n})\nexport class FrComboboxChip {\n private readonly root = inject(FrCombobox);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n readonly value = input.required<FrComboboxValue>();\n readonly removable = input(true, { transform: booleanAttribute });\n\n constructor() {\n afterNextRender(() => this.attachDefaultRemoveButton());\n }\n\n remove(): void {\n if (this.root.disabled()) {\n return;\n }\n\n this.root.removeItem(this.value());\n }\n\n private attachDefaultRemoveButton(): void {\n const element = this.elementRef.nativeElement;\n\n if (!this.removable() || element.querySelector('[frComboboxChipRemove], [frcomboboxchipremove]')) {\n return;\n }\n\n const button = this.renderer.createElement('button') as HTMLButtonElement;\n const label = this.renderer.createText('×');\n this.renderer.setAttribute(button, 'type', 'button');\n this.renderer.setAttribute(button, 'aria-label', 'Remove selected item');\n this.renderer.setAttribute(button, 'data-default-remove', '');\n this.renderer.addClass(button, 'frame-combobox__chip-remove');\n this.renderer.appendChild(button, label);\n this.renderer.listen(button, 'click', (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.remove();\n });\n this.renderer.appendChild(element, button);\n }\n}\n\n@Directive({\n selector: 'button[frComboboxChipRemove]',\n host: {\n class: 'frame-combobox__chip-remove',\n type: 'button',\n '(click)': 'remove($event)',\n },\n})\nexport class FrComboboxChipRemove {\n private readonly chip = inject(FrComboboxChip);\n\n protected remove(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.chip.remove();\n }\n}\n\n@Directive({\n selector: 'input[frComboboxChipsInput]',\n host: {\n class: 'frame-combobox__chips-input',\n '[attr.disabled]': 'root.disabled() ? \"\" : null',\n '[value]': 'root.query()',\n autocomplete: 'off',\n type: 'text',\n '(focus)': 'root.open()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class FrComboboxChipsInput {\n protected readonly root = inject(FrCombobox);\n\n protected handleInput(event: Event): void {\n this.root.updateQuery((event.target as HTMLInputElement).value);\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (event.key === 'Backspace' && this.root.query() === '') {\n const values = this.root.selectedValues();\n const last = values.at(-1);\n\n if (last !== undefined) {\n this.root.removeItem(last);\n }\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.root.open();\n this.root.moveHighlight(1);\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n this.root.selectHighlighted();\n }\n }\n}\n\n@Directive({\n selector: '[frComboboxError], frame-combobox-error',\n host: {\n class: 'frame-combobox__error',\n 'aria-live': 'polite',\n },\n})\nexport class FrComboboxError {}\n","import { NgModule } from '@angular/core';\nimport {\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n} from './src/combobox';\n\n@NgModule({\n imports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n exports: [\n FrCombobox,\n FrComboboxChip,\n FrComboboxChipRemove,\n FrComboboxChips,\n FrComboboxChipsInput,\n FrComboboxClear,\n FrComboboxCollection,\n FrComboboxContent,\n FrComboboxEmpty,\n FrComboboxError,\n FrComboboxGroup,\n FrComboboxInput,\n FrComboboxItem,\n FrComboboxItemIndicator,\n FrComboboxLabel,\n FrComboboxList,\n FrComboboxPanel,\n FrComboboxSeparator,\n FrComboboxTrigger,\n FrComboboxValueList,\n ],\n})\nexport class FrComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ChangeDetectionStrategy, Component, Injectable, input, output, Directive, NgModule } from '@angular/core';
3
+ import { FrButton, FrButtonLabel } from '@frame-ui-ng/components/button';
4
+ import { FR_MODAL_DATA, FrModalClose, FrModalDescription, FrModalFooter, FrModalHeader, FrModalPanel, FrModalTitle, FrModalService } from '@frame-ui-ng/components/modal';
5
+ import { take } from 'rxjs';
6
+
7
+ class FrConfirmModalContent {
8
+ data = inject(FR_MODAL_DATA);
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrConfirmModalContent, isStandalone: true, selector: "frame-confirm-modal", ngImport: i0, template: `
11
+ <div frModalPanel data-confirm-modal size="sm" [showCloseButton]="false">
12
+ <div frModalHeader>
13
+ <h2 frModalTitle>{{ data.title }}</h2>
14
+
15
+ @if (data.description) {
16
+ <p frModalDescription>{{ data.description }}</p>
17
+ }
18
+ </div>
19
+
20
+ <div frModalFooter>
21
+ <button frButton appearance="outline" type="button" [frModalClose]="'cancel'">
22
+ <span frButtonLabel>{{ data.cancelLabel }}</span>
23
+ </button>
24
+ <button frButton type="button" [frModalClose]="'confirm'">
25
+ <span frButtonLabel>{{ data.confirmLabel }}</span>
26
+ </button>
27
+ </div>
28
+ </div>
29
+ `, isInline: true, dependencies: [{ kind: "directive", type: FrButton, selector: "a[frButton], button[frButton]", inputs: ["appearance", "disabled", "loading", "loadingDisplay", "radius", "size"] }, { kind: "directive", type: FrButtonLabel, selector: "[frButtonLabel]" }, { kind: "directive", type: FrModalClose, selector: "[frModalClose]", inputs: ["frModalClose"] }, { kind: "directive", type: FrModalDescription, selector: "[frModalDescription], frame-modal-description" }, { kind: "directive", type: FrModalFooter, selector: "[frModalFooter], frame-modal-footer" }, { kind: "directive", type: FrModalHeader, selector: "[frModalHeader], frame-modal-header" }, { kind: "component", type: FrModalPanel, selector: "[frModalPanel], frame-modal-panel", inputs: ["scrollable", "showCloseButton", "size", "stickyFooter"] }, { kind: "directive", type: FrModalTitle, selector: "[frModalTitle], frame-modal-title" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalContent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'frame-confirm-modal',
35
+ imports: [
36
+ FrButton,
37
+ FrButtonLabel,
38
+ FrModalClose,
39
+ FrModalDescription,
40
+ FrModalFooter,
41
+ FrModalHeader,
42
+ FrModalPanel,
43
+ FrModalTitle,
44
+ ],
45
+ changeDetection: ChangeDetectionStrategy.OnPush,
46
+ template: `
47
+ <div frModalPanel data-confirm-modal size="sm" [showCloseButton]="false">
48
+ <div frModalHeader>
49
+ <h2 frModalTitle>{{ data.title }}</h2>
50
+
51
+ @if (data.description) {
52
+ <p frModalDescription>{{ data.description }}</p>
53
+ }
54
+ </div>
55
+
56
+ <div frModalFooter>
57
+ <button frButton appearance="outline" type="button" [frModalClose]="'cancel'">
58
+ <span frButtonLabel>{{ data.cancelLabel }}</span>
59
+ </button>
60
+ <button frButton type="button" [frModalClose]="'confirm'">
61
+ <span frButtonLabel>{{ data.confirmLabel }}</span>
62
+ </button>
63
+ </div>
64
+ </div>
65
+ `,
66
+ }]
67
+ }] });
68
+ class FrConfirmModalService {
69
+ modal = inject(FrModalService);
70
+ open(config = {}) {
71
+ const { cancelLabel = 'Cancel', confirmLabel = 'Confirm', description, title = 'Are you sure?', ...modalConfig } = config;
72
+ const internalConfig = {
73
+ ...modalConfig,
74
+ ariaLabel: modalConfig.ariaLabel ?? title,
75
+ data: {
76
+ cancelLabel,
77
+ confirmLabel,
78
+ description,
79
+ title,
80
+ },
81
+ disableClose: modalConfig.disableClose ?? true,
82
+ };
83
+ return this.modal.open(FrConfirmModalContent, internalConfig);
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalService, providedIn: 'root' });
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalService, decorators: [{
89
+ type: Injectable,
90
+ args: [{ providedIn: 'root' }]
91
+ }] });
92
+
93
+ class FrConfirmModalTrigger {
94
+ confirmModal = inject(FrConfirmModalService);
95
+ config = input({}, { ...(ngDevMode ? { debugName: "config" } : /* istanbul ignore next */ {}), alias: 'frConfirmModal' });
96
+ title = input(undefined, { ...(ngDevMode ? { debugName: "title" } : /* istanbul ignore next */ {}), alias: 'frConfirmModalTitle' });
97
+ description = input(undefined, { ...(ngDevMode ? { debugName: "description" } : /* istanbul ignore next */ {}), alias: 'frConfirmModalDescription' });
98
+ cancelLabel = input(undefined, { ...(ngDevMode ? { debugName: "cancelLabel" } : /* istanbul ignore next */ {}), alias: 'frConfirmModalCancelLabel' });
99
+ confirmLabel = input(undefined, { ...(ngDevMode ? { debugName: "confirmLabel" } : /* istanbul ignore next */ {}), alias: 'frConfirmModalConfirmLabel' });
100
+ closed = output({ alias: 'frConfirmModalClosed' });
101
+ cancelled = output({ alias: 'frConfirmModalCancelled' });
102
+ confirmed = output({ alias: 'frConfirmModalConfirmed' });
103
+ open() {
104
+ this.confirmModal
105
+ .open(this.resolvedConfig())
106
+ .closed
107
+ .pipe(take(1))
108
+ .subscribe((result) => {
109
+ this.closed.emit(result);
110
+ if (result === 'confirm') {
111
+ this.confirmed.emit();
112
+ return;
113
+ }
114
+ if (result === 'cancel') {
115
+ this.cancelled.emit();
116
+ }
117
+ });
118
+ }
119
+ resolvedConfig() {
120
+ const config = this.config();
121
+ const baseConfig = typeof config === 'string' ? { title: config } : config;
122
+ return {
123
+ ...baseConfig,
124
+ cancelLabel: this.cancelLabel() ?? baseConfig.cancelLabel,
125
+ confirmLabel: this.confirmLabel() ?? baseConfig.confirmLabel,
126
+ description: this.description() ?? baseConfig.description,
127
+ title: this.title() ?? baseConfig.title,
128
+ };
129
+ }
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
131
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrConfirmModalTrigger, isStandalone: true, selector: "[frConfirmModal]", inputs: { config: { classPropertyName: "config", publicName: "frConfirmModal", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "frConfirmModalTitle", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "frConfirmModalDescription", isSignal: true, isRequired: false, transformFunction: null }, cancelLabel: { classPropertyName: "cancelLabel", publicName: "frConfirmModalCancelLabel", isSignal: true, isRequired: false, transformFunction: null }, confirmLabel: { classPropertyName: "confirmLabel", publicName: "frConfirmModalConfirmLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "frConfirmModalClosed", cancelled: "frConfirmModalCancelled", confirmed: "frConfirmModalConfirmed" }, host: { listeners: { "click": "open()" } }, exportAs: ["frConfirmModal"], ngImport: i0 });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalTrigger, decorators: [{
134
+ type: Directive,
135
+ args: [{
136
+ selector: '[frConfirmModal]',
137
+ exportAs: 'frConfirmModal',
138
+ host: {
139
+ '(click)': 'open()',
140
+ },
141
+ }]
142
+ }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "frConfirmModal", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "frConfirmModalTitle", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "frConfirmModalDescription", required: false }] }], cancelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "frConfirmModalCancelLabel", required: false }] }], confirmLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "frConfirmModalConfirmLabel", required: false }] }], closed: [{ type: i0.Output, args: ["frConfirmModalClosed"] }], cancelled: [{ type: i0.Output, args: ["frConfirmModalCancelled"] }], confirmed: [{ type: i0.Output, args: ["frConfirmModalConfirmed"] }] } });
143
+
144
+ class FrConfirmModalModule {
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
146
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalModule, imports: [FrConfirmModalTrigger], exports: [FrConfirmModalTrigger] });
147
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalModule });
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrConfirmModalModule, decorators: [{
150
+ type: NgModule,
151
+ args: [{
152
+ imports: [FrConfirmModalTrigger],
153
+ exports: [FrConfirmModalTrigger],
154
+ }]
155
+ }] });
156
+
157
+ /**
158
+ * Generated bundle index. Do not edit.
159
+ */
160
+
161
+ export { FrConfirmModalModule, FrConfirmModalService, FrConfirmModalTrigger };
162
+ //# sourceMappingURL=frame-ui-ng-components-confirm-modal.mjs.map