@koobiq/components 20.4.4 → 20.4.5

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 (35) hide show
  1. package/content-panel/content-panel-header.scss +2 -3
  2. package/content-panel/content-panel.scss +3 -0
  3. package/core/index.d.ts +10 -0
  4. package/fesm2022/koobiq-components-actions-panel.mjs +9 -1
  5. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  6. package/fesm2022/koobiq-components-content-panel.mjs +4 -4
  7. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  8. package/fesm2022/koobiq-components-core.mjs +11 -6
  9. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  10. package/fesm2022/koobiq-components-filter-bar.mjs +60 -14
  11. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  12. package/fesm2022/koobiq-components-form-field.mjs +2 -2
  13. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  14. package/fesm2022/koobiq-components-inline-edit.mjs +19 -2
  15. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  16. package/fesm2022/koobiq-components-modal.mjs +2 -2
  17. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  18. package/fesm2022/koobiq-components-overflow-items.mjs +13 -3
  19. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  20. package/fesm2022/koobiq-components-textarea.mjs +17 -6
  21. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  22. package/fesm2022/koobiq-components-toast.mjs +2 -2
  23. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-tree-select.mjs +14 -4
  25. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  26. package/filter-bar/index.d.ts +33 -0
  27. package/inline-edit/index.d.ts +8 -1
  28. package/modal/modal.scss +2 -0
  29. package/overflow-items/index.d.ts +12 -1
  30. package/package.json +3 -3
  31. package/schematics/ng-add/index.js +1 -1
  32. package/textarea/index.d.ts +3 -1
  33. package/textarea/textarea-tokens.scss +5 -1
  34. package/toast/toast.component.scss +1 -0
  35. package/tree-select/index.d.ts +8 -5
@@ -7,16 +7,15 @@
7
7
 
8
8
  .kbq-content-panel-header__wrapper {
9
9
  display: flex;
10
- justify-content: space-between;
11
10
  }
12
11
 
13
12
  .kbq-content-panel-header__actions {
14
13
  display: flex;
15
- justify-content: flex-end;
14
+ margin-inline-start: auto;
16
15
  }
17
16
 
18
17
  .kbq-content-panel-header__close-button {
19
- margin-left: var(--kbq-size-m);
18
+ margin-inline-start: var(--kbq-size-m);
20
19
  }
21
20
 
