@agnos-ui/angular-headless 0.6.0-next.2 → 0.7.0-next.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.
Files changed (52) hide show
  1. package/fesm2022/agnos-ui-angular-headless.mjs +66 -48
  2. package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
  3. package/package.json +5 -5
  4. package/slot.directive.d.ts +3 -3
  5. package/types.d.ts +13 -5
  6. package/utils/coercion.d.ts +2 -2
  7. package/utils/directive.d.ts +4 -4
  8. package/utils/widget.d.ts +1 -1
  9. package/esm2022/agnos-ui-angular-headless.mjs +0 -5
  10. package/esm2022/config.mjs +0 -143
  11. package/esm2022/generated/components/accordion/index.mjs +0 -2
  12. package/esm2022/generated/components/alert/index.mjs +0 -2
  13. package/esm2022/generated/components/modal/index.mjs +0 -2
  14. package/esm2022/generated/components/pagination/index.mjs +0 -2
  15. package/esm2022/generated/components/progressbar/index.mjs +0 -2
  16. package/esm2022/generated/components/rating/index.mjs +0 -2
  17. package/esm2022/generated/components/select/index.mjs +0 -2
  18. package/esm2022/generated/components/slider/index.mjs +0 -2
  19. package/esm2022/generated/components/toast/index.mjs +0 -2
  20. package/esm2022/generated/components/tree/index.mjs +0 -2
  21. package/esm2022/generated/config.mjs +0 -2
  22. package/esm2022/generated/index.mjs +0 -34
  23. package/esm2022/generated/services/extendWidget.mjs +0 -2
  24. package/esm2022/generated/services/floatingUI.mjs +0 -2
  25. package/esm2022/generated/services/focustrack.mjs +0 -2
  26. package/esm2022/generated/services/hash.mjs +0 -2
  27. package/esm2022/generated/services/intersection.mjs +0 -2
  28. package/esm2022/generated/services/matchMedia.mjs +0 -2
  29. package/esm2022/generated/services/navManager.mjs +0 -2
  30. package/esm2022/generated/services/portal.mjs +0 -2
  31. package/esm2022/generated/services/resizeObserver.mjs +0 -2
  32. package/esm2022/generated/services/siblingsInert.mjs +0 -2
  33. package/esm2022/generated/services/transitions/baseTransitions.mjs +0 -2
  34. package/esm2022/generated/services/transitions/collapse.mjs +0 -2
  35. package/esm2022/generated/services/transitions/cssTransitions.mjs +0 -2
  36. package/esm2022/generated/services/transitions/simpleClassTransition.mjs +0 -2
  37. package/esm2022/generated/slot.directive.mjs +0 -2
  38. package/esm2022/generated/types.mjs +0 -2
  39. package/esm2022/generated/utils/coercion.mjs +0 -2
  40. package/esm2022/generated/utils/directive.mjs +0 -2
  41. package/esm2022/generated/utils/stores.mjs +0 -2
  42. package/esm2022/generated/utils/widget.mjs +0 -2
  43. package/esm2022/generated/utils/writables.mjs +0 -2
  44. package/esm2022/generated/utils/zone.mjs +0 -2
  45. package/esm2022/index.mjs +0 -5
  46. package/esm2022/slot.directive.mjs +0 -233
  47. package/esm2022/types.mjs +0 -38
  48. package/esm2022/utils/coercion.mjs +0 -32
  49. package/esm2022/utils/directive.mjs +0 -118
  50. package/esm2022/utils/stores.mjs +0 -29
  51. package/esm2022/utils/widget.mjs +0 -149
  52. 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=
@@ -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=