@agnos-ui/angular-headless 0.0.1-alpha.1 → 0.0.1-alpha.4
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/esm2022/lib/config.mjs +102 -0
- package/esm2022/lib/slot.directive.mjs +5 -5
- package/esm2022/lib/slotDefault.directive.mjs +4 -4
- package/esm2022/lib/slotTypes.mjs +7 -0
- package/esm2022/lib/use.directive.mjs +32 -27
- package/esm2022/lib/utils.mjs +92 -92
- package/esm2022/public-api.mjs +11 -1
- package/fesm2022/agnos-ui-angular-headless.mjs +240 -124
- package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
- package/lib/config.d.ts +50 -0
- package/lib/slot.directive.d.ts +1 -1
- package/lib/slotDefault.directive.d.ts +1 -1
- package/lib/slotTypes.d.ts +18 -0
- package/lib/use.directive.d.ts +6 -4
- package/lib/utils.d.ts +13 -91
- package/package.json +5 -4
- package/public-api.d.ts +21 -3
package/esm2022/lib/utils.mjs
CHANGED
|
@@ -1,90 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { computed,
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
constructor(component, templateProp) {
|
|
6
|
-
this.component = component;
|
|
7
|
-
this.templateProp = templateProp;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Dependency Injection token which can be used to provide or inject the widgets default configuration store.
|
|
12
|
-
*/
|
|
13
|
-
export const widgetsConfigInjectionToken = new InjectionToken('widgetsConfig');
|
|
14
|
-
/**
|
|
15
|
-
* Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level
|
|
16
|
-
* in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form
|
|
17
|
-
* the parent configuration.
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* The configuration is computed from the parent configuration in two steps:
|
|
21
|
-
* - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).
|
|
22
|
-
* If adaptParentConfig is not specified, this step is skipped.
|
|
23
|
-
* - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains
|
|
24
|
-
* an empty object (i.e. no property from the parent is overridden). It can be changed by calling set on the store returned by
|
|
25
|
-
* {@link injectWidgetsConfig}.
|
|
26
|
-
*
|
|
27
|
-
* @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration
|
|
28
|
-
* defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets
|
|
29
|
-
* default configuration to be used.
|
|
30
|
-
* It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.
|
|
31
|
-
* It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.
|
|
32
|
-
* It is also called in an Angular injection context, so it can call the Angular inject function to get and use dependencies from the
|
|
33
|
-
* Angular dependency injection system.
|
|
34
|
-
|
|
35
|
-
* @returns DI provider to be included a list of `providers` (for example at a component level or
|
|
36
|
-
* any other level of the Angular dependency injection system)
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* @Component({
|
|
41
|
-
* // ...
|
|
42
|
-
* providers: [
|
|
43
|
-
* provideWidgetsConfig((parentConfig) => {
|
|
44
|
-
* // first step configuration: transforms the parent configuration
|
|
45
|
-
* parentConfig.rating = parentConfig.rating ?? {};
|
|
46
|
-
* parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
|
|
47
|
-
* return parentConfig;
|
|
48
|
-
* })
|
|
49
|
-
* ]
|
|
50
|
-
* })
|
|
51
|
-
* class MyComponent {
|
|
52
|
-
* widgetsConfig = injectWidgetsConfig();
|
|
53
|
-
* constructor() {
|
|
54
|
-
* this.widgetsConfig.set({
|
|
55
|
-
* // second step configuration: overrides the parent configuration
|
|
56
|
-
* rating: {
|
|
57
|
-
* slotStar: MyCustomSlotStar
|
|
58
|
-
* }
|
|
59
|
-
* });
|
|
60
|
-
* }
|
|
61
|
-
* // ...
|
|
62
|
-
* }
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
export const provideWidgetsConfig = (adaptParentConfig) => ({
|
|
66
|
-
provide: widgetsConfigInjectionToken,
|
|
67
|
-
useFactory: (parent) => {
|
|
68
|
-
if (adaptParentConfig) {
|
|
69
|
-
const injector = inject(Injector);
|
|
70
|
-
const originalAdaptParentConfig = adaptParentConfig;
|
|
71
|
-
adaptParentConfig = (value) => runInInjectionContext(injector, () => originalAdaptParentConfig(value));
|
|
72
|
-
}
|
|
73
|
-
return createWidgetsConfig(parent ?? undefined, adaptParentConfig);
|
|
74
|
-
},
|
|
75
|
-
deps: [[new SkipSelf(), new Optional(), widgetsConfigInjectionToken]],
|
|
76
|
-
});
|
|
77
|
-
/**
|
|
78
|
-
* Returns the widgets default configuration store that was provided in the current injection context.
|
|
79
|
-
* Throws if the no widgets default configuration store was provided.
|
|
80
|
-
*
|
|
81
|
-
* @remarks
|
|
82
|
-
* This function must be called from an injection context, such as a constructor, a factory function, a field initializer or
|
|
83
|
-
* a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.
|
|
84
|
-
*
|
|
85
|
-
* @returns the widgets default configuration store.
|
|
86
|
-
*/
|
|
87
|
-
export const injectWidgetsConfig = () => inject(widgetsConfigInjectionToken);
|
|
1
|
+
import { toReadableStore } from '@agnos-ui/core';
|
|
2
|
+
import { computed, writable } from '@amadeus-it-group/tansu';
|
|
3
|
+
import { DestroyRef, Injectable, NgZone, inject, signal } from '@angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
88
5
|
const createPatchSlots = (set) => {
|
|
89
6
|
let lastValue = {};
|
|
90
7
|
return (object) => {
|
|
@@ -106,12 +23,95 @@ const createPatchSlots = (set) => {
|
|
|
106
23
|
}
|
|
107
24
|
};
|
|
108
25
|
};
|
|
109
|
-
|
|
110
|
-
|
|
26
|
+
const noop = () => { };
|
|
27
|
+
const identity = (a) => a;
|
|
28
|
+
const createObjectWrapper = (wrap) => (object) => {
|
|
29
|
+
if (!object || typeof object !== 'object') {
|
|
30
|
+
return object;
|
|
31
|
+
}
|
|
32
|
+
const res = {};
|
|
33
|
+
for (const key of Object.keys(object)) {
|
|
34
|
+
res[key] = wrap(object[key]);
|
|
35
|
+
}
|
|
36
|
+
return res;
|
|
37
|
+
};
|
|
38
|
+
const createReturnValueWrapper = (wrapReturnValue, wrapResult) => (fn) => wrapResult(typeof fn === 'function' ? ((...args) => wrapReturnValue(fn(...args))) : fn);
|
|
39
|
+
class ZoneWrapper {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.#zone = inject(NgZone);
|
|
42
|
+
this.#hasZone = this.#zone.run(() => NgZone.isInAngularZone()); // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)
|
|
43
|
+
this.#runNeeded = false;
|
|
44
|
+
this.#runPlanned = false;
|
|
45
|
+
this.planNgZoneRun = this.#hasZone
|
|
46
|
+
? () => {
|
|
47
|
+
if (this.#zone.isStable) {
|
|
48
|
+
this.#runNeeded = true;
|
|
49
|
+
if (!this.#runPlanned) {
|
|
50
|
+
this.#runPlanned = true;
|
|
51
|
+
(async () => {
|
|
52
|
+
await 0;
|
|
53
|
+
this.#runPlanned = false;
|
|
54
|
+
if (this.#runNeeded) {
|
|
55
|
+
this.ngZoneRun(noop);
|
|
56
|
+
}
|
|
57
|
+
})();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
: noop;
|
|
62
|
+
this.insideNgZone = this.#hasZone
|
|
63
|
+
? (fn) => (typeof fn === 'function' ? ((...args) => this.ngZoneRun(() => fn(...args))) : fn)
|
|
64
|
+
: identity;
|
|
65
|
+
this.insideNgZoneWrapFunctionsObject = createObjectWrapper(this.insideNgZone);
|
|
66
|
+
this.outsideNgZone = this.#hasZone
|
|
67
|
+
? (fn) => (typeof fn === 'function' ? ((...args) => this.#zone.runOutsideAngular(() => fn(...args))) : fn)
|
|
68
|
+
: identity;
|
|
69
|
+
this.outsideNgZoneWrapFunctionsObject = createObjectWrapper(this.outsideNgZone);
|
|
70
|
+
this.outsideNgZoneWrapDirective = createReturnValueWrapper(this.outsideNgZoneWrapFunctionsObject, this.outsideNgZone);
|
|
71
|
+
this.outsideNgZoneWrapDirectivesObject = createObjectWrapper(this.outsideNgZoneWrapDirective);
|
|
72
|
+
}
|
|
73
|
+
#zone;
|
|
74
|
+
#hasZone; // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)
|
|
75
|
+
#runNeeded;
|
|
76
|
+
#runPlanned;
|
|
77
|
+
ngZoneRun(fn) {
|
|
78
|
+
this.#runNeeded = false;
|
|
79
|
+
return this.#zone.run(fn);
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZoneWrapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
82
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZoneWrapper, providedIn: 'root' }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZoneWrapper, decorators: [{
|
|
85
|
+
type: Injectable,
|
|
86
|
+
args: [{
|
|
87
|
+
providedIn: 'root',
|
|
88
|
+
}]
|
|
89
|
+
}] });
|
|
90
|
+
export const toAngularSignal = (tansuSignal) => {
|
|
91
|
+
const zoneWrapper = inject(ZoneWrapper);
|
|
92
|
+
const res = signal(undefined);
|
|
93
|
+
const subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {
|
|
94
|
+
res.set(value);
|
|
95
|
+
zoneWrapper.planNgZoneRun();
|
|
96
|
+
});
|
|
97
|
+
inject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));
|
|
98
|
+
return res;
|
|
99
|
+
};
|
|
100
|
+
export const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConfig, events, }) => {
|
|
101
|
+
const zoneWrapper = inject(ZoneWrapper);
|
|
102
|
+
factory = zoneWrapper.outsideNgZone(factory);
|
|
103
|
+
const defaultConfig$ = toReadableStore(defaultConfig);
|
|
111
104
|
const slots$ = writable({});
|
|
112
|
-
|
|
105
|
+
events = zoneWrapper.insideNgZoneWrapFunctionsObject(events);
|
|
106
|
+
const widget = factory({
|
|
107
|
+
config: computed(() => ({ ...defaultConfig$(), ...widgetConfig?.(), ...slots$(), ...events })),
|
|
108
|
+
});
|
|
113
109
|
return {
|
|
114
|
-
...
|
|
110
|
+
...widget,
|
|
111
|
+
patch: zoneWrapper.outsideNgZone(widget.patch),
|
|
112
|
+
directives: zoneWrapper.outsideNgZoneWrapDirectivesObject(widget.directives),
|
|
113
|
+
actions: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.actions),
|
|
114
|
+
api: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.api),
|
|
115
115
|
patchSlots: createPatchSlots(slots$.set),
|
|
116
116
|
};
|
|
117
117
|
};
|
|
@@ -124,4 +124,4 @@ export function patchSimpleChanges(patchFn, changes) {
|
|
|
124
124
|
}
|
|
125
125
|
patchFn(obj);
|
|
126
126
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9oZWFkbGVzcy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXJFLE9BQU8sRUFBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsWUFBNEIsU0FBa0IsRUFBa0IsWUFBZTtRQUFuRCxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQWtCLGlCQUFZLEdBQVosWUFBWSxDQUFHO0lBQUcsQ0FBQztDQUNuRjtBQTRCRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUFvQyxlQUFlLENBQUMsQ0FBQztBQUVsSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrREc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNuQyxpQkFBNEYsRUFDMUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsT0FBTyxFQUFFLDJCQUEyQjtJQUNwQyxVQUFVLEVBQUUsQ0FBQyxNQUFnRCxFQUFFLEVBQUU7UUFDaEUsSUFBSSxpQkFBaUIsRUFBRTtZQUN0QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsTUFBTSx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQztZQUNwRCxpQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFD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bXBvcnQgdHlwZSB7XG5cdFNsb3RDb250ZW50IGFzIENvcmVTbG90Q29udGVudCxcblx0V2lkZ2V0c0NvbmZpZyBhcyBDb3JlV2lkZ2V0c0NvbmZpZyxcblx0UGFydGlhbDJMZXZlbHMsXG5cdFdpZGdldCxcblx0V2lkZ2V0RmFjdG9yeSxcblx0V2lkZ2V0UHJvcHMsXG5cdFdpZGdldFNsb3RDb250ZXh0LFxuXHRXaWRnZXRTdGF0ZSxcblx0V2lkZ2V0c0NvbmZpZ1N0b3JlLFxufSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQge2NyZWF0ZVdpZGdldHNDb25maWd9IGZyb20gJ0BhZ25vcy11aS9jb3JlJztcbmltcG9ydCB0eXBlIHtSZWFkYWJsZVNpZ25hbCwgU3Vic2NyaWJhYmxlU3RvcmV9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB7Y29tcHV0ZWQsIHJlYWRhYmxlLCB3cml0YWJsZX0gZnJvbSAnQGFtYWRldXMtaXQtZ3JvdXAvdGFuc3UnO1xuaW1wb3J0IHR5cGUge0ZhY3RvcnlQcm92aWRlciwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9wdGlvbmFsLCBTa2lwU2VsZiwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIEsgZXh0ZW5kcyBzdHJpbmcsIFQgZXh0ZW5kcyB7W2tleSBpbiBLXTogVGVtcGxhdGVSZWY8UHJvcHM+fT4ge1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPFQ+LCBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVQcm9wOiBLKSB7fVxufVxuXG5leHBvcnQgdHlwZSBTbG90Q29udGVudDxQcm9wcyBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gPVxuXHR8IENvcmVTbG90Q29udGVudDxQcm9wcz5cblx0fCBUZW1wbGF0ZVJlZjxQcm9wcz5cblx0fCBUeXBlPHVua25vd24+XG5cdHwgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIGFueSwgYW55PjtcblxuZXhwb3J0IHR5cGUgQWRhcHRTbG90Q29udGVudFByb3BzPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSBQcm9wcyBleHRlbmRzIFdpZGdldFNsb3RDb250ZXh0PGluZmVyIFU+XG5cdD8gV2lkZ2V0U2xvdENvbnRleHQ8QWRhcHRXaWRnZXRTbG90czxVPj4gJiBBZGFwdFByb3BzU2xvdHM8T21pdDxQcm9wcywga2V5b2YgV2lkZ2V0U2xvdENvbnRleHQ8YW55Pj4+XG5cdDogQWRhcHRQcm9wc1Nsb3RzPFByb3BzPjtcblxuZXhwb3J0IHR5cGUgQWRhcHRQcm9wc1Nsb3RzPFByb3BzPiA9IE9taXQ8UHJvcHMsIGBzbG90JHtzdHJpbmd9YD4gJiB7XG5cdFtLIGluIGtleW9mIFByb3BzICYgYHNsb3Qke3N0cmluZ31gXTogUHJvcHNbS10gZXh0ZW5kcyBDb3JlU2xvdENvbnRlbnQ8aW5mZXIgVT4gPyBTbG90Q29udGVudDxBZGFwdFNsb3RDb250ZW50UHJvcHM8VT4+IDogUHJvcHNbS107XG59O1xuXG5leHBvcnQgdHlwZSBBZGFwdFdpZGdldFNsb3RzPFcgZXh0ZW5kcyBXaWRnZXQ+ID0gV2lkZ2V0PFxuXHRBZGFwdFByb3BzU2xvdHM8V2lkZ2V0UHJvcHM8Vz4+LFxuXHRBZGFwdFByb3BzU2xvdHM8V2lkZ2V0U3RhdGU8Vz4+LFxuXHRXWydhcGknXSxcblx0V1snYWN0aW9ucyddLFxuXHRXWydkaXJlY3RpdmVzJ11cbj47XG5cbmV4cG9ydCB0eXBlIFdpZGdldHNDb25maWcgPSB7XG5cdFtXaWRnZXROYW1lIGluIGtleW9mIENvcmVXaWRnZXRzQ29uZmlnXTogQWRhcHRQcm9wc1Nsb3RzPENvcmVXaWRnZXRzQ29uZmlnW1dpZGdldE5hbWVdPjtcbn07XG5cbi8qKlxuICogRGVwZW5kZW5jeSBJbmplY3Rpb24gdG9rZW4gd2hpY2ggY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBvciBpbmplY3QgdGhlIHdpZGdldHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIHN0b3JlLlxuICovXG5leHBvcnQgY29uc3Qgd2lkZ2V0c0NvbmZpZ0luamVjdGlvblRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFdpZGdldHNDb25maWdTdG9yZTxXaWRnZXRzQ29uZmlnPj4oJ3dpZGdldHNDb25maWcnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcHJvdmlkZXIgb2Ygd2lkZ2V0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdGhhdCBpbmhlcml0cyBmcm9tIGFueSB3aWRnZXRzIGRlZmF1bHQgY29uZmlndXJhdGlvbiBhbHJlYWR5IGRlZmluZWQgYXQgYW4gdXBwZXIgbGV2ZWxcbiAqIGluIHRoZSBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbS4gSXQgY29udGFpbnMgaXRzIG93biBzZXQgb2Ygd2lkZ2V0cyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBvdmVycmlkZSB0aGUgc2FtZSBwcm9wZXJ0aWVzIGZvcm1cbiAqIHRoZSBwYXJlbnQgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGNvbmZpZ3VyYXRpb24gaXMgY29tcHV0ZWQgZnJvbSB0aGUgcGFyZW50IGNvbmZpZ3VyYXRpb24gaW4gdHdvIHN0ZXBzOlxuICogLSBmaXJzdCBzdGVwOiB0aGUgcGFyZW50IGNvbmZpZ3VyYXRpb24gaXMgdHJhbnNmb3JtZWQgYnkgdGhlIGFkYXB0UGFyZW50Q29uZmlnIGZ1bmN0aW9uIChpZiBzcGVjaWZpZWQpLlxuICogSWYgYWRhcHRQYXJlbnRDb25maWcgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBzdGVwIGlzIHNraXBwZWQuXG4gKiAtIHNlY29uZCBzdGVwOiB0aGUgY29uZmlndXJhdGlvbiBmcm9tIHN0ZXAgMSBpcyBtZXJnZWQgKDItbGV2ZWxzIGRlZXApIHdpdGggdGhlIG93biQgc3RvcmUuIFRoZSBvd24kIHN0b3JlIGluaXRpYWxseSBjb250YWluc1xuICogYW4gZW1wdHkgb2JqZWN0IChpLmUuIG5vIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudCBpcyBvdmVycmlkZGVuKS4gSXQgY2FuIGJlIGNoYW5nZWQgYnkgY2FsbGluZyBzZXQgb24gdGhlIHN0b3JlIHJldHVybmVkIGJ5XG4gKiB7QGxpbmsgaW5qZWN0V2lkZ2V0c0NvbmZpZ30uXG4gKlxuICogQHBhcmFtIGFkYXB0UGFyZW50Q29uZmlnIC0gb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBhIDItbGV2ZWxzIGNvcHkgb2YgdGhlIHdpZGdldHMgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gKiBkZWZpbmVkIGF0IGFuIHVwcGVyIGxldmVsIGluIHRoZSBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbSAob3IgYW4gZW1wdHkgb2JqZWN0IGlmIHRoZXJlIGlzIG5vbmUpIGFuZCByZXR1cm5zIHRoZSB3aWRnZXRzXG4gKiBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdG8gYmUgdXNlZC5cbiAqIEl0IGlzIGNhbGxlZCBvbmx5IGlmIHRoZSBjb25maWd1cmF0aW9uIGlzIG5lZWRlZCwgYW5kIHdhcyBub3QgeWV0IGNvbXB1dGVkIGZvciB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcGFyZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBJdCBpcyBjYWxsZWQgaW4gYSB0YW5zdSByZWFjdGl2ZSBjb250ZXh0LCBzbyBpdCBjYW4gdXNlIGFueSB0YW5zdSBzdG9yZSBhbmQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gaWYgdGhvc2Ugc3RvcmVzIGNoYW5nZS5cbiAqIEl0IGlzIGFsc28gY2FsbGVkIGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQsIHNvIGl0IGNhbiBjYWxsIHRoZSBBbmd1bGFyIGluamVjdCBmdW5jdGlvbiB0byBnZXQgYW5kIHVzZSBkZXBlbmRlbmNpZXMgZnJvbSB0aGVcbiAqIEFuZ3VsYXIgZGVwZW5kZW5jeSBpbmplY3Rpb24gc3lzdGVtLlxuXG4gKiBAcmV0dXJucyBESSBwcm92aWRlciB0byBiZSBpbmNsdWRlZCBhIGxpc3Qgb2YgYHByb3ZpZGVyc2AgKGZvciBleGFtcGxlIGF0IGEgY29tcG9uZW50IGxldmVsIG9yXG4gKiBhbnkgb3RoZXIgbGV2ZWwgb2YgdGhlIEFuZ3VsYXIgZGVwZW5kZW5jeSBpbmplY3Rpb24gc3lzdGVtKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHtcbiAqICAgLy8gLi4uXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVXaWRnZXRzQ29uZmlnKChwYXJlbnRDb25maWcpID0+IHtcbiAqICAgICAgIC8vIGZpcnN0IHN0ZXAgY29uZmlndXJhdGlvbjogdHJhbnNmb3JtcyB0aGUgcGFyZW50IGNvbmZpZ3VyYXRpb25cbiAqICAgICAgIHBhcmVudENvbmZpZy5yYXRpbmcgPSBwYXJlbnRDb25maWcucmF0aW5nID8/IHt9O1xuICogICAgICAgcGFyZW50Q29uZmlnLnJhdGluZy5jbGFzc05hbWUgPSBgJHtwYXJlbnRDb25maWcucmF0aW5nLmNsYXNzTmFtZSA/PyAnJ30gbXktcmF0aW5nLWV4dHJhLWNsYXNzYFxuICogICAgICAgcmV0dXJuIHBhcmVudENvbmZpZztcbiAqICAgICB9KVxuICogICBdXG4gKiB9KVxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICB3aWRnZXRzQ29uZmlnID0gaW5qZWN0V2lkZ2V0c0NvbmZpZygpO1xuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICB0aGlzLndpZGdldHNDb25maWcuc2V0KHtcbiAqICAgICAgIC8vIHNlY29uZCBzdGVwIGNvbmZpZ3VyYXRpb246IG92ZXJyaWRlcyB0aGUgcGFyZW50IGNvbmZpZ3VyYXRpb25cbiAqICAgICAgIHJhdGluZzoge1xuICogICAgICAgICBzbG90U3RhcjogTXlDdXN0b21TbG90U3RhclxuICogICAgICAgfVxuICogICAgIH0pO1xuICogICB9XG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBwcm92aWRlV2lkZ2V0c0NvbmZpZyA9IChcblx0YWRhcHRQYXJlbnRDb25maWc/OiAoY29uZmlnOiBQYXJ0aWFsMkxldmVsczxXaWRnZXRzQ29uZmlnPikgPT4gUGFydGlhbDJMZXZlbHM8V2lkZ2V0c0NvbmZpZz5cbik6IEZhY3RvcnlQcm92aWRlciA9PiAoe1xuXHRwcm92aWRlOiB3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4sXG5cdHVzZUZhY3Rvcnk6IChwYXJlbnQ6IFdpZGdldHNDb25maWdTdG9yZTxXaWRnZXRzQ29uZmlnPiB8IG51bGwpID0+IHtcblx0XHRpZiAoYWRhcHRQYXJlbnRDb25maWcpIHtcblx0XHRcdGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0XHRcdGNvbnN0IG9yaWdpbmFsQWRhcHRQYXJlbnRDb25maWcgPSBhZGFwdFBhcmVudENvbmZpZztcblx0XHRcdGFkYXB0UGFyZW50Q29uZmlnID0gKHZhbHVlKSA9PiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IG9yaWdpbmFsQWRhcHRQYXJlbnRDb25maWcodmFsdWUpKTtcblx0XHR9XG5cdFx0cmV0dXJuIGNyZWF0ZVdpZGdldHNDb25maWcocGFyZW50ID8/IHVuZGVmaW5lZCwgYWRhcHRQYXJlbnRDb25maWcpO1xuXHR9LFxuXHRkZXBzOiBbW25ldyBTa2lwU2VsZigpLCBuZXcgT3B0aW9uYWwoKSwgd2lkZ2V0c0NvbmZpZ0luamVjdGlvblRva2VuXV0sXG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB3aWRnZXRzIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzdG9yZSB0aGF0IHdhcyBwcm92aWRlZCBpbiB0aGUgY3VycmVudCBpbmplY3Rpb24gY29udGV4dC5cbiAqIFRocm93cyBpZiB0aGUgbm8gd2lkZ2V0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc3RvcmUgd2FzIHByb3ZpZGVkLlxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGZyb20gYW4gaW5qZWN0aW9uIGNvbnRleHQsIHN1Y2ggYXMgYSBjb25zdHJ1Y3RvciwgYSBmYWN0b3J5IGZ1bmN0aW9uLCBhIGZpZWxkIGluaXRpYWxpemVyIG9yXG4gKiBhIGZ1bmN0aW9uIHVzZWQgd2l0aCB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL3J1bkluSW5qZWN0aW9uQ29udGV4dCB8IHJ1bkluSW5qZWN0aW9uQ29udGV4dH0uXG4gKlxuICogQHJldHVybnMgdGhlIHdpZGdldHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIHN0b3JlLlxuICovXG5leHBvcnQgY29uc3QgaW5qZWN0V2lkZ2V0c0NvbmZpZyA9ICgpID0+IGluamVjdCh3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4pO1xuXG5jb25zdCBjcmVhdGVQYXRjaFNsb3RzID0gPFQgZXh0ZW5kcyBvYmplY3Q+KHNldDogKG9iamVjdDogUGFydGlhbDxUPikgPT4gdm9pZCkgPT4ge1xuXHRsZXQgbGFzdFZhbHVlOiBQYXJ0aWFsPFQ+ID0ge307XG5cdHJldHVybiAob2JqZWN0OiBUKSA9PiB7XG5cdFx0Y29uc3QgbmV3VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0XHRsZXQgaGFzQ2hhbmdlID0gZmFsc2U7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSBhcyAoc3RyaW5nICYga2V5b2YgVClbXSkge1xuXHRcdFx0Y29uc3Qgb2JqZWN0S2V5ID0gKG9iamVjdCBhcyBhbnkpW2tleV07XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IG51bGwpIHtcblx0XHRcdFx0Ly8gb25seSB1c2UgZGVmaW5lZCBzbG90c1xuXHRcdFx0XHRuZXdWYWx1ZVtrZXldID0gb2JqZWN0S2V5O1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9iamVjdEtleSAhPSBsYXN0VmFsdWVba2V5XSkge1xuXHRcdFx0XHRoYXNDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaGFzQ2hhbmdlKSB7XG5cdFx0XHRsYXN0VmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRcdHNldChuZXdWYWx1ZSk7XG5cdFx0fVxuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aFBhdGNoU2xvdHM8VyBleHRlbmRzIFdpZGdldD4gPSBBZGFwdFdpZGdldFNsb3RzPFc+ICYge1xuXHRwYXRjaFNsb3RzKHNsb3RzOiB7XG5cdFx0W0sgaW4ga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gJiBgc2xvdCR7c3RyaW5nfWBdOiBXaWRnZXRQcm9wczxXPltLXSBleHRlbmRzIENvcmVTbG90Q29udGVudDxpbmZlciBVPlxuXHRcdFx0PyBUZW1wbGF0ZVJlZjxBZGFwdFNsb3RDb250ZW50UHJvcHM8VT4+IHwgdW5kZWZpbmVkXG5cdFx0XHQ6IG5ldmVyO1xuXHR9KTogdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWxsV2lkZ2V0RmFjdG9yeSA9IDxXIGV4dGVuZHMgV2lkZ2V0Pihcblx0ZmFjdG9yeTogV2lkZ2V0RmFjdG9yeTxXPixcblx0d2lkZ2V0TmFtZToga2V5b2YgV2lkZ2V0c0NvbmZpZyB8IG51bGwsXG5cdGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QWRhcHRQcm9wc1Nsb3RzPFdpZGdldFByb3BzPFc+Pj4gfCBSZWFkYWJsZVNpZ25hbDxQYXJ0aWFsPEFkYXB0UHJvcHNTbG90czxXaWRnZXRQcm9wczxXPj4+PiA9IHt9XG4pOiBXaXRoUGF0Y2hTbG90czxXPiA9PiB7XG5cdGNvbnN0IGRlZmF1bHRDb25maWdTdG9yZSA9IHR5cGVvZiBkZWZhdWx0Q29uZmlnICE9PSAnZnVuY3Rpb24nID8gcmVhZGFibGUoZGVmYXVsdENvbmZpZykgOiBkZWZhdWx0Q29uZmlnO1xuXHRjb25zdCBzbG90cyQgPSB3cml0YWJsZSh7fSk7XG5cdGNvbnN0IHdpZGdldHNDb25maWcgPSB3aWRnZXROYW1lID8gaW5qZWN0KHdpZGdldHNDb25maWdJbmplY3Rpb25Ub2tlbiwge29wdGlvbmFsOiB0cnVlfSkgOiB1bmRlZmluZWQ7XG5cdHJldHVybiB7XG5cdFx0Li4uKGZhY3RvcnkoXG5cdFx0XHRjb21wdXRlZCgoKSA9PiAoey4uLihkZWZhdWx0Q29uZmlnU3RvcmUoKSBhcyBhbnkpLCAuLi4od2lkZ2V0TmFtZSA/IHdpZGdldHNDb25maWc/LigpW3dpZGdldE5hbWVdIDogdW5kZWZpbmVkKSwgLi4uc2xvdHMkKCl9KSlcblx0XHQpIGFzIGFueSksXG5cdFx0cGF0Y2hTbG90czogY3JlYXRlUGF0Y2hTbG90cyhzbG90cyQuc2V0KSxcblx0fTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFNpbXBsZUNoYW5nZXMocGF0Y2hGbjogKG9iajogYW55KSA9PiB2b2lkLCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdGNvbnN0IG9iajogYW55ID0ge307XG5cdGZvciAoY29uc3QgW2tleSwgc2ltcGxlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyhjaGFuZ2VzKSkge1xuXHRcdGlmIChzaW1wbGVDaGFuZ2UgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0b2JqW2tleV0gPSBzaW1wbGVDaGFuZ2UuY3VycmVudFZhbHVlO1xuXHRcdH1cblx0fVxuXHRwYXRjaEZuKG9iaik7XG59XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RTdG9yZVR5cGU8VD4gPSBUIGV4dGVuZHMgU3Vic2NyaWJhYmxlU3RvcmU8aW5mZXIgVT4gPyBVIDogbmV2ZXI7XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9oZWFkbGVzcy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNELE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUc3RSxNQUFNLGdCQUFnQixHQUFHLENBQW1CLEdBQWlDLEVBQUUsRUFBRTtJQUNoRixJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sUUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUIsRUFBRTtZQUM5RCxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUN0Qix5QkFBeUI7Z0JBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7YUFDMUI7WUFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDakI7U0FDRDtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2QsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDZDtJQUNGLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUN0QixNQUFNLFFBQVEsR0FBRyxDQUFJLENBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBSWhDLE1BQU0sbUJBQW1CLEdBQ3hCLENBQUMsSUFBYSxFQUFXLEVBQUUsQ0FDM0IsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzFDLE9BQU8sTUFBTSxDQUFDO0tBQ2Q7SUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3RDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUUsTUFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUVILE1BQU0sd0JBQXdCLEdBQzdCLENBQUMsZUFBd0IsRUFBRSxVQUFtQixFQUFXLEVBQUUsQ0FDM0QsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNOLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFMUcsTUFHTSxXQUFXO0lBSGpCO1FBSVUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyx3RkFBd0Y7UUFDNUosZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixrQkFBYSxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQzVCLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzt3QkFDeEIsQ0FBQyxLQUFLLElBQUksRUFBRTs0QkFDWCxNQUFNLENBQUMsQ0FBQzs0QkFDUixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzs0QkFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDOzZCQUNyQjt3QkFDRixDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUNMO2lCQUNEO1lBQ0QsQ0FBQztZQUNILENBQUMsQ0FBQyxJQUFJLENBQUM7UUFPUixpQkFBWSxHQUFZLElBQUksQ0FBQyxRQUFRO1lBQ3BDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ1osb0NBQStCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpFLGtCQUFhLEdBQVksSUFBSSxDQUFDLFFBQVE7WUFDckMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFILENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFWixxQ0FBZ0MsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0UsK0JBQTBCLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqSCxzQ0FBaUMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUN6RjtJQXhDUyxLQUFLLENBQWtCO0lBQ3ZCLFFBQVEsQ0FBa0QsQ0FBQyx3RkFBd0Y7SUFDNUosVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBUztJQW9CcEIsU0FBUyxDQUFJLEVBQVc7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQTNCSSxXQUFXO21IQUFYLFdBQVcsY0FGSixNQUFNOzs0RkFFYixXQUFXO2tCQUhoQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjs7QUE0Q0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUksV0FBOEIsRUFBYSxFQUFFO0lBQy9FLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBcUIsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDL0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNmLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sR0FBRyxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBUUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBbUIsRUFDN0QsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBQ1osTUFBTSxHQU1OLEVBQXFCLEVBQUU7SUFDdkIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsTUFBTSxHQUFHLFdBQVcsQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDdEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFJLE1BQWtDLEVBQUMsQ0FBQyxDQUFDO0tBQ3pILENBQUMsQ0FBQztJQUNILE9BQU87UUFDTixHQUFHLE1BQU07UUFDVCxLQUFLLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzlDLFVBQVUsRUFBRSxXQUFXLENBQUMsaUNBQWlDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUM1RSxPQUFPLEVBQUUsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDckUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzdELFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQ3hDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBMkIsRUFBRSxPQUFzQjtJQUNyRixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDMUQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1NBQ3JDO0tBQ0Q7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1dpZGdldCwgV2lkZ2V0RmFjdG9yeSwgV2lkZ2V0UHJvcHN9IGZyb20gJ0BhZ25vcy11aS9jb3JlJztcbmltcG9ydCB7dG9SZWFkYWJsZVN0b3JlfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQgdHlwZSB7UmVhZGFibGVTaWduYWx9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB7Y29tcHV0ZWQsIHdyaXRhYmxlfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7U2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Rlc3Ryb3lSZWYsIEluamVjdGFibGUsIE5nWm9uZSwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1Nsb3RDb250ZW50fSBmcm9tICcuL3Nsb3RUeXBlcyc7XG5cbmNvbnN0IGNyZWF0ZVBhdGNoU2xvdHMgPSA8VCBleHRlbmRzIG9iamVjdD4oc2V0OiAob2JqZWN0OiBQYXJ0aWFsPFQ+KSA9PiB2b2lkKSA9PiB7XG5cdGxldCBsYXN0VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0cmV0dXJuIChvYmplY3Q6IFQpID0+IHtcblx0XHRjb25zdCBuZXdWYWx1ZTogUGFydGlhbDxUPiA9IHt9O1xuXHRcdGxldCBoYXNDaGFuZ2UgPSBmYWxzZTtcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpIGFzIChzdHJpbmcgJiBrZXlvZiBUKVtdKSB7XG5cdFx0XHRjb25zdCBvYmplY3RLZXkgPSAob2JqZWN0IGFzIGFueSlba2V5XTtcblx0XHRcdGlmIChvYmplY3RLZXkgIT0gbnVsbCkge1xuXHRcdFx0XHQvLyBvbmx5IHVzZSBkZWZpbmVkIHNsb3RzXG5cdFx0XHRcdG5ld1ZhbHVlW2tleV0gPSBvYmplY3RLZXk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IGxhc3RWYWx1ZVtrZXldKSB7XG5cdFx0XHRcdGhhc0NoYW5nZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChoYXNDaGFuZ2UpIHtcblx0XHRcdGxhc3RWYWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdFx0c2V0KG5ld1ZhbHVlKTtcblx0XHR9XG5cdH07XG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5jb25zdCBpZGVudGl0eSA9IDxUPihhOiBUKSA9PiBhO1xuXG50eXBlIFdyYXBwZXIgPSA8VD4oZm46IFQpID0+IFQ7XG5cbmNvbnN0IGNyZWF0ZU9iamVjdFdyYXBwZXIgPVxuXHQod3JhcDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KG9iamVjdCkgPT4ge1xuXHRcdGlmICghb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRyZXR1cm4gb2JqZWN0O1xuXHRcdH1cblx0XHRjb25zdCByZXMgPSB7fSBhcyBhbnk7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xuXHRcdFx0cmVzW2tleV0gPSB3cmFwKChvYmplY3QgYXMgYW55KVtrZXldKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlcztcblx0fTtcblxuY29uc3QgY3JlYXRlUmV0dXJuVmFsdWVXcmFwcGVyID1cblx0KHdyYXBSZXR1cm5WYWx1ZTogV3JhcHBlciwgd3JhcFJlc3VsdDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KGZuKSA9PlxuXHRcdHdyYXBSZXN1bHQodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHdyYXBSZXR1cm5WYWx1ZShmbiguLi5hcmdzKSkpIGFzIGFueSkgOiBmbik7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmNsYXNzIFpvbmVXcmFwcGVyIHtcblx0cmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cmVhZG9ubHkgI2hhc1pvbmUgPSB0aGlzLiN6b25lLnJ1bigoKSA9PiBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCkpOyAvLyBjaGVjayBpZiB6b25lIGlzIGVuYWJsZWQgKGNhbiBiZSBOb29wWm9uZSwgY2YgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3pvbmUjbm9vcHpvbmUpXG5cdCNydW5OZWVkZWQgPSBmYWxzZTtcblx0I3J1blBsYW5uZWQgPSBmYWxzZTtcblxuXHRwbGFuTmdab25lUnVuID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy4jem9uZS5pc1N0YWJsZSkge1xuXHRcdFx0XHRcdHRoaXMuI3J1bk5lZWRlZCA9IHRydWU7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLiNydW5QbGFubmVkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiNydW5QbGFubmVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IDA7XG5cdFx0XHRcdFx0XHRcdHRoaXMuI3J1blBsYW5uZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI3J1bk5lZWRlZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubmdab25lUnVuKG5vb3ApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdCAgfVxuXHRcdDogbm9vcDtcblxuXHRuZ1pvbmVSdW48VD4oZm46ICgpID0+IFQpOiBUIHtcblx0XHR0aGlzLiNydW5OZWVkZWQgPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy4jem9uZS5ydW4oZm4pO1xuXHR9XG5cblx0aW5zaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMubmdab25lUnVuKCgpID0+IGZuKC4uLmFyZ3MpKSkgYXMgYW55KSA6IGZuKVxuXHRcdDogaWRlbnRpdHk7XG5cdGluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QgPSBjcmVhdGVPYmplY3RXcmFwcGVyKHRoaXMuaW5zaWRlTmdab25lKTtcblxuXHRvdXRzaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pXG5cdFx0OiBpZGVudGl0eTtcblxuXHRvdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCA9IGNyZWF0ZU9iamVjdFdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmUgPSBjcmVhdGVSZXR1cm5WYWx1ZVdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCwgdGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0ID0gY3JlYXRlT2JqZWN0V3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRvQW5ndWxhclNpZ25hbCA9IDxUPih0YW5zdVNpZ25hbDogUmVhZGFibGVTaWduYWw8VD4pOiBTaWduYWw8VD4gPT4ge1xuXHRjb25zdCB6b25lV3JhcHBlciA9IGluamVjdChab25lV3JhcHBlcik7XG5cdGNvbnN0IHJlcyA9IHNpZ25hbCh1bmRlZmluZWQgYXMgYW55IGFzIFQpO1xuXHRjb25zdCBzdWJzY3JpcHRpb24gPSB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHRhbnN1U2lnbmFsLnN1YnNjcmliZSkoKHZhbHVlKSA9PiB7XG5cdFx0cmVzLnNldCh2YWx1ZSk7XG5cdFx0em9uZVdyYXBwZXIucGxhbk5nWm9uZVJ1bigpO1xuXHR9KTtcblx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSh6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHN1YnNjcmlwdGlvbikpO1xuXHRyZXR1cm4gcmVzO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aFBhdGNoU2xvdHM8VyBleHRlbmRzIFdpZGdldD4gPSBXICYge1xuXHRwYXRjaFNsb3RzKHNsb3RzOiB7XG5cdFx0W0sgaW4ga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gJiBgc2xvdCR7c3RyaW5nfWBdOiBXaWRnZXRQcm9wczxXPltLXSBleHRlbmRzIFNsb3RDb250ZW50PGluZmVyIFU+ID8gVGVtcGxhdGVSZWY8VT4gfCB1bmRlZmluZWQgOiBuZXZlcjtcblx0fSk6IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG59OiB7XG5cdGZhY3Rvcnk6IFdpZGdldEZhY3Rvcnk8Vz47XG5cdGRlZmF1bHRDb25maWc/OiBQYXJ0aWFsPFdpZGdldFByb3BzPFc+PiB8IFJlYWRhYmxlU2lnbmFsPFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgdW5kZWZpbmVkPjtcblx0d2lkZ2V0Q29uZmlnPzogbnVsbCB8IHVuZGVmaW5lZCB8IFJlYWRhYmxlU2lnbmFsPFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgdW5kZWZpbmVkPjtcblx0ZXZlbnRzOiBQaWNrPFdpZGdldFByb3BzPFc+LCBrZXlvZiBXaWRnZXRQcm9wczxXPiAmIGBvbiR7c3RyaW5nfWA+O1xufSk6IFdpdGhQYXRjaFNsb3RzPFc+ID0+IHtcblx0Y29uc3Qgem9uZVdyYXBwZXIgPSBpbmplY3QoWm9uZVdyYXBwZXIpO1xuXHRmYWN0b3J5ID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShmYWN0b3J5KTtcblx0Y29uc3QgZGVmYXVsdENvbmZpZyQgPSB0b1JlYWRhYmxlU3RvcmUoZGVmYXVsdENvbmZpZyk7XG5cdGNvbnN0IHNsb3RzJCA9IHdyaXRhYmxlKHt9KTtcblx0ZXZlbnRzID0gem9uZVdyYXBwZXIuaW5zaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdChldmVudHMpO1xuXHRjb25zdCB3aWRnZXQgPSBmYWN0b3J5KHtcblx0XHRjb25maWc6IGNvbXB1dGVkKCgpID0+ICh7Li4uZGVmYXVsdENvbmZpZyQoKSwgLi4ud2lkZ2V0Q29uZmlnPy4oKSwgLi4uc2xvdHMkKCksIC4uLihldmVudHMgYXMgUGFydGlhbDxXaWRnZXRQcm9wczxXPj4pfSkpLFxuXHR9KTtcblx0cmV0dXJuIHtcblx0XHQuLi53aWRnZXQsXG5cdFx0cGF0Y2g6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmUod2lkZ2V0LnBhdGNoKSxcblx0XHRkaXJlY3RpdmVzOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcERpcmVjdGl2ZXNPYmplY3Qod2lkZ2V0LmRpcmVjdGl2ZXMpLFxuXHRcdGFjdGlvbnM6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0KHdpZGdldC5hY3Rpb25zKSxcblx0XHRhcGk6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0KHdpZGdldC5hcGkpLFxuXHRcdHBhdGNoU2xvdHM6IGNyZWF0ZVBhdGNoU2xvdHMoc2xvdHMkLnNldCksXG5cdH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hTaW1wbGVDaGFuZ2VzKHBhdGNoRm46IChvYmo6IGFueSkgPT4gdm9pZCwgY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRjb25zdCBvYmo6IGFueSA9IHt9O1xuXHRmb3IgKGNvbnN0IFtrZXksIHNpbXBsZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoY2hhbmdlcykpIHtcblx0XHRpZiAoc2ltcGxlQ2hhbmdlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG9ialtrZXldID0gc2ltcGxlQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcblx0XHR9XG5cdH1cblx0cGF0Y2hGbihvYmopO1xufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -2,8 +2,18 @@
|
|
|
2
2
|
* Public API Surface of @agnos-ui/angular-headless
|
|
3
3
|
*/
|
|
4
4
|
export * from '@agnos-ui/core';
|
|
5
|
+
export * from './lib/config';
|
|
5
6
|
export * from './lib/slot.directive';
|
|
6
7
|
export * from './lib/slotDefault.directive';
|
|
8
|
+
export * from './lib/slotTypes';
|
|
7
9
|
export * from './lib/use.directive';
|
|
8
10
|
export * from './lib/utils';
|
|
9
|
-
|
|
11
|
+
import { createAccordion as coreCreateAccordion, createAlert as coreCreateAlert, createModal as coreCreateModal, createPagination as coreCreatePagination, createProgressbar as coreCreateProgressbar, createRating as coreCreateRating, createSelect as coreCreateSelect, } from '@agnos-ui/core';
|
|
12
|
+
export const createAccordion = coreCreateAccordion;
|
|
13
|
+
export const createAlert = coreCreateAlert;
|
|
14
|
+
export const createModal = coreCreateModal;
|
|
15
|
+
export const createPagination = coreCreatePagination;
|
|
16
|
+
export const createRating = coreCreateRating;
|
|
17
|
+
export const createSelect = coreCreateSelect;
|
|
18
|
+
export const createProgressbar = coreCreateProgressbar;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2hlYWRsZXNzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsYUFBYSxDQUFDO0FBRzVCLE9BQU8sRUFDTixlQUFlLElBQUksbUJBQW1CLEVBQ3RDLFdBQVcsSUFBSSxlQUFlLEVBQzlCLFdBQVcsSUFBSSxlQUFlLEVBQzlCLGdCQUFnQixJQUFJLG9CQUFvQixFQUN4QyxpQkFBaUIsSUFBSSxxQkFBcUIsRUFDMUMsWUFBWSxJQUFJLGdCQUFnQixFQUNoQyxZQUFZLElBQUksZ0JBQWdCLEdBQ2hDLE1BQU0sZ0JBQWdCLENBQUM7QUFXeEIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFtQyxtQkFBMEIsQ0FBQztBQU0xRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQStCLGVBQXNCLENBQUM7QUFNOUUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUErQixlQUFzQixDQUFDO0FBTzlFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQyxvQkFBMkIsQ0FBQztBQUs3RixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWdDLGdCQUF1QixDQUFDO0FBS2pGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBK0UsZ0JBQXVCLENBQUM7QUFVaEksTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXFDLHFCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJ0BhZ25vcy11aS9jb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZyc7XG5leHBvcnQgdHlwZSB7V2lkZ2V0c0NvbmZpZ30gZnJvbSAnLi9saWIvY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nsb3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nsb3REZWZhdWx0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbG90VHlwZXMnO1xuZXhwb3J0IHR5cGUge1Nsb3RDb250ZW50fSBmcm9tICcuL2xpYi9zbG90VHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5cbmltcG9ydCB0eXBlIHtQcm9wc0NvbmZpZywgV2lkZ2V0RmFjdG9yeSwgV2lkZ2V0UHJvcHMsIFdpZGdldFN0YXRlfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQge1xuXHRjcmVhdGVBY2NvcmRpb24gYXMgY29yZUNyZWF0ZUFjY29yZGlvbixcblx0Y3JlYXRlQWxlcnQgYXMgY29yZUNyZWF0ZUFsZXJ0LFxuXHRjcmVhdGVNb2RhbCBhcyBjb3JlQ3JlYXRlTW9kYWwsXG5cdGNyZWF0ZVBhZ2luYXRpb24gYXMgY29yZUNyZWF0ZVBhZ2luYXRpb24sXG5cdGNyZWF0ZVByb2dyZXNzYmFyIGFzIGNvcmVDcmVhdGVQcm9ncmVzc2Jhcixcblx0Y3JlYXRlUmF0aW5nIGFzIGNvcmVDcmVhdGVSYXRpbmcsXG5cdGNyZWF0ZVNlbGVjdCBhcyBjb3JlQ3JlYXRlU2VsZWN0LFxufSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQgdHlwZSB7QWRhcHRTbG90Q29udGVudFByb3BzLCBBZGFwdFdpZGdldFNsb3RzfSBmcm9tICcuL2xpYi9zbG90VHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25XaWRnZXQgPSBBZGFwdFdpZGdldFNsb3RzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5BY2NvcmRpb25XaWRnZXQ+O1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uUHJvcHMgPSBXaWRnZXRQcm9wczxBY2NvcmRpb25XaWRnZXQ+O1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uU3RhdGUgPSBXaWRnZXRTdGF0ZTxBY2NvcmRpb25XaWRnZXQ+O1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uQXBpID0gQWNjb3JkaW9uV2lkZ2V0WydhcGknXTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvbkl0ZW1XaWRnZXQgPSBBZGFwdFdpZGdldFNsb3RzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5BY2NvcmRpb25JdGVtV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIEFjY29yZGlvbkl0ZW1Qcm9wcyA9IFdpZGdldFByb3BzPEFjY29yZGlvbkl0ZW1XaWRnZXQ+O1xuZXhwb3J0IHR5cGUgQWNjb3JkaW9uSXRlbVN0YXRlID0gV2lkZ2V0U3RhdGU8QWNjb3JkaW9uSXRlbVdpZGdldD47XG5leHBvcnQgdHlwZSBBY2NvcmRpb25JdGVtQ29udGV4dCA9IEFkYXB0U2xvdENvbnRlbnRQcm9wczxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuQWNjb3JkaW9uSXRlbUNvbnRleHQ+O1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjY29yZGlvbjogV2lkZ2V0RmFjdG9yeTxBY2NvcmRpb25XaWRnZXQ+ID0gY29yZUNyZWF0ZUFjY29yZGlvbiBhcyBhbnk7XG5cbmV4cG9ydCB0eXBlIEFsZXJ0V2lkZ2V0ID0gQWRhcHRXaWRnZXRTbG90czxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuQWxlcnRXaWRnZXQ+O1xuZXhwb3J0IHR5cGUgQWxlcnRQcm9wcyA9IFdpZGdldFByb3BzPEFsZXJ0V2lkZ2V0PjtcbmV4cG9ydCB0eXBlIEFsZXJ0U3RhdGUgPSBXaWRnZXRTdGF0ZTxBbGVydFdpZGdldD47XG5leHBvcnQgdHlwZSBBbGVydENvbnRleHQgPSBBZGFwdFNsb3RDb250ZW50UHJvcHM8aW1wb3J0KCdAYWdub3MtdWkvY29yZScpLkFsZXJ0Q29udGV4dD47XG5leHBvcnQgY29uc3QgY3JlYXRlQWxlcnQ6IFdpZGdldEZhY3Rvcnk8QWxlcnRXaWRnZXQ+ID0gY29yZUNyZWF0ZUFsZXJ0IGFzIGFueTtcblxuZXhwb3J0IHR5cGUgTW9kYWxXaWRnZXQgPSBBZGFwdFdpZGdldFNsb3RzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5Nb2RhbFdpZGdldD47XG5leHBvcnQgdHlwZSBNb2RhbFByb3BzID0gV2lkZ2V0UHJvcHM8TW9kYWxXaWRnZXQ+O1xuZXhwb3J0IHR5cGUgTW9kYWxTdGF0ZSA9IFdpZGdldFN0YXRlPE1vZGFsV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIE1vZGFsQ29udGV4dCA9IEFkYXB0U2xvdENvbnRlbnRQcm9wczxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuTW9kYWxDb250ZXh0PjtcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2RhbDogV2lkZ2V0RmFjdG9yeTxNb2RhbFdpZGdldD4gPSBjb3JlQ3JlYXRlTW9kYWwgYXMgYW55O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uV2lkZ2V0ID0gQWRhcHRXaWRnZXRTbG90czxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuUGFnaW5hdGlvbldpZGdldD47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uUHJvcHMgPSBXaWRnZXRQcm9wczxQYWdpbmF0aW9uV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25TdGF0ZSA9IFdpZGdldFN0YXRlPFBhZ2luYXRpb25XaWRnZXQ+O1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkNvbnRleHQgPSBBZGFwdFNsb3RDb250ZW50UHJvcHM8aW1wb3J0KCdAYWdub3MtdWkvY29yZScpLlBhZ2luYXRpb25Db250ZXh0PjtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25OdW1iZXJDb250ZXh0ID0gQWRhcHRTbG90Q29udGVudFByb3BzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5QYWdpbmF0aW9uTnVtYmVyQ29udGV4dD47XG5leHBvcnQgY29uc3QgY3JlYXRlUGFnaW5hdGlvbjogV2lkZ2V0RmFjdG9yeTxQYWdpbmF0aW9uV2lkZ2V0PiA9IGNvcmVDcmVhdGVQYWdpbmF0aW9uIGFzIGFueTtcblxuZXhwb3J0IHR5cGUgUmF0aW5nV2lkZ2V0ID0gQWRhcHRXaWRnZXRTbG90czxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuUmF0aW5nV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFJhdGluZ1Byb3BzID0gV2lkZ2V0UHJvcHM8UmF0aW5nV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFJhdGluZ1N0YXRlID0gV2lkZ2V0U3RhdGU8UmF0aW5nV2lkZ2V0PjtcbmV4cG9ydCBjb25zdCBjcmVhdGVSYXRpbmc6IFdpZGdldEZhY3Rvcnk8UmF0aW5nV2lkZ2V0PiA9IGNvcmVDcmVhdGVSYXRpbmcgYXMgYW55O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RXaWRnZXQ8SXRlbT4gPSBBZGFwdFdpZGdldFNsb3RzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5TZWxlY3RXaWRnZXQ8SXRlbT4+O1xuZXhwb3J0IHR5cGUgU2VsZWN0UHJvcHM8SXRlbT4gPSBXaWRnZXRQcm9wczxTZWxlY3RXaWRnZXQ8SXRlbT4+O1xuZXhwb3J0IHR5cGUgU2VsZWN0U3RhdGU8SXRlbT4gPSBXaWRnZXRTdGF0ZTxTZWxlY3RXaWRnZXQ8SXRlbT4+O1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVNlbGVjdDogPEl0ZW0+KHByb3BzQ29uZmlnPzogUHJvcHNDb25maWc8U2VsZWN0UHJvcHM8SXRlbT4+KSA9PiBTZWxlY3RXaWRnZXQ8SXRlbT4gPSBjb3JlQ3JlYXRlU2VsZWN0IGFzIGFueTtcblxuZXhwb3J0IHR5cGUgU2xpZGVyV2lkZ2V0ID0gQWRhcHRXaWRnZXRTbG90czxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuU2xpZGVyV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFNsaWRlclByb3BzID0gV2lkZ2V0UHJvcHM8U2xpZGVyV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFNsaWRlclN0YXRlID0gV2lkZ2V0U3RhdGU8U2xpZGVyV2lkZ2V0PjtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NiYXJXaWRnZXQgPSBBZGFwdFdpZGdldFNsb3RzPGltcG9ydCgnQGFnbm9zLXVpL2NvcmUnKS5Qcm9ncmVzc2JhcldpZGdldD47XG5leHBvcnQgdHlwZSBQcm9ncmVzc2JhclByb3BzID0gV2lkZ2V0UHJvcHM8UHJvZ3Jlc3NiYXJXaWRnZXQ+O1xuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NiYXJTdGF0ZSA9IFdpZGdldFN0YXRlPFByb2dyZXNzYmFyV2lkZ2V0PjtcbmV4cG9ydCB0eXBlIFByb2dyZXNzYmFyQ29udGV4dCA9IEFkYXB0U2xvdENvbnRlbnRQcm9wczxpbXBvcnQoJ0BhZ25vcy11aS9jb3JlJykuUHJvZ3Jlc3NiYXJDb250ZXh0PjtcbmV4cG9ydCBjb25zdCBjcmVhdGVQcm9ncmVzc2JhcjogV2lkZ2V0RmFjdG9yeTxQcm9ncmVzc2JhcldpZGdldD4gPSBjb3JlQ3JlYXRlUHJvZ3Jlc3NiYXIgYXMgYW55O1xuIl19
|