22
21
  .kbq-content-panel-header-title {
@@ -1,5 +1,7 @@
1
1
  .kbq-content-panel {
2
2
  display: flex;
3
+ flex-grow: 1;
4
+ min-width: 0;
3
5
  border-radius: var(--kbq-content-panel-border-radius);
4
6
  background-color: var(--kbq-content-panel-background-color);
5
7
  border: var(--kbq-content-panel-border);
@@ -11,6 +13,7 @@
11
13
  display: flex;
12
14
  flex: 1;
13
15
  flex-direction: column;
16
+ min-width: 0;
14
17
  border-top-right-radius: inherit;
15
18
  border-bottom-right-radius: inherit;
16
19
  }
package/core/index.d.ts CHANGED
@@ -1060,6 +1060,7 @@ declare const enUSLocaleData: {
1060
1060
  applyButton: string;
1061
1061
  emptySearchResult: string;
1062
1062
  selectAll: string;
1063
+ noOptions: string;
1063
1064
  };
1064
1065
  datePipe: {
1065
1066
  customPeriod: string;
@@ -1265,6 +1266,7 @@ declare const esLALocaleData: {
1265
1266
  applyButton: string;
1266
1267
  emptySearchResult: string;
1267
1268
  selectAll: string;
1269
+ noOptions: string;
1268
1270
  };
1269
1271
  datePipe: {
1270
1272
  customPeriod: string;
@@ -1470,6 +1472,7 @@ declare const ptBRLocaleData: {
1470
1472
  applyButton: string;
1471
1473
  emptySearchResult: string;
1472
1474
  selectAll: string;
1475
+ noOptions: string;
1473
1476
  };
1474
1477
  datePipe: {
1475
1478
  customPeriod: string;
@@ -1676,6 +1679,7 @@ declare const ruRULocaleData: {
1676
1679
  applyButton: string;
1677
1680
  emptySearchResult: string;
1678
1681
  selectAll: string;
1682
+ noOptions: string;
1679
1683
  };
1680
1684
  datePipe: {
1681
1685
  customPeriod: string;
@@ -1882,6 +1886,7 @@ declare const tkTMLocaleData: {
1882
1886
  applyButton: string;
1883
1887
  emptySearchResult: string;
1884
1888
  selectAll: string;
1889
+ noOptions: string;
1885
1890
  };
1886
1891
  datePipe: {
1887
1892
  customPeriod: string;
@@ -2320,6 +2325,7 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2320
2325
  applyButton: string;
2321
2326
  emptySearchResult: string;
2322
2327
  selectAll: string;
2328
+ noOptions: string;
2323
2329
  };
2324
2330
  datePipe: {
2325
2331
  customPeriod: string;
@@ -2562,6 +2568,7 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2562
2568
  applyButton: string;
2563
2569
  emptySearchResult: string;
2564
2570
  selectAll: string;
2571
+ noOptions: string;
2565
2572
  };
2566
2573
  datePipe: {
2567
2574
  customPeriod: string;
@@ -2800,6 +2807,7 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
2800
2807
  applyButton: string;
2801
2808
  emptySearchResult: string;
2802
2809
  selectAll: string;
2810
+ noOptions: string;
2803
2811
  };
2804
2812
  datePipe: {
2805
2813
  customPeriod: string;
@@ -3044,6 +3052,7 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
3044
3052
  applyButton: string;
3045
3053
  emptySearchResult: string;
3046
3054
  selectAll: string;
3055
+ noOptions: string;
3047
3056
  };
3048
3057
  datePipe: {
3049
3058
  customPeriod: string;
@@ -3284,6 +3293,7 @@ declare function KBQ_DEFAULT_LOCALE_DATA_FACTORY(): {
3284
3293
  applyButton: string;
3285
3294
  emptySearchResult: string;
3286
3295
  selectAll: string;
3296
+ noOptions: string;
3287
3297
  };
3288
3298
  datePipe: {
3289
3299
  customPeriod: string;
@@ -4,6 +4,7 @@ import { SharedResizeObserver } from '@angular/cdk/observers/private';
4
4
  import { Overlay } from '@angular/cdk/overlay';
5
5
  import * as i0 from '@angular/core';
6
6
  import { InjectionToken, EventEmitter, inject, Renderer2, ViewEncapsulation, ChangeDetectionStrategy, Component, Injector, Injectable, NgModule } from '@angular/core';
7
+ import { KBQ_OVERFLOW_ITEMS_RESIZE_OBSERVER_TARGETS } from '@koobiq/components/overflow-items';
7
8
  import { map, of, Subject, ReplaySubject, filter, take, takeUntil } from 'rxjs';
8
9
  import { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';
9
10
  import { CdkPortalOutlet } from '@angular/cdk/portal';
@@ -451,7 +452,14 @@ class KbqActionsPanel {
451
452
  actionsPanelRef = new KbqActionsPanelRef(dialogRef, container);
452
453
  return [
453
454
  { provide: KbqActionsPanelRef, useValue: actionsPanelRef },
454
- { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }
455
+ { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data },
456
+ // The panel is as wide as its content, and items hidden by `KbqOverflowItems` drop out of that
457
+ // width, so the panel never grows back by itself. Observe the element that bounds it instead:
458
+ // `overlayContainer`, or else the overlay host, which spans the viewport.
459
+ {
460
+ provide: KBQ_OVERFLOW_ITEMS_RESIZE_OBSERVER_TARGETS,
461
+ useValue: [overlayContainer ? overlayContainer.nativeElement : dialogRef.overlayRef.hostElement]
462
+ }
455
463
  ];
456
464
  }
457
465
  });
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Element in which the actions panel overlay will be connected to.\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n *\n * NOTE: this property is ignored if the `overlayContainer` property is provided, and will be calculated based on\n * the width of the `overlayContainer`.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n selector: 'kbq-actions-panel-container',\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n color=\"contrast\"\n kbq-button\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n >\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION]\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, ReplaySubject, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeOpenedSubject = new ReplaySubject<void>(1);\n private readonly beforeClosedSubject = new Subject<R | undefined>();\n\n /** Emits when keydown events are targeted on the overlay. */\n readonly keydownEvents: Observable<KeyboardEvent> = this.dialogRef.keydownEvents;\n\n /** Emits when the actions panel starts opening, before its entrance animation plays. */\n readonly beforeOpened: Observable<void> = this.beforeOpenedSubject;\n\n /** Emits when the actions panel has opened and appeared. */\n readonly afterOpened: Observable<void> = this.afterOpenedSubject;\n\n /** Emits when the actions panel starts closing, before its exit animation plays. */\n readonly beforeClosed: Observable<R | undefined> = this.beforeClosedSubject;\n\n /** Emits when the actions panel is finished closing. */\n readonly afterClosed: Observable<R | undefined> = this.dialogRef.closed;\n\n /**\n * Overlay reference for the actions panel.\n *\n * @docs-private\n */\n readonly overlayRef: OverlayRef = this.dialogRef.overlayRef;\n\n /**\n * ID of the actions panel.\n *\n * @docs-private\n */\n readonly id: string = this.dialogRef.id;\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout?: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /**\n * Opens the actions panel, playing its entrance animation.\n *\n * @docs-private\n */\n open(): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.beforeOpenedSubject.next();\n this.beforeOpenedSubject.complete();\n this.containerInstance.startOpenAnimation();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.beforeClosedSubject.next(result);\n this.beforeClosedSubject.complete();\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(Overlay);\n private readonly dialog = inject(Dialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n private readonly resizeObserver = inject(SharedResizeObserver);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.open();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.open();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n const { overlayContainer, overlayPanelClass } = config;\n\n this.dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: overlayContainer\n ? this.overlay\n .position()\n .flexibleConnectedTo(overlayContainer)\n .withPositions([{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'bottom' }])\n .withFlexibleDimensions()\n .withPush(false)\n .withLockedPosition()\n .withGrowAfterOpen()\n : this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }\n ];\n }\n });\n\n const { overlayRef } = actionsPanelRef;\n\n overlayRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (overlayPanelClass) overlayRef.addPanelClass(overlayPanelClass);\n\n if (overlayContainer) {\n const { afterClosed } = actionsPanelRef;\n\n this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement);\n\n this.resizeObserver\n .observe(overlayContainer.nativeElement)\n .pipe(takeUntil(afterClosed))\n .subscribe(() => {\n if (this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement)) {\n overlayRef.updatePosition();\n }\n });\n }\n\n return actionsPanelRef;\n }\n\n private syncOverlayMaxWidth(container: HTMLElement, overlayElement: HTMLElement): boolean {\n const { width } = container.getBoundingClientRect();\n\n if (!width) return false;\n\n const maxWidth = coerceCssPixelValue(width);\n\n if (overlayElement.style.maxWidth === maxWidth) return false;\n\n overlayElement.style.maxWidth = maxWidth;\n\n return true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n providers: [KbqActionsPanel],\n exports: COMPONENTS\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA;MACa,gCAAgC,GAAG,IAAI,cAAc,CAC9D,kCAAkC,EAClC,EAAE,OAAO,EAAE,MAAM,IAAI,qBAAqB,EAAE,EAAE;AAGlD;;;;AAIG;MACU,oCAAoC,GAAG,CAAI,MAAgC,MAAgB;AACpG,IAAA,OAAO,EAAE,gCAAgC;AACzC,IAAA,QAAQ,EAAE;AACb,CAAA;AAED;;;;;;AAMG;MACU,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AAMI;;;;AAIG;QACH,IAAA,CAAA,IAAI,GAAc,IAAI;AAKtB;;;;;AAKG;QACH,IAAA,CAAA,iBAAiB,GAAa,IAAI;AAgClC;;;;AAIG;QACH,IAAA,CAAA,SAAS,GAAe,KAAK;AAE7B;;;;AAIG;AACH,QAAA,IAAA,CAAA,cAAc,GAA0C,CAAC,OAAO,KAAK,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAE1G;;;;AAIG;QACH,IAAA,CAAA,YAAY,GAAa,KAAK;IAClC;AAAC;;AC7DD;MACa,sCAAsC,GAAG,IAAI,cAAc,CACpE,wCAAwC,EACxC,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,YAAY,EAAE;AAGlD;MACa,0CAA0C,GAAG,CACtD,aAAiD,MACrC;AACZ,IAAA,OAAO,EAAE,sCAAsC;AAC/C,IAAA,QAAQ,EAAE;AACb,CAAA;AAED;;AAEG;AACH,MAAM,qCAAqC,GAAG,OAAO,CAAC,OAAO,EAAE;IAC3D,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACxD,IAAA,UAAU,CACN,oCAAoC,EACpC,KAAK,CAAC;QACF,OAAO,CAAC,CAAA,EAAG,qBAAqB,CAAC,QAAQ,IAAI,kBAAkB,CAAC,aAAa,CAAA,CAAE,CAAC;QAChF,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjD,KAAA,CAAC,CACL;AACD,IAAA,UAAU,CACN,iBAAiB,EACjB,KAAK,CAAC;QACF,OAAO,CAAC,CAAA,EAAG,qBAAqB,CAAC,OAAO,IAAI,kBAAkB,CAAC,aAAa,CAAA,CAAE,CAAC;QAC/E,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjD,KAAA,CAAC;AAET,CAAA,CAAC;AAEF;;;;AAIG;AA8CG,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;AA7ChE,IAAA,WAAA,GAAA;;AA8CI;;;;AAIG;QACO,IAAA,CAAA,cAAc,GAAkC,MAAM;AAEhE;;;;AAIG;AACM,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAkB;AAKnE;;;;AAIG;AACgB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAExC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;QAC5B,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE/E;;;;AAIG;AACgB,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAC7C,IAAI,CAAC;cACC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;cACxF,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAC3D;AA+FJ,IAAA;IA7FY,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACzB;AAEA;;;;AAIG;IACO,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;IAC7B;AAEA;;;;AAIG;IACH,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;;;AAG/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACtC,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;QAC3C;IACJ;AAEA;;;;AAIG;IACH,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;AAC9B,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAC1C;IACJ;AAEA;;;;AAIG;AACO,IAAA,eAAe,CAAC,KAAqB,EAAA;AAC3C,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,EAAE;QACrB;AAEA,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;AAEA;;;;AAIG;AACO,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;AAEA;;;;AAIG;AACO,IAAA,YAAY,CAAC,KAAoB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;AAEA;;AAEG;IACgB,gBAAgB,GAAA;QAC/B,IAAI,CAAC,mBAAmB,EAAE;IAC9B;IAEQ,mBAAmB,GAAA;AACvB,QAAA,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM;QAEtC,IAAI,cAAc,EAAE;AAChB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBAC/B,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC1G;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC;YAC1E;QACJ;IACJ;kIApIS,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uCAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApCvB;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ytBAAA,EAAA,2iCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAvBG,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAoCR,CAAC,qCAAqC,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAE1C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA7CpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,OAAA,EAC9B;wBACL,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,aAAa;wBACb;qBACH,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,eAAA,EAOgB,uBAAuB,CAAC,OAAO,iBACjC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,yCAAyC,EAAE,4BAA4B;AACvE,wBAAA,UAAU,EAAE,gBAAgB;AAC5B,wBAAA,gBAAgB,EAAE,0BAA0B;AAC5C,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,kBAAkB,EAAE;qBACvB,EAAA,UAAA,EACW,CAAC,qCAAqC,CAAC,EAAA,MAAA,EAAA,CAAA,ytBAAA,EAAA,2iCAAA,CAAA,EAAA;;;ACvHvD;;AAEG;MACU,kBAAkB,CAAA;IA+C3B,WAAA,CACqB,SAA0B,EAC3C,iBAA2C,EAAA;QAD1B,IAAA,CAAA,SAAS,GAAT,SAAS;AAxCb,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAQ;AACxC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAiB;;AAG1D,QAAA,IAAA,CAAA,aAAa,GAA8B,IAAI,CAAC,SAAS,CAAC,aAAa;;AAGvE,QAAA,IAAA,CAAA,YAAY,GAAqB,IAAI,CAAC,mBAAmB;;AAGzD,QAAA,IAAA,CAAA,WAAW,GAAqB,IAAI,CAAC,kBAAkB;;AAGvD,QAAA,IAAA,CAAA,YAAY,GAA8B,IAAI,CAAC,mBAAmB;;AAGlE,QAAA,IAAA,CAAA,WAAW,GAA8B,IAAI,CAAC,SAAS,CAAC,MAAM;AAEvE;;;;AAIG;AACM,QAAA,IAAA,CAAA,UAAU,GAAe,IAAI,CAAC,SAAS,CAAC,UAAU;AAE3D;;;;AAIG;AACM,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC,EAAE;AAYnC,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;QAC1C,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,wBAAwB,EAAE;IACnC;AAEA;;;;AAIG;IACH,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB;QACJ;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;IAC/C;;AAGA,IAAA,KAAK,CAAC,MAAU,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB;QACJ;QAEA,IAAI,CAAC,iBAAiB,CAAC;AAClB,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,EAC9C,IAAI,CAAC,CAAC,CAAC;AAEV,aAAA,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAI;YACzB,IAAI,CAAC,6BAA6B,GAAG,UAAU,CAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EACvC,SAAS,GAAG,GAAG,CAClB;AACL,QAAA,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE;AAC5C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAK;IAClC;IAEQ,eAAe,GAAA;QACnB,IAAI,CAAC,iBAAiB,CAAC;aAClB,IAAI,CACD,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,EAC5E,IAAI,CAAC,CAAC,CAAC;aAEV,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACtC,QAAA,CAAC,CAAC;QAEN,IAAI,CAAC,iBAAiB,CAAC;aAClB,IAAI,CACD,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,EAC3E,IAAI,CAAC,CAAC,CAAC;aAEV,SAAS,CAAC,MAAK;AACZ,YAAA,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,QAAA,CAAC,CAAC;IACV;IAEQ,wBAAwB,GAAA;QAC5B,IAAI,CAAC,SAAS,CAAC;AACV,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,QAAA,CAAC,CAAC;IACV;AACH;;AC5HD;MACa,sBAAsB,GAAG,IAAI,cAAc,CAAC,wBAAwB;AAwCjF;;;;AAIG;AACI,MAAM,kCAAkC,GAAG;AAElD;;AAEG;MAEU,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gCAAgC,CAAC;AACxD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;;QAGtD,IAAA,CAAA,qBAAqB,GAA8B,IAAI;AAyJlE,IAAA;IAvJG,WAAW,GAAA;QACP,IAAI,CAAC,KAAK,EAAE;IAChB;IA0BA,IAAI,CACA,sBAAyD,EACzD,MAAiC,EAAA;AAEjC,QAAA,MAAM,OAAO,GAA6B;YACtC,GAAI,IAAI,CAAC,aAA0C;AACnD,YAAA,GAAG;SACN;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAU,sBAAsB,EAAE,OAAO,CAAC;AAEjF,QAAA,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;AACvC,YAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,eAAe,EAAE;AAChD,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;YACrC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;gBAClD,eAAe,CAAC,IAAI,EAAE;AAC1B,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;QACtC;aAAO;YACH,eAAe,CAAC,IAAI,EAAE;QAC1B;AAEA,QAAA,IAAI,CAAC,qBAAqB,GAAG,eAAqC;AAElE,QAAA,OAAO,eAAe;IAC1B;;AAGA,IAAA,KAAK,CAAI,MAAU,EAAA;AACf,QAAA,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC;IAC7C;AAEQ,IAAA,UAAU,CACd,sBAAyD,EACzD,MAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,IAAI,eAA0C;AAC9C,QAAA,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,MAAM;AAEtD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAU,sBAAsB,EAAE;AAC9C,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,wBAAwB;AACnC,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,SAAS,EAAE,IAAK;AAChB,YAAA,WAAW,EAAE,KAAK;;AAElB,YAAA,yBAAyB,EAAE,KAAK;;AAEhC,YAAA,cAAc,EAAE,KAAK;;AAErB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5E,YAAA,gBAAgB,EAAE;kBACZ,IAAI,CAAC;AACA,qBAAA,QAAQ;qBACR,mBAAmB,CAAC,gBAAgB;qBACpC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChG,qBAAA,sBAAsB;qBACtB,QAAQ,CAAC,KAAK;AACd,qBAAA,kBAAkB;AAClB,qBAAA,iBAAiB;AACxB,kBAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE;YACpE,eAAe,EAAE,MAAK;gBAClB,OAAO;oBACH,SAAS,EAAE,MAAM,CAAC,IAAI;oBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB;iBAC+C;YACvD,CAAC;AACD,YAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;AACtB,gBAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;gBACxC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE;aACnE,CAAC;YACF,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,KAAI;gBAC/C,eAAe,GAAG,IAAI,kBAAkB,CAAO,SAAS,EAAE,SAAqC,CAAC;gBAEhG,OAAO;AACH,oBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAE;oBAC1D,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI;iBAC3D;YACL;AACH,SAAA,CAAC;AAEF,QAAA,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe;AAEtC,QAAA,UAAU,CAAC,aAAa,CAAC,kCAAkC,CAAC;AAE5D,QAAA,IAAI,iBAAiB;AAAE,YAAA,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAElE,IAAI,gBAAgB,EAAE;AAClB,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe;YAEvC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,cAAc,CAAC;AAEnF,YAAA,IAAI,CAAC;AACA,iBAAA,OAAO,CAAC,gBAAgB,CAAC,aAAa;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBAC3B,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE;oBACrF,UAAU,CAAC,cAAc,EAAE;gBAC/B;AACJ,YAAA,CAAC,CAAC;QACV;AAEA,QAAA,OAAO,eAAe;IAC1B;IAEQ,mBAAmB,CAAC,SAAsB,EAAE,cAA2B,EAAA;QAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,qBAAqB,EAAE;AAEnD,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK;AAExB,QAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;AAE5D,QAAA,cAAc,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAExC,QAAA,OAAO,IAAI;IACf;kIAhKS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA,CAAA;;4FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACzDlC,MAAM,UAAU,GAAG;IACf;CACH;MAOY,qBAAqB,CAAA;kIAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAArB,qBAAqB,EAAA,OAAA,EAAA,CAR9B,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAAxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAQf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,SAAA,EAHnB,CAAC,eAAe,CAAC,YADnB,UAAU,CAAA,EAAA,CAAA,CAAA;;4FAIV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Element in which the actions panel overlay will be connected to.\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n *\n * NOTE: this property is ignored if the `overlayContainer` property is provided, and will be calculated based on\n * the width of the `overlayContainer`.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n selector: 'kbq-actions-panel-container',\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n color=\"contrast\"\n kbq-button\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n >\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION]\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, ReplaySubject, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n private readonly afterOpenedSubject = new Subject<void>();\n private readonly beforeOpenedSubject = new ReplaySubject<void>(1);\n private readonly beforeClosedSubject = new Subject<R | undefined>();\n\n /** Emits when keydown events are targeted on the overlay. */\n readonly keydownEvents: Observable<KeyboardEvent> = this.dialogRef.keydownEvents;\n\n /** Emits when the actions panel starts opening, before its entrance animation plays. */\n readonly beforeOpened: Observable<void> = this.beforeOpenedSubject;\n\n /** Emits when the actions panel has opened and appeared. */\n readonly afterOpened: Observable<void> = this.afterOpenedSubject;\n\n /** Emits when the actions panel starts closing, before its exit animation plays. */\n readonly beforeClosed: Observable<R | undefined> = this.beforeClosedSubject;\n\n /** Emits when the actions panel is finished closing. */\n readonly afterClosed: Observable<R | undefined> = this.dialogRef.closed;\n\n /**\n * Overlay reference for the actions panel.\n *\n * @docs-private\n */\n readonly overlayRef: OverlayRef = this.dialogRef.overlayRef;\n\n /**\n * ID of the actions panel.\n *\n * @docs-private\n */\n readonly id: string = this.dialogRef.id;\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout?: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /**\n * Opens the actions panel, playing its entrance animation.\n *\n * @docs-private\n */\n open(): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.beforeOpenedSubject.next();\n this.beforeOpenedSubject.complete();\n this.containerInstance.startOpenAnimation();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.beforeClosedSubject.next(result);\n this.beforeClosedSubject.complete();\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this.afterOpenedSubject.next();\n this.afterOpenedSubject.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { KBQ_OVERFLOW_ITEMS_RESIZE_OBSERVER_TARGETS } from '@koobiq/components/overflow-items';\nimport { takeUntil } from 'rxjs';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(Overlay);\n private readonly dialog = inject(Dialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n private readonly resizeObserver = inject(SharedResizeObserver);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.open();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.open();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n const { overlayContainer, overlayPanelClass } = config;\n\n this.dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: overlayContainer\n ? this.overlay\n .position()\n .flexibleConnectedTo(overlayContainer)\n .withPositions([{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'bottom' }])\n .withFlexibleDimensions()\n .withPush(false)\n .withLockedPosition()\n .withGrowAfterOpen()\n : this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data },\n // The panel is as wide as its content, and items hidden by `KbqOverflowItems` drop out of that\n // width, so the panel never grows back by itself. Observe the element that bounds it instead:\n // `overlayContainer`, or else the overlay host, which spans the viewport.\n {\n provide: KBQ_OVERFLOW_ITEMS_RESIZE_OBSERVER_TARGETS,\n useValue: [overlayContainer ? overlayContainer.nativeElement : dialogRef.overlayRef.hostElement]\n }\n ];\n }\n });\n\n const { overlayRef } = actionsPanelRef;\n\n overlayRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (overlayPanelClass) overlayRef.addPanelClass(overlayPanelClass);\n\n if (overlayContainer) {\n const { afterClosed } = actionsPanelRef;\n\n this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement);\n\n this.resizeObserver\n .observe(overlayContainer.nativeElement)\n .pipe(takeUntil(afterClosed))\n .subscribe(() => {\n if (this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement)) {\n overlayRef.updatePosition();\n }\n });\n }\n\n return actionsPanelRef;\n }\n\n private syncOverlayMaxWidth(container: HTMLElement, overlayElement: HTMLElement): boolean {\n const { width } = container.getBoundingClientRect();\n\n if (!width) return false;\n\n const maxWidth = coerceCssPixelValue(width);\n\n if (overlayElement.style.maxWidth === maxWidth) return false;\n\n overlayElement.style.maxWidth = maxWidth;\n\n return true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n providers: [KbqActionsPanel],\n exports: COMPONENTS\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -107,7 +107,7 @@ class KbqContentPanelHeader {
107
107
  </div>
108
108
  </div>
109
109
  <ng-content />
110
- `, isInline: true, styles: [".kbq-content-panel-header{display:flex;flex-direction:column;padding:var(--kbq-size-l) var(--kbq-content-panel-vertical-padding)}.kbq-content-panel-header .kbq-content-panel-header__wrapper{display:flex;justify-content:space-between}.kbq-content-panel-header .kbq-content-panel-header__actions{display:flex;justify-content:flex-end}.kbq-content-panel-header .kbq-content-panel-header__close-button{margin-left:var(--kbq-size-m)}.kbq-content-panel-header .kbq-content-panel-header-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-content-panel-header .kbq-content-panel-header-actions{display:flex;gap:var(--kbq-size-s)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
110
+ `, isInline: true, styles: [".kbq-content-panel-header{display:flex;flex-direction:column;padding:var(--kbq-size-l) var(--kbq-content-panel-vertical-padding)}.kbq-content-panel-header .kbq-content-panel-header__wrapper{display:flex}.kbq-content-panel-header .kbq-content-panel-header__actions{display:flex;margin-inline-start:auto}.kbq-content-panel-header .kbq-content-panel-header__close-button{margin-inline-start:var(--kbq-size-m)}.kbq-content-panel-header .kbq-content-panel-header-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-content-panel-header .kbq-content-panel-header-actions{display:flex;gap:var(--kbq-size-s)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqContentPanelHeader, decorators: [{
113
113
  type: Component,
@@ -134,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
134
134
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
135
135
  class: 'kbq-content-panel-header',
136
136
  '[style.box-shadow]': 'contentPanel.bodyOverflow().top ? "var(--kbq-content-panel-header-overflow-box-shadow)" : null'
137
- }, styles: [".kbq-content-panel-header{display:flex;flex-direction:column;padding:var(--kbq-size-l) var(--kbq-content-panel-vertical-padding)}.kbq-content-panel-header .kbq-content-panel-header__wrapper{display:flex;justify-content:space-between}.kbq-content-panel-header .kbq-content-panel-header__actions{display:flex;justify-content:flex-end}.kbq-content-panel-header .kbq-content-panel-header__close-button{margin-left:var(--kbq-size-m)}.kbq-content-panel-header .kbq-content-panel-header-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-content-panel-header .kbq-content-panel-header-actions{display:flex;gap:var(--kbq-size-s)}\n"] }]
137
+ }, styles: [".kbq-content-panel-header{display:flex;flex-direction:column;padding:var(--kbq-size-l) var(--kbq-content-panel-vertical-padding)}.kbq-content-panel-header .kbq-content-panel-header__wrapper{display:flex}.kbq-content-panel-header .kbq-content-panel-header__actions{display:flex;margin-inline-start:auto}.kbq-content-panel-header .kbq-content-panel-header__close-button{margin-inline-start:var(--kbq-size-m)}.kbq-content-panel-header .kbq-content-panel-header-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-content-panel-header .kbq-content-panel-header-actions{display:flex;gap:var(--kbq-size-s)}\n"] }]
138
138
  }] });
