@scania-nl/tegel-angular-extensions 0.0.7 → 0.0.9
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/README.md +508 -54
- package/esm2022/index.mjs +9 -1
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.component.mjs +366 -0
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.constants.mjs +24 -0
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.utils.mjs +148 -0
- package/esm2022/lib/directives/typed-template.directive.mjs +38 -0
- package/esm2022/lib/env/angular/provide-runtime-config.mjs +7 -5
- package/esm2022/lib/modal/components/modal/modal.component.mjs +128 -0
- package/esm2022/lib/modal/components/modal-host/modal-host.component.mjs +32 -0
- package/esm2022/lib/modal/directives/dynamic-component.directive.mjs +135 -0
- package/esm2022/lib/modal/modal.service.mjs +156 -0
- package/esm2022/lib/modal/provide-modal.mjs +25 -0
- package/esm2022/lib/modal/schema/modal-ref.mjs +2 -0
- package/esm2022/lib/modal/schema/modal.config.mjs +15 -0
- package/esm2022/lib/modal/schema/modal.model.mjs +2 -0
- package/esm2022/lib/modal/schema/modal.types.mjs +3 -0
- package/esm2022/lib/toast/provide-toast.mjs +7 -1
- package/esm2022/lib/utils/angular-component-io.mjs +2 -0
- package/index.d.ts +415 -4
- package/package.json +1 -1
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { DestroyRef, Directive, effect, inject, input, untracked, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Dynamically renders an Angular component and wires its signal inputs/outputs.
|
|
5
|
+
*
|
|
6
|
+
* This directive:
|
|
7
|
+
* - Creates/destroys the component when the type changes.
|
|
8
|
+
* - Applies inputs via `setInput`.
|
|
9
|
+
* - Subscribes to outputs and forwards emitted values to handlers.
|
|
10
|
+
* - Cleans subscriptions and the component instance on destroy.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <ng-container
|
|
15
|
+
* taeDynamicComponent
|
|
16
|
+
* [component]="MyComponent"
|
|
17
|
+
* [inputs]="{ name: 'John', age: 25 }"
|
|
18
|
+
* [outputs]="{ submitted: (data) => handleSubmit(data) }"
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export class DynamicComponentDirective {
|
|
23
|
+
component = input.required();
|
|
24
|
+
inputs = input();
|
|
25
|
+
outputs = input();
|
|
26
|
+
viewContainer = inject(ViewContainerRef);
|
|
27
|
+
destroyRef = inject(DestroyRef);
|
|
28
|
+
// Current component instance reference managed by this directive.
|
|
29
|
+
componentRef;
|
|
30
|
+
outputSubscriptions = new Set();
|
|
31
|
+
constructor() {
|
|
32
|
+
// Recreate the component whenever the type changes.
|
|
33
|
+
effect(() => {
|
|
34
|
+
const componentType = this.component();
|
|
35
|
+
untracked(() => {
|
|
36
|
+
this.destroyComponent();
|
|
37
|
+
this.createComponent(componentType);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
// Apply new inputs whenever the `inputs` signal changes.
|
|
41
|
+
effect(() => {
|
|
42
|
+
const inputsValue = this.inputs();
|
|
43
|
+
if (inputsValue && this.componentRef) {
|
|
44
|
+
untracked(() => this.applyInputs(inputsValue));
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Ensure cleanup if the host view is destroyed.
|
|
48
|
+
this.destroyRef.onDestroy(() => this.destroyComponent());
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates the component and wires initial inputs/outputs.
|
|
52
|
+
* @param componentType Component type to instantiate.
|
|
53
|
+
*/
|
|
54
|
+
createComponent(componentType) {
|
|
55
|
+
this.viewContainer.clear();
|
|
56
|
+
this.componentRef = this.viewContainer.createComponent(componentType);
|
|
57
|
+
const inputsValue = this.inputs();
|
|
58
|
+
if (inputsValue) {
|
|
59
|
+
this.applyInputs(inputsValue);
|
|
60
|
+
}
|
|
61
|
+
const outputsValue = this.outputs();
|
|
62
|
+
if (outputsValue) {
|
|
63
|
+
this.subscribeToOutputs(outputsValue);
|
|
64
|
+
}
|
|
65
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Applies input values to the component instance using `setInput`.
|
|
69
|
+
* @param inputs Input values keyed by input name.
|
|
70
|
+
*/
|
|
71
|
+
applyInputs(inputs) {
|
|
72
|
+
if (!this.componentRef)
|
|
73
|
+
return;
|
|
74
|
+
Object.entries(inputs).forEach(([key, value]) => {
|
|
75
|
+
this.componentRef?.setInput(key, value);
|
|
76
|
+
});
|
|
77
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Subscribes to output signal emitters and forwards values to handlers.
|
|
81
|
+
* @param outputs Output handler map keyed by output name.
|
|
82
|
+
*/
|
|
83
|
+
subscribeToOutputs(outputs) {
|
|
84
|
+
if (!this.componentRef)
|
|
85
|
+
return;
|
|
86
|
+
// Clear previous subscriptions before wiring new outputs.
|
|
87
|
+
this.clearOutputSubscriptions();
|
|
88
|
+
const instance = this.componentRef.instance;
|
|
89
|
+
Object.entries(outputs).forEach(([key, handler]) => {
|
|
90
|
+
if (typeof handler !== 'function')
|
|
91
|
+
return;
|
|
92
|
+
const output = instance[key];
|
|
93
|
+
// Subscribe to the output signal emitter if present.
|
|
94
|
+
if (this.isOutputEmitterRef(output)) {
|
|
95
|
+
const subscription = output.subscribe((value) => handler(value));
|
|
96
|
+
this.outputSubscriptions.add(subscription);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Clears all output subscriptions.
|
|
102
|
+
*/
|
|
103
|
+
clearOutputSubscriptions() {
|
|
104
|
+
this.outputSubscriptions.forEach((sub) => sub.unsubscribe());
|
|
105
|
+
this.outputSubscriptions.clear();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Destroys the dynamic component and cleans subscriptions.
|
|
109
|
+
*/
|
|
110
|
+
destroyComponent() {
|
|
111
|
+
this.clearOutputSubscriptions();
|
|
112
|
+
this.componentRef?.destroy();
|
|
113
|
+
this.componentRef = undefined;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Type guard for Angular signal output emitters.
|
|
117
|
+
* @param value Value to test.
|
|
118
|
+
*/
|
|
119
|
+
isOutputEmitterRef(value) {
|
|
120
|
+
return (typeof value === 'object' &&
|
|
121
|
+
value !== null &&
|
|
122
|
+
'subscribe' in value &&
|
|
123
|
+
typeof value['subscribe'] === 'function');
|
|
124
|
+
}
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DynamicComponentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
126
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: DynamicComponentDirective, isStandalone: true, selector: "[taeDynamicComponent]", inputs: { component: { classPropertyName: "component", publicName: "component", isSignal: true, isRequired: true, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null }, outputs: { classPropertyName: "outputs", publicName: "outputs", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DynamicComponentDirective, decorators: [{
|
|
129
|
+
type: Directive,
|
|
130
|
+
args: [{
|
|
131
|
+
selector: '[taeDynamicComponent]',
|
|
132
|
+
standalone: true,
|
|
133
|
+
}]
|
|
134
|
+
}], ctorParameters: () => [] });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9tb2RhbC9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQU12Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO0lBQ3RDLE1BQU0sR0FBRyxLQUFLLEVBQXNCLENBQUM7SUFDckMsT0FBTyxHQUFHLEtBQUssRUFBdUIsQ0FBQztJQUUvQixhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxrRUFBa0U7SUFDMUQsWUFBWSxDQUFtQjtJQUN0QixtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUV4RTtRQUNFLG9EQUFvRDtRQUNwRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXZDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILHlEQUF5RDtRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1Ys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Q0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQ3hCLEtBQWM7UUFFZCxPQUFPLENBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN6QixLQUFLLEtBQUssSUFBSTtZQUNkLFdBQVcsSUFBSSxLQUFLO1lBQ3BCLE9BQVEsS0FBaUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxVQUFVLENBQ3RFLENBQUM7SUFDSixDQUFDO3dHQWhJVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBPdXRwdXRFbWl0dGVyUmVmLFxuICBPdXRwdXRSZWZTdWJzY3JpcHRpb24sXG4gIFR5cGUsXG4gIHVudHJhY2tlZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRJbnB1dHMsXG4gIENvbXBvbmVudE91dHB1dHMsXG59IGZyb20gJy4uLy4uL3V0aWxzL2FuZ3VsYXItY29tcG9uZW50LWlvJztcblxuLyoqXG4gKiBEeW5hbWljYWxseSByZW5kZXJzIGFuIEFuZ3VsYXIgY29tcG9uZW50IGFuZCB3aXJlcyBpdHMgc2lnbmFsIGlucHV0cy9vdXRwdXRzLlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlOlxuICogLSBDcmVhdGVzL2Rlc3Ryb3lzIHRoZSBjb21wb25lbnQgd2hlbiB0aGUgdHlwZSBjaGFuZ2VzLlxuICogLSBBcHBsaWVzIGlucHV0cyB2aWEgYHNldElucHV0YC5cbiAqIC0gU3Vic2NyaWJlcyB0byBvdXRwdXRzIGFuZCBmb3J3YXJkcyBlbWl0dGVkIHZhbHVlcyB0byBoYW5kbGVycy5cbiAqIC0gQ2xlYW5zIHN1YnNjcmlwdGlvbnMgYW5kIHRoZSBjb21wb25lbnQgaW5zdGFuY2Ugb24gZGVzdHJveS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPG5nLWNvbnRhaW5lclxuICogICB0YWVEeW5hbWljQ29tcG9uZW50XG4gKiAgIFtjb21wb25lbnRdPVwiTXlDb21wb25lbnRcIlxuICogICBbaW5wdXRzXT1cInsgbmFtZTogJ0pvaG4nLCBhZ2U6IDI1IH1cIlxuICogICBbb3V0cHV0c109XCJ7IHN1Ym1pdHRlZDogKGRhdGEpID0+IGhhbmRsZVN1Ym1pdChkYXRhKSB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RhZUR5bmFtaWNDb21wb25lbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudERpcmVjdGl2ZTxUPiB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudCA9IGlucHV0LnJlcXVpcmVkPFR5cGU8VD4+KCk7XG4gIHJlYWRvbmx5IGlucHV0cyA9IGlucHV0PENvbXBvbmVudElucHV0czxUPj4oKTtcbiAgcmVhZG9ubHkgb3V0cHV0cyA9IGlucHV0PENvbXBvbmVudE91dHB1dHM8VD4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgLy8gQ3VycmVudCBjb21wb25lbnQgaW5zdGFuY2UgcmVmZXJlbmNlIG1hbmFnZWQgYnkgdGhpcyBkaXJlY3RpdmUuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dFN1YnNjcmlwdGlvbnMgPSBuZXcgU2V0PE91dHB1dFJlZlN1YnNjcmlwdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBSZWNyZWF0ZSB0aGUgY29tcG9uZW50IHdoZW5ldmVyIHRoZSB0eXBlIGNoYW5nZXMuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmNvbXBvbmVudCgpO1xuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IG5ldyBpbnB1dHMgd2hlbmV2ZXIgdGhlIGBpbnB1dHNgIHNpZ25hbCBjaGFuZ2VzLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dHNWYWx1ZSA9IHRoaXMuaW5wdXRzKCk7XG5cbiAgICAgIGlmIChpbnB1dHNWYWx1ZSAmJiB0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5hcHBseUlucHV0cyhpbnB1dHNWYWx1ZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRW5zdXJlIGNsZWFudXAgaWYgdGhlIGhvc3QgdmlldyBpcyBkZXN0cm95ZWQuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmRlc3Ryb3lDb21wb25lbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgY29tcG9uZW50IGFuZCB3aXJlcyBpbml0aWFsIGlucHV0cy9vdXRwdXRzLlxuICAgKiBAcGFyYW0gY29tcG9uZW50VHlwZSBDb21wb25lbnQgdHlwZSB0byBpbnN0YW50aWF0ZS5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGU6IFR5cGU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG5cbiAgICBjb25zdCBpbnB1dHNWYWx1ZSA9IHRoaXMuaW5wdXRzKCk7XG4gICAgaWYgKGlucHV0c1ZhbHVlKSB7XG4gICAgICB0aGlzLmFwcGx5SW5wdXRzKGlucHV0c1ZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRzVmFsdWUgPSB0aGlzLm91dHB1dHMoKTtcbiAgICBpZiAob3V0cHV0c1ZhbHVlKSB7XG4gICAgICB0aGlzLnN1YnNjcmliZVRvT3V0cHV0cyhvdXRwdXRzVmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlucHV0IHZhbHVlcyB0byB0aGUgY29tcG9uZW50IGluc3RhbmNlIHVzaW5nIGBzZXRJbnB1dGAuXG4gICAqIEBwYXJhbSBpbnB1dHMgSW5wdXQgdmFsdWVzIGtleWVkIGJ5IGlucHV0IG5hbWUuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5SW5wdXRzKGlucHV0czogQ29tcG9uZW50SW5wdXRzPFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikgcmV0dXJuO1xuXG4gICAgT2JqZWN0LmVudHJpZXMoaW5wdXRzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5zZXRJbnB1dChrZXksIHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gb3V0cHV0IHNpZ25hbCBlbWl0dGVycyBhbmQgZm9yd2FyZHMgdmFsdWVzIHRvIGhhbmRsZXJzLlxuICAgKiBAcGFyYW0gb3V0cHV0cyBPdXRwdXQgaGFuZGxlciBtYXAga2V5ZWQgYnkgb3V0cHV0IG5hbWUuXG4gICAqL1xuICBwcml2YXRlIHN1YnNjcmliZVRvT3V0cHV0cyhvdXRwdXRzOiBDb21wb25lbnRPdXRwdXRzPFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikgcmV0dXJuO1xuXG4gICAgLy8gQ2xlYXIgcHJldmlvdXMgc3Vic2NyaXB0aW9ucyBiZWZvcmUgd2lyaW5nIG5ldyBvdXRwdXRzLlxuICAgIHRoaXMuY2xlYXJPdXRwdXRTdWJzY3JpcHRpb25zKCk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgT2JqZWN0LmVudHJpZXMob3V0cHV0cykuZm9yRWFjaCgoW2tleSwgaGFuZGxlcl0pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgaGFuZGxlciAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCBvdXRwdXQgPSBpbnN0YW5jZVtrZXldO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG91dHB1dCBzaWduYWwgZW1pdHRlciBpZiBwcmVzZW50LlxuICAgICAgaWYgKHRoaXMuaXNPdXRwdXRFbWl0dGVyUmVmKG91dHB1dCkpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gb3V0cHV0LnN1YnNjcmliZSgodmFsdWU6IHVua25vd24pID0+XG4gICAgICAgICAgaGFuZGxlcih2YWx1ZSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3V0cHV0U3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIG91dHB1dCBzdWJzY3JpcHRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhck91dHB1dFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXRTdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMub3V0cHV0U3Vic2NyaXB0aW9ucy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBkeW5hbWljIGNvbXBvbmVudCBhbmQgY2xlYW5zIHN1YnNjcmlwdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhck91dHB1dFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFR5cGUgZ3VhcmQgZm9yIEFuZ3VsYXIgc2lnbmFsIG91dHB1dCBlbWl0dGVycy5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIHRlc3QuXG4gICAqL1xuICBwcml2YXRlIGlzT3V0cHV0RW1pdHRlclJlZihcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgKTogdmFsdWUgaXMgT3V0cHV0RW1pdHRlclJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAnc3Vic2NyaWJlJyBpbiB2YWx1ZSAmJlxuICAgICAgdHlwZW9mICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJ3N1YnNjcmliZSddID09PSAnZnVuY3Rpb24nXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Injectable, inject, signal } from '@angular/core';
|
|
2
|
+
import { MODAL_CONFIG } from './schema/modal.config';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Central registry and lifecycle manager for modal instances.
|
|
6
|
+
*
|
|
7
|
+
* This service creates modals, tracks their state, and coordinates
|
|
8
|
+
* open/close/remove behavior across the application.
|
|
9
|
+
*/
|
|
10
|
+
export class ModalService {
|
|
11
|
+
/** Default modal configuration injected via `MODAL_CONFIG`. */
|
|
12
|
+
config = inject(MODAL_CONFIG);
|
|
13
|
+
/** Incrementing counter for modal id generation. */
|
|
14
|
+
id = 0;
|
|
15
|
+
/** Internal store of modals keyed by id. */
|
|
16
|
+
_modals = signal(new Map());
|
|
17
|
+
/** Read-only signal of all registered modals. */
|
|
18
|
+
modals = this._modals.asReadonly();
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new modal instance and registers it.
|
|
21
|
+
* @param options Modal options used to initialize the instance.
|
|
22
|
+
* @returns A ModalRef for controlling the instance.
|
|
23
|
+
*/
|
|
24
|
+
create(options = {}) {
|
|
25
|
+
// Create a new id and build the initial modal state.
|
|
26
|
+
const id = `modal-${++this.id}`;
|
|
27
|
+
const modal = this.buildModal(id, undefined, options);
|
|
28
|
+
// Persist to the internal store.
|
|
29
|
+
this.upsertModal(modal);
|
|
30
|
+
return {
|
|
31
|
+
id,
|
|
32
|
+
open: this.open.bind(this, id),
|
|
33
|
+
close: this.close.bind(this, id),
|
|
34
|
+
remove: this.remove.bind(this, id),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Opens a modal by id.
|
|
39
|
+
* @param id Modal id.
|
|
40
|
+
*/
|
|
41
|
+
open(id) {
|
|
42
|
+
// Set open state to true if needed.
|
|
43
|
+
this.updateModalState(id, true);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Closes a modal by id.
|
|
47
|
+
* @param id Modal id.
|
|
48
|
+
*/
|
|
49
|
+
close(id) {
|
|
50
|
+
const existing = this.getModal(id);
|
|
51
|
+
if (!existing?.isOpen)
|
|
52
|
+
return;
|
|
53
|
+
// Set open state to false and notify callbacks.
|
|
54
|
+
this.updateModalState(id, false);
|
|
55
|
+
existing.onClosed?.();
|
|
56
|
+
console.log('Modal closed:', id);
|
|
57
|
+
// Optionally remove the modal after closing.
|
|
58
|
+
if (existing.removeOnClose) {
|
|
59
|
+
this.remove(id);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Removes a modal from the registry and DOM.
|
|
64
|
+
* Closes the modal first if it is open.
|
|
65
|
+
* @param id Modal id.
|
|
66
|
+
*/
|
|
67
|
+
remove(id) {
|
|
68
|
+
const existing = this.getModal(id);
|
|
69
|
+
if (!existing)
|
|
70
|
+
return;
|
|
71
|
+
// Remove from the internal store.
|
|
72
|
+
this._modals.update((modals) => {
|
|
73
|
+
const next = new Map(modals);
|
|
74
|
+
next.delete(id);
|
|
75
|
+
return next;
|
|
76
|
+
});
|
|
77
|
+
// Fire callbacks for cleanup.
|
|
78
|
+
if (existing.isOpen) {
|
|
79
|
+
existing.onClosed?.();
|
|
80
|
+
}
|
|
81
|
+
existing.onRemoved?.();
|
|
82
|
+
console.log('Modal removed:', id);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Closes all open modals.
|
|
86
|
+
*/
|
|
87
|
+
closeAll() {
|
|
88
|
+
// Use service close to ensure removeOnClose behavior is honored.
|
|
89
|
+
this.modals().forEach((modal) => this.close(modal.id));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Removes all modals from the registry.
|
|
93
|
+
*/
|
|
94
|
+
removeAll() {
|
|
95
|
+
// Use service remove to ensure callbacks are fired.
|
|
96
|
+
this.modals().forEach((modal) => this.remove(modal.id));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Looks up a modal by id.
|
|
100
|
+
* @param id Modal id.
|
|
101
|
+
*/
|
|
102
|
+
getModal(id) {
|
|
103
|
+
return this._modals().get(id);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Updates the open/closed state of a modal if it exists.
|
|
107
|
+
* @param id Modal id.
|
|
108
|
+
* @param isOpen Desired open state.
|
|
109
|
+
*/
|
|
110
|
+
updateModalState(id, isOpen) {
|
|
111
|
+
const existing = this.getModal(id);
|
|
112
|
+
if (!existing || existing.isOpen === isOpen)
|
|
113
|
+
return;
|
|
114
|
+
// Rebuild the modal with the new open state.
|
|
115
|
+
const updated = this.buildModal(id, existing, {}, isOpen);
|
|
116
|
+
this.upsertModal(updated);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Inserts or replaces a modal in the internal store.
|
|
120
|
+
* @param modal Modal to upsert.
|
|
121
|
+
*/
|
|
122
|
+
upsertModal(modal) {
|
|
123
|
+
this._modals.update((modals) => new Map(modals).set(modal.id, modal));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Builds a modal instance by merging defaults, existing state, and options.
|
|
127
|
+
* @param id Modal id.
|
|
128
|
+
* @param existing Existing modal state (if any).
|
|
129
|
+
* @param options New options to apply.
|
|
130
|
+
* @param isOpen Optional override for open state.
|
|
131
|
+
*/
|
|
132
|
+
buildModal(id, existing, options, isOpen) {
|
|
133
|
+
// Resolve initial open state from the override, options, existing state, or config.
|
|
134
|
+
const resolvedIsOpen = isOpen ??
|
|
135
|
+
options.startOpen ??
|
|
136
|
+
existing?.startOpen ??
|
|
137
|
+
this.config.startOpen;
|
|
138
|
+
// Merge config defaults, existing values, and new options.
|
|
139
|
+
return {
|
|
140
|
+
...this.config,
|
|
141
|
+
...existing,
|
|
142
|
+
...options,
|
|
143
|
+
id,
|
|
144
|
+
isOpen: resolvedIsOpen,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
148
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ModalService, decorators: [{
|
|
151
|
+
type: Injectable,
|
|
152
|
+
args: [{
|
|
153
|
+
providedIn: 'root',
|
|
154
|
+
}]
|
|
155
|
+
}] });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVnZWwtYW5ndWxhci1leHRlbnNpb25zL3NyYy9saWIvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLHVCQUF1QixDQUFDOztBQUdsRTs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLCtEQUErRDtJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFjLFlBQVksQ0FBQyxDQUFDO0lBRTVELG9EQUFvRDtJQUM1QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsNENBQTRDO0lBQzNCLE9BQU8sR0FBRyxNQUFNLENBQXFCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVqRSxpREFBaUQ7SUFDeEMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFNUM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBSSxVQUEyQixFQUFFO1FBQ3JDLHFEQUFxRDtRQUNyRCxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixPQUFPO1lBQ0wsRUFBRTtZQUNGLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ2hCLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxFQUFVO1FBQ2Isb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxFQUFVO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU07WUFBRSxPQUFPO1FBRTlCLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLDZDQUE2QztRQUM3QyxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxFQUFVO1FBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFdEIsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsOEJBQThCO1FBQzlCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixpRUFBaUU7UUFDakUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1Asb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFFBQVEsQ0FBQyxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLEVBQVUsRUFBRSxNQUFlO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLE1BQU07WUFBRSxPQUFPO1FBRXBELDZDQUE2QztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVcsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxVQUFVLENBQ2hCLEVBQVUsRUFDVixRQUEyQixFQUMzQixPQUFxQixFQUNyQixNQUFnQjtRQUVoQixvRkFBb0Y7UUFDcEYsTUFBTSxjQUFjLEdBQ2xCLE1BQU07WUFDTixPQUFPLENBQUMsU0FBUztZQUNqQixRQUFRLEVBQUUsU0FBUztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUV4QiwyREFBMkQ7UUFDM0QsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDZCxHQUFHLFFBQVE7WUFDWCxHQUFHLE9BQU87WUFDVixFQUFFO1lBQ0YsTUFBTSxFQUFFLGNBQWM7U0FDdkIsQ0FBQztJQUNKLENBQUM7d0dBOUpVLFlBQVk7NEdBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9zY2hlbWEvbW9kYWwtcmVmJztcbmltcG9ydCB7IE1PREFMX0NPTkZJRywgTW9kYWxDb25maWcgfSBmcm9tICcuL3NjaGVtYS9tb2RhbC5jb25maWcnO1xuaW1wb3J0IHsgTW9kYWwsIE1vZGFsT3B0aW9ucyB9IGZyb20gJy4vc2NoZW1hL21vZGFsLm1vZGVsJztcblxuLyoqXG4gKiBDZW50cmFsIHJlZ2lzdHJ5IGFuZCBsaWZlY3ljbGUgbWFuYWdlciBmb3IgbW9kYWwgaW5zdGFuY2VzLlxuICpcbiAqIFRoaXMgc2VydmljZSBjcmVhdGVzIG1vZGFscywgdHJhY2tzIHRoZWlyIHN0YXRlLCBhbmQgY29vcmRpbmF0ZXNcbiAqIG9wZW4vY2xvc2UvcmVtb3ZlIGJlaGF2aW9yIGFjcm9zcyB0aGUgYXBwbGljYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuICAvKiogRGVmYXVsdCBtb2RhbCBjb25maWd1cmF0aW9uIGluamVjdGVkIHZpYSBgTU9EQUxfQ09ORklHYC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3Q8TW9kYWxDb25maWc+KE1PREFMX0NPTkZJRyk7XG5cbiAgLyoqIEluY3JlbWVudGluZyBjb3VudGVyIGZvciBtb2RhbCBpZCBnZW5lcmF0aW9uLiAqL1xuICBwcml2YXRlIGlkID0gMDtcbiAgLyoqIEludGVybmFsIHN0b3JlIG9mIG1vZGFscyBrZXllZCBieSBpZC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfbW9kYWxzID0gc2lnbmFsPE1hcDxzdHJpbmcsIE1vZGFsPj4obmV3IE1hcCgpKTtcblxuICAvKiogUmVhZC1vbmx5IHNpZ25hbCBvZiBhbGwgcmVnaXN0ZXJlZCBtb2RhbHMuICovXG4gIHJlYWRvbmx5IG1vZGFscyA9IHRoaXMuX21vZGFscy5hc1JlYWRvbmx5KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kYWwgaW5zdGFuY2UgYW5kIHJlZ2lzdGVycyBpdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgTW9kYWwgb3B0aW9ucyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyBBIE1vZGFsUmVmIGZvciBjb250cm9sbGluZyB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBjcmVhdGU8VD4ob3B0aW9uczogTW9kYWxPcHRpb25zPFQ+ID0ge30pOiBNb2RhbFJlZiB7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IGlkIGFuZCBidWlsZCB0aGUgaW5pdGlhbCBtb2RhbCBzdGF0ZS5cbiAgICBjb25zdCBpZCA9IGBtb2RhbC0keysrdGhpcy5pZH1gO1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5idWlsZE1vZGFsKGlkLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICAgIC8vIFBlcnNpc3QgdG8gdGhlIGludGVybmFsIHN0b3JlLlxuICAgIHRoaXMudXBzZXJ0TW9kYWwobW9kYWwpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkLFxuICAgICAgb3BlbjogdGhpcy5vcGVuLmJpbmQodGhpcywgaWQpLFxuICAgICAgY2xvc2U6IHRoaXMuY2xvc2UuYmluZCh0aGlzLCBpZCksXG4gICAgICByZW1vdmU6IHRoaXMucmVtb3ZlLmJpbmQodGhpcywgaWQpLFxuICAgIH0gc2F0aXNmaWVzIE1vZGFsUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgbW9kYWwgYnkgaWQuXG4gICAqIEBwYXJhbSBpZCBNb2RhbCBpZC5cbiAgICovXG4gIG9wZW4oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIFNldCBvcGVuIHN0YXRlIHRvIHRydWUgaWYgbmVlZGVkLlxuICAgIHRoaXMudXBkYXRlTW9kYWxTdGF0ZShpZCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGEgbW9kYWwgYnkgaWQuXG4gICAqIEBwYXJhbSBpZCBNb2RhbCBpZC5cbiAgICovXG4gIGNsb3NlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZ2V0TW9kYWwoaWQpO1xuICAgIGlmICghZXhpc3Rpbmc/LmlzT3BlbikgcmV0dXJuO1xuXG4gICAgLy8gU2V0IG9wZW4gc3RhdGUgdG8gZmFsc2UgYW5kIG5vdGlmeSBjYWxsYmFja3MuXG4gICAgdGhpcy51cGRhdGVNb2RhbFN0YXRlKGlkLCBmYWxzZSk7XG4gICAgZXhpc3Rpbmcub25DbG9zZWQ/LigpO1xuICAgIGNvbnNvbGUubG9nKCdNb2RhbCBjbG9zZWQ6JywgaWQpO1xuXG4gICAgLy8gT3B0aW9uYWxseSByZW1vdmUgdGhlIG1vZGFsIGFmdGVyIGNsb3NpbmcuXG4gICAgaWYgKGV4aXN0aW5nLnJlbW92ZU9uQ2xvc2UpIHtcbiAgICAgIHRoaXMucmVtb3ZlKGlkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIG1vZGFsIGZyb20gdGhlIHJlZ2lzdHJ5IGFuZCBET00uXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgZmlyc3QgaWYgaXQgaXMgb3Blbi5cbiAgICogQHBhcmFtIGlkIE1vZGFsIGlkLlxuICAgKi9cbiAgcmVtb3ZlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZ2V0TW9kYWwoaWQpO1xuICAgIGlmICghZXhpc3RpbmcpIHJldHVybjtcblxuICAgIC8vIFJlbW92ZSBmcm9tIHRoZSBpbnRlcm5hbCBzdG9yZS5cbiAgICB0aGlzLl9tb2RhbHMudXBkYXRlKChtb2RhbHMpID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgTWFwKG1vZGFscyk7XG4gICAgICBuZXh0LmRlbGV0ZShpZCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcblxuICAgIC8vIEZpcmUgY2FsbGJhY2tzIGZvciBjbGVhbnVwLlxuICAgIGlmIChleGlzdGluZy5pc09wZW4pIHtcbiAgICAgIGV4aXN0aW5nLm9uQ2xvc2VkPy4oKTtcbiAgICB9XG4gICAgZXhpc3Rpbmcub25SZW1vdmVkPy4oKTtcbiAgICBjb25zb2xlLmxvZygnTW9kYWwgcmVtb3ZlZDonLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFsbCBvcGVuIG1vZGFscy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIC8vIFVzZSBzZXJ2aWNlIGNsb3NlIHRvIGVuc3VyZSByZW1vdmVPbkNsb3NlIGJlaGF2aW9yIGlzIGhvbm9yZWQuXG4gICAgdGhpcy5tb2RhbHMoKS5mb3JFYWNoKChtb2RhbCkgPT4gdGhpcy5jbG9zZShtb2RhbC5pZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYWxsIG1vZGFscyBmcm9tIHRoZSByZWdpc3RyeS5cbiAgICovXG4gIHJlbW92ZUFsbCgpOiB2b2lkIHtcbiAgICAvLyBVc2Ugc2VydmljZSByZW1vdmUgdG8gZW5zdXJlIGNhbGxiYWNrcyBhcmUgZmlyZWQuXG4gICAgdGhpcy5tb2RhbHMoKS5mb3JFYWNoKChtb2RhbCkgPT4gdGhpcy5yZW1vdmUobW9kYWwuaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCBhIG1vZGFsIGJ5IGlkLlxuICAgKiBAcGFyYW0gaWQgTW9kYWwgaWQuXG4gICAqL1xuICBwcml2YXRlIGdldE1vZGFsKGlkOiBzdHJpbmcpOiBNb2RhbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGFscygpLmdldChpZCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgb3Blbi9jbG9zZWQgc3RhdGUgb2YgYSBtb2RhbCBpZiBpdCBleGlzdHMuXG4gICAqIEBwYXJhbSBpZCBNb2RhbCBpZC5cbiAgICogQHBhcmFtIGlzT3BlbiBEZXNpcmVkIG9wZW4gc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU1vZGFsU3RhdGUoaWQ6IHN0cmluZywgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmdldE1vZGFsKGlkKTtcbiAgICBpZiAoIWV4aXN0aW5nIHx8IGV4aXN0aW5nLmlzT3BlbiA9PT0gaXNPcGVuKSByZXR1cm47XG5cbiAgICAvLyBSZWJ1aWxkIHRoZSBtb2RhbCB3aXRoIHRoZSBuZXcgb3BlbiBzdGF0ZS5cbiAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5idWlsZE1vZGFsKGlkLCBleGlzdGluZywge30sIGlzT3Blbik7XG4gICAgdGhpcy51cHNlcnRNb2RhbCh1cGRhdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnRzIG9yIHJlcGxhY2VzIGEgbW9kYWwgaW4gdGhlIGludGVybmFsIHN0b3JlLlxuICAgKiBAcGFyYW0gbW9kYWwgTW9kYWwgdG8gdXBzZXJ0LlxuICAgKi9cbiAgcHJpdmF0ZSB1cHNlcnRNb2RhbChtb2RhbDogTW9kYWwpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbHMudXBkYXRlKChtb2RhbHMpID0+IG5ldyBNYXAobW9kYWxzKS5zZXQobW9kYWwuaWQsIG1vZGFsKSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGEgbW9kYWwgaW5zdGFuY2UgYnkgbWVyZ2luZyBkZWZhdWx0cywgZXhpc3Rpbmcgc3RhdGUsIGFuZCBvcHRpb25zLlxuICAgKiBAcGFyYW0gaWQgTW9kYWwgaWQuXG4gICAqIEBwYXJhbSBleGlzdGluZyBFeGlzdGluZyBtb2RhbCBzdGF0ZSAoaWYgYW55KS5cbiAgICogQHBhcmFtIG9wdGlvbnMgTmV3IG9wdGlvbnMgdG8gYXBwbHkuXG4gICAqIEBwYXJhbSBpc09wZW4gT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIG9wZW4gc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTW9kYWwoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBleGlzdGluZzogTW9kYWwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogTW9kYWxPcHRpb25zLFxuICAgIGlzT3Blbj86IGJvb2xlYW4sXG4gICk6IE1vZGFsIHtcbiAgICAvLyBSZXNvbHZlIGluaXRpYWwgb3BlbiBzdGF0ZSBmcm9tIHRoZSBvdmVycmlkZSwgb3B0aW9ucywgZXhpc3Rpbmcgc3RhdGUsIG9yIGNvbmZpZy5cbiAgICBjb25zdCByZXNvbHZlZElzT3BlbiA9XG4gICAgICBpc09wZW4gPz9cbiAgICAgIG9wdGlvbnMuc3RhcnRPcGVuID8/XG4gICAgICBleGlzdGluZz8uc3RhcnRPcGVuID8/XG4gICAgICB0aGlzLmNvbmZpZy5zdGFydE9wZW47XG5cbiAgICAvLyBNZXJnZSBjb25maWcgZGVmYXVsdHMsIGV4aXN0aW5nIHZhbHVlcywgYW5kIG5ldyBvcHRpb25zLlxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbmZpZyxcbiAgICAgIC4uLmV4aXN0aW5nLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlkLFxuICAgICAgaXNPcGVuOiByZXNvbHZlZElzT3BlbixcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { makeEnvironmentProviders, provideAppInitializer, } from '@angular/core';
|
|
2
|
+
import { bootstrapGlobalComponent } from '../utils/bootstrap-global-component';
|
|
3
|
+
import { ModalHostComponent } from './components/modal-host/modal-host.component';
|
|
4
|
+
import { DEFAULT_MODAL_CONFIG, MODAL_CONFIG, } from './schema/modal.config';
|
|
5
|
+
/**
|
|
6
|
+
* Provides modal configuration defaults and bootstraps the global modal host.
|
|
7
|
+
*
|
|
8
|
+
* @param config Optional config overrides applied on top of defaults.
|
|
9
|
+
* @returns EnvironmentProviders to register in application providers.
|
|
10
|
+
*/
|
|
11
|
+
export function provideModal(config = {}) {
|
|
12
|
+
return makeEnvironmentProviders([
|
|
13
|
+
{
|
|
14
|
+
provide: MODAL_CONFIG,
|
|
15
|
+
useFactory: () => ({
|
|
16
|
+
...DEFAULT_MODAL_CONFIG,
|
|
17
|
+
...(config ?? {}),
|
|
18
|
+
}),
|
|
19
|
+
},
|
|
20
|
+
provideAppInitializer(() => {
|
|
21
|
+
bootstrapGlobalComponent(ModalHostComponent, { reuseIfExists: true });
|
|
22
|
+
}),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVnZWwtYW5ndWxhci1leHRlbnNpb25zL3NyYy9saWIvbW9kYWwvcHJvdmlkZS1tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksR0FFYixNQUFNLHVCQUF1QixDQUFDO0FBRS9COzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsU0FBK0IsRUFBRTtJQUVqQyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ2pCLEdBQUcsb0JBQW9CO2dCQUN2QixHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQzthQUNsQixDQUFDO1NBQ0g7UUFDRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUM7S0FDSCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgcHJvdmlkZUFwcEluaXRpYWxpemVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJvb3RzdHJhcEdsb2JhbENvbXBvbmVudCB9IGZyb20gJy4uL3V0aWxzL2Jvb3RzdHJhcC1nbG9iYWwtY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsSG9zdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1ob3N0L21vZGFsLWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERFRkFVTFRfTU9EQUxfQ09ORklHLFxuICBNT0RBTF9DT05GSUcsXG4gIE1vZGFsQ29uZmlnLFxufSBmcm9tICcuL3NjaGVtYS9tb2RhbC5jb25maWcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIG1vZGFsIGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgYW5kIGJvb3RzdHJhcHMgdGhlIGdsb2JhbCBtb2RhbCBob3N0LlxuICpcbiAqIEBwYXJhbSBjb25maWcgT3B0aW9uYWwgY29uZmlnIG92ZXJyaWRlcyBhcHBsaWVkIG9uIHRvcCBvZiBkZWZhdWx0cy5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHRvIHJlZ2lzdGVyIGluIGFwcGxpY2F0aW9uIHByb3ZpZGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVNb2RhbChcbiAgY29uZmlnOiBQYXJ0aWFsPE1vZGFsQ29uZmlnPiA9IHt9LFxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNT0RBTF9DT05GSUcsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAuLi5ERUZBVUxUX01PREFMX0NPTkZJRyxcbiAgICAgICAgLi4uKGNvbmZpZyA/PyB7fSksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHByb3ZpZGVBcHBJbml0aWFsaXplcigoKSA9PiB7XG4gICAgICBib290c3RyYXBHbG9iYWxDb21wb25lbnQoTW9kYWxIb3N0Q29tcG9uZW50LCB7IHJldXNlSWZFeGlzdHM6IHRydWUgfSk7XG4gICAgfSksXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9tb2RhbC9zY2hlbWEvbW9kYWwtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1vZGFsUmVmIHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIG1vZGFsIGluc3RhbmNlLiAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogT3BlbnMgdGhlIG1vZGFsIGluc3RhbmNlLiAqL1xuICBvcGVuOiAoKSA9PiB2b2lkO1xuICAvKiogQ2xvc2VzIHRoZSBtb2RhbCBpbnN0YW5jZS4gKi9cbiAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW1vdmVzIHRoZSBtb2RhbCBpbnN0YW5jZSBmcm9tIHRoZSBET00uICovXG4gIHJlbW92ZTogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/** Injection token for modal configuration defaults. */
|
|
3
|
+
export const MODAL_CONFIG = new InjectionToken('ModalConfig');
|
|
4
|
+
/** Default modal configuration. */
|
|
5
|
+
export const DEFAULT_MODAL_CONFIG = {
|
|
6
|
+
size: 'md',
|
|
7
|
+
actionsPosition: 'static',
|
|
8
|
+
prevent: false,
|
|
9
|
+
closable: true,
|
|
10
|
+
alertDialog: 'dialog',
|
|
11
|
+
lazy: false,
|
|
12
|
+
startOpen: true,
|
|
13
|
+
removeOnClose: true,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9tb2RhbC9zY2hlbWEvbW9kYWwuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUE4Qi9DLHdEQUF3RDtBQUN4RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFFM0UsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUEwQjtJQUN6RCxJQUFJLEVBQUUsSUFBSTtJQUNWLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxXQUFXLEVBQUUsUUFBUTtJQUNyQixJQUFJLEVBQUUsS0FBSztJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLElBQUk7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNb2RhbEFjdGlvbnNQb3NpdGlvbixcbiAgTW9kYWxBbGVydERpYWxvZ1JvbGUsXG4gIE1vZGFsU2l6ZSxcbn0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiB1c2VkIGJ5IHRoZSBtb2RhbCBzZXJ2aWNlIHdoZW4gY3JlYXRpbmcgbW9kYWxzLlxuICogSW5kaXZpZHVhbCBtb2RhbCBvcHRpb25zIGNhbiBvdmVycmlkZSBhbnkgb2YgdGhlc2UgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsQ29uZmlnIHtcbiAgLyoqIFNpemUgb2YgdGhlIG1vZGFsIGRpYWxvZy4gKi9cbiAgc2l6ZTogTW9kYWxTaXplO1xuICAvKiogUG9zaXRpb25pbmcgYmVoYXZpb3IgZm9yIHRoZSBhY3Rpb25zIGFyZWEuICovXG4gIGFjdGlvbnNQb3NpdGlvbjogTW9kYWxBY3Rpb25zUG9zaXRpb247XG4gIC8qKiBQcmV2ZW50IGNsb3Npbmcgd2hlbiBjbGlja2luZyB0aGUgb3ZlcmxheS4gKi9cbiAgcHJldmVudDogYm9vbGVhbjtcbiAgLyoqIFNob3cgb3IgaGlkZSB0aGUgY2xvc2UgW1hdIGJ1dHRvbi4gKi9cbiAgY2xvc2FibGU6IGJvb2xlYW47XG4gIC8qKiBBUklBIHJvbGUgZm9yIHRoZSBtb2RhbCBlbGVtZW50LiAqL1xuICBhbGVydERpYWxvZzogTW9kYWxBbGVydERpYWxvZ1JvbGU7XG4gIC8qKiBJZiB0cnVlLCBjb250ZW50IGlzIG9ubHkgcmVuZGVyZWQgd2hpbGUgb3Blbi4gKi9cbiAgbGF6eTogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgYSBtb2RhbCBzdGFydHMgb3BlbiAqL1xuICBzdGFydE9wZW46IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIGEgbW9kYWwgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBET00gb24gY2xvc2UgKi9cbiAgcmVtb3ZlT25DbG9zZTogYm9vbGVhbjtcbn1cblxuLyoqIEluamVjdGlvbiB0b2tlbiBmb3IgbW9kYWwgY29uZmlndXJhdGlvbiBkZWZhdWx0cy4gKi9cbmV4cG9ydCBjb25zdCBNT0RBTF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TW9kYWxDb25maWc+KCdNb2RhbENvbmZpZycpO1xuXG4vKiogRGVmYXVsdCBtb2RhbCBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9EQUxfQ09ORklHOiBSZXF1aXJlZDxNb2RhbENvbmZpZz4gPSB7XG4gIHNpemU6ICdtZCcsXG4gIGFjdGlvbnNQb3NpdGlvbjogJ3N0YXRpYycsXG4gIHByZXZlbnQ6IGZhbHNlLFxuICBjbG9zYWJsZTogdHJ1ZSxcbiAgYWxlcnREaWFsb2c6ICdkaWFsb2cnLFxuICBsYXp5OiBmYWxzZSxcbiAgc3RhcnRPcGVuOiB0cnVlLFxuICByZW1vdmVPbkNsb3NlOiB0cnVlLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RlZ2VsLWFuZ3VsYXItZXh0ZW5zaW9ucy9zcmMvbGliL21vZGFsL3NjaGVtYS9tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudElucHV0cyxcbiAgQ29tcG9uZW50T3V0cHV0cyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvYW5ndWxhci1jb21wb25lbnQtaW8nO1xuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuL21vZGFsLmNvbmZpZyc7XG5pbXBvcnQgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4vbW9kYWwudHlwZXMnO1xuXG4vKiogQ29tcG9uZW50LWJhc2VkIG1vZGFsIGJvZHkgd2l0aCB0eXBlZCBpbnB1dHMvb3V0cHV0cy4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsQ29tcG9uZW50Qm9keTxUQ29tcG9uZW50ID0gdW5rbm93bj4gPSB7XG4gIGNvbXBvbmVudDogVHlwZTxUQ29tcG9uZW50PjtcbiAgaW5wdXRzOiBDb21wb25lbnRJbnB1dHM8VENvbXBvbmVudD47XG4gIG91dHB1dHM/OiBDb21wb25lbnRPdXRwdXRzPFRDb21wb25lbnQ+O1xufTtcblxuLyoqIFRlbXBsYXRlLWJhc2VkIG1vZGFsIGJvZHkgd2l0aCBhbiBvcHRpb25hbCBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxUZW1wbGF0ZUJvZHk8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRDb250ZXh0PjtcbiAgY29udGV4dD86IFRDb250ZXh0O1xufTtcblxuLyoqIFVuaW9uIG9mIHN1cHBvcnRlZCBtb2RhbCBib2R5IHR5cGVzLiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxCb2R5PFQgPSB1bmtub3duPiA9XG4gIHwgc3RyaW5nXG4gIHwgTW9kYWxUZW1wbGF0ZUJvZHk8VD5cbiAgfCBNb2RhbENvbXBvbmVudEJvZHk8VD47XG5cbi8qKiBQdWJsaWMgb3B0aW9ucyB1c2VkIHdoZW4gY3JlYXRpbmcgYSBtb2RhbC4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsT3B0aW9uczxUID0gdW5rbm93bj4gPSBQYXJ0aWFsPE1vZGFsQ29uZmlnPiAmIHtcbiAgc2VsZWN0b3I/OiBzdHJpbmc7XG4gIHJlZmVyZW5jZUVsPzogSFRNTEVsZW1lbnQ7XG4gIGhlYWRlcj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBib2R5PzogTW9kYWxCb2R5PFQ+O1xuICBidXR0b25zPzogTW9kYWxCdXR0b25bXTtcbiAgLyoqIENhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCAodXNlciBvciBwcm9ncmFtbWF0aWMpLiAqL1xuICBvbkNsb3NlZD86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsYmFjayBmaXJlZCB3aGVuIHRoZSBtb2RhbCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS4gKi9cbiAgb25SZW1vdmVkPzogKCkgPT4gdm9pZDtcbn07XG5cbi8qKiBSdW50aW1lIG1vZGFsIHN0YXRlIHN0b3JlZCBieSB0aGUgc2VydmljZS4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsID0gUmVxdWlyZWQ8TW9kYWxDb25maWc+ICZcbiAgT21pdDxNb2RhbE9wdGlvbnM8dW5rbm93bj4sIGtleW9mIE1vZGFsQ29uZmlnPiAmIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgfTtcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Pure domain/UI types for modal components. */
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RlZ2VsLWFuZ3VsYXItZXh0ZW5zaW9ucy9zcmMvbGliL21vZGFsL3NjaGVtYS9tb2RhbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHVyZSBkb21haW4vVUkgdHlwZXMgZm9yIG1vZGFsIGNvbXBvbmVudHMuICovXG5cbi8qKiBTdXBwb3J0ZWQgbW9kYWwgc2l6ZXMuICovXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnbGcnIHwgJ21kJyB8ICdzbScgfCAneHMnO1xuLyoqIFBvc2l0aW9uaW5nIGJlaGF2aW9yIGZvciB0aGUgYWN0aW9ucyBzbG90LiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxBY3Rpb25zUG9zaXRpb24gPSAnc3RpY2t5JyB8ICdzdGF0aWMnO1xuLyoqIEFSSUEgcm9sZSB1c2VkIGJ5IHRoZSBtb2RhbCBmb3IgYWNjZXNzaWJpbGl0eS4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsQWxlcnREaWFsb2dSb2xlID0gJ2RpYWxvZycgfCAnYWxlcnRkaWFsb2cnO1xuXG4vKiogRGVzY3JpcHRvciBmb3IgYSBidXR0b24gcmVuZGVyZWQgaW4gdGhlIG1vZGFsIGFjdGlvbnMgYXJlYS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxCdXR0b24ge1xuICAvKiogQnV0dG9uIGxhYmVsIHRleHQuICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqIFZpc3VhbCB2YXJpYW50IGZvciB0aGUgYnV0dG9uLiAqL1xuICB2YXJpYW50PzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnZGFuZ2VyJztcbiAgLyoqIFNpemUgb2YgdGhlIGJ1dHRvbi4gKi9cbiAgc2l6ZT86ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZyc7XG4gIC8qKiBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGlzYWJsZWQuICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIElmIHRydWUsIGNsaWNraW5nIHRyaWdnZXJzIG1vZGFsIGRpc21pc3NhbC4gKi9cbiAgZGlzbWlzcz86IGJvb2xlYW47XG4gIC8qKiBPcHRpb25hbCBjbGljayBoYW5kbGVyIChzeW5jIG9yIGFzeW5jKS4gKi9cbiAgb25DbGljaz86ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuIl19
|
|
@@ -2,6 +2,12 @@ import { makeEnvironmentProviders, provideAppInitializer, } from '@angular/core'
|
|
|
2
2
|
import { bootstrapGlobalComponent } from '../utils/bootstrap-global-component';
|
|
3
3
|
import { ToastComponent } from './toast.component';
|
|
4
4
|
import { DEFAULT_TOAST_CONFIG, TOAST_CONFIG, } from './toast.config';
|
|
5
|
+
/**
|
|
6
|
+
* Provides toast configuration defaults and bootstraps the global toast host.
|
|
7
|
+
*
|
|
8
|
+
* @param config Optional config overrides applied on top of defaults.
|
|
9
|
+
* @returns EnvironmentProviders to register in application providers.
|
|
10
|
+
*/
|
|
5
11
|
export function provideToast(config = {}) {
|
|
6
12
|
return makeEnvironmentProviders([
|
|
7
13
|
{
|
|
@@ -16,4 +22,4 @@ export function provideToast(config = {}) {
|
|
|
16
22
|
}),
|
|
17
23
|
]);
|
|
18
24
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS10b2FzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVnZWwtYW5ndWxhci1leHRlbnNpb25zL3NyYy9saWIvdG9hc3QvcHJvdmlkZS10b2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixZQUFZLEdBRWIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4Qjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLFNBQStCLEVBQUU7SUFFakMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixHQUFHLG9CQUFvQjtnQkFDdkIsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7YUFDbEIsQ0FBQztTQUNIO1FBQ0QscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLHdCQUF3QixDQUFDLGNBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICBwcm92aWRlQXBwSW5pdGlhbGl6ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYm9vdHN0cmFwR2xvYmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbHMvYm9vdHN0cmFwLWdsb2JhbC1jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBERUZBVUxUX1RPQVNUX0NPTkZJRyxcbiAgVE9BU1RfQ09ORklHLFxuICBUb2FzdENvbmZpZyxcbn0gZnJvbSAnLi90b2FzdC5jb25maWcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHRvYXN0IGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgYW5kIGJvb3RzdHJhcHMgdGhlIGdsb2JhbCB0b2FzdCBob3N0LlxuICpcbiAqIEBwYXJhbSBjb25maWcgT3B0aW9uYWwgY29uZmlnIG92ZXJyaWRlcyBhcHBsaWVkIG9uIHRvcCBvZiBkZWZhdWx0cy5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHRvIHJlZ2lzdGVyIGluIGFwcGxpY2F0aW9uIHByb3ZpZGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUb2FzdChcbiAgY29uZmlnOiBQYXJ0aWFsPFRvYXN0Q29uZmlnPiA9IHt9LFxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUT0FTVF9DT05GSUcsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAuLi5ERUZBVUxUX1RPQVNUX0NPTkZJRyxcbiAgICAgICAgLi4uKGNvbmZpZyA/PyB7fSksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHByb3ZpZGVBcHBJbml0aWFsaXplcigoKSA9PiB7XG4gICAgICBib290c3RyYXBHbG9iYWxDb21wb25lbnQoVG9hc3RDb21wb25lbnQsIHsgcmV1c2VJZkV4aXN0czogdHJ1ZSB9KTtcbiAgICB9KSxcbiAgXSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb21wb25lbnQtaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RlZ2VsLWFuZ3VsYXItZXh0ZW5zaW9ucy9zcmMvbGliL3V0aWxzL2FuZ3VsYXItY29tcG9uZW50LWlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFNpZ25hbCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiArLS0tLS0tLS0rICovXG4vKiB8IElOUFVUUyB8ICovXG4vKiArLS0tLS0tLS0rICovXG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGlubmVyIHZhbHVlIHR5cGUgZnJvbSBhbiBJbnB1dFNpZ25hbC5cbiAqIEV4YW1wbGU6IElucHV0U2lnbmFsPHN0cmluZz4gLT4gc3RyaW5nXG4gKi9cbnR5cGUgRXh0cmFjdElucHV0VmFsdWU8VD4gPSBUIGV4dGVuZHMgSW5wdXRTaWduYWw8aW5mZXIgVj4gPyBWIDogbmV2ZXI7XG5cbi8qKlxuICogR2V0cyBhbGwgcHJvcGVydHkga2V5cyB0aGF0IGFyZSByZXF1aXJlZCBpbnB1dCBzaWduYWxzIChgaW5wdXQucmVxdWlyZWQ8VD4oKWApLlxuICogVGhlc2UgYXJlIElucHV0U2lnbmFscyB3aGVyZSBgdW5kZWZpbmVkYCBpcyBOT1QgcGFydCBvZiB0aGUgdmFsdWUgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWlyZWRJbnB1dEtleXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgSW5wdXRTaWduYWw8aW5mZXIgVj5cbiAgICA/IHVuZGVmaW5lZCBleHRlbmRzIFZcbiAgICAgID8gbmV2ZXJcbiAgICAgIDogS1xuICAgIDogbmV2ZXI7XG59W2tleW9mIFRdO1xuXG4vKipcbiAqIEdldHMgYWxsIHByb3BlcnR5IGtleXMgdGhhdCBhcmUgb3B0aW9uYWwgaW5wdXQgc2lnbmFscyAoYGlucHV0PFQgfCB1bmRlZmluZWQ+KClgKS5cbiAqIFRoZXNlIGFyZSBJbnB1dFNpZ25hbHMgd2hlcmUgYHVuZGVmaW5lZGAgSVMgcGFydCBvZiB0aGUgdmFsdWUgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgT3B0aW9uYWxJbnB1dEtleXM8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgSW5wdXRTaWduYWw8aW5mZXIgVj5cbiAgICA/IHVuZGVmaW5lZCBleHRlbmRzIFZcbiAgICAgID8gS1xuICAgICAgOiBuZXZlclxuICAgIDogbmV2ZXI7XG59W2tleW9mIFRdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSB0eXBlIHJlcHJlc2VudGluZyB0aGUgaW5wdXQgdmFsdWVzIGZvciBhbiBBbmd1bGFyIGNvbXBvbmVudC5cbiAqIC0gUmVxdWlyZWQgaW5wdXRzIChgaW5wdXQucmVxdWlyZWQ8VD4oKWApIGJlY29tZSByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gKiAtIE9wdGlvbmFsIGlucHV0cyAoYGlucHV0PFQgfCB1bmRlZmluZWQ+KClgKSBiZWNvbWUgb3B0aW9uYWwgcHJvcGVydGllc1xuICogLSBOb24taW5wdXQgcHJvcGVydGllcyBhcmUgZXhjbHVkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICogICBhZ2UgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG4gKiB9XG4gKlxuICogdHlwZSBJbnB1dHMgPSBDb21wb25lbnRJbnB1dHM8TXlDb21wb25lbnQ+O1xuICogLy8geyBuYW1lOiBzdHJpbmc7IGFnZT86IG51bWJlciB8IHVuZGVmaW5lZCB9XG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudElucHV0czxUPiA9IHtcbiAgW0sgaW4gUmVxdWlyZWRJbnB1dEtleXM8VD5dOiBFeHRyYWN0SW5wdXRWYWx1ZTxUW0tdPjtcbn0gJiB7XG4gIFtLIGluIE9wdGlvbmFsSW5wdXRLZXlzPFQ+XT86IEV4dHJhY3RJbnB1dFZhbHVlPFRbS10+O1xufTtcblxuLyogKy0tLS0tLS0tLSsgKi9cbi8qIHwgT1VUUFVUUyB8ICovXG4vKiArLS0tLS0tLS0tKyAqL1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBpbm5lciB2YWx1ZSB0eXBlIGZyb20gYW4gT3V0cHV0RW1pdHRlclJlZi5cbiAqIEV4YW1wbGU6IE91dHB1dEVtaXR0ZXJSZWY8c3RyaW5nPiAtPiBzdHJpbmdcbiAqL1xudHlwZSBFeHRyYWN0T3V0cHV0VmFsdWU8VD4gPSBUIGV4dGVuZHMgT3V0cHV0RW1pdHRlclJlZjxpbmZlciBWPiA/IFYgOiBuZXZlcjtcblxuLyoqXG4gKiBHZXRzIGFsbCBwcm9wZXJ0eSBrZXlzIHRoYXQgYXJlIG91dHB1dCBzaWduYWxzIChgb3V0cHV0PFQ+KClgKS5cbiAqL1xudHlwZSBPdXRwdXRLZXlzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIE91dHB1dEVtaXR0ZXJSZWY8dW5rbm93bj4gPyBLIDogbmV2ZXI7XG59W2tleW9mIFRdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSB0eXBlIHJlcHJlc2VudGluZyB0aGUgb3V0cHV0IGV2ZW50IGhhbmRsZXJzIGZvciBhbiBBbmd1bGFyIGNvbXBvbmVudC5cbiAqIENvbnZlcnRzIG91dHB1dCBzaWduYWxzIGludG8gY2FsbGJhY2sgZnVuY3Rpb25zIHRoYXQgcmVjZWl2ZSB0aGUgZW1pdHRlZCB2YWx1ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcbiAqICAgdmFsdWVDaGFuZ2VkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAqICAgbm90QW5PdXRwdXQgPSAncmVndWxhciBwcm9wZXJ0eSc7XG4gKiB9XG4gKlxuICogdHlwZSBPdXRwdXRzID0gQ29tcG9uZW50T3V0cHV0czxNeUNvbXBvbmVudD47XG4gKiAvLyB7IGNsb3NlZD86ICgpID0+IHZvaWQ7IHZhbHVlQ2hhbmdlZD86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkIH1cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50T3V0cHV0czxUPiA9IHtcbiAgW0sgaW4gT3V0cHV0S2V5czxUPl0/OiAodmFsdWU6IEV4dHJhY3RPdXRwdXRWYWx1ZTxUW0tdPikgPT4gdm9pZDtcbn07XG4iXX0=
|