@cuby-ui/core 0.0.434 → 0.0.435

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.
@@ -0,0 +1,15 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { CuiTabOptions } from '../../tabs.options';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CuiAbstractTabsComponent {
5
+ private readonly tabsService;
6
+ protected readonly tabs: import("@angular/core").Signal<CuiTabOptions[]>;
7
+ protected readonly activeTab: import("@angular/core").Signal<import("@cuby-ui/cdk").CuiNullable<CuiTabOptions>>;
8
+ readonly headerSlot: import("@angular/core").InputSignal<TemplateRef<unknown> | undefined>;
9
+ readonly selectedIndex: import("@angular/core").InputSignal<number>;
10
+ constructor();
11
+ protected onSelectTab(event: Event, tab: CuiTabOptions): void;
12
+ private initSelectedTabEffect;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuiAbstractTabsComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuiAbstractTabsComponent, "cui-abstract-tabs", never, { "headerSlot": { "alias": "headerSlot"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1 @@
1
+ export { CuiAbstractTabsComponent } from './abstract-tabs.component';
@@ -0,0 +1 @@
1
+ export { CuiAbstractTabsComponent } from './abstract-tabs';
@@ -2,3 +2,4 @@ export { CuiTabsComponent } from './tabs.component';
2
2
  export { CuiTabOptions, CuiTabsService, CUI_TABS_SERVICE_TOKEN } from './tabs.options';
3
3
  export { provideCuiTabs } from './tabs.provider';
4
4
  export { CuiTabsServiceImpl } from './services';
5
+ export { CuiAbstractTabsComponent } from './components';
@@ -1,15 +1,8 @@
1
- import type { TemplateRef } from '@angular/core';
2
- import { type CuiTabOptions } from './tabs.options';
1
+ import { TemplateRef } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class CuiTabsComponent {
5
- private readonly tabsService;
6
- protected readonly tabs: import("@angular/core").Signal<CuiTabOptions[]>;
7
- protected readonly activeTab: import("@angular/core").Signal<import("@cuby-ui/cdk").CuiNullable<CuiTabOptions>>;
8
4
  readonly headerSlot: import("@angular/core").InputSignal<TemplateRef<unknown> | undefined>;
9
5
  readonly selectedIndex: import("@angular/core").InputSignal<number>;
10
- constructor();
11
- protected onSelectTab(event: Event, tab: CuiTabOptions): void;
12
- private initSelectedTabEffect;
13
6
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiTabsComponent, never>;
14
7
  static ɵcmp: i0.ɵɵComponentDeclaration<CuiTabsComponent, "cui-tabs", never, { "headerSlot": { "alias": "headerSlot"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
8
  }
@@ -0,0 +1,40 @@
1
+ import { Component, ChangeDetectionStrategy, inject, input, effect } from '@angular/core';
2
+ import { NgTemplateOutlet } from '@angular/common';
3
+ import { CUI_TABS_SERVICE_TOKEN } from '../../tabs.options';
4
+ import * as i0 from "@angular/core";
5
+ export class CuiAbstractTabsComponent {
6
+ constructor() {
7
+ this.tabsService = inject(CUI_TABS_SERVICE_TOKEN);
8
+ this.tabs = this.tabsService.tabs;
9
+ this.activeTab = this.tabsService.activeTab;
10
+ this.headerSlot = input();
11
+ this.selectedIndex = input(0);
12
+ this.initSelectedTabEffect();
13
+ }
14
+ onSelectTab(event, tab) {
15
+ if (event.defaultPrevented) {
16
+ return;
17
+ }
18
+ this.tabsService.set(tab);
19
+ }
20
+ initSelectedTabEffect() {
21
+ effect(() => {
22
+ const index = this.selectedIndex();
23
+ const length = this.tabs().length;
24
+ if (index === undefined || !length) {
25
+ return;
26
+ }
27
+ if (index < 0 || index >= length) {
28
+ throw new Error('Invalid tab index');
29
+ }
30
+ this.tabsService.set(this.tabs()[index]);
31
+ }, { allowSignalWrites: true });
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAbstractTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiAbstractTabsComponent, isStandalone: true, selector: "cui-abstract-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAbstractTabsComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'cui-abstract-tabs', imports: [NgTemplateOutlet], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"] }]
39
+ }], ctorParameters: () => [] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2Fic3RyYWN0LXRhYnMvYWJzdHJhY3QtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2Fic3RyYWN0LXRhYnMvYWJzdHJhY3QtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBZSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQzs7QUFVM0UsTUFBTSxPQUFPLHdCQUF3QjtJQVNqQztRQVJpQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTNDLFNBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7UUFFMUMsZUFBVSxHQUFHLEtBQUssRUFBd0IsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQVksRUFBRSxHQUFrQjtRQUNsRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixNQUFNLENBQ0YsR0FBRyxFQUFFO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFFbEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNOLENBQUM7K0dBdkNRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGdYQ2JyQyxvNUJBZ0NBLG1KRHpCYyxnQkFBZ0I7OzRGQU1qQix3QkFBd0I7a0JBUnBDLFNBQVM7K0JBQ0ksbUJBQW1CLFdBQ3BCLENBQUMsZ0JBQWdCLENBQUMsY0FDZixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QsIFRlbXBsYXRlUmVmLCBpbnB1dCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQ1VJX1RBQlNfU0VSVklDRV9UT0tFTiwgQ3VpVGFiT3B0aW9ucyB9IGZyb20gJy4uLy4uL3RhYnMub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWFic3RyYWN0LXRhYnMnLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnYWJzdHJhY3QtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICdhYnN0cmFjdC10YWJzLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlBYnN0cmFjdFRhYnNDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFic1NlcnZpY2UgPSBpbmplY3QoQ1VJX1RBQlNfU0VSVklDRV9UT0tFTik7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFicyA9IHRoaXMudGFic1NlcnZpY2UudGFicztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZlVGFiID0gdGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWI7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyU2xvdCA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEluZGV4ID0gaW5wdXQ8bnVtYmVyPigwKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFRhYkVmZmVjdCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblNlbGVjdFRhYihldmVudDogRXZlbnQsIHRhYjogQ3VpVGFiT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJzU2VydmljZS5zZXQodGFiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZWxlY3RlZFRhYkVmZmVjdCgpIHtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gdGhpcy50YWJzKCkubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgIWxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRhYiBpbmRleCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudGFic1NlcnZpY2Uuc2V0KHRoaXMudGFicygpW2luZGV4XSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiQGlmIChoZWFkZXJTbG90KCk7IGFzIGhlYWRlcikge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBidXR0b25zIH1cIlxuICAgIC8+XG59IEBlbHNlIHtcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uc1wiIC8+XG4gICAgPC9oZWFkZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucz5cbiAgICBAZm9yICh0YWIgb2YgdGFicygpOyB0cmFjayB0YWIuaWQpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RUYWIoJGV2ZW50LCB0YWIpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5idXR0b25cIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGFiLmRhdGEsIGlzQWN0aXZlOiB0YWIuaWQgPT09IGFjdGl2ZVRhYigpPy5pZCB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoYWN0aXZlVGFiKCk/LmNvbnRlbnQ7IGFzIGNvbnRlbnQpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGFjdGl2ZVRhYigpPy5kYXRhIH1cIlxuICAgIC8+XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { CuiAbstractTabsComponent } from './abstract-tabs.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2Fic3RyYWN0LXRhYnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlBYnN0cmFjdFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LXRhYnMuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiAbstractTabsComponent } from './abstract-tabs';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQWJzdHJhY3RUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC10YWJzJztcbiJdfQ==
@@ -2,4 +2,5 @@ export { CuiTabsComponent } from './tabs.component';
2
2
  export { CUI_TABS_SERVICE_TOKEN } from './tabs.options';
3
3
  export { provideCuiTabs } from './tabs.provider';
4
4
  export { CuiTabsServiceImpl } from './services';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQWlDLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aVRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCB7IEN1aVRhYk9wdGlvbnMsIEN1aVRhYnNTZXJ2aWNlLCBDVUlfVEFCU19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi90YWJzLm9wdGlvbnMnO1xuZXhwb3J0IHsgcHJvdmlkZUN1aVRhYnMgfSBmcm9tICcuL3RhYnMucHJvdmlkZXInO1xuZXhwb3J0IHsgQ3VpVGFic1NlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG4iXX0=
5
+ export { CuiAbstractTabsComponent } from './components';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQWlDLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDdWlUYWJPcHRpb25zLCBDdWlUYWJzU2VydmljZSwgQ1VJX1RBQlNfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4vdGFicy5vcHRpb25zJztcbmV4cG9ydCB7IHByb3ZpZGVDdWlUYWJzIH0gZnJvbSAnLi90YWJzLnByb3ZpZGVyJztcbmV4cG9ydCB7IEN1aVRhYnNTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0IHsgQ3VpQWJzdHJhY3RUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbiJdfQ==
@@ -1,41 +1,17 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, effect, inject, input } from '@angular/core';
3
- import { CUI_TABS_SERVICE_TOKEN } from './tabs.options';
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
+ import { CuiAbstractTabsComponent } from './components';
4
3
  import { provideCuiTabs } from './tabs.provider';
5
4
  import * as i0 from "@angular/core";
6
5
  export class CuiTabsComponent {
7
6
  constructor() {
8
- this.tabsService = inject(CUI_TABS_SERVICE_TOKEN);
9
- this.tabs = this.tabsService.tabs;
10
- this.activeTab = this.tabsService.activeTab;
11
7
  this.headerSlot = input();
12
8
  this.selectedIndex = input(0);
13
- this.initSelectedTabEffect();
14
- }
15
- onSelectTab(event, tab) {
16
- if (event.defaultPrevented) {
17
- return;
18
- }
19
- this.tabsService.set(tab);
20
- }
21
- initSelectedTabEffect() {
22
- effect(() => {
23
- const index = this.selectedIndex();
24
- const length = this.tabs().length;
25
- if (index === undefined || !length) {
26
- return;
27
- }
28
- if (index < 0 || index >= length) {
29
- throw new Error('Invalid tab index');
30
- }
31
- this.tabsService.set(this.tabs()[index]);
32
- }, { allowSignalWrites: true });
33
9
  }
34
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiTabsComponent, isStandalone: true, selector: "cui-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideCuiTabs()], ngImport: i0, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiTabsComponent, isStandalone: true, selector: "cui-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideCuiTabs()], ngImport: i0, template: "<cui-abstract-tabs\n [headerSlot]=\"headerSlot()\"\n [selectedIndex]=\"selectedIndex()\"\n/>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiAbstractTabsComponent, selector: "cui-abstract-tabs", inputs: ["headerSlot", "selectedIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
12
  }
