@agnos-ui/angular-headless 0.6.0 → 0.7.0
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/fesm2022/agnos-ui-angular-headless.mjs +66 -48
- package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
- package/package.json +5 -5
- package/slot.directive.d.ts +3 -3
- package/types.d.ts +13 -5
- package/utils/coercion.d.ts +2 -2
- package/utils/directive.d.ts +4 -4
- package/utils/widget.d.ts +1 -1
- package/esm2022/agnos-ui-angular-headless.mjs +0 -5
- package/esm2022/config.mjs +0 -143
- package/esm2022/generated/components/accordion/index.mjs +0 -2
- package/esm2022/generated/components/alert/index.mjs +0 -2
- package/esm2022/generated/components/modal/index.mjs +0 -2
- package/esm2022/generated/components/pagination/index.mjs +0 -2
- package/esm2022/generated/components/progressbar/index.mjs +0 -2
- package/esm2022/generated/components/rating/index.mjs +0 -2
- package/esm2022/generated/components/select/index.mjs +0 -2
- package/esm2022/generated/components/slider/index.mjs +0 -2
- package/esm2022/generated/components/toast/index.mjs +0 -2
- package/esm2022/generated/components/tree/index.mjs +0 -2
- package/esm2022/generated/config.mjs +0 -2
- package/esm2022/generated/index.mjs +0 -34
- package/esm2022/generated/services/extendWidget.mjs +0 -2
- package/esm2022/generated/services/floatingUI.mjs +0 -2
- package/esm2022/generated/services/focustrack.mjs +0 -2
- package/esm2022/generated/services/hash.mjs +0 -2
- package/esm2022/generated/services/intersection.mjs +0 -2
- package/esm2022/generated/services/matchMedia.mjs +0 -2
- package/esm2022/generated/services/navManager.mjs +0 -2
- package/esm2022/generated/services/portal.mjs +0 -2
- package/esm2022/generated/services/resizeObserver.mjs +0 -2
- package/esm2022/generated/services/siblingsInert.mjs +0 -2
- package/esm2022/generated/services/transitions/baseTransitions.mjs +0 -2
- package/esm2022/generated/services/transitions/collapse.mjs +0 -2
- package/esm2022/generated/services/transitions/cssTransitions.mjs +0 -2
- package/esm2022/generated/services/transitions/simpleClassTransition.mjs +0 -2
- package/esm2022/generated/slot.directive.mjs +0 -2
- package/esm2022/generated/types.mjs +0 -2
- package/esm2022/generated/utils/coercion.mjs +0 -2
- package/esm2022/generated/utils/directive.mjs +0 -2
- package/esm2022/generated/utils/stores.mjs +0 -2
- package/esm2022/generated/utils/widget.mjs +0 -2
- package/esm2022/generated/utils/writables.mjs +0 -2
- package/esm2022/generated/utils/zone.mjs +0 -2
- package/esm2022/index.mjs +0 -5
- package/esm2022/slot.directive.mjs +0 -233
- package/esm2022/types.mjs +0 -38
- package/esm2022/utils/coercion.mjs +0 -32
- package/esm2022/utils/directive.mjs +0 -118
- package/esm2022/utils/stores.mjs +0 -29
- package/esm2022/utils/widget.mjs +0 -149
- package/esm2022/utils/zone.mjs +0 -77
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { Component, Directive, EnvironmentInjector, Input, TemplateRef, ViewChild, ViewContainerRef, createComponent, inject, reflectComponentType, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
-
import { ComponentTemplate } from './types';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const _c0 = ["text"];
|
|
5
|
-
function StringSlotComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
6
|
-
i0.ɵɵtext(0);
|
|
7
|
-
} if (rf & 2) {
|
|
8
|
-
const content_r1 = ctx.content;
|
|
9
|
-
i0.ɵɵtextInterpolate(content_r1);
|
|
10
|
-
} }
|
|
11
|
-
class SlotHandler {
|
|
12
|
-
constructor(viewContainerRef) {
|
|
13
|
-
this.viewContainerRef = viewContainerRef;
|
|
14
|
-
}
|
|
15
|
-
slotChange(_slot, _props) { }
|
|
16
|
-
propsChange(_slot, _props) { }
|
|
17
|
-
destroy() { }
|
|
18
|
-
}
|
|
19
|
-
class StringSlotComponent {
|
|
20
|
-
static { this.ɵfac = function StringSlotComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StringSlotComponent)(); }; }
|
|
21
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StringSlotComponent, selectors: [["ng-component"]], viewQuery: function StringSlotComponent_Query(rf, ctx) { if (rf & 1) {
|
|
22
|
-
i0.ɵɵviewQuery(_c0, 7);
|
|
23
|
-
} if (rf & 2) {
|
|
24
|
-
let _t;
|
|
25
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.text = _t.first);
|
|
26
|
-
} }, decls: 2, vars: 0, consts: [["text", ""]], template: function StringSlotComponent_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
i0.ɵɵtemplate(0, StringSlotComponent_ng_template_0_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
28
|
-
} }, encapsulation: 2, changeDetection: 0 }); }
|
|
29
|
-
}
|
|
30
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StringSlotComponent, [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34
|
-
template: `<ng-template #text let-content="content">{{ content }}</ng-template>`,
|
|
35
|
-
}]
|
|
36
|
-
}], null, { text: [{
|
|
37
|
-
type: ViewChild,
|
|
38
|
-
args: ['text', { static: true }]
|
|
39
|
-
}] }); })();
|
|
40
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StringSlotComponent, { className: "StringSlotComponent", filePath: "slot.directive.ts", lineNumber: 29 }); })();
|
|
41
|
-
const stringSlotComponentTemplate = new ComponentTemplate(StringSlotComponent, 'text');
|
|
42
|
-
class StringSlotHandler extends SlotHandler {
|
|
43
|
-
#templateRefSlotHandler = new ComponentTemplateSlotHandler(this.viewContainerRef);
|
|
44
|
-
#initialized = false;
|
|
45
|
-
slotChange(content) {
|
|
46
|
-
if (!this.#initialized) {
|
|
47
|
-
this.#initialized = true;
|
|
48
|
-
this.#templateRefSlotHandler.slotChange(stringSlotComponentTemplate, { content });
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.#templateRefSlotHandler.propsChange(stringSlotComponentTemplate, { content });
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
destroy() {
|
|
55
|
-
this.#templateRefSlotHandler.destroy();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
class FunctionSlotHandler extends SlotHandler {
|
|
59
|
-
#stringSlotHandler = new StringSlotHandler(this.viewContainerRef);
|
|
60
|
-
slotChange(slot, props) {
|
|
61
|
-
this.#stringSlotHandler.slotChange(slot(props));
|
|
62
|
-
}
|
|
63
|
-
propsChange(slot, props) {
|
|
64
|
-
this.#stringSlotHandler.slotChange(slot(props));
|
|
65
|
-
}
|
|
66
|
-
destroy() {
|
|
67
|
-
this.#stringSlotHandler.destroy();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
class ComponentSlotHandler extends SlotHandler {
|
|
71
|
-
#componentRef;
|
|
72
|
-
#properties;
|
|
73
|
-
slotChange(slot, props) {
|
|
74
|
-
if (this.#componentRef) {
|
|
75
|
-
this.destroy();
|
|
76
|
-
}
|
|
77
|
-
this.#componentRef = this.viewContainerRef.createComponent(slot);
|
|
78
|
-
this.#applyProperties(props);
|
|
79
|
-
}
|
|
80
|
-
#applyProperties(props, oldProperties) {
|
|
81
|
-
const properties = Object.keys(props);
|
|
82
|
-
this.#properties = properties;
|
|
83
|
-
const componentRef = this.#componentRef;
|
|
84
|
-
for (const property of properties) {
|
|
85
|
-
componentRef.setInput(property, props[property]);
|
|
86
|
-
oldProperties?.delete(property);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
propsChange(_slot, props) {
|
|
90
|
-
const oldProperties = new Set(this.#properties);
|
|
91
|
-
this.#applyProperties(props, oldProperties);
|
|
92
|
-
const componentRef = this.#componentRef;
|
|
93
|
-
for (const property of oldProperties) {
|
|
94
|
-
componentRef.setInput(property, undefined);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
destroy() {
|
|
98
|
-
this.viewContainerRef.clear();
|
|
99
|
-
this.#componentRef = undefined;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
class TemplateRefSlotHandler extends SlotHandler {
|
|
103
|
-
#viewRef;
|
|
104
|
-
#props;
|
|
105
|
-
slotChange(slot, props) {
|
|
106
|
-
if (this.#viewRef) {
|
|
107
|
-
this.destroy();
|
|
108
|
-
}
|
|
109
|
-
props = { ...props };
|
|
110
|
-
this.#props = props;
|
|
111
|
-
this.#viewRef = this.viewContainerRef.createEmbeddedView(slot, props);
|
|
112
|
-
}
|
|
113
|
-
propsChange(_slot, props) {
|
|
114
|
-
if (this.#viewRef) {
|
|
115
|
-
const templateProps = this.#props;
|
|
116
|
-
const oldProperties = new Set(Object.keys(templateProps));
|
|
117
|
-
for (const property of Object.keys(props)) {
|
|
118
|
-
templateProps[property] = props[property];
|
|
119
|
-
oldProperties.delete(property);
|
|
120
|
-
}
|
|
121
|
-
for (const oldProperty of oldProperties) {
|
|
122
|
-
delete templateProps[oldProperty];
|
|
123
|
-
}
|
|
124
|
-
this.#viewRef.markForCheck();
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
destroy() {
|
|
128
|
-
this.viewContainerRef.clear();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
class ComponentTemplateSlotHandler extends SlotHandler {
|
|
132
|
-
#componentRef;
|
|
133
|
-
#templateSlotHandler = new TemplateRefSlotHandler(this.viewContainerRef);
|
|
134
|
-
#templateRef;
|
|
135
|
-
slotChange(slot, props) {
|
|
136
|
-
if (this.#componentRef) {
|
|
137
|
-
this.destroy();
|
|
138
|
-
}
|
|
139
|
-
this.#componentRef = createComponent(slot.component, {
|
|
140
|
-
elementInjector: this.viewContainerRef.injector,
|
|
141
|
-
environmentInjector: this.viewContainerRef.injector.get(EnvironmentInjector),
|
|
142
|
-
});
|
|
143
|
-
this.#templateRef = this.#componentRef.instance[slot.templateProp];
|
|
144
|
-
this.#templateSlotHandler.slotChange(this.#templateRef, props);
|
|
145
|
-
}
|
|
146
|
-
propsChange(_slot, props) {
|
|
147
|
-
this.#templateSlotHandler.propsChange(this.#templateRef, props);
|
|
148
|
-
}
|
|
149
|
-
destroy() {
|
|
150
|
-
this.#templateSlotHandler.destroy();
|
|
151
|
-
this.#componentRef?.destroy();
|
|
152
|
-
this.#componentRef = undefined;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const getSlotType = (value) => {
|
|
156
|
-
if (!value)
|
|
157
|
-
return undefined;
|
|
158
|
-
const type = typeof value;
|
|
159
|
-
switch (type) {
|
|
160
|
-
case 'string':
|
|
161
|
-
return StringSlotHandler;
|
|
162
|
-
case 'function':
|
|
163
|
-
if (reflectComponentType(value)) {
|
|
164
|
-
return ComponentSlotHandler;
|
|
165
|
-
}
|
|
166
|
-
return FunctionSlotHandler;
|
|
167
|
-
case 'object':
|
|
168
|
-
if (value instanceof TemplateRef) {
|
|
169
|
-
return TemplateRefSlotHandler;
|
|
170
|
-
}
|
|
171
|
-
if (value instanceof ComponentTemplate) {
|
|
172
|
-
return ComponentTemplateSlotHandler;
|
|
173
|
-
}
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
return undefined;
|
|
177
|
-
};
|
|
178
|
-
/**
|
|
179
|
-
* A directive that manages slot content and its properties.
|
|
180
|
-
*
|
|
181
|
-
* @template Props - A record type representing the properties for the slot.
|
|
182
|
-
*
|
|
183
|
-
* @remarks
|
|
184
|
-
* This directive handles changes to the slot content and its properties,
|
|
185
|
-
* and manages the lifecycle of the slot handler.
|
|
186
|
-
*/
|
|
187
|
-
export class SlotDirective {
|
|
188
|
-
constructor() {
|
|
189
|
-
this._viewContainerRef = inject(ViewContainerRef);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* @param changes SimpleChanges from Angular
|
|
193
|
-
* @internal
|
|
194
|
-
*/
|
|
195
|
-
ngOnChanges(changes) {
|
|
196
|
-
const slotChange = changes['slot'];
|
|
197
|
-
const propsChange = changes['props'];
|
|
198
|
-
const slot = this.slot;
|
|
199
|
-
if (slotChange) {
|
|
200
|
-
const newSlotType = getSlotType(slot);
|
|
201
|
-
if (newSlotType !== this._slotType) {
|
|
202
|
-
this._slotHandler?.destroy();
|
|
203
|
-
this._slotHandler = newSlotType ? new newSlotType(this._viewContainerRef) : undefined;
|
|
204
|
-
this._slotType = newSlotType;
|
|
205
|
-
}
|
|
206
|
-
this._slotHandler?.slotChange(slot, this.props);
|
|
207
|
-
}
|
|
208
|
-
else if (propsChange) {
|
|
209
|
-
this._slotHandler?.propsChange(slot, this.props);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
/** @internal */
|
|
213
|
-
ngOnDestroy() {
|
|
214
|
-
this._slotHandler?.destroy();
|
|
215
|
-
this._slotHandler = undefined;
|
|
216
|
-
}
|
|
217
|
-
static { this.ɵfac = function SlotDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SlotDirective)(); }; }
|
|
218
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SlotDirective, selectors: [["", "auSlot", ""]], inputs: { slot: [0, "auSlot", "slot"], props: [0, "auSlotProps", "props"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
219
|
-
}
|
|
220
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SlotDirective, [{
|
|
221
|
-
type: Directive,
|
|
222
|
-
args: [{
|
|
223
|
-
selector: '[auSlot]',
|
|
224
|
-
standalone: true,
|
|
225
|
-
}]
|
|
226
|
-
}], null, { slot: [{
|
|
227
|
-
type: Input,
|
|
228
|
-
args: ['auSlot']
|
|
229
|
-
}], props: [{
|
|
230
|
-
type: Input,
|
|
231
|
-
args: [{ alias: 'auSlotProps', required: true }]
|
|
232
|
-
}] }); })();
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2xvdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUNOLG9CQUFvQixFQUNwQix1QkFBdUIsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDOzs7O0lBV1csWUFBYTs7O0lBQWIsZ0NBQWE7O0FBVGxFLE1BQWUsV0FBVztJQUN6QixZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFDekQsVUFBVSxDQUFDLEtBQVcsRUFBRSxNQUFhLElBQUcsQ0FBQztJQUN6QyxXQUFXLENBQUMsS0FBVyxFQUFFLE1BQWEsSUFBRyxDQUFDO0lBQzFDLE9BQU8sS0FBSSxDQUFDO0NBQ1o7QUFFRCxNQUlNLG1CQUFtQjtvSEFBbkIsbUJBQW1CO29FQUFuQixtQkFBbUI7Ozs7OztZQUZiLHFIQUF5Qzs7O2lGQUUvQyxtQkFBbUI7Y0FKeEIsU0FBUztlQUFDO2dCQUNWLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUUsc0VBQXNFO2FBQ2hGO2dCQUVtQyxJQUFJO2tCQUF0QyxTQUFTO21CQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7O2tGQUQ1QixtQkFBbUI7QUFHekIsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGlCQUFpQixDQUFpRCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV2SSxNQUFNLGlCQUFxRCxTQUFRLFdBQTBCO0lBQ25GLHVCQUF1QixHQUFHLElBQUksNEJBQTRCLENBQWlELElB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T0FBTyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN0RixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztZQUM5QixDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO2FBQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDRixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFdBQVc7UUFDVixJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7OEdBdkNXLGFBQWE7b0VBQWIsYUFBYTs7aUZBQWIsYUFBYTtjQUp6QixTQUFTO2VBQUM7Z0JBQ1YsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2FBQ2hCO2dCQUtpQixJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFJZ0MsS0FBSztrQkFBbkQsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtDb21wb25lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHREaXJlY3RpdmUsXG5cdEVudmlyb25tZW50SW5qZWN0b3IsXG5cdElucHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRjcmVhdGVDb21wb25lbnQsXG5cdGluamVjdCxcblx0cmVmbGVjdENvbXBvbmVudFR5cGUsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtTbG90Q29udGVudH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge0NvbXBvbmVudFRlbXBsYXRlfSBmcm9tICcuL3R5cGVzJztcblxuYWJzdHJhY3QgY2xhc3MgU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBTbG90IGV4dGVuZHMgU2xvdENvbnRlbnQ8UHJvcHM+ID0gU2xvdENvbnRlbnQ8UHJvcHM+PiB7XG5cdGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXHRzbG90Q2hhbmdlKF9zbG90OiBTbG90LCBfcHJvcHM6IFByb3BzKSB7fVxuXHRwcm9wc0NoYW5nZShfc2xvdDogU2xvdCwgX3Byb3BzOiBQcm9wcykge31cblx0ZGVzdHJveSgpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0dGVtcGxhdGU6IGA8bmctdGVtcGxhdGUgI3RleHQgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCI+e3sgY29udGVudCB9fTwvbmctdGVtcGxhdGU+YCxcbn0pXG5jbGFzcyBTdHJpbmdTbG90Q29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgndGV4dCcsIHtzdGF0aWM6IHRydWV9KSB0ZXh0ITogVGVtcGxhdGVSZWY8e2NvbnRlbnQ6IHN0cmluZ30+O1xufVxuY29uc3Qgc3RyaW5nU2xvdENvbXBvbmVudFRlbXBsYXRlID0gbmV3IENvbXBvbmVudFRlbXBsYXRlPHtjb250ZW50OiBzdHJpbmd9LCAndGV4dCcsIFN0cmluZ1Nsb3RDb21wb25lbnQ+KFN0cmluZ1Nsb3RDb21wb25lbnQsICd0ZXh0Jyk7XG5cbmNsYXNzIFN0cmluZ1Nsb3RIYW5kbGVyPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgc3RyaW5nPiB7XG5cdHJlYWRvbmx5ICN0ZW1wbGF0ZVJlZlNsb3RIYW5kbGVyID0gbmV3IENvbXBvbmVudFRlbXBsYXRlU2xvdEhhbmRsZXI8e2NvbnRlbnQ6IHN0cmluZ30sICd0ZXh0JywgU3RyaW5nU2xvdENvbXBvbmVudD4odGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblx0I2luaXRpYWxpemVkID0gZmFsc2U7XG5cblx0b3ZlcnJpZGUgc2xvdENoYW5nZShjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuI2luaXRpYWxpemVkKSB7XG5cdFx0XHR0aGlzLiNpbml0aWFsaXplZCA9IHRydWU7XG5cdFx0XHR0aGlzLiN0ZW1wbGF0ZVJlZlNsb3RIYW5kbGVyLnNsb3RDaGFuZ2Uoc3RyaW5nU2xvdENvbXBvbmVudFRlbXBsYXRlLCB7Y29udGVudH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLiN0ZW1wbGF0ZVJlZlNsb3RIYW5kbGVyLnByb3BzQ2hhbmdlKHN0cmluZ1Nsb3RDb21wb25lbnRUZW1wbGF0ZSwge2NvbnRlbnR9KTtcblx0XHR9XG5cdH1cblxuXHRvdmVycmlkZSBkZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuI3RlbXBsYXRlUmVmU2xvdEhhbmRsZXIuZGVzdHJveSgpO1xuXHR9XG59XG5cbmNsYXNzIEZ1bmN0aW9uU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBleHRlbmRzIFNsb3RIYW5kbGVyPFByb3BzLCAocHJvcHM6IFByb3BzKSA9PiBzdHJpbmc+IHtcblx0cmVhZG9ubHkgI3N0cmluZ1Nsb3RIYW5kbGVyID0gbmV3IFN0cmluZ1Nsb3RIYW5kbGVyKHRoaXMudmlld0NvbnRhaW5lclJlZik7XG5cblx0b3ZlcnJpZGUgc2xvdENoYW5nZShzbG90OiAocHJvcHM6IFByb3BzKSA9PiBzdHJpbmcsIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdHRoaXMuI3N0cmluZ1Nsb3RIYW5kbGVyLnNsb3RDaGFuZ2Uoc2xvdChwcm9wcykpO1xuXHR9XG5cblx0b3ZlcnJpZGUgcHJvcHNDaGFuZ2Uoc2xvdDogKHByb3BzOiBQcm9wcykgPT4gc3RyaW5nLCBwcm9wczogUHJvcHMpOiB2b2lkIHtcblx0XHR0aGlzLiNzdHJpbmdTbG90SGFuZGxlci5zbG90Q2hhbmdlKHNsb3QocHJvcHMpKTtcblx0fVxuXG5cdG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy4jc3RyaW5nU2xvdEhhbmRsZXIuZGVzdHJveSgpO1xuXHR9XG59XG5cbmNsYXNzIENvbXBvbmVudFNsb3RIYW5kbGVyPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgVHlwZTx1bmtub3duPj4ge1xuXHQjY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IHVuZGVmaW5lZDtcblx0I3Byb3BlcnRpZXM/OiBzdHJpbmdbXTtcblxuXHRvdmVycmlkZSBzbG90Q2hhbmdlKHNsb3Q6IFR5cGU8dW5rbm93bj4sIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdGlmICh0aGlzLiNjb21wb25lbnRSZWYpIHtcblx0XHRcdHRoaXMuZGVzdHJveSgpO1xuXHRcdH1cblx0XHR0aGlzLiNjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHNsb3QpO1xuXHRcdHRoaXMuI2FwcGx5UHJvcGVydGllcyhwcm9wcyk7XG5cdH1cblxuXHQjYXBwbHlQcm9wZXJ0aWVzKHByb3BzOiBQcm9wcywgb2xkUHJvcGVydGllcz86IFNldDxzdHJpbmc+KSB7XG5cdFx0Y29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHByb3BzKTtcblx0XHR0aGlzLiNwcm9wZXJ0aWVzID0gcHJvcGVydGllcztcblx0XHRjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNjb21wb25lbnRSZWYhO1xuXHRcdGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuXHRcdFx0Y29tcG9uZW50UmVmLnNldElucHV0KHByb3BlcnR5LCBwcm9wc1twcm9wZXJ0eV0pO1xuXHRcdFx0b2xkUHJvcGVydGllcz8uZGVsZXRlKHByb3BlcnR5KTtcblx0XHR9XG5cdH1cblxuXHRvdmVycmlkZSBwcm9wc0NoYW5nZShfc2xvdDogVHlwZTx1bmtub3duPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0Y29uc3Qgb2xkUHJvcGVydGllcyA9IG5ldyBTZXQodGhpcy4jcHJvcGVydGllcyk7XG5cdFx0dGhpcy4jYXBwbHlQcm9wZXJ0aWVzKHByb3BzLCBvbGRQcm9wZXJ0aWVzKTtcblx0XHRjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNjb21wb25lbnRSZWYhO1xuXHRcdGZvciAoY29uc3QgcHJvcGVydHkgb2Ygb2xkUHJvcGVydGllcykge1xuXHRcdFx0Y29tcG9uZW50UmVmLnNldElucHV0KHByb3BlcnR5LCB1bmRlZmluZWQpO1xuXHRcdH1cblx0fVxuXG5cdG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cdFx0dGhpcy4jY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmNsYXNzIFRlbXBsYXRlUmVmU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBleHRlbmRzIFNsb3RIYW5kbGVyPFByb3BzLCBUZW1wbGF0ZVJlZjxQcm9wcz4+IHtcblx0I3ZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxQcm9wcz4gfCB1bmRlZmluZWQ7XG5cdCNwcm9wcz86IFByb3BzO1xuXG5cdG92ZXJyaWRlIHNsb3RDaGFuZ2Uoc2xvdDogVGVtcGxhdGVSZWY8UHJvcHM+LCBwcm9wczogUHJvcHMpOiB2b2lkIHtcblx0XHRpZiAodGhpcy4jdmlld1JlZikge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdHByb3BzID0gey4uLnByb3BzfTtcblx0XHR0aGlzLiNwcm9wcyA9IHByb3BzO1xuXHRcdHRoaXMuI3ZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHNsb3QsIHByb3BzKTtcblx0fVxuXG5cdG92ZXJyaWRlIHByb3BzQ2hhbmdlKF9zbG90OiBUZW1wbGF0ZVJlZjxQcm9wcz4sIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdGlmICh0aGlzLiN2aWV3UmVmKSB7XG5cdFx0XHRjb25zdCB0ZW1wbGF0ZVByb3BzID0gdGhpcy4jcHJvcHMhO1xuXHRcdFx0Y29uc3Qgb2xkUHJvcGVydGllcyA9IG5ldyBTZXQ8a2V5b2YgUHJvcHM+KE9iamVjdC5rZXlzKHRlbXBsYXRlUHJvcHMpKTtcblx0XHRcdGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LmtleXMocHJvcHMpIGFzIChrZXlvZiBQcm9wcylbXSkge1xuXHRcdFx0XHR0ZW1wbGF0ZVByb3BzW3Byb3BlcnR5XSA9IHByb3BzW3Byb3BlcnR5XTtcblx0XHRcdFx0b2xkUHJvcGVydGllcy5kZWxldGUocHJvcGVydHkpO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChjb25zdCBvbGRQcm9wZXJ0eSBvZiBvbGRQcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdGRlbGV0ZSB0ZW1wbGF0ZVByb3BzW29sZFByb3BlcnR5XTtcblx0XHRcdH1cblx0XHRcdHRoaXMuI3ZpZXdSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0fVxuXHR9XG5cblx0b3ZlcnJpZGUgZGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblx0fVxufVxuXG5jbGFzcyBDb21wb25lbnRUZW1wbGF0ZVNsb3RIYW5kbGVyPFxuXHRQcm9wcyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sXG5cdEsgZXh0ZW5kcyBzdHJpbmcsXG5cdFQgZXh0ZW5kcyB7W2tleSBpbiBLXTogVGVtcGxhdGVSZWY8UHJvcHM+fSxcbj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIEssIFQ+PiB7XG5cdCNjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IHVuZGVmaW5lZDtcblx0cmVhZG9ubHkgI3RlbXBsYXRlU2xvdEhhbmRsZXIgPSBuZXcgVGVtcGxhdGVSZWZTbG90SGFuZGxlcih0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXHQjdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFByb3BzPiB8IHVuZGVmaW5lZDtcblxuXHRvdmVycmlkZSBzbG90Q2hhbmdlKHNsb3Q6IENvbXBvbmVudFRlbXBsYXRlPFByb3BzLCBLLCBUPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI2NvbXBvbmVudFJlZikge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdHRoaXMuI2NvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChzbG90LmNvbXBvbmVudCwge1xuXHRcdFx0ZWxlbWVudEluamVjdG9yOiB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IsXG5cdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpLFxuXHRcdH0pO1xuXHRcdHRoaXMuI3RlbXBsYXRlUmVmID0gdGhpcy4jY29tcG9uZW50UmVmLmluc3RhbmNlW3Nsb3QudGVtcGxhdGVQcm9wXTtcblx0XHR0aGlzLiN0ZW1wbGF0ZVNsb3RIYW5kbGVyLnNsb3RDaGFuZ2UodGhpcy4jdGVtcGxhdGVSZWYsIHByb3BzKTtcblx0fVxuXG5cdG92ZXJyaWRlIHByb3BzQ2hhbmdlKF9zbG90OiBDb21wb25lbnRUZW1wbGF0ZTxQcm9wcywgSywgVD4sIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdHRoaXMuI3RlbXBsYXRlU2xvdEhhbmRsZXIucHJvcHNDaGFuZ2UodGhpcy4jdGVtcGxhdGVSZWYhLCBwcm9wcyk7XG5cdH1cblxuXHRvdmVycmlkZSBkZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuI3RlbXBsYXRlU2xvdEhhbmRsZXIuZGVzdHJveSgpO1xuXHRcdHRoaXMuI2NvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuXHRcdHRoaXMuI2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcblx0fVxufVxuXG5jb25zdCBnZXRTbG90VHlwZSA9ICh2YWx1ZTogYW55KTogdW5kZWZpbmVkIHwge25ldyAodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IFNsb3RIYW5kbGVyPGFueT59ID0+IHtcblx0aWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcblx0Y29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Y2FzZSAnc3RyaW5nJzpcblx0XHRcdHJldHVybiBTdHJpbmdTbG90SGFuZGxlcjtcblx0XHRjYXNlICdmdW5jdGlvbic6XG5cdFx0XHRpZiAocmVmbGVjdENvbXBvbmVudFR5cGUodmFsdWUpKSB7XG5cdFx0XHRcdHJldHVybiBDb21wb25lbnRTbG90SGFuZGxlcjtcblx0XHRcdH1cblx0XHRcdHJldHVybiBGdW5jdGlvblNsb3RIYW5kbGVyO1xuXHRcdGNhc2UgJ29iamVjdCc6XG5cdFx0XHRpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuXHRcdFx0XHRyZXR1cm4gVGVtcGxhdGVSZWZTbG90SGFuZGxlcjtcblx0XHRcdH1cblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIENvbXBvbmVudFRlbXBsYXRlKSB7XG5cdFx0XHRcdHJldHVybiBDb21wb25lbnRUZW1wbGF0ZVNsb3RIYW5kbGVyO1xuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBtYW5hZ2VzIHNsb3QgY29udGVudCBhbmQgaXRzIHByb3BlcnRpZXMuXG4gKlxuICogQHRlbXBsYXRlIFByb3BzIC0gQSByZWNvcmQgdHlwZSByZXByZXNlbnRpbmcgdGhlIHByb3BlcnRpZXMgZm9yIHRoZSBzbG90LlxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIGRpcmVjdGl2ZSBoYW5kbGVzIGNoYW5nZXMgdG8gdGhlIHNsb3QgY29udGVudCBhbmQgaXRzIHByb3BlcnRpZXMsXG4gKiBhbmQgbWFuYWdlcyB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBzbG90IGhhbmRsZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1thdVNsb3RdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2xvdERpcmVjdGl2ZTxQcm9wcyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogVGhlIHNsb3QgY29udGVudCB0byBiZSBtYW5hZ2VkLlxuXHQgKi9cblx0QElucHV0KCdhdVNsb3QnKSBzbG90OiBTbG90Q29udGVudDxQcm9wcz47XG5cdC8qKlxuXHQgKiBUaGUgcHJvcGVydGllcyBmb3IgdGhlIHNsb3QgY29udGVudC5cblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdVNsb3RQcm9wcycsIHJlcXVpcmVkOiB0cnVlfSkgcHJvcHMhOiBQcm9wcztcblxuXHRwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIF9zbG90VHlwZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2xvdFR5cGU+O1xuXHRwcml2YXRlIF9zbG90SGFuZGxlcjogU2xvdEhhbmRsZXI8UHJvcHM+IHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBAcGFyYW0gY2hhbmdlcyBTaW1wbGVDaGFuZ2VzIGZyb20gQW5ndWxhclxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRjb25zdCBzbG90Q2hhbmdlID0gY2hhbmdlc1snc2xvdCddO1xuXHRcdGNvbnN0IHByb3BzQ2hhbmdlID0gY2hhbmdlc1sncHJvcHMnXTtcblx0XHRjb25zdCBzbG90ID0gdGhpcy5zbG90O1xuXHRcdGlmIChzbG90Q2hhbmdlKSB7XG5cdFx0XHRjb25zdCBuZXdTbG90VHlwZSA9IGdldFNsb3RUeXBlKHNsb3QpO1xuXHRcdFx0aWYgKG5ld1Nsb3RUeXBlICE9PSB0aGlzLl9zbG90VHlwZSkge1xuXHRcdFx0XHR0aGlzLl9zbG90SGFuZGxlcj8uZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLl9zbG90SGFuZGxlciA9IG5ld1Nsb3RUeXBlID8gbmV3IG5ld1Nsb3RUeXBlKHRoaXMuX3ZpZXdDb250YWluZXJSZWYpIDogdW5kZWZpbmVkO1xuXHRcdFx0XHR0aGlzLl9zbG90VHlwZSA9IG5ld1Nsb3RUeXBlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fc2xvdEhhbmRsZXI/LnNsb3RDaGFuZ2Uoc2xvdCwgdGhpcy5wcm9wcyk7XG5cdFx0fSBlbHNlIGlmIChwcm9wc0NoYW5nZSkge1xuXHRcdFx0dGhpcy5fc2xvdEhhbmRsZXI/LnByb3BzQ2hhbmdlKHNsb3QsIHRoaXMucHJvcHMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaW50ZXJuYWwgKi9cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fc2xvdEhhbmRsZXI/LmRlc3Ryb3koKTtcblx0XHR0aGlzLl9zbG90SGFuZGxlciA9IHVuZGVmaW5lZDtcblx0fVxufVxuIl19
|
package/esm2022/types.mjs
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export * from '@agnos-ui/core/types';
|
|
4
|
-
/**
|
|
5
|
-
* Represents a template for a component with specified properties.
|
|
6
|
-
*
|
|
7
|
-
* @template Props - The type of properties that the template accepts.
|
|
8
|
-
* @template K - The key in the template object that maps to the template reference.
|
|
9
|
-
* @template T - An object type where each key of type K maps to a TemplateRef of Props.
|
|
10
|
-
*
|
|
11
|
-
* @param component - The component type that contains the template.
|
|
12
|
-
* @param templateProp - The key in the component that maps to the template reference.
|
|
13
|
-
*/
|
|
14
|
-
export class ComponentTemplate {
|
|
15
|
-
constructor(component, templateProp) {
|
|
16
|
-
this.component = component;
|
|
17
|
-
this.templateProp = templateProp;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* A directive representing a slot component that can be used to manage the state and context of a widget.
|
|
22
|
-
*
|
|
23
|
-
* @template W - The type of the widget that this slot component manages.
|
|
24
|
-
*/
|
|
25
|
-
export class SlotComponent {
|
|
26
|
-
static { this.ɵfac = function SlotComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SlotComponent)(); }; }
|
|
27
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SlotComponent, inputs: { state: "state", api: "api", directives: "directives" } }); }
|
|
28
|
-
}
|
|
29
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SlotComponent, [{
|
|
30
|
-
type: Directive
|
|
31
|
-
}], null, { state: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], api: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], directives: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}] }); })();
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRS9DLGNBQWMsc0JBQXNCLENBQUM7QUFFckM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM3QixZQUNpQixTQUFrQixFQUNsQixZQUFlO1FBRGYsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBRztJQUM3QixDQUFDO0NBQ0o7QUFxQkQ7Ozs7R0FJRztBQUVILE1BQU0sT0FBZ0IsYUFBYTs4R0FBYixhQUFhO29FQUFiLGFBQWE7O2lGQUFiLGFBQWE7Y0FEbEMsU0FBUztnQkFNVCxLQUFLO2tCQURKLEtBQUs7WUFNTixHQUFHO2tCQURGLEtBQUs7WUFNTixVQUFVO2tCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7U2xvdENvbnRlbnQgYXMgQ29yZVNsb3RDb250ZW50LCBXaWRnZXQsIFdpZGdldFN0YXRlLCBFeHRlbmRzfSBmcm9tICdAYWdub3MtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7U2lnbmFsLCBUZW1wbGF0ZVJlZiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgKiBmcm9tICdAYWdub3MtdWkvY29yZS90eXBlcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHRlbXBsYXRlIGZvciBhIGNvbXBvbmVudCB3aXRoIHNwZWNpZmllZCBwcm9wZXJ0aWVzLlxuICpcbiAqIEB0ZW1wbGF0ZSBQcm9wcyAtIFRoZSB0eXBlIG9mIHByb3BlcnRpZXMgdGhhdCB0aGUgdGVtcGxhdGUgYWNjZXB0cy5cbiAqIEB0ZW1wbGF0ZSBLIC0gVGhlIGtleSBpbiB0aGUgdGVtcGxhdGUgb2JqZWN0IHRoYXQgbWFwcyB0byB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlLlxuICogQHRlbXBsYXRlIFQgLSBBbiBvYmplY3QgdHlwZSB3aGVyZSBlYWNoIGtleSBvZiB0eXBlIEsgbWFwcyB0byBhIFRlbXBsYXRlUmVmIG9mIFByb3BzLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHR5cGUgdGhhdCBjb250YWlucyB0aGUgdGVtcGxhdGUuXG4gKiBAcGFyYW0gdGVtcGxhdGVQcm9wIC0gVGhlIGtleSBpbiB0aGUgY29tcG9uZW50IHRoYXQgbWFwcyB0byB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIEsgZXh0ZW5kcyBzdHJpbmcsIFQgZXh0ZW5kcyB7W2tleSBpbiBLXTogVGVtcGxhdGVSZWY8UHJvcHM+fT4ge1xuXHRjb25zdHJ1Y3Rvcihcblx0XHRwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPFQ+LFxuXHRcdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVByb3A6IEssXG5cdCkge31cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IHRoYXQgY2FuIGJlIHVzZWQgaW4gYSBzbG90LlxuICpcbiAqIEB0ZW1wbGF0ZSBQcm9wcyAtIFRoZSB0eXBlIG9mIHRoZSBwcm9wZXJ0aWVzIHRoYXQgdGhlIHNsb3QgY29udGVudCBjYW4gYWNjZXB0LlxuICpcbiAqIFRoaXMgdHlwZSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gKiAtIGB1bmRlZmluZWQgfCBudWxsYDogTnVsbGlzaCB2YWx1ZVxuICogLSBgc3RyaW5nYDogQSBzdGF0aWMgc3RyaW5nXG4gKiAtIGAocHJvcHM6IFByb3BzKSA9PiBzdHJpbmdgOiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgcHJvcHMgYXMgaW5wdXQgYW5kIHJldHVybnMgYSBzdHJpbmcgdGVtcGxhdGVcbiAqIC0gYFRlbXBsYXRlUmVmPFByb3BzPmA6IEEgcmVmZXJlbmNlIHRvIGFuIEFuZ3VsYXIgdGVtcGxhdGUgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMuXG4gKiAtIGBUeXBlPHVua25vd24+YDogQSB0eXBlIHJlcHJlc2VudGluZyBhbiB1bmtub3duIGNvbXBvbmVudCBvciBkaXJlY3RpdmUuXG4gKiAtIGBDb21wb25lbnRUZW1wbGF0ZTxQcm9wcywgYW55LCBhbnk+YDogQSBjb21wb25lbnQgdGVtcGxhdGUgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFNsb3RDb250ZW50PFByb3BzIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiA9XG5cdHwgQ29yZVNsb3RDb250ZW50PFByb3BzPlxuXHR8IFRlbXBsYXRlUmVmPFByb3BzPlxuXHR8IFR5cGU8dW5rbm93bj5cblx0fCBDb21wb25lbnRUZW1wbGF0ZTxQcm9wcywgYW55LCBhbnk+O1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHJlcHJlc2VudGluZyBhIHNsb3QgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIHRoZSBzdGF0ZSBhbmQgY29udGV4dCBvZiBhIHdpZGdldC5cbiAqXG4gKiBAdGVtcGxhdGUgVyAtIFRoZSB0eXBlIG9mIHRoZSB3aWRnZXQgdGhhdCB0aGlzIHNsb3QgY29tcG9uZW50IG1hbmFnZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNsb3RDb21wb25lbnQ8VyBleHRlbmRzIFdpZGdldD4ge1xuXHQvKipcblx0ICogVGhlIHN0YXRlIG9mIHRoZSB3aWRnZXQuIEVhY2ggcHJvcGVydHkgb2YgdGhlIHN0YXRlIGlzIGV4cG9zZWQgdGhyb3VnaCBhbiBBbmd1bGFyIHtAbGluayBodHRwczovL2FuZ3VsYXIuZGV2L2FwaS9jb3JlL1NpZ25hbCB8IFNpZ25hbH1cblx0ICovXG5cdEBJbnB1dCgpXG5cdHN0YXRlITogQW5ndWxhclN0YXRlPFc+O1xuXHQvKipcblx0ICogYWxsIHRoZSBhcGkgZnVuY3Rpb25zIHRvIGludGVyYWN0IHdpdGggdGhlIHdpZGdldFxuXHQgKi9cblx0QElucHV0KClcblx0YXBpITogV1snYXBpJ107XG5cdC8qKlxuXHQgKiBkaXJlY3RpdmVzIHRvIGJlIHVzZWQgb24gaHRtbCBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIHNsb3Rcblx0ICovXG5cdEBJbnB1dCgpXG5cdGRpcmVjdGl2ZXMhOiBXWydkaXJlY3RpdmVzJ107XG59XG5cbi8qKlxuICogVHlwZSB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGdpdmVuIHR5cGUgYFRgIGlzIG9yIGV4dGVuZHMgYFNsb3RDb250ZW50PGFueT5gLlxuICpcbiAqIFRoaXMgdHlwZSBhbGlhcyB1c2VzIGNvbmRpdGlvbmFsIHR5cGVzIHRvIGNoZWNrIGlmIGBUYCBleHRlbmRzIGBTbG90Q29udGVudDxhbnk+YCBvciBpZiBgU2xvdENvbnRlbnQ8YW55PmAgZXh0ZW5kcyBgVGAuXG4gKiBJZiBlaXRoZXIgY29uZGl0aW9uIGlzIHRydWUsIGl0IHJlc29sdmVzIHRvIGBUYCwgb3RoZXJ3aXNlIGl0IHJlc29sdmVzIHRvIGAwYC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIHRvIGJlIGNoZWNrZWQuXG4gKi9cbmV4cG9ydCB0eXBlIElzU2xvdENvbnRlbnQ8VD4gPSBFeHRlbmRzPFQsIFNsb3RDb250ZW50PGFueT4+IHwgRXh0ZW5kczxTbG90Q29udGVudDxhbnk+LCBUPiBleHRlbmRzIDEgPyBUIDogMDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiBhbiBBbmd1bGFyIHdpZGdldCwgd2hlcmUgZWFjaCBrZXkgaW4gdGhlIHdpZGdldCdzIHN0YXRlXG4gKiBpcyBtYXBwZWQgdG8gYSBTaWduYWwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUgdmFsdWUuXG4gKlxuICogQHRlbXBsYXRlIFcgLSBUaGUgdHlwZSBvZiB0aGUgd2lkZ2V0LlxuICovXG5leHBvcnQgdHlwZSBBbmd1bGFyU3RhdGU8VyBleHRlbmRzIFdpZGdldD4gPSB7W2tleSBpbiBrZXlvZiBXaWRnZXRTdGF0ZTxXPl06IFNpZ25hbDxXaWRnZXRTdGF0ZTxXPltrZXldPn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBbmd1bGFyIHdpZGdldCB0aGF0IGV4dGVuZHMgYSBiYXNlIHdpZGdldCB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBXIC0gVGhlIHR5cGUgb2YgdGhlIGJhc2Ugd2lkZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJXaWRnZXQ8VyBleHRlbmRzIFdpZGdldD4gZXh0ZW5kcyBQaWNrPFcsICdhcGknIHwgJ2RpcmVjdGl2ZXMnIHwgJ3BhdGNoJz4ge1xuXHQvKipcblx0ICogQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgd2lkZ2V0IGlzIGluaXRpYWxpemVkXG5cdCAqL1xuXHRpbml0aWFsaXplZDogUHJvbWlzZTx2b2lkPjtcblx0LyoqXG5cdCAqIFRoZSBzdGF0ZSBvZiB0aGUgd2lkZ2V0LiBFYWNoIHByb3BlcnR5IG9mIHRoZSBzdGF0ZSBpcyBleHBvc2VkIHRocm91Z2ggYW4gQW5ndWxhciB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmRldi9hcGkvY29yZS9TaWduYWwgfCBTaWduYWx9XG5cdCAqL1xuXHRzdGF0ZTogQW5ndWxhclN0YXRlPFc+O1xuXHQvKipcblx0ICogQSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBBbmd1bGFyIHdpZGdldC5cblx0ICovXG5cdG5nSW5pdDogKCkgPT4gdm9pZDtcblx0LyoqXG5cdCAqIEEgdXRpbGl0eSBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIHNsb3QgcHJvcGVydGllcy5cblx0ICovXG5cdHVwZGF0ZVNsb3RzOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbnRleHQgZm9yIGEgd2lkZ2V0IHNsb3QsIHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIHdpZGdldCBhbmQgaXRzIHN0YXRlLlxuICpcbiAqIEB0ZW1wbGF0ZSBXIC0gVGhlIHR5cGUgb2YgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaWRnZXRTbG90Q29udGV4dDxXIGV4dGVuZHMgV2lkZ2V0PiBleHRlbmRzIFBpY2s8VywgJ2FwaScgfCAnZGlyZWN0aXZlcyc+IHtcblx0LyoqXG5cdCAqIFRoZSBzdGF0ZSBvZiB0aGUgd2lkZ2V0LiBFYWNoIHByb3BlcnR5IG9mIHRoZSBzdGF0ZSBpcyBleHBvc2VkIHRocm91Z2ggYW4gQW5ndWxhciB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmRldi9hcGkvY29yZS9TaWduYWwgfCBTaWduYWx9XG5cdCAqL1xuXHRzdGF0ZTogQW5ndWxhclN0YXRlPFc+O1xufVxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, numberAttribute } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Transforms a value (typically a string) to a boolean.
|
|
4
|
-
* Intended to be used as a transform function of an input.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```@Input({ transform: auBooleanAttribute }) status: boolean | undefined;```
|
|
8
|
-
* @param value - Value to be transformed.
|
|
9
|
-
* @returns the value transformed
|
|
10
|
-
*/
|
|
11
|
-
export function auBooleanAttribute(value) {
|
|
12
|
-
if (value === undefined) {
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
return booleanAttribute(value);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Transforms a value (typically a string) to a number.
|
|
19
|
-
* Intended to be used as a transform function of an input.
|
|
20
|
-
* @param value - Value to be transformed.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```@Input({ transform: auNumberAttribute }) id: number | undefined;```
|
|
24
|
-
* @returns the value transformed
|
|
25
|
-
*/
|
|
26
|
-
export function auNumberAttribute(value) {
|
|
27
|
-
if (value === undefined) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
return numberAttribute(value);
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvY29lcmNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVoRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFjO0lBQ2hELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFjO0lBQy9DLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBudW1iZXJBdHRyaWJ1dGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSB2YWx1ZSAodHlwaWNhbGx5IGEgc3RyaW5nKSB0byBhIGJvb2xlYW4uXG4gKiBJbnRlbmRlZCB0byBiZSB1c2VkIGFzIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIG9mIGFuIGlucHV0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBASW5wdXQoeyB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZSB9KSBzdGF0dXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7YGBgXG4gKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAqIEByZXR1cm5zIHRoZSB2YWx1ZSB0cmFuc2Zvcm1lZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXVCb29sZWFuQXR0cmlidXRlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIHZhbHVlICh0eXBpY2FsbHkgYSBzdHJpbmcpIHRvIGEgbnVtYmVyLlxuICogSW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRyYW5zZm9ybSBmdW5jdGlvbiBvZiBhbiBpbnB1dC5cbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgYGBgQElucHV0KHsgdHJhbnNmb3JtOiBhdU51bWJlckF0dHJpYnV0ZSB9KSBpZDogbnVtYmVyIHwgdW5kZWZpbmVkO2BgYFxuICogQHJldHVybnMgdGhlIHZhbHVlIHRyYW5zZm9ybWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdU51bWJlckF0dHJpYnV0ZSh2YWx1ZTogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG5cdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4gbnVtYmVyQXR0cmlidXRlKHZhbHVlKTtcbn1cbiJdfQ==
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { multiDirective } from '@agnos-ui/core/utils/directive';
|
|
2
|
-
import { isPlatformServer } from '@angular/common';
|
|
3
|
-
import { DestroyRef, Directive, ElementRef, Injector, Input, PLATFORM_ID, afterNextRender, inject, runInInjectionContext } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export * from '@agnos-ui/core/utils/directive';
|
|
6
|
-
/**
|
|
7
|
-
* A utility function to manage the lifecycle of a directive for a host element.
|
|
8
|
-
*
|
|
9
|
-
* This function handles the creation, updating, and destruction of a directive instance
|
|
10
|
-
* associated with a host element. It ensures that the directive is called appropriately
|
|
11
|
-
* based on the platform (server or client) and manages the directive's lifecycle within
|
|
12
|
-
* the Angular injection context.
|
|
13
|
-
*
|
|
14
|
-
* @template T - The type of parameters that the directive accepts.
|
|
15
|
-
*
|
|
16
|
-
* @param [directive] - The directive to be applied to the host element.
|
|
17
|
-
* @param [params] - The parameters to be passed to the directive.
|
|
18
|
-
*
|
|
19
|
-
* @returns An object containing an `update` function to update the directive and its parameters.
|
|
20
|
-
*/
|
|
21
|
-
export const useDirectiveForHost = (directive, params) => {
|
|
22
|
-
const injector = inject(Injector);
|
|
23
|
-
const ref = inject(ElementRef);
|
|
24
|
-
const platform = inject(PLATFORM_ID);
|
|
25
|
-
let instance;
|
|
26
|
-
let plannedCallDirective = false;
|
|
27
|
-
const callDirective = isPlatformServer(platform)
|
|
28
|
-
? () => {
|
|
29
|
-
instance = directive?.(ref.nativeElement, params);
|
|
30
|
-
}
|
|
31
|
-
: () => {
|
|
32
|
-
if (plannedCallDirective || !directive) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
plannedCallDirective = true;
|
|
36
|
-
runInInjectionContext(injector, () => {
|
|
37
|
-
afterNextRender(() => {
|
|
38
|
-
plannedCallDirective = false;
|
|
39
|
-
instance = directive?.(ref.nativeElement, params);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
function destroyDirectiveInstance() {
|
|
44
|
-
const oldInstance = instance;
|
|
45
|
-
instance = undefined;
|
|
46
|
-
directive = undefined;
|
|
47
|
-
oldInstance?.destroy?.();
|
|
48
|
-
}
|
|
49
|
-
inject(DestroyRef).onDestroy(destroyDirectiveInstance);
|
|
50
|
-
function update(newDirective, newParams) {
|
|
51
|
-
if (newDirective !== directive) {
|
|
52
|
-
void destroyDirectiveInstance();
|
|
53
|
-
directive = newDirective;
|
|
54
|
-
params = newParams;
|
|
55
|
-
callDirective();
|
|
56
|
-
}
|
|
57
|
-
else if (newParams != params) {
|
|
58
|
-
params = newParams;
|
|
59
|
-
instance?.update?.(params);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
callDirective();
|
|
63
|
-
return { update };
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* A directive that allows the use of another directive with optional parameters.
|
|
67
|
-
*
|
|
68
|
-
* @template T - The type of the parameter that can be passed to the directive.
|
|
69
|
-
*
|
|
70
|
-
* @remarks
|
|
71
|
-
* This directive uses a private instance of {@link useDirectiveForHost} to manage the directive and its parameter.
|
|
72
|
-
*/
|
|
73
|
-
export class UseDirective {
|
|
74
|
-
#useDirective = useDirectiveForHost();
|
|
75
|
-
/** @internal */
|
|
76
|
-
ngOnChanges() {
|
|
77
|
-
const use = this.use;
|
|
78
|
-
const [directive, param] = Array.isArray(use) ? use : [use];
|
|
79
|
-
this.#useDirective.update(directive, param);
|
|
80
|
-
}
|
|
81
|
-
static { this.ɵfac = function UseDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UseDirective)(); }; }
|
|
82
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UseDirective, selectors: [["", "auUse", ""]], inputs: { use: [0, "auUse", "use"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
83
|
-
}
|
|
84
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UseDirective, [{
|
|
85
|
-
type: Directive,
|
|
86
|
-
args: [{
|
|
87
|
-
standalone: true,
|
|
88
|
-
selector: '[auUse]',
|
|
89
|
-
}]
|
|
90
|
-
}], null, { use: [{
|
|
91
|
-
type: Input,
|
|
92
|
-
args: ['auUse']
|
|
93
|
-
}] }); })();
|
|
94
|
-
/**
|
|
95
|
-
* A directive that allows the use of multiple directives on a host element.
|
|
96
|
-
*
|
|
97
|
-
* @template T - A tuple type representing the directives and their optional parameters.
|
|
98
|
-
*/
|
|
99
|
-
export class UseMultiDirective {
|
|
100
|
-
#useDirective = useDirectiveForHost();
|
|
101
|
-
/** @internal */
|
|
102
|
-
ngOnChanges() {
|
|
103
|
-
this.#useDirective.update(multiDirective, this.useMulti);
|
|
104
|
-
}
|
|
105
|
-
static { this.ɵfac = function UseMultiDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UseMultiDirective)(); }; }
|
|
106
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UseMultiDirective, selectors: [["", "auUseMulti", ""]], inputs: { useMulti: [0, "auUseMulti", "useMulti"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
107
|
-
}
|
|
108
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UseMultiDirective, [{
|
|
109
|
-
type: Directive,
|
|
110
|
-
args: [{
|
|
111
|
-
standalone: true,
|
|
112
|
-
selector: '[auUseMulti]',
|
|
113
|
-
}]
|
|
114
|
-
}], null, { useMulti: [{
|
|
115
|
-
type: Input,
|
|
116
|
-
args: [{ alias: 'auUseMulti', required: true }]
|
|
117
|
-
}] }); })();
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRTlJLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0M7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFJLFNBQStCLEVBQUUsTUFBVSxFQUFFLEVBQUU7SUFDckYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFckMsSUFBSSxRQUFxRCxDQUFDO0lBQzFELElBQUksb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBRWpDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUMvQyxDQUFDLENBQUMsR0FBRyxFQUFFO1lBQ0wsUUFBUSxHQUFHLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBVyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNGLENBQUMsQ0FBQyxHQUFHLEVBQUU7WUFDTCxJQUFJLG9CQUFvQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDUixDQUFDO1lBQ0Qsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQzVCLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLG9CQUFvQixHQUFHLEtBQUssQ0FBQztvQkFDN0IsUUFBUSxHQUFHLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBVyxDQUFDLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7SUFFSixTQUFTLHdCQUF3QjtRQUNoQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDN0IsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUNyQixTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFdkQsU0FBUyxNQUFNLENBQUMsWUFBa0MsRUFBRSxTQUFhO1FBQ2hFLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLEtBQUssd0JBQXdCLEVBQUUsQ0FBQztZQUNoQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDbkIsYUFBYSxFQUFFLENBQUM7UUFDakIsQ0FBQzthQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDbkIsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQVcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDRixDQUFDO0lBRUQsYUFBYSxFQUFFLENBQUM7SUFDaEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFLSCxNQUFNLE9BQU8sWUFBWTtJQUlmLGFBQWEsR0FBRyxtQkFBbUIsRUFBSyxDQUFDO0lBRWxELGdCQUFnQjtJQUNoQixXQUFXO1FBQ1YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs2R0FYVyxZQUFZO29FQUFaLFlBQVk7O2lGQUFaLFlBQVk7Y0FKeEIsU0FBUztlQUFDO2dCQUNWLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsU0FBUzthQUNuQjtnQkFHQSxHQUFHO2tCQURGLEtBQUs7bUJBQUMsT0FBTzs7QUFhZjs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGlCQUFpQjtJQU9wQixhQUFhLEdBQUcsbUJBQW1CLEVBQTRCLENBQUM7SUFFekUsZ0JBQWdCO0lBQ2hCLFdBQVc7UUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUM7a0hBWlcsaUJBQWlCO29FQUFqQixpQkFBaUI7O2lGQUFqQixpQkFBaUI7Y0FKN0IsU0FBUztlQUFDO2dCQUNWLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsY0FBYzthQUN4QjtnQkFNQSxRQUFRO2tCQURQLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7RGlyZWN0aXZlIGFzIEFnbm9zVUlEaXJlY3RpdmUsIERpcmVjdGl2ZUFuZFBhcmFtLCBEaXJlY3RpdmVzQW5kT3B0UGFyYW19IGZyb20gJ0BhZ25vcy11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7bXVsdGlEaXJlY3RpdmV9IGZyb20gJ0BhZ25vcy11aS9jb3JlL3V0aWxzL2RpcmVjdGl2ZSc7XG5pbXBvcnQge2lzUGxhdGZvcm1TZXJ2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7T25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIFBMQVRGT1JNX0lELCBhZnRlck5leHRSZW5kZXIsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0ICogZnJvbSAnQGFnbm9zLXVpL2NvcmUvdXRpbHMvZGlyZWN0aXZlJztcblxuLyoqXG4gKiBBIHV0aWxpdHkgZnVuY3Rpb24gdG8gbWFuYWdlIHRoZSBsaWZlY3ljbGUgb2YgYSBkaXJlY3RpdmUgZm9yIGEgaG9zdCBlbGVtZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgY3JlYXRpb24sIHVwZGF0aW5nLCBhbmQgZGVzdHJ1Y3Rpb24gb2YgYSBkaXJlY3RpdmUgaW5zdGFuY2VcbiAqIGFzc29jaWF0ZWQgd2l0aCBhIGhvc3QgZWxlbWVudC4gSXQgZW5zdXJlcyB0aGF0IHRoZSBkaXJlY3RpdmUgaXMgY2FsbGVkIGFwcHJvcHJpYXRlbHlcbiAqIGJhc2VkIG9uIHRoZSBwbGF0Zm9ybSAoc2VydmVyIG9yIGNsaWVudCkgYW5kIG1hbmFnZXMgdGhlIGRpcmVjdGl2ZSdzIGxpZmVjeWNsZSB3aXRoaW5cbiAqIHRoZSBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgcGFyYW1ldGVycyB0aGF0IHRoZSBkaXJlY3RpdmUgYWNjZXB0cy5cbiAqXG4gKiBAcGFyYW0gW2RpcmVjdGl2ZV0gLSBUaGUgZGlyZWN0aXZlIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAqIEBwYXJhbSBbcGFyYW1zXSAtIFRoZSBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCB0byB0aGUgZGlyZWN0aXZlLlxuICpcbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIGFuIGB1cGRhdGVgIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgZGlyZWN0aXZlIGFuZCBpdHMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZURpcmVjdGl2ZUZvckhvc3QgPSA8VD4oZGlyZWN0aXZlPzogQWdub3NVSURpcmVjdGl2ZTxUPiwgcGFyYW1zPzogVCkgPT4ge1xuXHRjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdGNvbnN0IHJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblx0Y29uc3QgcGxhdGZvcm0gPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG5cdGxldCBpbnN0YW5jZTogdW5kZWZpbmVkIHwgUmV0dXJuVHlwZTxBZ25vc1VJRGlyZWN0aXZlPFQ+Pjtcblx0bGV0IHBsYW5uZWRDYWxsRGlyZWN0aXZlID0gZmFsc2U7XG5cblx0Y29uc3QgY2FsbERpcmVjdGl2ZSA9IGlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm0pXG5cdFx0PyAoKSA9PiB7XG5cdFx0XHRcdGluc3RhbmNlID0gZGlyZWN0aXZlPy4ocmVmLm5hdGl2ZUVsZW1lbnQsIHBhcmFtcyBhcyBUKTtcblx0XHRcdH1cblx0XHQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKHBsYW5uZWRDYWxsRGlyZWN0aXZlIHx8ICFkaXJlY3RpdmUpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0cGxhbm5lZENhbGxEaXJlY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRcdFx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0cGxhbm5lZENhbGxEaXJlY3RpdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdGluc3RhbmNlID0gZGlyZWN0aXZlPy4ocmVmLm5hdGl2ZUVsZW1lbnQsIHBhcmFtcyBhcyBUKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9O1xuXG5cdGZ1bmN0aW9uIGRlc3Ryb3lEaXJlY3RpdmVJbnN0YW5jZSgpIHtcblx0XHRjb25zdCBvbGRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGluc3RhbmNlID0gdW5kZWZpbmVkO1xuXHRcdGRpcmVjdGl2ZSA9IHVuZGVmaW5lZDtcblx0XHRvbGRJbnN0YW5jZT8uZGVzdHJveT8uKCk7XG5cdH1cblxuXHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KGRlc3Ryb3lEaXJlY3RpdmVJbnN0YW5jZSk7XG5cblx0ZnVuY3Rpb24gdXBkYXRlKG5ld0RpcmVjdGl2ZT86IEFnbm9zVUlEaXJlY3RpdmU8VD4sIG5ld1BhcmFtcz86IFQpIHtcblx0XHRpZiAobmV3RGlyZWN0aXZlICE9PSBkaXJlY3RpdmUpIHtcblx0XHRcdHZvaWQgZGVzdHJveURpcmVjdGl2ZUluc3RhbmNlKCk7XG5cdFx0XHRkaXJlY3RpdmUgPSBuZXdEaXJlY3RpdmU7XG5cdFx0XHRwYXJhbXMgPSBuZXdQYXJhbXM7XG5cdFx0XHRjYWxsRGlyZWN0aXZlKCk7XG5cdFx0fSBlbHNlIGlmIChuZXdQYXJhbXMgIT0gcGFyYW1zKSB7XG5cdFx0XHRwYXJhbXMgPSBuZXdQYXJhbXM7XG5cdFx0XHRpbnN0YW5jZT8udXBkYXRlPy4ocGFyYW1zIGFzIFQpO1xuXHRcdH1cblx0fVxuXG5cdGNhbGxEaXJlY3RpdmUoKTtcblx0cmV0dXJuIHt1cGRhdGV9O1xufTtcblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0aGF0IGFsbG93cyB0aGUgdXNlIG9mIGFub3RoZXIgZGlyZWN0aXZlIHdpdGggb3B0aW9uYWwgcGFyYW1ldGVycy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBkaXJlY3RpdmUuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZGlyZWN0aXZlIHVzZXMgYSBwcml2YXRlIGluc3RhbmNlIG9mIHtAbGluayB1c2VEaXJlY3RpdmVGb3JIb3N0fSB0byBtYW5hZ2UgdGhlIGRpcmVjdGl2ZSBhbmQgaXRzIHBhcmFtZXRlci5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnW2F1VXNlXScsXG59KVxuZXhwb3J0IGNsYXNzIFVzZURpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgnYXVVc2UnKVxuXHR1c2U6IEFnbm9zVUlEaXJlY3RpdmUgfCBEaXJlY3RpdmVBbmRQYXJhbTxUPiB8IHVuZGVmaW5lZDtcblxuXHRyZWFkb25seSAjdXNlRGlyZWN0aXZlID0gdXNlRGlyZWN0aXZlRm9ySG9zdDxUPigpO1xuXG5cdC8qKiBAaW50ZXJuYWwgKi9cblx0bmdPbkNoYW5nZXMoKSB7XG5cdFx0Y29uc3QgdXNlID0gdGhpcy51c2U7XG5cdFx0Y29uc3QgW2RpcmVjdGl2ZSwgcGFyYW1dID0gQXJyYXkuaXNBcnJheSh1c2UpID8gdXNlIDogW3VzZSBhcyBhbnldO1xuXHRcdHRoaXMuI3VzZURpcmVjdGl2ZS51cGRhdGUoZGlyZWN0aXZlLCBwYXJhbSk7XG5cdH1cbn1cblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0aGF0IGFsbG93cyB0aGUgdXNlIG9mIG11bHRpcGxlIGRpcmVjdGl2ZXMgb24gYSBob3N0IGVsZW1lbnQuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBBIHR1cGxlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBkaXJlY3RpdmVzIGFuZCB0aGVpciBvcHRpb25hbCBwYXJhbWV0ZXJzLlxuICovXG5ARGlyZWN0aXZlKHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2VsZWN0b3I6ICdbYXVVc2VNdWx0aV0nLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VNdWx0aURpcmVjdGl2ZTxUIGV4dGVuZHMgYW55W10+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblx0LyoqXG5cdCAqIEFuIGlucHV0IHByb3BlcnR5IHRoYXQgdGFrZXMgYSB0dXBsZSBvZiBkaXJlY3RpdmVzIGFuZCB0aGVpciBvcHRpb25hbCBwYXJhbWV0ZXJzLlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1VXNlTXVsdGknLCByZXF1aXJlZDogdHJ1ZX0pXG5cdHVzZU11bHRpITogRGlyZWN0aXZlc0FuZE9wdFBhcmFtPFQ+O1xuXG5cdHJlYWRvbmx5ICN1c2VEaXJlY3RpdmUgPSB1c2VEaXJlY3RpdmVGb3JIb3N0PERpcmVjdGl2ZXNBbmRPcHRQYXJhbTxUPj4oKTtcblxuXHQvKiogQGludGVybmFsICovXG5cdG5nT25DaGFuZ2VzKCkge1xuXHRcdHRoaXMuI3VzZURpcmVjdGl2ZS51cGRhdGUobXVsdGlEaXJlY3RpdmUsIHRoaXMudXNlTXVsdGkpO1xuXHR9XG59XG4iXX0=
|
package/esm2022/utils/stores.mjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, inject, signal } from '@angular/core';
|
|
2
|
-
import { ZoneWrapper } from './zone';
|
|
3
|
-
export * from '@agnos-ui/core/utils/stores';
|
|
4
|
-
/**
|
|
5
|
-
* Converts a Tansu `ReadableSignal` to an Angular `Signal`.
|
|
6
|
-
*
|
|
7
|
-
* This function wraps the provided Tansu signal in an Angular signal, ensuring that updates
|
|
8
|
-
* are properly handled within Angular's zone. It subscribes to the Tansu signal and updates
|
|
9
|
-
* the Angular signal with the received values. The equality function for the Angular signal
|
|
10
|
-
* is set to always return false, ensuring that every new value from the Tansu signal triggers
|
|
11
|
-
* an update.
|
|
12
|
-
*
|
|
13
|
-
* @template T - The type of the value emitted by the signals.
|
|
14
|
-
* @param tansuSignal - The Tansu signal to convert.
|
|
15
|
-
* @returns - The resulting Angular signal.
|
|
16
|
-
*/
|
|
17
|
-
export const toAngularSignal = (tansuSignal) => {
|
|
18
|
-
const zoneWrapper = inject(ZoneWrapper);
|
|
19
|
-
// The equality of objects from 2 sequential emissions is already checked in tansu signal.
|
|
20
|
-
// Here we'll always emit the value received from tansu signal, therefor the equality function
|
|
21
|
-
const res = signal(undefined, { equal: () => false });
|
|
22
|
-
const subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {
|
|
23
|
-
res.set(value);
|
|
24
|
-
zoneWrapper.planNgZoneRun();
|
|
25
|
-
});
|
|
26
|
-
inject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));
|
|
27
|
-
return res;
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3N0b3Jlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVuQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFJLFdBQThCLEVBQWEsRUFBRTtJQUMvRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsMEZBQTBGO0lBQzFGLDhGQUE4RjtJQUM5RixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBcUIsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDL0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNmLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sR0FBRyxDQUFDO0FBQ1osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1JlYWRhYmxlU2lnbmFsfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7U2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGVzdHJveVJlZiwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab25lV3JhcHBlcn0gZnJvbSAnLi96b25lJztcblxuZXhwb3J0ICogZnJvbSAnQGFnbm9zLXVpL2NvcmUvdXRpbHMvc3RvcmVzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBhIFRhbnN1IGBSZWFkYWJsZVNpZ25hbGAgdG8gYW4gQW5ndWxhciBgU2lnbmFsYC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHdyYXBzIHRoZSBwcm92aWRlZCBUYW5zdSBzaWduYWwgaW4gYW4gQW5ndWxhciBzaWduYWwsIGVuc3VyaW5nIHRoYXQgdXBkYXRlc1xuICogYXJlIHByb3Blcmx5IGhhbmRsZWQgd2l0aGluIEFuZ3VsYXIncyB6b25lLiBJdCBzdWJzY3JpYmVzIHRvIHRoZSBUYW5zdSBzaWduYWwgYW5kIHVwZGF0ZXNcbiAqIHRoZSBBbmd1bGFyIHNpZ25hbCB3aXRoIHRoZSByZWNlaXZlZCB2YWx1ZXMuIFRoZSBlcXVhbGl0eSBmdW5jdGlvbiBmb3IgdGhlIEFuZ3VsYXIgc2lnbmFsXG4gKiBpcyBzZXQgdG8gYWx3YXlzIHJldHVybiBmYWxzZSwgZW5zdXJpbmcgdGhhdCBldmVyeSBuZXcgdmFsdWUgZnJvbSB0aGUgVGFuc3Ugc2lnbmFsIHRyaWdnZXJzXG4gKiBhbiB1cGRhdGUuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgZW1pdHRlZCBieSB0aGUgc2lnbmFscy5cbiAqIEBwYXJhbSB0YW5zdVNpZ25hbCAtIFRoZSBUYW5zdSBzaWduYWwgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIC0gVGhlIHJlc3VsdGluZyBBbmd1bGFyIHNpZ25hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRvQW5ndWxhclNpZ25hbCA9IDxUPih0YW5zdVNpZ25hbDogUmVhZGFibGVTaWduYWw8VD4pOiBTaWduYWw8VD4gPT4ge1xuXHRjb25zdCB6b25lV3JhcHBlciA9IGluamVjdChab25lV3JhcHBlcik7XG5cdC8vIFRoZSBlcXVhbGl0eSBvZiBvYmplY3RzIGZyb20gMiBzZXF1ZW50aWFsIGVtaXNzaW9ucyBpcyBhbHJlYWR5IGNoZWNrZWQgaW4gdGFuc3Ugc2lnbmFsLlxuXHQvLyBIZXJlIHdlJ2xsIGFsd2F5cyBlbWl0IHRoZSB2YWx1ZSByZWNlaXZlZCBmcm9tIHRhbnN1IHNpZ25hbCwgdGhlcmVmb3IgdGhlIGVxdWFsaXR5IGZ1bmN0aW9uXG5cdGNvbnN0IHJlcyA9IHNpZ25hbCh1bmRlZmluZWQgYXMgYW55IGFzIFQsIHtlcXVhbDogKCkgPT4gZmFsc2V9KTtcblx0Y29uc3Qgc3Vic2NyaXB0aW9uID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZSh0YW5zdVNpZ25hbC5zdWJzY3JpYmUpKCh2YWx1ZSkgPT4ge1xuXHRcdHJlcy5zZXQodmFsdWUpO1xuXHRcdHpvbmVXcmFwcGVyLnBsYW5OZ1pvbmVSdW4oKTtcblx0fSk7XG5cdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShzdWJzY3JpcHRpb24pKTtcblx0cmV0dXJuIHJlcztcbn07XG4iXX0=
|