@cuby-ui/core 0.0.113 → 0.0.115
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.
- package/components/dialog/dialogs.component.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/components/tabs/index.d.ts +3 -0
- package/components/tabs/tab/index.d.ts +1 -0
- package/components/tabs/tab/tab.component.d.ts +8 -0
- package/components/tabs/tabs.component.d.ts +16 -0
- package/components/tabs/tabs.module.d.ts +8 -0
- package/esm2020/components/dialog/dialogs.component.mjs +18 -4
- package/esm2020/components/index.mjs +2 -1
- package/esm2020/components/tabs/index.mjs +4 -0
- package/esm2020/components/tabs/tab/index.mjs +2 -0
- package/esm2020/components/tabs/tab/tab.component.mjs +21 -0
- package/esm2020/components/tabs/tabs.component.mjs +49 -0
- package/esm2020/components/tabs/tabs.module.mjs +18 -0
- package/fesm2015/cuby-ui-core.mjs +97 -4
- package/fesm2015/cuby-ui-core.mjs.map +1 -1
- package/fesm2020/cuby-ui-core.mjs +97 -4
- package/fesm2020/cuby-ui-core.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
export declare class CuiDialogsComponent implements OnInit {
|
|
8
8
|
private readonly destroy$;
|
|
9
9
|
protected readonly dialogs$: Observable<ReadonlyArray<CuiPopover<CuiDialogOptions>>>;
|
|
10
|
+
protected dialogInjectorCache: Map<string, Injector>;
|
|
10
11
|
protected dialogInjectors: ReadonlyArray<Injector>;
|
|
11
12
|
ngOnInit(): void;
|
|
12
13
|
protected trackByFn(_: number, dialog: CuiPopover<CuiDialogOptions>): string;
|
package/components/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tab.component';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare const CUI_TAB_ACTIVATE = "cui-tab-activate";
|
|
3
|
+
export declare class CuiTabComponent {
|
|
4
|
+
protected readonly element: HTMLButtonElement;
|
|
5
|
+
protected onClick(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiTabComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CuiTabComponent, "button[cuiTab]", never, {}, {}, never, ["*"], false, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AfterViewChecked } from '@angular/core';
|
|
2
|
+
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CuiTabsComponent implements AfterViewChecked {
|
|
5
|
+
private readonly element;
|
|
6
|
+
private readonly activeElementClass;
|
|
7
|
+
protected get tabs(): readonly HTMLElement[];
|
|
8
|
+
get activeElement(): HTMLElement | null;
|
|
9
|
+
ngAfterViewChecked(): void;
|
|
10
|
+
activeItemIndex: number;
|
|
11
|
+
readonly activeItemIndexChange: EventEmitter<number>;
|
|
12
|
+
protected onActivate(event: CustomEvent): void;
|
|
13
|
+
private changeActiveItem;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiTabsComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CuiTabsComponent, "cui-tabs", never, { "activeItemIndex": "activeItemIndex"; }, { "activeItemIndexChange": "activeItemIndexChange"; }, never, ["[cuiTab]"], false, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./tabs.component";
|
|
3
|
+
import * as i2 from "./tab/tab.component";
|
|
4
|
+
export declare class CuiTabsModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CuiTabsModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CuiTabsModule, [typeof i1.CuiTabsComponent, typeof i2.CuiTabComponent], never, [typeof i1.CuiTabsComponent, typeof i2.CuiTabComponent]>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CuiTabsModule>;
|
|
8
|
+
}
|
|
@@ -9,6 +9,7 @@ export class CuiDialogsComponent {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
11
11
|
this.dialogs$ = inject(CUI_DIALOGS);
|
|
12
|
+
this.dialogInjectorCache = new Map();
|
|
12
13
|
}
|
|
13
14
|
ngOnInit() {
|
|
14
15
|
this.initDialogInjectorsSubscription();
|
|
@@ -19,9 +20,22 @@ export class CuiDialogsComponent {
|
|
|
19
20
|
initDialogInjectorsSubscription() {
|
|
20
21
|
this.dialogs$
|
|
21
22
|
.pipe(takeUntil(this.destroy$))
|
|
22
|
-
.subscribe(dialogs =>
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
.subscribe(dialogs => {
|
|
24
|
+
this.dialogInjectors = dialogs.map(dialog => {
|
|
25
|
+
if (!this.dialogInjectorCache.has(dialog.id)) {
|
|
26
|
+
this.dialogInjectorCache.set(dialog.id, Injector.create({
|
|
27
|
+
providers: [{ provide: CUI_DIALOG_CONTEXT, useValue: dialog }]
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
return this.dialogInjectorCache.get(dialog.id);
|
|
31
|
+
});
|
|
32
|
+
this.dialogInjectorCache.forEach((_, dialogId) => {
|
|
33
|
+
if (dialogs.find(dialog => dialog.id === dialogId)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.dialogInjectorCache.delete(dialogId);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
41
|
CuiDialogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -30,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
30
44
|
type: Component,
|
|
31
45
|
args: [{ selector: 'cui-dialogs', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiDestroyService], template: "<ng-container *cuiLet=\"dialogs$ | async as dialogs\">\n <ng-container *ngFor=\"let dialog of dialogs; let i = index; trackBy: trackByFn\">\n <ng-container *ngComponentOutlet=\"dialog.component; injector: dialogInjectors[i]\"></ng-container>\n </ng-container>\n <div\n *ngIf=\"dialogs!.length\"\n class=\"c-overlay\"\n ></div>\n</ng-container>\n", styles: [".c-overlay{position:fixed;inset:0;background:var(--cui-base-900);opacity:.3}\n"] }]
|
|
32
46
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2dzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVVsRSxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBUW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVuRCxhQUFRLEdBQTRELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRyx3QkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztLQWtDN0Q7SUEvQlEsUUFBUTtRQUNiLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFUyxTQUFTLENBQUMsQ0FBUyxFQUFFLE1BQW9DO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRVMsK0JBQStCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRO2FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDdEQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO3FCQUMvRCxDQUFDLENBQUMsQ0FBQztpQkFDTDtnQkFFRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRTtvQkFDbEQsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEFyQ1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsc0NBRm5CLENBQUMsaUJBQWlCLENBQUMsMEJDZmhDLHdXQVNBOzRGRFFhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEN1aVBvcG92ZXIgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhULCBDVUlfRElBTE9HUyB9IGZyb20gJy4vZGlhbG9nLnRva2Vucyc7XG5pbXBvcnQgdHlwZSB7IEN1aURpYWxvZ09wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VpLWRpYWxvZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9ncy50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9ncy5zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtDdWlEZXN0cm95U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpRGlhbG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBpbmplY3QoQ3VpRGVzdHJveVNlcnZpY2UsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlhbG9ncyQ6IE9ic2VydmFibGU8UmVhZG9ubHlBcnJheTxDdWlQb3BvdmVyPEN1aURpYWxvZ09wdGlvbnM+Pj4gPSBpbmplY3QoQ1VJX0RJQUxPR1MpO1xuICBwcm90ZWN0ZWQgZGlhbG9nSW5qZWN0b3JDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBJbmplY3Rvcj4oKTtcbiAgcHJvdGVjdGVkIGRpYWxvZ0luamVjdG9ycyE6IFJlYWRvbmx5QXJyYXk8SW5qZWN0b3I+O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREaWFsb2dJbmplY3RvcnNTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja0J5Rm4oXzogbnVtYmVyLCBkaWFsb2c6IEN1aVBvcG92ZXI8Q3VpRGlhbG9nT3B0aW9ucz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBkaWFsb2cuaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdERpYWxvZ0luamVjdG9yc1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ3MkXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgIC5zdWJzY3JpYmUoZGlhbG9ncyA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ0luamVjdG9ycyA9IGRpYWxvZ3MubWFwKGRpYWxvZyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dJbmplY3RvckNhY2hlLmhhcyhkaWFsb2cuaWQpKSB7XG4gICAgICAgICAgdGhpcy5kaWFsb2dJbmplY3RvckNhY2hlLnNldChkaWFsb2cuaWQsIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENVSV9ESUFMT0dfQ09OVEVYVCwgdXNlVmFsdWU6IGRpYWxvZyB9XVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ0luamVjdG9yQ2FjaGUuZ2V0KGRpYWxvZy5pZCkhO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZGlhbG9nSW5qZWN0b3JDYWNoZS5mb3JFYWNoKChfLCBkaWFsb2dJZCkgPT4ge1xuICAgICAgICBpZiAoZGlhbG9ncy5maW5kKGRpYWxvZyA9PiBkaWFsb2cuaWQgPT09IGRpYWxvZ0lkKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nSW5qZWN0b3JDYWNoZS5kZWxldGUoZGlhbG9nSWQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKmN1aUxldD1cImRpYWxvZ3MkIHwgYXN5bmMgYXMgZGlhbG9nc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkaWFsb2cgb2YgZGlhbG9nczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJkaWFsb2cuY29tcG9uZW50OyBpbmplY3RvcjogZGlhbG9nSW5qZWN0b3JzW2ldXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJkaWFsb2dzIS5sZW5ndGhcIlxuICAgIGNsYXNzPVwiYy1vdmVybGF5XCJcbiAgPjwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -20,6 +20,7 @@ export * from './radio';
|
|
|
20
20
|
export * from './root';
|
|
21
21
|
export * from './select';
|
|
22
22
|
export * from './svg';
|
|
23
|
+
export * from './tabs';
|
|
23
24
|
export * from './textarea';
|
|
24
25
|
export * from './toggle';
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hbGVydCc7XG5leHBvcnQgKiBmcm9tICcuL2JhZGdlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFubmVyJztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYnMnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtbWVudSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9oaW50JztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1wYXNzd29yZCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvJztcbmV4cG9ydCAqIGZyb20gJy4vcm9vdCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3N2Zyc7XG5leHBvcnQgKiBmcm9tICcuL3RhYnMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0YXJlYSc7XG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZSc7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './tab';
|
|
2
|
+
export * from './tabs.component';
|
|
3
|
+
export * from './tabs.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWInO1xuZXhwb3J0ICogZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYnMubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tab.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy90YWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFiLmNvbXBvbmVudCc7Il19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostListener, inject } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const CUI_TAB_ACTIVATE = 'cui-tab-activate';
|
|
4
|
+
export class CuiTabComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.element = inject(ElementRef).nativeElement;
|
|
7
|
+
}
|
|
8
|
+
onClick() {
|
|
9
|
+
this.element.dispatchEvent(new CustomEvent(CUI_TAB_ACTIVATE, { bubbles: true }));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
CuiTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
CuiTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiTabComponent, selector: "button[cuiTab]", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-family:var(--cui-main-font)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'button[cuiTab]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-family:var(--cui-main-font)}\n"] }]
|
|
17
|
+
}], propDecorators: { onClick: [{
|
|
18
|
+
type: HostListener,
|
|
19
|
+
args: ['click']
|
|
20
|
+
}] } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3RhYnMvdGFiL3RhYi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXJHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBUW5ELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBT3FCLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBa0MsQ0FBQztLQU1wRjtJQUhXLE9BQU87UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7NkdBTlUsZUFBZTtpR0FBZixlQUFlLHFHQ1Y1QixrQkFDQTs0RkRTYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQU1yQyxPQUFPO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQ1VJX1RBQl9BQ1RJVkFURSA9ICdjdWktdGFiLWFjdGl2YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uW2N1aVRhYl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWIuc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlUYWJDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENVSV9UQUJfQUNUSVZBVEUsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IC8+XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { CUI_TAB_ACTIVATE } from './tab';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiTabsComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.element = inject(ElementRef).nativeElement;
|
|
7
|
+
this.activeElementClass = '_active';
|
|
8
|
+
this.activeItemIndex = 0;
|
|
9
|
+
this.activeItemIndexChange = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
get tabs() {
|
|
12
|
+
return Array.from(this.element.querySelectorAll('[cuiTab]'));
|
|
13
|
+
}
|
|
14
|
+
get activeElement() {
|
|
15
|
+
return this.tabs[this.activeItemIndex] || null;
|
|
16
|
+
}
|
|
17
|
+
ngAfterViewChecked() {
|
|
18
|
+
this.changeActiveItem();
|
|
19
|
+
}
|
|
20
|
+
onActivate(event) {
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
const index = this.tabs.findIndex((tab) => tab === event.target);
|
|
23
|
+
if (index === this.activeItemIndex) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this.activeItemIndexChange.emit(index);
|
|
27
|
+
this.activeItemIndex = index;
|
|
28
|
+
}
|
|
29
|
+
changeActiveItem() {
|
|
30
|
+
this.tabs.forEach(nativeElement => {
|
|
31
|
+
const active = nativeElement === this.activeElement;
|
|
32
|
+
nativeElement.classList.toggle(this.activeElementClass, active);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
CuiTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
CuiTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiTabsComponent, selector: "cui-tabs", inputs: { activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "cui-tab-activate": "onActivate($event)" } }, ngImport: i0, template: "<ng-content select=\"[cuiTab]\" />\n", styles: [":host{display:flex;border-radius:8px;gap:32px}:host ::ng-deep>[cuiTab]{padding:8px 12px;font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500);border-radius:6px}@media (hover: hover){:host ::ng-deep>[cuiTab]:hover{color:var(--cui-base-900);background:var(--cui-base-50)}}:host ::ng-deep>[cuiTab]:active{color:var(--cui-base-900);background:var(--cui-base-50)}:host ::ng-deep>[cuiTab]._active{color:var(--cui-light-blue-600);background:var(--cui-base-50)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'cui-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[cuiTab]\" />\n", styles: [":host{display:flex;border-radius:8px;gap:32px}:host ::ng-deep>[cuiTab]{padding:8px 12px;font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500);border-radius:6px}@media (hover: hover){:host ::ng-deep>[cuiTab]:hover{color:var(--cui-base-900);background:var(--cui-base-50)}}:host ::ng-deep>[cuiTab]:active{color:var(--cui-base-900);background:var(--cui-base-50)}:host ::ng-deep>[cuiTab]._active{color:var(--cui-light-blue-600);background:var(--cui-base-50)}\n"] }]
|
|
41
|
+
}], propDecorators: { activeItemIndex: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], activeItemIndexChange: [{
|
|
44
|
+
type: Output
|
|
45
|
+
}], onActivate: [{
|
|
46
|
+
type: HostListener,
|
|
47
|
+
args: [CUI_TAB_ACTIVATE, ['$event']]
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy90YWJzL3RhYnMudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxnQkFBZ0I7SUFON0I7UUFPbUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUE0QixDQUFDO1FBRTFELHVCQUFrQixHQUFHLFNBQVMsQ0FBQztRQWV6QyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUdYLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0F1QnBFO0lBdkNDLElBQWMsSUFBSTtRQUNoQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBYyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBU1MsVUFBVSxDQUFDLEtBQWtCO1FBQ3JDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqRSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxhQUFhLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUVwRCxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0EzQ1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsZ09DcEI3QixzQ0FDQTs0RkRtQmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTs4QkFvQnhDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSVUscUJBQXFCO3NCQURwQyxNQUFNO2dCQUlHLFVBQVU7c0JBRG5CLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENVSV9UQUJfQUNUSVZBVEUgfSBmcm9tICcuL3RhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1aS10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnMudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYnMuc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlRWxlbWVudENsYXNzID0gJ19hY3RpdmUnO1xuXG4gIHByb3RlY3RlZCBnZXQgdGFicygpOiByZWFkb25seSBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tjdWlUYWJdJykpO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLmFjdGl2ZUl0ZW1JbmRleF0gfHwgbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VBY3RpdmVJdGVtKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlSXRlbUluZGV4ID0gMDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZUl0ZW1JbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoQ1VJX1RBQl9BQ1RJVkFURSwgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uQWN0aXZhdGUoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKHRhYikgPT4gdGFiID09PSBldmVudC50YXJnZXQpO1xuXG4gICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZUl0ZW1JbmRleCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlSXRlbUluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgIHRoaXMuYWN0aXZlSXRlbUluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUFjdGl2ZUl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLmZvckVhY2gobmF0aXZlRWxlbWVudCA9PiB7XG4gICAgICBjb25zdCBhY3RpdmUgPSBuYXRpdmVFbGVtZW50ID09PSB0aGlzLmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIG5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLmFjdGl2ZUVsZW1lbnRDbGFzcywgYWN0aXZlKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2N1aVRhYl1cIiAvPlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CuiTabsComponent } from './tabs.component';
|
|
3
|
+
import { CuiTabComponent } from './tab';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CuiTabsModule {
|
|
6
|
+
}
|
|
7
|
+
CuiTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
CuiTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, declarations: [CuiTabsComponent, CuiTabComponent], exports: [CuiTabsComponent, CuiTabComponent] });
|
|
9
|
+
CuiTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [],
|
|
14
|
+
declarations: [CuiTabsComponent, CuiTabComponent],
|
|
15
|
+
exports: [CuiTabsComponent, CuiTabComponent]
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGFicy90YWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBT3hDLE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBSFQsZ0JBQWdCLEVBQUUsZUFBZSxhQUN0QyxnQkFBZ0IsRUFBRSxlQUFlOzRHQUVoQyxhQUFhOzRGQUFiLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ3VpVGFic0NvbXBvbmVudCB9IGZyb20gJy4vdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VpVGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbQ3VpVGFic0NvbXBvbmVudCwgQ3VpVGFiQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0N1aVRhYnNDb21wb25lbnQsIEN1aVRhYkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpVGFic01vZHVsZSB7XG59XG4iXX0=
|
|
@@ -725,6 +725,7 @@ class CuiDialogsComponent {
|
|
|
725
725
|
constructor() {
|
|
726
726
|
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
727
727
|
this.dialogs$ = inject(CUI_DIALOGS);
|
|
728
|
+
this.dialogInjectorCache = new Map();
|
|
728
729
|
}
|
|
729
730
|
ngOnInit() {
|
|
730
731
|
this.initDialogInjectorsSubscription();
|
|
@@ -735,9 +736,22 @@ class CuiDialogsComponent {
|
|
|
735
736
|
initDialogInjectorsSubscription() {
|
|
736
737
|
this.dialogs$
|
|
737
738
|
.pipe(takeUntil(this.destroy$))
|
|
738
|
-
.subscribe(dialogs =>
|
|
739
|
-
|
|
740
|
-
|
|
739
|
+
.subscribe(dialogs => {
|
|
740
|
+
this.dialogInjectors = dialogs.map(dialog => {
|
|
741
|
+
if (!this.dialogInjectorCache.has(dialog.id)) {
|
|
742
|
+
this.dialogInjectorCache.set(dialog.id, Injector.create({
|
|
743
|
+
providers: [{ provide: CUI_DIALOG_CONTEXT, useValue: dialog }]
|
|
744
|
+
}));
|
|
745
|
+
}
|
|
746
|
+
return this.dialogInjectorCache.get(dialog.id);
|
|
747
|
+
});
|
|
748
|
+
this.dialogInjectorCache.forEach((_, dialogId) => {
|
|
749
|
+
if (dialogs.find(dialog => dialog.id === dialogId)) {
|
|
750
|
+
return;
|
|
751
|
+
}
|
|
752
|
+
this.dialogInjectorCache.delete(dialogId);
|
|
753
|
+
});
|
|
754
|
+
});
|
|
741
755
|
}
|
|
742
756
|
}
|
|
743
757
|
CuiDialogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDialogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -2065,6 +2079,85 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2065
2079
|
}]
|
|
2066
2080
|
}] });
|
|
2067
2081
|
|
|
2082
|
+
const CUI_TAB_ACTIVATE = 'cui-tab-activate';
|
|
2083
|
+
class CuiTabComponent {
|
|
2084
|
+
constructor() {
|
|
2085
|
+
this.element = inject(ElementRef).nativeElement;
|
|
2086
|
+
}
|
|
2087
|
+
onClick() {
|
|
2088
|
+
this.element.dispatchEvent(new CustomEvent(CUI_TAB_ACTIVATE, { bubbles: true }));
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
CuiTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2092
|
+
CuiTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiTabComponent, selector: "button[cuiTab]", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-family:var(--cui-main-font)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabComponent, decorators: [{
|
|
2094
|
+
type: Component,
|
|
2095
|
+
args: [{ selector: 'button[cuiTab]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-family:var(--cui-main-font)}\n"] }]
|
|
2096
|
+
}], propDecorators: { onClick: [{
|
|
2097
|
+
type: HostListener,
|
|
2098
|
+
args: ['click']
|
|
2099
|
+
}] } });
|
|
2100
|
+
|
|
2101
|
+
class CuiTabsComponent {
|
|
2102
|
+
constructor() {
|
|
2103
|
+
this.element = inject(ElementRef).nativeElement;
|
|
2104
|
+
this.activeElementClass = '_active';
|
|
2105
|
+
this.activeItemIndex = 0;
|
|
2106
|
+
this.activeItemIndexChange = new EventEmitter();
|
|
2107
|
+
}
|
|
2108
|
+
get tabs() {
|
|
2109
|
+
return Array.from(this.element.querySelectorAll('[cuiTab]'));
|
|
2110
|
+
}
|
|
2111
|
+
get activeElement() {
|
|
2112
|
+
return this.tabs[this.activeItemIndex] || null;
|
|
2113
|
+
}
|
|
2114
|
+
ngAfterViewChecked() {
|
|
2115
|
+
this.changeActiveItem();
|
|
2116
|
+
}
|
|
2117
|
+
onActivate(event) {
|
|
2118
|
+
event.stopPropagation();
|
|
2119
|
+
const index = this.tabs.findIndex((tab) => tab === event.target);
|
|
2120
|
+
if (index === this.activeItemIndex) {
|
|
2121
|
+
return;
|
|
2122
|
+
}
|
|
2123
|
+
this.activeItemIndexChange.emit(index);
|
|
2124
|
+
this.activeItemIndex = index;
|
|
2125
|
+
}
|
|
2126
|
+
changeActiveItem() {
|
|
2127
|
+
this.tabs.forEach(nativeElement => {
|
|
2128
|
+
const active = nativeElement === this.activeElement;
|
|
2129
|
+
nativeElement.classList.toggle(this.activeElementClass, active);
|
|
2130
|
+
});
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2133
|
+
CuiTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2134
|
+
CuiTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiTabsComponent, selector: "cui-tabs", inputs: { activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "cui-tab-activate": "onActivate($event)" } }, ngImport: i0, template: "<ng-content select=\"[cuiTab]\" />\n", styles: [":host{display:flex;border-radius:8px;gap:32px}:host ::ng-deep>[cuiTab]{padding:8px 12px;font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500);border-radius:6px}@media (hover: hover){:host ::ng-deep>[cuiTab]:hover{color:var(--cui-base-900);background:var(--cui-base-50)}}:host ::ng-deep>[cuiTab]:active{color:var(--cui-base-900);background:var(--cui-base-50)}:host ::ng-deep>[cuiTab]._active{color:var(--cui-light-blue-600);background:var(--cui-base-50)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsComponent, decorators: [{
|
|
2136
|
+
type: Component,
|
|
2137
|
+
args: [{ selector: 'cui-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[cuiTab]\" />\n", styles: [":host{display:flex;border-radius:8px;gap:32px}:host ::ng-deep>[cuiTab]{padding:8px 12px;font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500);border-radius:6px}@media (hover: hover){:host ::ng-deep>[cuiTab]:hover{color:var(--cui-base-900);background:var(--cui-base-50)}}:host ::ng-deep>[cuiTab]:active{color:var(--cui-base-900);background:var(--cui-base-50)}:host ::ng-deep>[cuiTab]._active{color:var(--cui-light-blue-600);background:var(--cui-base-50)}\n"] }]
|
|
2138
|
+
}], propDecorators: { activeItemIndex: [{
|
|
2139
|
+
type: Input
|
|
2140
|
+
}], activeItemIndexChange: [{
|
|
2141
|
+
type: Output
|
|
2142
|
+
}], onActivate: [{
|
|
2143
|
+
type: HostListener,
|
|
2144
|
+
args: [CUI_TAB_ACTIVATE, ['$event']]
|
|
2145
|
+
}] } });
|
|
2146
|
+
|
|
2147
|
+
class CuiTabsModule {
|
|
2148
|
+
}
|
|
2149
|
+
CuiTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2150
|
+
CuiTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, declarations: [CuiTabsComponent, CuiTabComponent], exports: [CuiTabsComponent, CuiTabComponent] });
|
|
2151
|
+
CuiTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule });
|
|
2152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTabsModule, decorators: [{
|
|
2153
|
+
type: NgModule,
|
|
2154
|
+
args: [{
|
|
2155
|
+
imports: [],
|
|
2156
|
+
declarations: [CuiTabsComponent, CuiTabComponent],
|
|
2157
|
+
exports: [CuiTabsComponent, CuiTabComponent]
|
|
2158
|
+
}]
|
|
2159
|
+
}] });
|
|
2160
|
+
|
|
2068
2161
|
class CuiTextareaComponent {
|
|
2069
2162
|
constructor() {
|
|
2070
2163
|
this.cuiTextFieldController = inject(CUI_TEXT_FIELD_CONTROLLER);
|
|
@@ -2134,5 +2227,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2134
2227
|
* Generated bundle index. Do not edit.
|
|
2135
2228
|
*/
|
|
2136
2229
|
|
|
2137
|
-
export { CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, 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_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_OPTIONS, CUI_ROOT_SELECTOR, 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, CuiAccordionComponent, CuiAccordionItemComponent, CuiAccordionModule, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCheckboxComponent, CuiCheckboxModule, CuiContextMenuComponent, CuiContextMenuModule, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiFormFieldComponent, CuiFormFieldModule, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiLabelComponent, CuiLabelModule, CuiNotificationComponent, CuiNotificationModule, CuiRadioComponent, CuiRadioModule, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModule, CuiSvgComponent, CuiSvgModule, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, cuiRemoveSpaces, cuiReplace };
|
|
2230
|
+
export { CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, 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_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_OPTIONS, CUI_ROOT_SELECTOR, CUI_TAB_ACTIVATE, 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, CuiAccordionComponent, CuiAccordionItemComponent, CuiAccordionModule, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCheckboxComponent, CuiCheckboxModule, CuiContextMenuComponent, CuiContextMenuModule, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiFormFieldComponent, CuiFormFieldModule, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiLabelComponent, CuiLabelModule, CuiNotificationComponent, CuiNotificationModule, CuiRadioComponent, CuiRadioModule, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModule, CuiSvgComponent, CuiSvgModule, CuiTabComponent, CuiTabsComponent, CuiTabsModule, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, cuiRemoveSpaces, cuiReplace };
|
|
2138
2231
|
//# sourceMappingURL=cuby-ui-core.mjs.map
|