37
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiTabsComponent, decorators: [{
38
14
  type: Component,
39
- args: [{ selector: 'cui-tabs', imports: [NgTemplateOutlet], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideCuiTabs()], template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"] }]
40
- }], ctorParameters: () => [] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsc0JBQXNCLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVdqRCxNQUFNLE9BQU8sZ0JBQWdCO0lBU3pCO1FBUmlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFM0MsU0FBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUUxQyxlQUFVLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBQzNDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRzdDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBWSxFQUFFLEdBQWtCO1FBQ2xELElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUVsQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakMsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM5QixDQUFDO0lBQ04sQ0FBQzsrR0F2Q1EsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMFZBRmQsQ0FBQyxjQUFjLEVBQUUsQ0FBQywwQkNkakMsbzVCQWdDQSxtSkR2QmMsZ0JBQWdCOzs0RkFPakIsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNJLFVBQVUsV0FDWCxDQUFDLGdCQUFnQixDQUFDLGNBQ2YsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDVUlfVEFCU19TRVJWSUNFX1RPS0VOLCB0eXBlIEN1aVRhYk9wdGlvbnMgfSBmcm9tICcuL3RhYnMub3B0aW9ucyc7XG5pbXBvcnQgeyBwcm92aWRlQ3VpVGFicyB9IGZyb20gJy4vdGFicy5wcm92aWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLXRhYnMnLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAndGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICd0YWJzLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlQ3VpVGFicygpXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlUYWJzQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYnNTZXJ2aWNlID0gaW5qZWN0KENVSV9UQUJTX1NFUlZJQ0VfVE9LRU4pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYnMgPSB0aGlzLnRhYnNTZXJ2aWNlLnRhYnM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGl2ZVRhYiA9IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlVGFiO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlclNsb3QgPSBpbnB1dDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleCA9IGlucHV0PG51bWJlcj4oMCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRUYWJFZmZlY3QoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TZWxlY3RUYWIoZXZlbnQ6IEV2ZW50LCB0YWI6IEN1aVRhYk9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFic1NlcnZpY2Uuc2V0KHRhYik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2VsZWN0ZWRUYWJFZmZlY3QoKSB7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMudGFicygpLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkIHx8ICFsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0YWIgaW5kZXgnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLnNldCh0aGlzLnRhYnMoKVtpbmRleF0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBpZiAoaGVhZGVyU2xvdCgpOyBhcyBoZWFkZXIpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYnV0dG9ucyB9XCJcbiAgICAvPlxufSBAZWxzZSB7XG4gICAgPGhlYWRlciBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbnNcIiAvPlxuICAgIDwvaGVhZGVyPlxufVxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnM+XG4gICAgQGZvciAodGFiIG9mIHRhYnMoKTsgdHJhY2sgdGFiLmlkKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0VGFiKCRldmVudCwgdGFiKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRhYi5kYXRhLCBpc0FjdGl2ZTogdGFiLmlkID09PSBhY3RpdmVUYWIoKT8uaWQgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKGFjdGl2ZVRhYigpPy5jb250ZW50OyBhcyBjb250ZW50KSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3RpdmVUYWIoKT8uZGF0YSB9XCJcbiAgICAvPlxufVxuIl19
15
+ args: [{ selector: 'cui-tabs', imports: [CuiAbstractTabsComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideCuiTabs()], template: "<cui-abstract-tabs\n [headerSlot]=\"headerSlot()\"\n [selectedIndex]=\"selectedIndex()\"\n/>\n", styles: [":host{display:contents}\n"] }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFXakQsTUFBTSxPQUFPLGdCQUFnQjtJQVQ3QjtRQVVvQixlQUFVLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBQzNDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ3BEOytHQUhZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDBWQUZkLENBQUMsY0FBYyxFQUFFLENBQUMsMEJDWmpDLHNHQUlBLG1GREdjLHdCQUF3Qjs7NEZBT3pCLGdCQUFnQjtrQkFUNUIsU0FBUzsrQkFDSSxVQUFVLFdBQ1gsQ0FBQyx3QkFBd0IsQ0FBQyxjQUN2QixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDdWlBYnN0cmFjdFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgcHJvdmlkZUN1aVRhYnMgfSBmcm9tICcuL3RhYnMucHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS10YWJzJyxcbiAgICBpbXBvcnRzOiBbQ3VpQWJzdHJhY3RUYWJzQ29tcG9uZW50XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAndGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICd0YWJzLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlQ3VpVGFicygpXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlUYWJzQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyU2xvdCA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEluZGV4ID0gaW5wdXQ8bnVtYmVyPigwKTtcbn1cbiIsIjxjdWktYWJzdHJhY3QtdGFic1xuICAgIFtoZWFkZXJTbG90XT1cImhlYWRlclNsb3QoKVwiXG4gICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRJbmRleCgpXCJcbi8+XG4iXX0=
@@ -1,13 +1,9 @@
1
- import { inject } from '@angular/core';
2
1
  import { CuiTabsServiceImpl } from './services';
3
2
  import { CUI_TABS_SERVICE_TOKEN } from './tabs.options';
4
- export function provideCuiTabs(Implementation) {
3
+ export function provideCuiTabs(Implementation = CuiTabsServiceImpl) {
5
4
  return {
6
5
  provide: CUI_TABS_SERVICE_TOKEN,
7
- useFactory: () => {
8
- const defaultService = inject(CUI_TABS_SERVICE_TOKEN, { optional: true, skipSelf: true }) ?? new CuiTabsServiceImpl();
9
- return Implementation ? new Implementation() : defaultService;
10
- }
6
+ useClass: Implementation
11
7
  };
12
8
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYnMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixNQUFNLFVBQVUsY0FBYyxDQUFDLGNBQTZDO0lBQ3hFLE9BQU87UUFDSCxPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDYixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUV0SCxPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ2xFLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1aVRhYnNTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ1VJX1RBQlNfU0VSVklDRV9UT0tFTiwgQ3VpQWJzdHJhY3RUYWJzU2VydmljZSB9IGZyb20gJy4vdGFicy5vcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDdWlUYWJzKEltcGxlbWVudGF0aW9uPzogVHlwZTxDdWlBYnN0cmFjdFRhYnNTZXJ2aWNlPik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBDVUlfVEFCU19TRVJWSUNFX1RPS0VOLFxuICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0U2VydmljZSA9IGluamVjdChDVUlfVEFCU19TRVJWSUNFX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KSA/PyBuZXcgQ3VpVGFic1NlcnZpY2VJbXBsKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBJbXBsZW1lbnRhdGlvbiA/IG5ldyBJbXBsZW1lbnRhdGlvbigpIDogZGVmYXVsdFNlcnZpY2U7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYnMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixNQUFNLFVBQVUsY0FBYyxDQUFDLGlCQUErQyxrQkFBa0I7SUFDNUYsT0FBTztRQUNILE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IsUUFBUSxFQUFFLGNBQWM7S0FDM0IsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VpVGFic1NlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDVUlfVEFCU19TRVJWSUNFX1RPS0VOLCBDdWlBYnN0cmFjdFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi90YWJzLm9wdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUN1aVRhYnMoSW1wbGVtZW50YXRpb246IFR5cGU8Q3VpQWJzdHJhY3RUYWJzU2VydmljZT4gPSBDdWlUYWJzU2VydmljZUltcGwpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQ1VJX1RBQlNfU0VSVklDRV9UT0tFTixcbiAgICAgICAgdXNlQ2xhc3M6IEltcGxlbWVudGF0aW9uXG4gICAgfTtcbn1cbiJdfQ==
@@ -3836,6 +3836,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
3836
3836
  }]
3837
3837
  }], ctorParameters: () => [] });
