@agnos-ui/angular-headless 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/config.d.ts +13 -8
- package/esm2022/config.mjs +26 -2
- package/esm2022/slot.directive.mjs +23 -33
- package/esm2022/types.mjs +21 -4
- package/esm2022/utils/directive.mjs +30 -9
- package/esm2022/utils/stores.mjs +10 -6
- package/esm2022/utils/widget.mjs +55 -20
- package/esm2022/utils/zone.mjs +7 -3
- package/fesm2022/agnos-ui-angular-headless.mjs +166 -71
- package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
- package/package.json +8 -7
- package/slot.directive.d.ts +21 -19
- package/types.d.ts +86 -11
- package/utils/directive.d.ts +30 -6
- package/utils/stores.d.ts +9 -5
- package/utils/widget.d.ts +39 -11
- package/utils/zone.d.ts +4 -0
package/esm2022/utils/widget.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { computed, writable } from '@amadeus-it-group/tansu';
|
|
2
2
|
import { Directive, Injector, inject, runInInjectionContext } from '@angular/core';
|
|
3
|
-
import { toSlotContextWidget, } from '../types';
|
|
4
3
|
import { toAngularSignal, toReadableStore } from './stores';
|
|
5
4
|
import { ZoneWrapper } from './zone';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
@@ -34,18 +33,25 @@ const createPatchSlots = (set) => {
|
|
|
34
33
|
* @param parameter.widgetConfig - the config of the widget, overriding the defaultConfig
|
|
35
34
|
* @param parameter.events - the events of the widget
|
|
36
35
|
* @param parameter.afterInit - a callback to call after successful setup of the widget
|
|
36
|
+
* @param parameter.slotTemplates - a function to provide all slot templates using child queries
|
|
37
|
+
* @param parameter.slotChildren - a function to provide the default children slot using a view query
|
|
37
38
|
* @returns the widget
|
|
38
39
|
*/
|
|
39
|
-
export const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConfig, events, afterInit, }) => {
|
|
40
|
+
export const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConfig, events, afterInit, slotTemplates, slotChildren, }) => {
|
|
40
41
|
const injector = inject(Injector);
|
|
41
42
|
const slots$ = writable({});
|
|
42
43
|
const props = {};
|
|
43
44
|
let initDone;
|
|
45
|
+
const patchSlots = createPatchSlots(slots$.set);
|
|
44
46
|
const res = {
|
|
45
47
|
initialized: new Promise((resolve) => {
|
|
46
48
|
initDone = resolve;
|
|
47
49
|
}),
|
|
48
|
-
|
|
50
|
+
updateSlots: () => {
|
|
51
|
+
if (slotTemplates) {
|
|
52
|
+
patchSlots(slotTemplates());
|
|
53
|
+
}
|
|
54
|
+
},
|
|
49
55
|
patch(newProps) {
|
|
50
56
|
// temporary function replaced in ngInit
|
|
51
57
|
Object.assign(props, newProps);
|
|
@@ -57,21 +63,22 @@ export const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConf
|
|
|
57
63
|
const defaultConfig$ = toReadableStore(defaultConfig);
|
|
58
64
|
events = zoneWrapper.insideNgZoneWrapFunctionsObject(events);
|
|
59
65
|
const widget = factory({
|
|
60
|
-
config: computed(() => ({
|
|
66
|
+
config: computed(() => ({
|
|
67
|
+
...defaultConfig$(),
|
|
68
|
+
children: slotChildren?.(),
|
|
69
|
+
...widgetConfig?.(),
|
|
70
|
+
...slots$(),
|
|
71
|
+
...events,
|
|
72
|
+
})),
|
|
61
73
|
props,
|
|
62
74
|
});
|
|
63
|
-
|
|
64
|
-
...widget,
|
|
75
|
+
Object.assign(res, {
|
|
65
76
|
patch: zoneWrapper.outsideNgZone(widget.patch),
|
|
66
77
|
directives: zoneWrapper.outsideNgZoneWrapDirectivesObject(widget.directives),
|
|
67
|
-
actions: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.actions),
|
|
68
78
|
api: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.api),
|
|
69
|
-
|
|
70
|
-
Object.assign(res, wrappedWidget, {
|
|
71
|
-
widget: toSlotContextWidget(wrappedWidget),
|
|
72
|
-
ngState: toAngularSignal(wrappedWidget.state$),
|
|
79
|
+
state: Object.fromEntries(Object.entries(widget.stores).map(([key, val]) => [key.slice(0, -1), toAngularSignal(val)])),
|
|
73
80
|
});
|
|
74
|
-
afterInit?.();
|
|
81
|
+
afterInit?.(res);
|
|
75
82
|
initDone();
|
|
76
83
|
});
|
|
77
84
|
},
|
|
@@ -87,28 +94,56 @@ function patchSimpleChanges(patchFn, changes) {
|
|
|
87
94
|
}
|
|
88
95
|
patchFn(obj);
|
|
89
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* An abstract base class for widget directives, providing common functionality
|
|
99
|
+
* for Angular components that interact with widgets.
|
|
100
|
+
*
|
|
101
|
+
* @template W - The type of the widget.
|
|
102
|
+
*/
|
|
90
103
|
export class BaseWidgetDirective {
|
|
104
|
+
constructor(_widget) {
|
|
105
|
+
this._widget = _widget;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Retrieves the widget api
|
|
109
|
+
* @returns the widget api
|
|
110
|
+
*/
|
|
91
111
|
get api() {
|
|
92
112
|
return this._widget.api;
|
|
93
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Retrieves the widget state as an Angular {@link https://angular.dev/api/core/Signal | Signal}
|
|
116
|
+
* @returns the widget state
|
|
117
|
+
*/
|
|
94
118
|
get state() {
|
|
95
|
-
return this._widget.
|
|
119
|
+
return this._widget.state;
|
|
96
120
|
}
|
|
97
|
-
|
|
98
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Retrieves the widget directives
|
|
123
|
+
* @returns the widget directives
|
|
124
|
+
*/
|
|
125
|
+
get directives() {
|
|
126
|
+
return this._widget.directives;
|
|
99
127
|
}
|
|
100
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
* @inheritdoc
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
101
132
|
ngOnChanges(changes) {
|
|
102
133
|
patchSimpleChanges(this._widget.patch, changes);
|
|
103
134
|
}
|
|
104
|
-
/** @
|
|
135
|
+
/** @internal */
|
|
105
136
|
ngOnInit() {
|
|
106
137
|
this._widget.ngInit();
|
|
107
138
|
}
|
|
108
|
-
|
|
139
|
+
/** @internal */
|
|
140
|
+
ngAfterContentChecked() {
|
|
141
|
+
this._widget.updateSlots();
|
|
142
|
+
}
|
|
143
|
+
static { this.ɵfac = function BaseWidgetDirective_Factory(__ngFactoryType__) { i0.ɵɵinvalidFactory(); }; }
|
|
109
144
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseWidgetDirective, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
110
145
|
}
|
|
111
146
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseWidgetDirective, [{
|
|
112
147
|
type: Directive
|
|
113
|
-
}],
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNOLG1CQUFtQixHQU9uQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLENBQW1CLEdBQWlDLEVBQUUsRUFBRTtJQUNoRixJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sUUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUIsRUFBRSxDQUFDO1lBQy9ELE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdkIseUJBQXlCO2dCQUN6QixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcs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QUFDO1lBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ3RDLENBQUM7SUFDRixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsQ0FBQztBQUdELE1BQU0sT0FBZ0IsbUJBQW1CO0lBR3hDLElBQUksR0FBRztRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsT0FBc0I7UUFDakMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO29GQXZCb0IsbUJBQW1CO29FQUFuQixtQkFBbUI7O2lGQUFuQixtQkFBbUI7Y0FEeEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIHdyaXRhYmxlLCB0eXBlIFJlYWRhYmxlU2lnbmFsfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7T25DaGFuZ2VzLCBPbkluaXQsIFNpZ25hbCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdHRvU2xvdENvbnRleHRXaWRnZXQsXG5cdHR5cGUgQW5ndWxhcldpZGdldCxcblx0dHlwZSBDb250ZXh0V2lkZ2V0LFxuXHR0eXBlIFdpZGdldCxcblx0dHlwZSBXaWRnZXRGYWN0b3J5LFxuXHR0eXBlIFdpZGdldFByb3BzLFxuXHR0eXBlIFdpZGdldFN0YXRlLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge3RvQW5ndWxhclNpZ25hbCwgdG9SZWFkYWJsZVN0b3JlfSBmcm9tICcuL3N0b3Jlcyc7XG5pbXBvcnQge1pvbmVXcmFwcGVyfSBmcm9tICcuL3pvbmUnO1xuXG5jb25zdCBjcmVhdGVQYXRjaFNsb3RzID0gPFQgZXh0ZW5kcyBvYmplY3Q+KHNldDogKG9iamVjdDogUGFydGlhbDxUPikgPT4gdm9pZCkgPT4ge1xuXHRsZXQgbGFzdFZhbHVlOiBQYXJ0aWFsPFQ+ID0ge307XG5cdHJldHVybiAob2JqZWN0OiBUKSA9PiB7XG5cdFx0Y29uc3QgbmV3VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0XHRsZXQgaGFzQ2hhbmdlID0gZmFsc2U7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSBhcyAoc3RyaW5nICYga2V5b2YgVClbXSkge1xuXHRcdFx0Y29uc3Qgb2JqZWN0S2V5ID0gKG9iamVjdCBhcyBhbnkpW2tleV07XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IG51bGwpIHtcblx0XHRcdFx0Ly8gb25seSB1c2UgZGVmaW5lZCBzbG90c1xuXHRcdFx0XHRuZXdWYWx1ZVtrZXldID0gb2JqZWN0S2V5O1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9iamVjdEtleSAhPSBsYXN0VmFsdWVba2V5XSkge1xuXHRcdFx0XHRoYXNDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaGFzQ2hhbmdlKSB7XG5cdFx0XHRsYXN0VmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRcdHNldChuZXdWYWx1ZSk7XG5cdFx0fVxuXHR9O1xufTtcblxuLyoqXG4gKiBDYWxsIGEgd2lkZ2V0IGZhY3RvcnkgdXNpbmcgcHJvdmlkZWQgY29uZmlncy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1ldGVyIC0gdGhlIHBhcmFtZXRlclxuICogQHBhcmFtIHBhcmFtZXRlci5mYWN0b3J5IC0gdGhlIHdpZGdldCBmYWN0b3J5IHRvIGNhbGxcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuZGVmYXVsdENvbmZpZyAtIHRoZSBkZWZhdWx0IGNvbmZpZyBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gcGFyYW1ldGVyLndpZGdldENvbmZpZyAtIHRoZSBjb25maWcgb2YgdGhlIHdpZGdldCwgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdENvbmZpZ1xuICogQHBhcmFtIHBhcmFtZXRlci5ldmVudHMgLSB0aGUgZXZlbnRzIG9mIHRoZSB3aWRnZXRcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuYWZ0ZXJJbml0IC0gYSBjYWxsYmFjayB0byBjYWxsIGFmdGVyIHN1Y2Nlc3NmdWwgc2V0dXAgb2YgdGhlIHdpZGdldFxuICogQHJldHVybnMgdGhlIHdpZGdldFxuICovXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG5cdGFmdGVySW5pdCxcbn06IHtcblx0ZmFjdG9yeTogV2lkZ2V0RmFjdG9yeTxXPjtcblx0ZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHR3aWRnZXRDb25maWc/OiBudWxsIHwgdW5kZWZpbmVkIHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHRldmVudHM/OiBQaWNrPFdpZGdldFByb3BzPFc+LCBrZXlvZiBXaWRnZXRQcm9wczxXPiAmIGBvbiR7c3RyaW5nfWA+O1xuXHRhZnRlckluaXQ/OiAoKSA9PiB2b2lkO1xufSk6IEFuZ3VsYXJXaWRnZXQ8Vz4gPT4ge1xuXHRjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdGNvbnN0IHNsb3RzJCA9IHdyaXRhYmxlKHt9KTtcblx0Y29uc3QgcHJvcHMgPSB7fTtcblx0bGV0IGluaXREb25lOiAoKSA9PiB2b2lkO1xuXHRjb25zdCByZXMgPSB7XG5cdFx0aW5pdGlhbGl6ZWQ6IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0XHRpbml0RG9uZSA9IHJlc29sdmU7XG5cdFx0fSksXG5cdFx0cGF0Y2hTbG90czogY3JlYXRlUGF0Y2hTbG90cyhzbG90cyQuc2V0KSxcblx0XHRwYXRjaChuZXdQcm9wcykge1xuXHRcdFx0Ly8gdGVtcG9yYXJ5IGZ1bmN0aW9uIHJlcGxhY2VkIGluIG5nSW5pdFxuXHRcdFx0T2JqZWN0LmFzc2lnbihwcm9wcywgbmV3UHJvcHMpO1xuXHRcdH0sXG5cdFx0bmdJbml0KCkge1xuXHRcdFx0cnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHpvbmVXcmFwcGVyID0gaW5qZWN0KFpvbmVXcmFwcGVyKTtcblx0XHRcdFx0ZmFjdG9yeSA9IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmUoZmFjdG9yeSk7XG5cdFx0XHRcdGNvbnN0IGRlZmF1bHRDb25maWckID0gdG9SZWFkYWJsZVN0b3JlKGRlZmF1bHRDb25maWcpO1xuXHRcdFx0XHRldmVudHMgPSB6b25lV3JhcHBlci5pbnNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0KGV2ZW50cyk7XG5cdFx0XHRcdGNvbnN0IHdpZGdldCA9IGZhY3Rvcnkoe1xuXHRcdFx0XHRcdGNvbmZpZzogY29tcHV0ZWQoKCkgPT4gKHsuLi5kZWZhdWx0Q29uZmlnJCgpLCAuLi53aWRnZXRDb25maWc/LigpLCAuLi5zbG90cyQoKSwgLi4uKGV2ZW50cyBhcyBQYXJ0aWFsPFdpZGdldFByb3BzPFc+Pil9KSksXG5cdFx0XHRcdFx0cHJvcHMsXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRjb25zdCB3cmFwcGVkV2lkZ2V0OiBXID0ge1xuXHRcdFx0XHRcdC4uLndpZGdldCxcblx0XHRcdFx0XHRwYXRjaDogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZSh3aWRnZXQucGF0Y2gpLFxuXHRcdFx0XHRcdGRpcmVjdGl2ZXM6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlc09iamVjdCh3aWRnZXQuZGlyZWN0aXZlcyksXG5cdFx0XHRcdFx0YWN0aW9uczogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3Qod2lkZ2V0LmFjdGlvbnMpLFxuXHRcdFx0XHRcdGFwaTogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3Qod2lkZ2V0LmFwaSksXG5cdFx0XHRcdH07XG5cdFx0XHRcdE9iamVjdC5hc3NpZ24ocmVzLCB3cmFwcGVkV2lkZ2V0LCB7XG5cdFx0XHRcdFx0d2lkZ2V0OiB0b1Nsb3RDb250ZXh0V2lkZ2V0KHdyYXBwZWRXaWRnZXQpLFxuXHRcdFx0XHRcdG5nU3RhdGU6IHRvQW5ndWxhclNpZ25hbCh3cmFwcGVkV2lkZ2V0LnN0YXRlJCBhcyBSZWFkYWJsZVNpZ25hbDxXaWRnZXRTdGF0ZTxXPj4pLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0YWZ0ZXJJbml0Py4oKTtcblx0XHRcdFx0aW5pdERvbmUoKTtcblx0XHRcdH0pO1xuXHRcdH0sXG5cdH0gYXMgQW5ndWxhcldpZGdldDxXPjtcblxuXHRyZXR1cm4gcmVzO1xufTtcblxuZnVuY3Rpb24gcGF0Y2hTaW1wbGVDaGFuZ2VzKHBhdGNoRm46IChvYmo6IGFueSkgPT4gdm9pZCwgY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRjb25zdCBvYmo6IGFueSA9IHt9O1xuXHRmb3IgKGNvbnN0IFtrZXksIHNpbXBsZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoY2hhbmdlcykpIHtcblx0XHRpZiAoc2ltcGxlQ2hhbmdlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG9ialtrZXldID0gc2ltcGxlQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcblx0XHR9XG5cdH1cblx0cGF0Y2hGbihvYmopO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlV2lkZ2V0RGlyZWN0aXZlPFcgZXh0ZW5kcyBXaWRnZXQ+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgX3dpZGdldDogQW5ndWxhcldpZGdldDxXPjtcblxuXHRnZXQgYXBpKCk6IFdbJ2FwaSddIHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0LmFwaTtcblx0fVxuXG5cdGdldCBzdGF0ZSgpOiBTaWduYWw8V2lkZ2V0U3RhdGU8Vz4+IHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0Lm5nU3RhdGU7XG5cdH1cblxuXHRnZXQgd2lkZ2V0KCk6IENvbnRleHRXaWRnZXQ8Vz4ge1xuXHRcdHJldHVybiB0aGlzLl93aWRnZXQud2lkZ2V0O1xuXHR9XG5cblx0LyoqIEBpbmhlcml0ZG9jICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRwYXRjaFNpbXBsZUNoYW5nZXModGhpcy5fd2lkZ2V0LnBhdGNoLCBjaGFuZ2VzKTtcblx0fVxuXG5cdC8qKiBAaW5oZXJpdGRvYyAqL1xuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLl93aWRnZXQubmdJbml0KCk7XG5cdH1cbn1cbiJdfQ==
|
|
148
|
+
}], () => [{ type: undefined }], null); })();
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUF1QixRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFFBQVEsQ0FBQzs7QUFFbkMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFtQixHQUFpQyxFQUFFLEVBQUU7SUFDaEYsSUFBSSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxNQUFTLEVBQUUsRUFBRTtRQUNwQixNQUFNLFFBQVEsR0FBZSxFQUFFLENBQUM7UUFDaEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXlCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLHlCQUF5QjtnQkFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUMzQixDQUFDO1lBQ0QsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbEIsQ0FBQztRQUNGLENBQUM7UUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2YsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDZixDQUFDO0lBQ0YsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBbUIsRUFDN0QsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxhQUFhLEVBQ2IsWUFBWSxHQWFaLEVBQW9CLEVBQUU7SUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxRQUFvQixDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVoRCxNQUFNLEdBQUcsR0FBRztRQUNYLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBQ0YsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUNqQixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQztRQUNELEtBQUssQ0FBQyxRQUFpQztZQUN0Qyx3Q0FBd0M7WUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE1BQU07WUFDTCxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sR0FBRyxXQUFXLENBQUMsK0JBQStCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztvQkFDdEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QixHQUFHLGNBQWMsRUFBRTt3QkFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUFFO3dCQUMxQixHQUFHLFlBQVksRUFBRSxFQUFFO3dCQUNuQixHQUFHLE1BQU0sRUFBRTt3QkFDWCxHQUFJLE1BQWtDO3FCQUN0QyxDQUFDLENBQUM7b0JBQ0gsS0FBSztpQkFDTCxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ2xCLEtBQUssRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7b0JBQzlDLFVBQVUsRUFBRSxXQUFXLENBQUMsaUNBQWlDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztvQkFDNUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUM3RCxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBMEIsTUFBTSxDQUFDLE1BQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDM0g7aUJBQ0QsQ0FBQyxDQUFDO2dCQUNILFNBQVMsRUFBRSxDQUFDLEdBQXVCLENBQUMsQ0FBQztnQkFDckMsUUFBUSxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7S0FDRCxDQUFDO0lBRUYsT0FBTyxHQUF1QixDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLFNBQVMsa0JBQWtCLENBQUMsT0FBMkIsRUFBRSxPQUFzQjtJQUM5RSxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUN0QyxDQUFDO0lBQ0YsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsbUJBQW1CO0lBQ3hDLFlBQTZCLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQztJQUUxRDs7O09BR0c7SUFDSCxJQUFJLEdBQUc7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDakMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7O29FQTNDb0IsbUJBQW1COztpRkFBbkIsbUJBQW1CO2NBRHhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvbXB1dGVkLCB0eXBlIFJlYWRhYmxlU2lnbmFsLCB3cml0YWJsZX0gZnJvbSAnQGFtYWRldXMtaXQtZ3JvdXAvdGFuc3UnO1xuaW1wb3J0IHR5cGUge0FmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtBbmd1bGFyU3RhdGUsIEFuZ3VsYXJXaWRnZXQsIElzU2xvdENvbnRlbnQsIFNsb3RDb250ZW50LCBXaWRnZXQsIFdpZGdldEZhY3RvcnksIFdpZGdldFByb3BzfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge3RvQW5ndWxhclNpZ25hbCwgdG9SZWFkYWJsZVN0b3JlfSBmcm9tICcuL3N0b3Jlcyc7XG5pbXBvcnQge1pvbmVXcmFwcGVyfSBmcm9tICcuL3pvbmUnO1xuXG5jb25zdCBjcmVhdGVQYXRjaFNsb3RzID0gPFQgZXh0ZW5kcyBvYmplY3Q+KHNldDogKG9iamVjdDogUGFydGlhbDxUPikgPT4gdm9pZCkgPT4ge1xuXHRsZXQgbGFzdFZhbHVlOiBQYXJ0aWFsPFQ+ID0ge307XG5cdHJldHVybiAob2JqZWN0OiBUKSA9PiB7XG5cdFx0Y29uc3QgbmV3VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0XHRsZXQgaGFzQ2hhbmdlID0gZmFsc2U7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSBhcyAoc3RyaW5nICYga2V5b2YgVClbXSkge1xuXHRcdFx0Y29uc3Qgb2JqZWN0S2V5ID0gKG9iamVjdCBhcyBhbnkpW2tleV07XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IG51bGwpIHtcblx0XHRcdFx0Ly8gb25seSB1c2UgZGVmaW5lZCBzbG90c1xuXHRcdFx0XHRuZXdWYWx1ZVtrZXldID0gb2JqZWN0S2V5O1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9iamVjdEtleSAhPSBsYXN0VmFsdWVba2V5XSkge1xuXHRcdFx0XHRoYXNDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaGFzQ2hhbmdlKSB7XG5cdFx0XHRsYXN0VmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRcdHNldChuZXdWYWx1ZSk7XG5cdFx0fVxuXHR9O1xufTtcblxuLyoqXG4gKiBDYWxsIGEgd2lkZ2V0IGZhY3RvcnkgdXNpbmcgcHJvdmlkZWQgY29uZmlncy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1ldGVyIC0gdGhlIHBhcmFtZXRlclxuICogQHBhcmFtIHBhcmFtZXRlci5mYWN0b3J5IC0gdGhlIHdpZGdldCBmYWN0b3J5IHRvIGNhbGxcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuZGVmYXVsdENvbmZpZyAtIHRoZSBkZWZhdWx0IGNvbmZpZyBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gcGFyYW1ldGVyLndpZGdldENvbmZpZyAtIHRoZSBjb25maWcgb2YgdGhlIHdpZGdldCwgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdENvbmZpZ1xuICogQHBhcmFtIHBhcmFtZXRlci5ldmVudHMgLSB0aGUgZXZlbnRzIG9mIHRoZSB3aWRnZXRcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuYWZ0ZXJJbml0IC0gYSBjYWxsYmFjayB0byBjYWxsIGFmdGVyIHN1Y2Nlc3NmdWwgc2V0dXAgb2YgdGhlIHdpZGdldFxuICogQHBhcmFtIHBhcmFtZXRlci5zbG90VGVtcGxhdGVzIC0gYSBmdW5jdGlvbiB0byBwcm92aWRlIGFsbCBzbG90IHRlbXBsYXRlcyB1c2luZyBjaGlsZCBxdWVyaWVzXG4gKiBAcGFyYW0gcGFyYW1ldGVyLnNsb3RDaGlsZHJlbiAtIGEgZnVuY3Rpb24gdG8gcHJvdmlkZSB0aGUgZGVmYXVsdCBjaGlsZHJlbiBzbG90IHVzaW5nIGEgdmlldyBxdWVyeVxuICogQHJldHVybnMgdGhlIHdpZGdldFxuICovXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG5cdGFmdGVySW5pdCxcblx0c2xvdFRlbXBsYXRlcyxcblx0c2xvdENoaWxkcmVuLFxufToge1xuXHRmYWN0b3J5OiBXaWRnZXRGYWN0b3J5PFc+O1xuXHRkZWZhdWx0Q29uZmlnPzogUGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCBSZWFkYWJsZVNpZ25hbDxQYXJ0aWFsPFdpZGdldFByb3BzPFc+PiB8IHVuZGVmaW5lZD47XG5cdHdpZGdldENvbmZpZz86IG51bGwgfCB1bmRlZmluZWQgfCBSZWFkYWJsZVNpZ25hbDxQYXJ0aWFsPFdpZGdldFByb3BzPFc+PiB8IHVuZGVmaW5lZD47XG5cdGV2ZW50cz86IFBhcnRpYWw8UGljazxXaWRnZXRQcm9wczxXPiwga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gJiBgb24ke3N0cmluZ31gPj47XG5cdGFmdGVySW5pdD86ICh3aWRnZXQ6IEFuZ3VsYXJXaWRnZXQ8Vz4pID0+IHZvaWQ7XG5cdHNsb3RUZW1wbGF0ZXM/OiAoKSA9PiB7XG5cdFx0W0sgaW4ga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gYXMgSXNTbG90Q29udGVudDxXaWRnZXRQcm9wczxXPltLXT4gZXh0ZW5kcyAwID8gbmV2ZXIgOiBLXTogV2lkZ2V0UHJvcHM8Vz5bS10gZXh0ZW5kcyBTbG90Q29udGVudDxpbmZlciBVPlxuXHRcdFx0PyBUZW1wbGF0ZVJlZjxVPiB8IHVuZGVmaW5lZFxuXHRcdFx0OiBuZXZlcjtcblx0fTtcblx0c2xvdENoaWxkcmVuPzogKCkgPT4gVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWQ7XG59KTogQW5ndWxhcldpZGdldDxXPiA9PiB7XG5cdGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0Y29uc3Qgc2xvdHMkID0gd3JpdGFibGUoe30pO1xuXHRjb25zdCBwcm9wcyA9IHt9O1xuXHRsZXQgaW5pdERvbmU6ICgpID0+IHZvaWQ7XG5cdGNvbnN0IHBhdGNoU2xvdHMgPSBjcmVhdGVQYXRjaFNsb3RzKHNsb3RzJC5zZXQpO1xuXG5cdGNvbnN0IHJlcyA9IHtcblx0XHRpbml0aWFsaXplZDogbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcblx0XHRcdGluaXREb25lID0gcmVzb2x2ZTtcblx0XHR9KSxcblx0XHR1cGRhdGVTbG90czogKCkgPT4ge1xuXHRcdFx0aWYgKHNsb3RUZW1wbGF0ZXMpIHtcblx0XHRcdFx0cGF0Y2hTbG90cyhzbG90VGVtcGxhdGVzKCkpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cGF0Y2gobmV3UHJvcHM6IFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+KSB7XG5cdFx0XHQvLyB0ZW1wb3JhcnkgZnVuY3Rpb24gcmVwbGFjZWQgaW4gbmdJbml0XG5cdFx0XHRPYmplY3QuYXNzaWduKHByb3BzLCBuZXdQcm9wcyk7XG5cdFx0fSxcblx0XHRuZ0luaXQoKSB7XG5cdFx0XHRydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgem9uZVdyYXBwZXIgPSBpbmplY3QoWm9uZVdyYXBwZXIpO1xuXHRcdFx0XHRmYWN0b3J5ID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShmYWN0b3J5KTtcblx0XHRcdFx0Y29uc3QgZGVmYXVsdENvbmZpZyQgPSB0b1JlYWRhYmxlU3RvcmUoZGVmYXVsdENvbmZpZyk7XG5cdFx0XHRcdGV2ZW50cyA9IHpvbmVXcmFwcGVyLmluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QoZXZlbnRzKTtcblx0XHRcdFx0Y29uc3Qgd2lkZ2V0ID0gZmFjdG9yeSh7XG5cdFx0XHRcdFx0Y29uZmlnOiBjb21wdXRlZCgoKSA9PiAoe1xuXHRcdFx0XHRcdFx0Li4uZGVmYXVsdENvbmZpZyQoKSxcblx0XHRcdFx0XHRcdGNoaWxkcmVuOiBzbG90Q2hpbGRyZW4/LigpLFxuXHRcdFx0XHRcdFx0Li4ud2lkZ2V0Q29uZmlnPy4oKSxcblx0XHRcdFx0XHRcdC4uLnNsb3RzJCgpLFxuXHRcdFx0XHRcdFx0Li4uKGV2ZW50cyBhcyBQYXJ0aWFsPFdpZGdldFByb3BzPFc+PiksXG5cdFx0XHRcdFx0fSkpLFxuXHRcdFx0XHRcdHByb3BzLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihyZXMsIHtcblx0XHRcdFx0XHRwYXRjaDogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZSh3aWRnZXQucGF0Y2gpLFxuXHRcdFx0XHRcdGRpcmVjdGl2ZXM6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlc09iamVjdCh3aWRnZXQuZGlyZWN0aXZlcyksXG5cdFx0XHRcdFx0YXBpOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCh3aWRnZXQuYXBpKSxcblx0XHRcdFx0XHRzdGF0ZTogT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdFx0T2JqZWN0LmVudHJpZXM8UmVhZGFibGVTaWduYWw8dW5rbm93bj4+KHdpZGdldC5zdG9yZXMgYXMgYW55KS5tYXAoKFtrZXksIHZhbF0pID0+IFtrZXkuc2xpY2UoMCwgLTEpLCB0b0FuZ3VsYXJTaWduYWwodmFsKV0pLFxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhZnRlckluaXQ/LihyZXMgYXMgQW5ndWxhcldpZGdldDxXPik7XG5cdFx0XHRcdGluaXREb25lKCk7XG5cdFx0XHR9KTtcblx0XHR9LFxuXHR9O1xuXG5cdHJldHVybiByZXMgYXMgQW5ndWxhcldpZGdldDxXPjtcbn07XG5cbmZ1bmN0aW9uIHBhdGNoU2ltcGxlQ2hhbmdlcyhwYXRjaEZuOiAob2JqOiBhbnkpID0+IHZvaWQsIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0Y29uc3Qgb2JqOiBhbnkgPSB7fTtcblx0Zm9yIChjb25zdCBba2V5LCBzaW1wbGVDaGFuZ2VdIG9mIE9iamVjdC5lbnRyaWVzKGNoYW5nZXMpKSB7XG5cdFx0aWYgKHNpbXBsZUNoYW5nZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRvYmpba2V5XSA9IHNpbXBsZUNoYW5nZS5jdXJyZW50VmFsdWU7XG5cdFx0fVxuXHR9XG5cdHBhdGNoRm4ob2JqKTtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB3aWRnZXQgZGlyZWN0aXZlcywgcHJvdmlkaW5nIGNvbW1vbiBmdW5jdGlvbmFsaXR5XG4gKiBmb3IgQW5ndWxhciBjb21wb25lbnRzIHRoYXQgaW50ZXJhY3Qgd2l0aCB3aWRnZXRzLlxuICpcbiAqIEB0ZW1wbGF0ZSBXIC0gVGhlIHR5cGUgb2YgdGhlIHdpZGdldC5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVdpZGdldERpcmVjdGl2ZTxXIGV4dGVuZHMgV2lkZ2V0PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0OiBBbmd1bGFyV2lkZ2V0PFc+KSB7fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHdpZGdldCBhcGlcblx0ICogQHJldHVybnMgdGhlIHdpZGdldCBhcGlcblx0ICovXG5cdGdldCBhcGkoKTogV1snYXBpJ10ge1xuXHRcdHJldHVybiB0aGlzLl93aWRnZXQuYXBpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgd2lkZ2V0IHN0YXRlIGFzIGFuIEFuZ3VsYXIge0BsaW5rIGh0dHBzOi8vYW5ndWxhci5kZXYvYXBpL2NvcmUvU2lnbmFsIHwgU2lnbmFsfVxuXHQgKiBAcmV0dXJucyB0aGUgd2lkZ2V0IHN0YXRlXG5cdCAqL1xuXHRnZXQgc3RhdGUoKTogQW5ndWxhclN0YXRlPFc+IHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0LnN0YXRlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgd2lkZ2V0IGRpcmVjdGl2ZXNcblx0ICogQHJldHVybnMgdGhlIHdpZGdldCBkaXJlY3RpdmVzXG5cdCAqL1xuXHRnZXQgZGlyZWN0aXZlcygpOiBXWydkaXJlY3RpdmVzJ10ge1xuXHRcdHJldHVybiB0aGlzLl93aWRnZXQuZGlyZWN0aXZlcztcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdGRvY1xuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRwYXRjaFNpbXBsZUNoYW5nZXModGhpcy5fd2lkZ2V0LnBhdGNoLCBjaGFuZ2VzKTtcblx0fVxuXG5cdC8qKiBAaW50ZXJuYWwgKi9cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkZ2V0Lm5nSW5pdCgpO1xuXHR9XG5cblx0LyoqIEBpbnRlcm5hbCAqL1xuXHRuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkZ2V0LnVwZGF0ZVNsb3RzKCk7XG5cdH1cbn1cbiJdfQ==
|
package/esm2022/utils/zone.mjs
CHANGED
|
@@ -13,6 +13,10 @@ const createObjectWrapper = (wrap) => (object) => {
|
|
|
13
13
|
return res;
|
|
14
14
|
};
|
|
15
15
|
const createReturnValueWrapper = (wrapReturnValue, wrapResult) => (fn) => wrapResult(typeof fn === 'function' ? ((...args) => wrapReturnValue(fn(...args))) : fn);
|
|
16
|
+
/**
|
|
17
|
+
* A utility class that provides methods to run functions inside or outside of Angular's NgZone.
|
|
18
|
+
* This can be useful for optimizing performance by avoiding unnecessary change detection cycles.
|
|
19
|
+
*/
|
|
16
20
|
export class ZoneWrapper {
|
|
17
21
|
constructor() {
|
|
18
22
|
this.#zone = inject(NgZone);
|
|
@@ -26,7 +30,7 @@ export class ZoneWrapper {
|
|
|
26
30
|
if (!this.#runPlanned) {
|
|
27
31
|
this.#runPlanned = true;
|
|
28
32
|
void (async () => {
|
|
29
|
-
await
|
|
33
|
+
await Promise.resolve();
|
|
30
34
|
this.#runPlanned = false;
|
|
31
35
|
if (this.#runNeeded) {
|
|
32
36
|
this.ngZoneRun(noop);
|
|
@@ -61,7 +65,7 @@ export class ZoneWrapper {
|
|
|
61
65
|
this.#runNeeded = false;
|
|
62
66
|
return this.#zone.run(fn);
|
|
63
67
|
}
|
|
64
|
-
static { this.ɵfac = function ZoneWrapper_Factory(
|
|
68
|
+
static { this.ɵfac = function ZoneWrapper_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ZoneWrapper)(); }; }
|
|
65
69
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ZoneWrapper, factory: ZoneWrapper.ɵfac, providedIn: 'root' }); }
|
|
66
70
|
}
|
|
67
71
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ZoneWrapper, [{
|
|
@@ -70,4 +74,4 @@ export class ZoneWrapper {
|
|
|
70
74
|
providedIn: 'root',
|
|
71
75
|
}]
|
|
72
76
|
}], null, null); })();
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFekQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUksQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFJaEMsTUFBTSxtQkFBbUIsR0FDeEIsQ0FBQyxJQUFhLEVBQVcsRUFBRSxDQUMzQixDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBRSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDLENBQUM7QUFFSCxNQUFNLHdCQUF3QixHQUM3QixDQUFDLGVBQXdCLEVBQUUsVUFBbUIsRUFBVyxFQUFFLENBQzNELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDTixVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTFHOzs7R0FHRztBQUlI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QUFDO2dCQUNYLFVBQVUsRUFBRSxNQUFNO2FBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ1pvbmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcbmNvbnN0IGlkZW50aXR5ID0gPFQ+KGE6IFQpID0+IGE7XG5cbnR5cGUgV3JhcHBlciA9IDxUPihmbjogVCkgPT4gVDtcblxuY29uc3QgY3JlYXRlT2JqZWN0V3JhcHBlciA9XG5cdCh3cmFwOiBXcmFwcGVyKTogV3JhcHBlciA9PlxuXHQob2JqZWN0KSA9PiB7XG5cdFx0aWYgKCFvYmplY3QgfHwgdHlwZW9mIG9iamVjdCAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiBvYmplY3Q7XG5cdFx0fVxuXHRcdGNvbnN0IHJlcyA9IHt9IGFzIGFueTtcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpKSB7XG5cdFx0XHRyZXNba2V5XSA9IHdyYXAoKG9iamVjdCBhcyBhbnkpW2tleV0pO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzO1xuXHR9O1xuXG5jb25zdCBjcmVhdGVSZXR1cm5WYWx1ZVdyYXBwZXIgPVxuXHQod3JhcFJldHVyblZhbHVlOiBXcmFwcGVyLCB3cmFwUmVzdWx0OiBXcmFwcGVyKTogV3JhcHBlciA9PlxuXHQoZm4pID0+XG5cdFx0d3JhcFJlc3VsdCh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgPyAoKCguLi5hcmdzOiBhbnlbXSkgPT4gd3JhcFJldHVyblZhbHVlKGZuKC4uLmFyZ3MpKSkgYXMgYW55KSA6IGZuKTtcblxuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdGhhdCBwcm92aWRlcyBtZXRob2RzIHRvIHJ1biBmdW5jdGlvbnMgaW5zaWRlIG9yIG91dHNpZGUgb2YgQW5ndWxhcidzIE5nWm9uZS5cbiAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igb3B0aW1pemluZyBwZXJmb3JtYW5jZSBieSBhdm9pZGluZyB1bm5lY2Vzc2FyeSBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFpvbmVXcmFwcGVyIHtcblx0cmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cmVhZG9ubHkgI2hhc1pvbmUgPSB0aGlzLiN6b25lLnJ1bigoKSA9PiBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCkpOyAvLyBjaGVjayBpZiB6b25lIGlzIGVuYWJsZWQgKGNhbiBiZSBOb29wWm9uZSwgY2YgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3pvbmUjbm9vcHpvbmUpXG5cdCNydW5OZWVkZWQgPSBmYWxzZTtcblx0I3J1blBsYW5uZWQgPSBmYWxzZTtcblxuXHRwbGFuTmdab25lUnVuID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy4jem9uZS5pc1N0YWJsZSkge1xuXHRcdFx0XHRcdHRoaXMuI3J1bk5lZWRlZCA9IHRydWU7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLiNydW5QbGFubmVkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiNydW5QbGFubmVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHZvaWQgKGFzeW5jICgpID0+IHtcblx0XHRcdFx0XHRcdFx0YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuI3J1blBsYW5uZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI3J1bk5lZWRlZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubmdab25lUnVuKG5vb3ApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDogbm9vcDtcblxuXHQvKipcblx0ICogUnVuIHRoZSBpbnB1dCBmdW5jdGlvbiBzeW5jaHJvbm91c2x5IHdpdGhpbiB0aGUgQW5ndWxhciB6b25lXG5cdCAqXG5cdCAqIEBwYXJhbSBmbiAtIGEgZnVuY3Rpb24gdG8gcnVuXG5cdCAqIEByZXR1cm5zIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb25cblx0ICovXG5cdG5nWm9uZVJ1bjxUPihmbjogKCkgPT4gVCk6IFQge1xuXHRcdHRoaXMuI3J1bk5lZWRlZCA9IGZhbHNlO1xuXHRcdHJldHVybiB0aGlzLiN6b25lLnJ1bihmbik7XG5cdH1cblxuXHRpbnNpZGVOZ1pvbmU6IFdyYXBwZXIgPSB0aGlzLiNoYXNab25lXG5cdFx0PyAoZm4pID0+ICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgPyAoKCguLi5hcmdzOiBhbnlbXSkgPT4gdGhpcy5uZ1pvbmVSdW4oKCkgPT4gZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pXG5cdFx0OiBpZGVudGl0eTtcblx0aW5zaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCA9IGNyZWF0ZU9iamVjdFdyYXBwZXIodGhpcy5pbnNpZGVOZ1pvbmUpO1xuXG5cdG91dHNpZGVOZ1pvbmU6IFdyYXBwZXIgPSB0aGlzLiNoYXNab25lXG5cdFx0PyAoZm4pID0+ICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgPyAoKCguLi5hcmdzOiBhbnlbXSkgPT4gdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmbiguLi5hcmdzKSkpIGFzIGFueSkgOiBmbilcblx0XHQ6IGlkZW50aXR5O1xuXG5cdG91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0ID0gY3JlYXRlT2JqZWN0V3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmUpO1xuXHRvdXRzaWRlTmdab25lV3JhcERpcmVjdGl2ZSA9IGNyZWF0ZVJldHVyblZhbHVlV3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0LCB0aGlzLm91dHNpZGVOZ1pvbmUpO1xuXHRvdXRzaWRlTmdab25lV3JhcERpcmVjdGl2ZXNPYmplY3QgPSBjcmVhdGVPYmplY3RXcmFwcGVyKHRoaXMub3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmUpO1xufVxuIl19
|