139
139
  class KbqContentPanelBody {
140
140
  constructor() {
@@ -201,7 +201,7 @@ class KbqContentPanel {
201
201
  <ng-content select="kbq-content-panel-body" />
202
202
  <ng-content select="kbq-content-panel-footer" />
203
203
  </div>
204
- `, isInline: true, styles: [".kbq-content-panel-container{--kbq-content-panel-resizer-width: var(--kbq-size-l);--kbq-content-panel-border-radius: var(--kbq-size-l);--kbq-content-panel-background-color: var(--kbq-background-card);--kbq-content-panel-border: var(--kbq-size-border-width) solid var(--kbq-line-contrast-less);--kbq-content-panel-header-overflow-box-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-content-panel-footer-overflow-box-shadow: var(--kbq-shadow-overflow-normal-top);--kbq-content-panel-vertical-padding: var(--kbq-size-xxl)}\n", ".kbq-content-panel{display:flex;border-radius:var(--kbq-content-panel-border-radius);background-color:var(--kbq-content-panel-background-color);border:var(--kbq-content-panel-border);height:100%;box-sizing:border-box;position:relative}.kbq-content-panel .kbq-content-panel__content{display:flex;flex:1;flex-direction:column;border-top-right-radius:inherit;border-bottom-right-radius:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
204
+ `, isInline: true, styles: [".kbq-content-panel-container{--kbq-content-panel-resizer-width: var(--kbq-size-l);--kbq-content-panel-border-radius: var(--kbq-size-l);--kbq-content-panel-background-color: var(--kbq-background-card);--kbq-content-panel-border: var(--kbq-size-border-width) solid var(--kbq-line-contrast-less);--kbq-content-panel-header-overflow-box-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-content-panel-footer-overflow-box-shadow: var(--kbq-shadow-overflow-normal-top);--kbq-content-panel-vertical-padding: var(--kbq-size-xxl)}\n", ".kbq-content-panel{display:flex;flex-grow:1;min-width:0;border-radius:var(--kbq-content-panel-border-radius);background-color:var(--kbq-content-panel-background-color);border:var(--kbq-content-panel-border);height:100%;box-sizing:border-box;position:relative}.kbq-content-panel .kbq-content-panel__content{display:flex;flex:1;flex-direction:column;min-width:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
205
205
  }
206
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqContentPanel, decorators: [{
207
207
  type: Component,
@@ -214,7 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
214
214
  </div>
215
215
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
216
216
  class: 'kbq-content-panel'
217
- }, styles: [".kbq-content-panel-container{--kbq-content-panel-resizer-width: var(--kbq-size-l);--kbq-content-panel-border-radius: var(--kbq-size-l);--kbq-content-panel-background-color: var(--kbq-background-card);--kbq-content-panel-border: var(--kbq-size-border-width) solid var(--kbq-line-contrast-less);--kbq-content-panel-header-overflow-box-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-content-panel-footer-overflow-box-shadow: var(--kbq-shadow-overflow-normal-top);--kbq-content-panel-vertical-padding: var(--kbq-size-xxl)}\n", ".kbq-content-panel{display:flex;border-radius:var(--kbq-content-panel-border-radius);background-color:var(--kbq-content-panel-background-color);border:var(--kbq-content-panel-border);height:100%;box-sizing:border-box;position:relative}.kbq-content-panel .kbq-content-panel__content{display:flex;flex:1;flex-direction:column;border-top-right-radius:inherit;border-bottom-right-radius:inherit}\n"] }]
217
+ }, styles: [".kbq-content-panel-container{--kbq-content-panel-resizer-width: var(--kbq-size-l);--kbq-content-panel-border-radius: var(--kbq-size-l);--kbq-content-panel-background-color: var(--kbq-background-card);--kbq-content-panel-border: var(--kbq-size-border-width) solid var(--kbq-line-contrast-less);--kbq-content-panel-header-overflow-box-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-content-panel-footer-overflow-box-shadow: var(--kbq-shadow-overflow-normal-top);--kbq-content-panel-vertical-padding: var(--kbq-size-xxl)}\n", ".kbq-content-panel{display:flex;flex-grow:1;min-width:0;border-radius:var(--kbq-content-panel-border-radius);background-color:var(--kbq-content-panel-background-color);border:var(--kbq-content-panel-border);height:100%;box-sizing:border-box;position:relative}.kbq-content-panel .kbq-content-panel__content{display:flex;flex:1;flex-direction:column;min-width:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit}\n"] }]
218
218
  }], propDecorators: { contentPanelBody: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqContentPanelBody), { isSignal: true }] }] } });