3838
3838
 
3839
+ class CuiAbstractTabsComponent {
3840
+ constructor() {
3841
+ this.tabsService = inject(CUI_TABS_SERVICE_TOKEN);
3842
+ this.tabs = this.tabsService.tabs;
3843
+ this.activeTab = this.tabsService.activeTab;
3844
+ this.headerSlot = input();
3845
+ this.selectedIndex = input(0);
3846
+ this.initSelectedTabEffect();
3847
+ }
3848
+ onSelectTab(event, tab) {
3849
+ if (event.defaultPrevented) {
3850
+ return;
3851
+ }
3852
+ this.tabsService.set(tab);
3853
+ }
3854
+ initSelectedTabEffect() {
3855
+ effect(() => {
3856
+ const index = this.selectedIndex();
3857
+ const length = this.tabs().length;
3858
+ if (index === undefined || !length) {
3859
+ return;
3860
+ }
3861
+ if (index < 0 || index >= length) {
3862
+ throw new Error('Invalid tab index');
3863
+ }
3864
+ this.tabsService.set(this.tabs()[index]);
3865
+ }, { allowSignalWrites: true });
3866
+ }
3867
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAbstractTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3868
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiAbstractTabsComponent, isStandalone: true, selector: "cui-abstract-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3869
+ }
3870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAbstractTabsComponent, decorators: [{
3871
+ type: Component,
3872
+ args: [{ selector: 'cui-abstract-tabs', imports: [NgTemplateOutlet], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"] }]
3873
+ }], ctorParameters: () => [] });
3874
+
3839
3875
  class CuiTabsServiceImpl extends CuiAbstractTabsService {
3840
3876
  constructor() {
3841
3877
  super(...arguments);
@@ -3860,51 +3896,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
3860
3896
  type: Injectable
3861
3897
  }] });
