@cuby-ui/core 0.0.114 → 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/esm2020/components/dialog/dialogs.component.mjs +18 -4
- package/fesm2015/cuby-ui-core.mjs +17 -3
- package/fesm2015/cuby-ui-core.mjs.map +1 -1
- package/fesm2020/cuby-ui-core.mjs +17 -3
- 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;
|
|
@@ -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=
|
|
@@ -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 });
|