219
219
  class KbqContentPanelContainer {
220
220
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-content-panel.mjs","sources":["../../../packages/components/content-panel/content-panel.ts","../../../packages/components/content-panel/module.ts","../../../packages/components/content-panel/koobiq-components-content-panel.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport {\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n KbqOverflowShadowContainer\n} from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqResizable, KbqResizer, KbqResizerSizeChangeEvent } from '@koobiq/components/resizer';\nimport { KbqScrollbar, KbqScrollbarModule } from '@koobiq/components/scrollbar';\nimport { SizeL } from '@koobiq/design-tokens';\n\nconst KBQ_CONTENT_PANEL_CONTAINER_CONTENT_ANIMATION = trigger('contentAnimation', [\n state('false', style({ 'margin-right': 0 })),\n state('true', style({ 'margin-right': '{{ marginRight }}px' }), { params: { marginRight: 0 } }),\n transition('true => false', [animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.AccelerationCurve}`)]),\n transition('false => true', [animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.DecelerationCurve}`)])\n]);\n\nconst KBQ_CONTENT_PANEL_CONTAINER_PANEL_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate(\n `${KbqAnimationDurations.Entering} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateX(0%)' })\n )\n ]),\n transition(':leave', [\n animate(\n `${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.AccelerationCurve}`,\n style({ transform: 'translateX(100%)' })\n )\n ])\n]);\n\n@Component({\n selector: 'kbq-content-panel-aside',\n template: `\n <ng-content />\n `,\n styleUrl: './content-panel-aside.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-aside'\n },\n exportAs: 'kbqContentPanelAside'\n})\nexport class KbqContentPanelAside {}\n\n@Directive({\n selector: '[kbqContentPanelHeaderTitle]',\n host: {\n class: 'kbq-content-panel-header-title'\n },\n exportAs: 'kbqContentPanelHeaderTitle'\n})\nexport class KbqContentPanelHeaderTitle {}\n\n@Directive({\n selector: '[kbqContentPanelHeaderActions]',\n host: {\n class: 'kbq-content-panel-header-actions'\n },\n exportAs: 'kbqContentPanelHeaderActions'\n})\nexport class KbqContentPanelHeaderActions {}\n\n@Component({\n selector: 'kbq-content-panel-header',\n imports: [KbqButtonModule, KbqIconModule],\n template: `\n <div class=\"kbq-content-panel-header__wrapper\">\n <ng-content select=\"[kbqContentPanelHeaderTitle]\" />\n <div class=\"kbq-content-panel-header__actions\">\n <ng-content select=\"[kbqContentPanelHeaderActions]\" />\n @if (!contentPanelContainer.disableClose()) {\n <button\n class=\"kbq-content-panel-header__close-button\"\n kbq-button\n type=\"button\"\n [color]=\"componentColors.Contrast\"\n [kbqStyle]=\"buttonStyles.Transparent\"\n (click)=\"contentPanelContainer.close()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n }\n </div>\n </div>\n <ng-content />\n `,\n styleUrl: './content-panel-header.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-header',\n '[style.box-shadow]':\n 'contentPanel.bodyOverflow().top ? \"var(--kbq-content-panel-header-overflow-box-shadow)\" : null'\n }\n})\nexport class KbqContentPanelHeader {\n /**\n * @docs-private\n */\n protected readonly contentPanelContainer = inject(KbqContentPanelContainer);\n /** @docs-private */\n protected readonly contentPanel = inject(KbqContentPanel);\n /**\n * @docs-private\n */\n protected readonly buttonStyles = KbqButtonStyles;\n /**\n * @docs-private\n */\n protected readonly componentColors = KbqComponentColors;\n}\n\n@Component({\n selector: 'kbq-content-panel-body',\n imports: [KbqScrollbarModule, KbqOverflowShadowContainer],\n template: `\n <kbq-scrollbar\n #overflowContainer=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-content-panel-body__content\"\n >\n <ng-content />\n </kbq-scrollbar>\n `,\n styleUrl: './content-panel-body.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-body'\n },\n exportAs: 'kbqContentPanelBody'\n})\nexport class KbqContentPanelBody {\n /** @docs-private */\n readonly scrollbar = viewChild.required(KbqScrollbar);\n /** @docs-private */\n readonly overflowContainer = viewChild.required(KbqOverflowShadowContainer);\n}\n\n@Component({\n selector: 'kbq-content-panel-footer',\n template: `\n <ng-content />\n `,\n styleUrl: './content-panel-footer.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-footer',\n '[style.box-shadow]':\n 'contentPanel.bodyOverflow().bottom ? \"var(--kbq-content-panel-footer-overflow-box-shadow)\" : null'\n }\n})\nexport class KbqContentPanelFooter {\n /** @docs-private */\n protected readonly contentPanel = inject(KbqContentPanel);\n}\n\n@Component({\n selector: 'kbq-content-panel',\n template: `\n <ng-content select=\"kbq-content-panel-aside\" />\n <div class=\"kbq-content-panel__content\">\n <ng-content select=\"kbq-content-panel-header\" />\n <ng-content select=\"kbq-content-panel-body\" />\n <ng-content select=\"kbq-content-panel-footer\" />\n </div>\n `,\n styleUrls: [\n './content-panel-tokens.scss',\n './content-panel.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel'\n }\n})\nexport class KbqContentPanel {\n private readonly contentPanelBody = contentChild(KbqContentPanelBody);\n\n /** Current body overflow state. Read by the header and footer to render their `box-shadow`. */\n readonly bodyOverflow = computed(\n () => this.contentPanelBody()?.overflowContainer().overflow() ?? { top: false, bottom: false }\n );\n}\n\n@Component({\n selector: 'kbq-content-panel-container',\n imports: [KbqResizable, KbqResizer, KbqScrollbarModule],\n template: `\n <kbq-scrollbar class=\"kbq-content-panel-container__content\" [@contentAnimation]=\"contentAnimationState()\">\n <ng-content />\n </kbq-scrollbar>\n @if (openedState()) {\n <div\n @panelAnimation\n class=\"kbq-content-panel-container__panel\"\n kbqResizable\n [style.min-width.px]=\"minWidth()\"\n [style.width.px]=\"widthState()\"\n [style.max-width.px]=\"maxWidth()\"\n >\n @if (!disableResizer()) {\n <div\n class=\"kbq-content-panel-container__panel-resizer\"\n [kbqResizer]=\"[-1, 0]\"\n (sizeChange)=\"handleResizerSizeChange($event)\"\n (dblclick)=\"handleResizerDBLClick($event)\"\n ></div>\n }\n <ng-content select=\"kbq-content-panel\" />\n </div>\n }\n `,\n styleUrl: './content-panel-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-container',\n '[class.kbq-content-panel-container__opened]': 'openedState()',\n '(keydown.escape)': 'handleEscapeKeydown($event)'\n },\n animations: [\n KBQ_CONTENT_PANEL_CONTAINER_CONTENT_ANIMATION,\n KBQ_CONTENT_PANEL_CONTAINER_PANEL_ANIMATION\n ],\n exportAs: 'kbqContentPanelContainer'\n})\nexport class KbqContentPanelContainer {\n /**\n * Whether the content panel is opened.\n *\n * @default false\n */\n readonly opened = input(false, { transform: booleanAttribute });\n\n /**\n * Emits event when the content panel opened state is changed.\n */\n readonly openedChange = output<boolean>();\n\n /**\n * Whether the content panel can not be closed by clicking on the close button or pressing the ESCAPE key.\n *\n * @default false\n */\n readonly disableClose = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the content panel can not be closed by pressing the ESCAPE key.\n */\n readonly disableCloseByEscape = input(this.disableClose(), { transform: booleanAttribute });\n\n /**\n * Whether the content panel resizer is disabled.\n */\n readonly disableResizer = input(false, { transform: booleanAttribute });\n\n /**\n * Minimum width of the `KbqContentPanel`.\n *\n * @default 480\n */\n readonly minWidth = input(480, { transform: numberAttribute });\n\n /**\n * Width of the `KbqContentPanel`.\n *\n * @default 640\n */\n readonly width = input(640, { transform: numberAttribute });\n\n /**\n * Max width of the `KbqContentPanel`.\n *\n * @default 800\n */\n readonly maxWidth = input(800, { transform: numberAttribute });\n\n /**\n * @docs-private\n */\n protected readonly openedState = signal(this.opened());\n\n /**\n * @docs-private\n */\n protected readonly widthState = signal(this.width());\n\n /**\n * Whether the content panel is opened.\n */\n readonly isOpened = computed(() => this.openedState());\n\n /**\n * @docs-private\n */\n protected readonly contentAnimationState = computed(() => {\n return {\n value: this.openedState(),\n params: { marginRight: this.widthState() + (parseInt(SizeL) || 16) }\n };\n });\n\n constructor() {\n // TODO: Should use linked signal\n toObservable(this.opened)\n .pipe(takeUntilDestroyed())\n .subscribe((opened) => {\n this.openedState.set(opened);\n });\n\n // TODO: Should use linked signal\n toObservable(this.width)\n .pipe(takeUntilDestroyed())\n .subscribe((width) => {\n this.widthState.set(width);\n });\n }\n\n /**\n * Toggles the content panel opened state.\n */\n toggle(): void {\n this.openedState.update((state) => !state);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * Opens the content panel.\n */\n open(): void {\n if (this.openedState()) return;\n\n this.openedState.set(true);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * Closes the content panel.\n */\n close(): void {\n if (!this.openedState()) return;\n\n this.openedState.set(false);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * @docs-private\n */\n protected handleResizerDBLClick(event: MouseEvent): void {\n event.preventDefault();\n\n this.widthState.set(this.width());\n }\n\n /**\n * @docs-private\n */\n protected handleResizerSizeChange({ width }: KbqResizerSizeChangeEvent): void {\n if (width > this.maxWidth()) return this.widthState.set(this.maxWidth());\n if (width < this.minWidth()) return this.widthState.set(this.minWidth());\n\n this.widthState.set(width);\n }\n\n /**\n * @docs-private\n */\n protected handleEscapeKeydown(event: KeyboardEvent): void {\n if (!this.openedState() || this.disableClose() || this.disableCloseByEscape()) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n KbqContentPanel,\n KbqContentPanelAside,\n KbqContentPanelBody,\n KbqContentPanelContainer,\n KbqContentPanelFooter,\n KbqContentPanelHeader,\n KbqContentPanelHeaderActions,\n KbqContentPanelHeaderTitle\n} from './content-panel';\n\nconst COMPONENTS = [\n KbqContentPanelContainer,\n KbqContentPanel,\n KbqContentPanelAside,\n KbqContentPanelHeader,\n KbqContentPanelHeaderTitle,\n KbqContentPanelHeaderActions,\n KbqContentPanelBody,\n KbqContentPanelFooter\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqContentPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-content-panel.mjs","sources":["../../../packages/components/content-panel/content-panel.ts","../../../packages/components/content-panel/module.ts","../../../packages/components/content-panel/koobiq-components-content-panel.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport {\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n KbqOverflowShadowContainer\n} from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqResizable, KbqResizer, KbqResizerSizeChangeEvent } from '@koobiq/components/resizer';\nimport { KbqScrollbar, KbqScrollbarModule } from '@koobiq/components/scrollbar';\nimport { SizeL } from '@koobiq/design-tokens';\n\nconst KBQ_CONTENT_PANEL_CONTAINER_CONTENT_ANIMATION = trigger('contentAnimation', [\n state('false', style({ 'margin-right': 0 })),\n state('true', style({ 'margin-right': '{{ marginRight }}px' }), { params: { marginRight: 0 } }),\n transition('true => false', [animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.AccelerationCurve}`)]),\n transition('false => true', [animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.DecelerationCurve}`)])\n]);\n\nconst KBQ_CONTENT_PANEL_CONTAINER_PANEL_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate(\n `${KbqAnimationDurations.Entering} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateX(0%)' })\n )\n ]),\n transition(':leave', [\n animate(\n `${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.AccelerationCurve}`,\n style({ transform: 'translateX(100%)' })\n )\n ])\n]);\n\n@Component({\n selector: 'kbq-content-panel-aside',\n template: `\n <ng-content />\n `,\n styleUrl: './content-panel-aside.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-aside'\n },\n exportAs: 'kbqContentPanelAside'\n})\nexport class KbqContentPanelAside {}\n\n@Directive({\n selector: '[kbqContentPanelHeaderTitle]',\n host: {\n class: 'kbq-content-panel-header-title'\n },\n exportAs: 'kbqContentPanelHeaderTitle'\n})\nexport class KbqContentPanelHeaderTitle {}\n\n@Directive({\n selector: '[kbqContentPanelHeaderActions]',\n host: {\n class: 'kbq-content-panel-header-actions'\n },\n exportAs: 'kbqContentPanelHeaderActions'\n})\nexport class KbqContentPanelHeaderActions {}\n\n@Component({\n selector: 'kbq-content-panel-header',\n imports: [KbqButtonModule, KbqIconModule],\n template: `\n <div class=\"kbq-content-panel-header__wrapper\">\n <ng-content select=\"[kbqContentPanelHeaderTitle]\" />\n <div class=\"kbq-content-panel-header__actions\">\n <ng-content select=\"[kbqContentPanelHeaderActions]\" />\n @if (!contentPanelContainer.disableClose()) {\n <button\n class=\"kbq-content-panel-header__close-button\"\n kbq-button\n type=\"button\"\n [color]=\"componentColors.Contrast\"\n [kbqStyle]=\"buttonStyles.Transparent\"\n (click)=\"contentPanelContainer.close()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n }\n </div>\n </div>\n <ng-content />\n `,\n styleUrl: './content-panel-header.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-header',\n '[style.box-shadow]':\n 'contentPanel.bodyOverflow().top ? \"var(--kbq-content-panel-header-overflow-box-shadow)\" : null'\n }\n})\nexport class KbqContentPanelHeader {\n /**\n * @docs-private\n */\n protected readonly contentPanelContainer = inject(KbqContentPanelContainer);\n /** @docs-private */\n protected readonly contentPanel = inject(KbqContentPanel);\n /**\n * @docs-private\n */\n protected readonly buttonStyles = KbqButtonStyles;\n /**\n * @docs-private\n */\n protected readonly componentColors = KbqComponentColors;\n}\n\n@Component({\n selector: 'kbq-content-panel-body',\n imports: [KbqScrollbarModule, KbqOverflowShadowContainer],\n template: `\n <kbq-scrollbar\n #overflowContainer=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-content-panel-body__content\"\n >\n <ng-content />\n </kbq-scrollbar>\n `,\n styleUrl: './content-panel-body.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-body'\n },\n exportAs: 'kbqContentPanelBody'\n})\nexport class KbqContentPanelBody {\n /** @docs-private */\n readonly scrollbar = viewChild.required(KbqScrollbar);\n /** @docs-private */\n readonly overflowContainer = viewChild.required(KbqOverflowShadowContainer);\n}\n\n@Component({\n selector: 'kbq-content-panel-footer',\n template: `\n <ng-content />\n `,\n styleUrl: './content-panel-footer.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-footer',\n '[style.box-shadow]':\n 'contentPanel.bodyOverflow().bottom ? \"var(--kbq-content-panel-footer-overflow-box-shadow)\" : null'\n }\n})\nexport class KbqContentPanelFooter {\n /** @docs-private */\n protected readonly contentPanel = inject(KbqContentPanel);\n}\n\n@Component({\n selector: 'kbq-content-panel',\n template: `\n <ng-content select=\"kbq-content-panel-aside\" />\n <div class=\"kbq-content-panel__content\">\n <ng-content select=\"kbq-content-panel-header\" />\n <ng-content select=\"kbq-content-panel-body\" />\n <ng-content select=\"kbq-content-panel-footer\" />\n </div>\n `,\n styleUrls: [\n './content-panel-tokens.scss',\n './content-panel.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel'\n }\n})\nexport class KbqContentPanel {\n private readonly contentPanelBody = contentChild(KbqContentPanelBody);\n\n /** Current body overflow state. Read by the header and footer to render their `box-shadow`. */\n readonly bodyOverflow = computed(\n () => this.contentPanelBody()?.overflowContainer().overflow() ?? { top: false, bottom: false }\n );\n}\n\n@Component({\n selector: 'kbq-content-panel-container',\n imports: [KbqResizable, KbqResizer, KbqScrollbarModule],\n template: `\n <kbq-scrollbar class=\"kbq-content-panel-container__content\" [@contentAnimation]=\"contentAnimationState()\">\n <ng-content />\n </kbq-scrollbar>\n @if (openedState()) {\n <div\n @panelAnimation\n class=\"kbq-content-panel-container__panel\"\n kbqResizable\n [style.min-width.px]=\"minWidth()\"\n [style.width.px]=\"widthState()\"\n [style.max-width.px]=\"maxWidth()\"\n >\n @if (!disableResizer()) {\n <div\n class=\"kbq-content-panel-container__panel-resizer\"\n [kbqResizer]=\"[-1, 0]\"\n (sizeChange)=\"handleResizerSizeChange($event)\"\n (dblclick)=\"handleResizerDBLClick($event)\"\n ></div>\n }\n <ng-content select=\"kbq-content-panel\" />\n </div>\n }\n `,\n styleUrl: './content-panel-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-content-panel-container',\n '[class.kbq-content-panel-container__opened]': 'openedState()',\n '(keydown.escape)': 'handleEscapeKeydown($event)'\n },\n animations: [\n KBQ_CONTENT_PANEL_CONTAINER_CONTENT_ANIMATION,\n KBQ_CONTENT_PANEL_CONTAINER_PANEL_ANIMATION\n ],\n exportAs: 'kbqContentPanelContainer'\n})\nexport class KbqContentPanelContainer {\n /**\n * Whether the content panel is opened.\n *\n * @default false\n */\n readonly opened = input(false, { transform: booleanAttribute });\n\n /**\n * Emits event when the content panel opened state is changed.\n */\n readonly openedChange = output<boolean>();\n\n /**\n * Whether the content panel can not be closed by clicking on the close button or pressing the ESCAPE key.\n *\n * @default false\n */\n readonly disableClose = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the content panel can not be closed by pressing the ESCAPE key.\n */\n readonly disableCloseByEscape = input(this.disableClose(), { transform: booleanAttribute });\n\n /**\n * Whether the content panel resizer is disabled.\n */\n readonly disableResizer = input(false, { transform: booleanAttribute });\n\n /**\n * Minimum width of the `KbqContentPanel`.\n *\n * @default 480\n */\n readonly minWidth = input(480, { transform: numberAttribute });\n\n /**\n * Width of the `KbqContentPanel`.\n *\n * @default 640\n */\n readonly width = input(640, { transform: numberAttribute });\n\n /**\n * Max width of the `KbqContentPanel`.\n *\n * @default 800\n */\n readonly maxWidth = input(800, { transform: numberAttribute });\n\n /**\n * @docs-private\n */\n protected readonly openedState = signal(this.opened());\n\n /**\n * @docs-private\n */\n protected readonly widthState = signal(this.width());\n\n /**\n * Whether the content panel is opened.\n */\n readonly isOpened = computed(() => this.openedState());\n\n /**\n * @docs-private\n */\n protected readonly contentAnimationState = computed(() => {\n return {\n value: this.openedState(),\n params: { marginRight: this.widthState() + (parseInt(SizeL) || 16) }\n };\n });\n\n constructor() {\n // TODO: Should use linked signal\n toObservable(this.opened)\n .pipe(takeUntilDestroyed())\n .subscribe((opened) => {\n this.openedState.set(opened);\n });\n\n // TODO: Should use linked signal\n toObservable(this.width)\n .pipe(takeUntilDestroyed())\n .subscribe((width) => {\n this.widthState.set(width);\n });\n }\n\n /**\n * Toggles the content panel opened state.\n */\n toggle(): void {\n this.openedState.update((state) => !state);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * Opens the content panel.\n */\n open(): void {\n if (this.openedState()) return;\n\n this.openedState.set(true);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * Closes the content panel.\n */\n close(): void {\n if (!this.openedState()) return;\n\n this.openedState.set(false);\n this.openedChange.emit(this.openedState());\n }\n\n /**\n * @docs-private\n */\n protected handleResizerDBLClick(event: MouseEvent): void {\n event.preventDefault();\n\n this.widthState.set(this.width());\n }\n\n /**\n * @docs-private\n */\n protected handleResizerSizeChange({ width }: KbqResizerSizeChangeEvent): void {\n if (width > this.maxWidth()) return this.widthState.set(this.maxWidth());\n if (width < this.minWidth()) return this.widthState.set(this.minWidth());\n\n this.widthState.set(width);\n }\n\n /**\n * @docs-private\n */\n protected handleEscapeKeydown(event: KeyboardEvent): void {\n if (!this.openedState() || this.disableClose() || this.disableCloseByEscape()) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n KbqContentPanel,\n KbqContentPanelAside,\n KbqContentPanelBody,\n KbqContentPanelContainer,\n KbqContentPanelFooter,\n KbqContentPanelHeader,\n KbqContentPanelHeaderActions,\n KbqContentPanelHeaderTitle\n} from './content-panel';\n\nconst COMPONENTS = [\n KbqContentPanelContainer,\n KbqContentPanel,\n KbqContentPanelAside,\n KbqContentPanelHeader,\n KbqContentPanelHeaderTitle,\n KbqContentPanelHeaderActions,\n KbqContentPanelBody,\n KbqContentPanelFooter\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqContentPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1882,7 +1882,8 @@ const enUSLocaleData = {
1882
1882
  removeButtonTooltip: 'Delete',
1883
1883
  applyButton: 'Apply',
1884
1884
  emptySearchResult: 'Nothing found',
1885
- selectAll: 'Select all'
1885
+ selectAll: 'Select all',
1886
+ noOptions: 'No options'
1886
1887
  },
1887
1888
  datePipe: {
1888
1889
  customPeriod: 'Custom period',
@@ -2129,7 +2130,8 @@ const esLALocaleData = {
2129
2130
  removeButtonTooltip: 'Eliminar',
2130
2131
  applyButton: 'Aplicar',
2131
2132
  emptySearchResult: 'No se encontró nada',
2132
- selectAll: 'Seleccionar todo'
2133
+ selectAll: 'Seleccionar todo',
2134
+ noOptions: 'Sin opciones'
2133
2135
  },
2134
2136
  datePipe: {
2135
2137
  customPeriod: 'Personalizar período',
@@ -2570,7 +2572,8 @@ const ptBRLocaleData = {
2570
2572
  removeButtonTooltip: 'Deletar',
2571
2573
  applyButton: 'Aplicar',
2572
2574
  emptySearchResult: 'Nada encontrado',
2573
- selectAll: 'Selecionar todos'
2575
+ selectAll: 'Selecionar todos',
2576
+ noOptions: 'Sem opções'
2574
2577
  },
2575
2578
  datePipe: {
2576
2579
  customPeriod: 'Selecionar período',
@@ -2815,7 +2818,8 @@ const ruRULocaleData = {
2815
2818
  removeButtonTooltip: 'Удалить',
2816
2819
  applyButton: 'Применить',
2817
2820
  emptySearchResult: 'Ничего не найдено',
2818
- selectAll: 'Выбрать все'
2821
+ selectAll: 'Выбрать все',
2822
+ noOptions: 'Нет доступных опций'
2819
2823
  },
2820
2824
  datePipe: {
2821
2825
  customPeriod: 'Произвольный период',
@@ -3077,7 +3081,8 @@ const tkTMLocaleData = {
3077
3081
  removeButtonTooltip: 'Ýokla',
3078
3082
  applyButton: 'Ulan',
3079
3083
  emptySearchResult: 'Hiç zat tapylmady',
3080
- selectAll: 'Ählisini saýla'
3084
+ selectAll: 'Ählisini saýla',
3085
+ noOptions: 'Wariant ýok'
3081
3086
  },
3082
3087
  datePipe: {
3083
3088
  customPeriod: 'Laýyk döwür',
@@ -8696,7 +8701,7 @@ const validationTooltipShowDelay = 10;
8696
8701
  */
8697
8702
  const validationTooltipHideDelay = 3000;
8698
8703
 
8699
- const VERSION = new Version('20.4.4+sha-433b62b');
8704
+ const VERSION = new Version('20.4.5+sha-f270ef7');
8700
8705
 
8701
8706
  /**
8702
8707
  * Generated bundle index. Do not edit.