3862
3898
 
3863
- function provideCuiTabs(Implementation) {
3899
+ function provideCuiTabs(Implementation = CuiTabsServiceImpl) {
3864
3900
  return {
3865
3901
  provide: CUI_TABS_SERVICE_TOKEN,
3866
- useFactory: () => {
3867
- const defaultService = inject(CUI_TABS_SERVICE_TOKEN, { optional: true, skipSelf: true }) ?? new CuiTabsServiceImpl();
3868
- return Implementation ? new Implementation() : defaultService;
3869
- }
3902
+ useClass: Implementation
3870
3903
  };
3871
3904
  }
3872
3905
 
3873
3906
  class CuiTabsComponent {
3874
3907
  constructor() {
3875
- this.tabsService = inject(CUI_TABS_SERVICE_TOKEN);
3876
- this.tabs = this.tabsService.tabs;
3877
- this.activeTab = this.tabsService.activeTab;
3878
3908
  this.headerSlot = input();
3879
3909
  this.selectedIndex = input(0);
3880
- this.initSelectedTabEffect();
3881
- }
3882
- onSelectTab(event, tab) {
3883
- if (event.defaultPrevented) {
3884
- return;
3885
- }
3886
- this.tabsService.set(tab);
3887
- }
3888
- initSelectedTabEffect() {
3889
- effect(() => {
3890
- const index = this.selectedIndex();
3891
- const length = this.tabs().length;
3892
- if (index === undefined || !length) {
3893
- return;
3894
- }
3895
- if (index < 0 || index >= length) {
3896
- throw new Error('Invalid tab index');
3897
- }
3898
- this.tabsService.set(this.tabs()[index]);
3899
- }, { allowSignalWrites: true });
3900
3910
  }
3901
3911
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3902
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiTabsComponent, isStandalone: true, selector: "cui-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideCuiTabs()], ngImport: i0, template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3912
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiTabsComponent, isStandalone: true, selector: "cui-tabs", inputs: { headerSlot: { classPropertyName: "headerSlot", publicName: "headerSlot", isSignal: true, isRequired: false, transformFunction: null }, selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideCuiTabs()], ngImport: i0, template: "<cui-abstract-tabs\n [headerSlot]=\"headerSlot()\"\n [selectedIndex]=\"selectedIndex()\"\n/>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiAbstractTabsComponent, selector: "cui-abstract-tabs", inputs: ["headerSlot", "selectedIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3903
3913
  }
3904
3914
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiTabsComponent, decorators: [{
3905
3915
  type: Component,
3906
- args: [{ selector: 'cui-tabs', imports: [NgTemplateOutlet], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideCuiTabs()], template: "@if (headerSlot(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: buttons }\"\n />\n} @else {\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"buttons\" />\n </header>\n}\n\n<ng-template #buttons>\n @for (tab of tabs(); track tab.id) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onSelectTab($event, tab)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tab.button\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.data, isActive: tab.id === activeTab()?.id }\"\n />\n </button>\n }\n</ng-template>\n\n@if (activeTab()?.content; as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: activeTab()?.data }\"\n />\n}\n", styles: [":host{display:flex;flex-direction:column}.header{display:flex}.button{display:contents}\n"] }]
3907
- }], ctorParameters: () => [] });
3916
+ args: [{ selector: 'cui-tabs', imports: [CuiAbstractTabsComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideCuiTabs()], template: "<cui-abstract-tabs\n [headerSlot]=\"headerSlot()\"\n [selectedIndex]=\"selectedIndex()\"\n/>\n", styles: [":host{display:contents}\n"] }]
3917
+ }] });
3908
3918
 
3909
3919
  class CuiTextareaComponent {
3910
3920
  constructor() {
@@ -10458,5 +10468,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
10458
10468
  * Generated bundle index. Do not edit.
10459
10469
  */
10460
10470
 
10461
- export { AngularOutsideLoaderService, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_URL, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityContextMenuTranslations, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorToolsService, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploaderStatus, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiVideoTool, CuiVisualViewportService, UTILITY_MODAL_SERVICE_TOKEN, cuiAuthInterceptor, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, provideCuiAuth, provideCuiEditorResourceUrl, provideCuiTabs };
10471
+ export { AngularOutsideLoaderService, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_URL, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityContextMenuTranslations, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorToolsService, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploaderStatus, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiVideoTool, CuiVisualViewportService, UTILITY_MODAL_SERVICE_TOKEN, cuiAuthInterceptor, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, provideCuiAuth, provideCuiEditorResourceUrl, provideCuiTabs };
10462
10472
  //# sourceMappingURL=cuby-ui-core.mjs.map