@agnos-ui/angular-headless 0.0.1-alpha.4 → 0.0.1-alpha.6
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/components/accordion/accordion.d.ts +11 -0
- package/components/alert/alert.d.ts +7 -0
- package/components/modal/modal.d.ts +7 -0
- package/components/pagination/pagination.d.ts +8 -0
- package/components/progressbar/progressbar.d.ts +7 -0
- package/components/rating/rating.d.ts +6 -0
- package/components/select/select.d.ts +8 -0
- package/components/slider/slider.d.ts +1 -0
- package/config.d.ts +36 -0
- package/esm2022/agnos-ui-angular-headless.mjs +2 -2
- package/esm2022/components/accordion/accordion.mjs +4 -0
- package/esm2022/components/alert/alert.mjs +4 -0
- package/esm2022/components/modal/modal.mjs +4 -0
- package/esm2022/components/pagination/pagination.mjs +4 -0
- package/esm2022/components/progressbar/progressbar.mjs +4 -0
- package/esm2022/components/rating/rating.mjs +4 -0
- package/esm2022/components/select/select.mjs +4 -0
- package/esm2022/components/slider/slider.mjs +2 -0
- package/esm2022/config.mjs +104 -0
- package/esm2022/generated/config.mjs +2 -0
- package/esm2022/generated/index.mjs +23 -0
- package/esm2022/generated/services/extendWidget.mjs +2 -0
- package/esm2022/generated/services/floatingUI.mjs +2 -0
- package/esm2022/generated/services/focustrack.mjs +2 -0
- package/esm2022/generated/services/intersection.mjs +2 -0
- package/esm2022/generated/services/navManager.mjs +2 -0
- package/esm2022/generated/services/portal.mjs +2 -0
- package/esm2022/generated/services/siblingsInert.mjs +2 -0
- package/esm2022/generated/services/transitions/baseTransitions.mjs +2 -0
- package/esm2022/generated/services/transitions/bootstrap.mjs +2 -0
- package/esm2022/generated/services/transitions/collapse.mjs +2 -0
- package/esm2022/generated/services/transitions/cssTransitions.mjs +2 -0
- package/esm2022/generated/services/transitions/simpleClassTransition.mjs +2 -0
- package/esm2022/generated/slot.directive.mjs +2 -0
- package/esm2022/generated/slotDefault.directive.mjs +2 -0
- package/esm2022/generated/types.mjs +2 -0
- package/esm2022/generated/utils/coercion.mjs +2 -0
- package/esm2022/generated/utils/directive.mjs +2 -0
- package/esm2022/generated/utils/stores.mjs +2 -0
- package/esm2022/generated/utils/widget.mjs +2 -0
- package/esm2022/generated/utils/writables.mjs +2 -0
- package/esm2022/generated/utils/zone.mjs +2 -0
- package/esm2022/index.mjs +13 -0
- package/esm2022/slot.directive.mjs +199 -0
- package/esm2022/slotDefault.directive.mjs +20 -0
- package/esm2022/types.mjs +21 -0
- package/esm2022/utils/coercion.mjs +34 -0
- package/esm2022/utils/directive.mjs +63 -0
- package/esm2022/utils/stores.mjs +14 -0
- package/esm2022/utils/widget.mjs +114 -0
- package/esm2022/utils/zone.mjs +67 -0
- package/fesm2022/agnos-ui-angular-headless.mjs +300 -154
- package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
- package/generated/config.d.ts +1 -0
- package/generated/index.d.ts +22 -0
- package/generated/services/extendWidget.d.ts +1 -0
- package/generated/services/floatingUI.d.ts +1 -0
- package/generated/services/focustrack.d.ts +1 -0
- package/generated/services/intersection.d.ts +1 -0
- package/generated/services/navManager.d.ts +1 -0
- package/generated/services/portal.d.ts +1 -0
- package/generated/services/siblingsInert.d.ts +1 -0
- package/generated/services/transitions/baseTransitions.d.ts +1 -0
- package/generated/services/transitions/bootstrap.d.ts +1 -0
- package/generated/services/transitions/collapse.d.ts +1 -0
- package/generated/services/transitions/cssTransitions.d.ts +1 -0
- package/generated/services/transitions/simpleClassTransition.d.ts +1 -0
- package/generated/slot.directive.d.ts +1 -0
- package/generated/slotDefault.directive.d.ts +1 -0
- package/generated/types.d.ts +1 -0
- package/generated/utils/coercion.d.ts +1 -0
- package/generated/utils/directive.d.ts +1 -0
- package/generated/utils/stores.d.ts +1 -0
- package/generated/utils/widget.d.ts +1 -0
- package/generated/utils/writables.d.ts +1 -0
- package/generated/utils/zone.d.ts +1 -0
- package/index.d.ts +9 -5
- package/package.json +15 -14
- package/{lib/slot.directive.d.ts → slot.directive.d.ts} +1 -1
- package/{lib/slotDefault.directive.d.ts → slotDefault.directive.d.ts} +1 -1
- package/{lib/slotTypes.d.ts → types.d.ts} +19 -2
- package/utils/coercion.d.ts +22 -0
- package/{lib/use.directive.d.ts → utils/directive.d.ts} +2 -1
- package/utils/stores.d.ts +4 -0
- package/utils/widget.d.ts +27 -0
- package/utils/zone.d.ts +16 -0
- package/esm2022/lib/config.mjs +0 -102
- package/esm2022/lib/slot.directive.mjs +0 -199
- package/esm2022/lib/slotDefault.directive.mjs +0 -20
- package/esm2022/lib/slotTypes.mjs +0 -7
- package/esm2022/lib/use.directive.mjs +0 -62
- package/esm2022/lib/utils.mjs +0 -127
- package/esm2022/public-api.mjs +0 -19
- package/lib/config.d.ts +0 -50
- package/lib/utils.d.ts +0 -17
- package/public-api.d.ts +0 -52
package/esm2022/lib/config.mjs
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { createWidgetsConfig } from '@agnos-ui/core';
|
|
2
|
-
import { computed } from '@amadeus-it-group/tansu';
|
|
3
|
-
import { InjectionToken, Injector, Optional, SkipSelf, inject, runInInjectionContext } from '@angular/core';
|
|
4
|
-
import { callWidgetFactoryWithConfig } from './utils';
|
|
5
|
-
export const widgetsConfigFactory = (widgetsConfigInjectionToken = new InjectionToken('widgetsConfig')) => {
|
|
6
|
-
/**
|
|
7
|
-
* Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level
|
|
8
|
-
* in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form
|
|
9
|
-
* the parent configuration.
|
|
10
|
-
*
|
|
11
|
-
* @remarks
|
|
12
|
-
* The configuration is computed from the parent configuration in two steps:
|
|
13
|
-
* - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).
|
|
14
|
-
* If adaptParentConfig is not specified, this step is skipped.
|
|
15
|
-
* - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains
|
|
16
|
-
* an empty object (i.e. no property from the parent is overridden). It can be changed by calling set on the store returned by
|
|
17
|
-
* {@link injectWidgetsConfig}.
|
|
18
|
-
*
|
|
19
|
-
* @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration
|
|
20
|
-
* defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets
|
|
21
|
-
* default configuration to be used.
|
|
22
|
-
* It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.
|
|
23
|
-
* It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.
|
|
24
|
-
* It is also called in an Angular injection context, so it can call the Angular inject function to get and use dependencies from the
|
|
25
|
-
* Angular dependency injection system.
|
|
26
|
-
|
|
27
|
-
* @returns DI provider to be included a list of `providers` (for example at a component level or
|
|
28
|
-
* any other level of the Angular dependency injection system)
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* @Component({
|
|
33
|
-
* // ...
|
|
34
|
-
* providers: [
|
|
35
|
-
* provideWidgetsConfig((parentConfig) => {
|
|
36
|
-
* // first step configuration: transforms the parent configuration
|
|
37
|
-
* parentConfig.rating = parentConfig.rating ?? {};
|
|
38
|
-
* parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
|
|
39
|
-
* return parentConfig;
|
|
40
|
-
* })
|
|
41
|
-
* ]
|
|
42
|
-
* })
|
|
43
|
-
* class MyComponent {
|
|
44
|
-
* widgetsConfig = injectWidgetsConfig();
|
|
45
|
-
* constructor() {
|
|
46
|
-
* this.widgetsConfig.set({
|
|
47
|
-
* // second step configuration: overrides the parent configuration
|
|
48
|
-
* rating: {
|
|
49
|
-
* slotStar: MyCustomSlotStar
|
|
50
|
-
* }
|
|
51
|
-
* });
|
|
52
|
-
* }
|
|
53
|
-
* // ...
|
|
54
|
-
* }
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
const provideWidgetsConfig = (adaptParentConfig) => ({
|
|
58
|
-
provide: widgetsConfigInjectionToken,
|
|
59
|
-
useFactory: (parent) => {
|
|
60
|
-
if (adaptParentConfig) {
|
|
61
|
-
const injector = inject(Injector);
|
|
62
|
-
const originalAdaptParentConfig = adaptParentConfig;
|
|
63
|
-
adaptParentConfig = (value) => runInInjectionContext(injector, () => originalAdaptParentConfig(value));
|
|
64
|
-
}
|
|
65
|
-
return createWidgetsConfig(parent ?? undefined, adaptParentConfig);
|
|
66
|
-
},
|
|
67
|
-
deps: [[new SkipSelf(), new Optional(), widgetsConfigInjectionToken]],
|
|
68
|
-
});
|
|
69
|
-
/**
|
|
70
|
-
* Returns the widgets default configuration store that was provided in the current injection context.
|
|
71
|
-
* Throws if the no widgets default configuration store was provided.
|
|
72
|
-
*
|
|
73
|
-
* @remarks
|
|
74
|
-
* This function must be called from an injection context, such as a constructor, a factory function, a field initializer or
|
|
75
|
-
* a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.
|
|
76
|
-
*
|
|
77
|
-
* @returns the widgets default configuration store.
|
|
78
|
-
*/
|
|
79
|
-
const injectWidgetsConfig = () => inject(widgetsConfigInjectionToken);
|
|
80
|
-
const injectWidgetConfig = (widgetName) => {
|
|
81
|
-
const widgetsConfig = inject(widgetsConfigInjectionToken, { optional: true });
|
|
82
|
-
return computed(() => widgetsConfig?.()[widgetName]);
|
|
83
|
-
};
|
|
84
|
-
const callWidgetFactory = ({ factory, widgetName = null, defaultConfig = {}, events, }) => callWidgetFactoryWithConfig({
|
|
85
|
-
factory,
|
|
86
|
-
widgetConfig: widgetName ? injectWidgetConfig(widgetName) : null,
|
|
87
|
-
defaultConfig,
|
|
88
|
-
events,
|
|
89
|
-
});
|
|
90
|
-
return {
|
|
91
|
-
/**
|
|
92
|
-
* Dependency Injection token which can be used to provide or inject the widgets default configuration store.
|
|
93
|
-
*/
|
|
94
|
-
widgetsConfigInjectionToken,
|
|
95
|
-
provideWidgetsConfig,
|
|
96
|
-
injectWidgetsConfig,
|
|
97
|
-
injectWidgetConfig,
|
|
98
|
-
callWidgetFactory,
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
export const { widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, injectWidgetsConfig, callWidgetFactory } = widgetsConfigFactory();
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vaGVhZGxlc3Mvc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFHLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQU1wRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNuQyw4QkFBOEIsSUFBSSxjQUFjLENBQTZCLGVBQWUsQ0FBQyxFQUM1RixFQUFFO0lBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0RFO0lBQ0YsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLGlCQUE4RSxFQUFtQixFQUFFLENBQUMsQ0FBQztRQUNsSSxPQUFPLEVBQUUsMkJBQTJCO1FBQ3BDLFVBQVUsRUFBRSxDQUFDLE1BQXlDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLGlCQUFpQixFQUFFO2dCQUN0QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3BELGlCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2RztZQUNELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0tBQ3JFLENBQUMsQ0FBQztJQUVIOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFFdEUsTUFBTSxrQkFBa0IsR0FBRyxDQUF5QixVQUFhLEVBQWtELEVBQUU7UUFDcEgsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQztJQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBbUIsRUFDNUMsT0FBTyxFQUNQLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLGFBQWEsR0FBRyxFQUFFLEVBQ2xCLE1BQU0sR0FNTixFQUFxQixFQUFFLENBQ3ZCLDJCQUEyQixDQUFDO1FBQzNCLE9BQU87UUFDUCxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUN6RSxhQUFhO1FBQ2IsTUFBTTtLQUNOLENBQUMsQ0FBQztJQUVKLE9BQU87UUFDTjs7V0FFRztRQUNILDJCQUEyQjtRQUMzQixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixpQkFBaUI7S0FDakIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEVBQUMsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUMsR0FDM0gsb0JBQW9CLEVBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGFydGlhbDJMZXZlbHMsIFdpZGdldCwgV2lkZ2V0RmFjdG9yeSwgV2lkZ2V0UHJvcHMsIFdpZGdldHNDb25maWdTdG9yZX0gZnJvbSAnQGFnbm9zLXVpL2NvcmUnO1xuaW1wb3J0IHtjcmVhdGVXaWRnZXRzQ29uZmlnfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQgdHlwZSB7UmVhZGFibGVTaWduYWx9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB7Y29tcHV0ZWR9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB0eXBlIHtGYWN0b3J5UHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9wdGlvbmFsLCBTa2lwU2VsZiwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge0FkYXB0UHJvcHNTbG90c30gZnJvbSAnLi9zbG90VHlwZXMnO1xuaW1wb3J0IHR5cGUge1dpdGhQYXRjaFNsb3RzfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7Y2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgV2lkZ2V0c0NvbmZpZyA9IHtcblx0W1dpZGdldE5hbWUgaW4ga2V5b2YgaW1wb3J0KCdAYWdub3MtdWkvY29yZScpLldpZGdldHNDb25maWddOiBBZGFwdFByb3BzU2xvdHM8aW1wb3J0KCdAYWdub3MtdWkvY29yZScpLldpZGdldHNDb25maWdbV2lkZ2V0TmFtZV0+O1xufTtcblxuZXhwb3J0IGNvbnN0IHdpZGdldHNDb25maWdGYWN0b3J5ID0gPENvbmZpZyBleHRlbmRzIHtbd2lkZ2V0TmFtZTogc3RyaW5nXTogb2JqZWN0fSA9IFdpZGdldHNDb25maWc+KFxuXHR3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48V2lkZ2V0c0NvbmZpZ1N0b3JlPENvbmZpZz4+KCd3aWRnZXRzQ29uZmlnJylcbikgPT4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIHByb3ZpZGVyIG9mIHdpZGdldHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIHRoYXQgaW5oZXJpdHMgZnJvbSBhbnkgd2lkZ2V0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYWxyZWFkeSBkZWZpbmVkIGF0IGFuIHVwcGVyIGxldmVsXG5cdCAqIGluIHRoZSBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbS4gSXQgY29udGFpbnMgaXRzIG93biBzZXQgb2Ygd2lkZ2V0cyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdGhhdCBvdmVycmlkZSB0aGUgc2FtZSBwcm9wZXJ0aWVzIGZvcm1cblx0ICogdGhlIHBhcmVudCBjb25maWd1cmF0aW9uLlxuXHQgKlxuXHQgKiBAcmVtYXJrc1xuXHQgKiBUaGUgY29uZmlndXJhdGlvbiBpcyBjb21wdXRlZCBmcm9tIHRoZSBwYXJlbnQgY29uZmlndXJhdGlvbiBpbiB0d28gc3RlcHM6XG5cdCAqIC0gZmlyc3Qgc3RlcDogdGhlIHBhcmVudCBjb25maWd1cmF0aW9uIGlzIHRyYW5zZm9ybWVkIGJ5IHRoZSBhZGFwdFBhcmVudENvbmZpZyBmdW5jdGlvbiAoaWYgc3BlY2lmaWVkKS5cblx0ICogSWYgYWRhcHRQYXJlbnRDb25maWcgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBzdGVwIGlzIHNraXBwZWQuXG5cdCAqIC0gc2Vjb25kIHN0ZXA6IHRoZSBjb25maWd1cmF0aW9uIGZyb20gc3RlcCAxIGlzIG1lcmdlZCAoMi1sZXZlbHMgZGVlcCkgd2l0aCB0aGUgb3duJCBzdG9yZS4gVGhlIG93biQgc3RvcmUgaW5pdGlhbGx5IGNvbnRhaW5zXG5cdCAqIGFuIGVtcHR5IG9iamVjdCAoaS5lLiBubyBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgaXMgb3ZlcnJpZGRlbikuIEl0IGNhbiBiZSBjaGFuZ2VkIGJ5IGNhbGxpbmcgc2V0IG9uIHRoZSBzdG9yZSByZXR1cm5lZCBieVxuXHQgKiB7QGxpbmsgaW5qZWN0V2lkZ2V0c0NvbmZpZ30uXG5cdCAqXG5cdCAqIEBwYXJhbSBhZGFwdFBhcmVudENvbmZpZyAtIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgYSAyLWxldmVscyBjb3B5IG9mIHRoZSB3aWRnZXRzIGRlZmF1bHQgY29uZmlndXJhdGlvblxuXHQgKiBkZWZpbmVkIGF0IGFuIHVwcGVyIGxldmVsIGluIHRoZSBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbSAob3IgYW4gZW1wdHkgb2JqZWN0IGlmIHRoZXJlIGlzIG5vbmUpIGFuZCByZXR1cm5zIHRoZSB3aWRnZXRzXG5cdCAqIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0byBiZSB1c2VkLlxuXHQgKiBJdCBpcyBjYWxsZWQgb25seSBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBuZWVkZWQsIGFuZCB3YXMgbm90IHlldCBjb21wdXRlZCBmb3IgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHBhcmVudCBjb25maWd1cmF0aW9uLlxuXHQgKiBJdCBpcyBjYWxsZWQgaW4gYSB0YW5zdSByZWFjdGl2ZSBjb250ZXh0LCBzbyBpdCBjYW4gdXNlIGFueSB0YW5zdSBzdG9yZSBhbmQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gaWYgdGhvc2Ugc3RvcmVzIGNoYW5nZS5cblx0ICogSXQgaXMgYWxzbyBjYWxsZWQgaW4gYW4gQW5ndWxhciBpbmplY3Rpb24gY29udGV4dCwgc28gaXQgY2FuIGNhbGwgdGhlIEFuZ3VsYXIgaW5qZWN0IGZ1bmN0aW9uIHRvIGdldCBhbmQgdXNlIGRlcGVuZGVuY2llcyBmcm9tIHRoZVxuXHQgKiBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHN5c3RlbS5cblxuXHQqIEByZXR1cm5zIERJIHByb3ZpZGVyIHRvIGJlIGluY2x1ZGVkIGEgbGlzdCBvZiBgcHJvdmlkZXJzYCAoZm9yIGV4YW1wbGUgYXQgYSBjb21wb25lbnQgbGV2ZWwgb3Jcblx0KiBhbnkgb3RoZXIgbGV2ZWwgb2YgdGhlIEFuZ3VsYXIgZGVwZW5kZW5jeSBpbmplY3Rpb24gc3lzdGVtKVxuXHQqXG5cdCogQGV4YW1wbGVcblx0KiBgYGB0eXBlc2NyaXB0XG5cdCogQENvbXBvbmVudCh7XG5cdCogICAvLyAuLi5cblx0KiAgIHByb3ZpZGVyczogW1xuXHQqICAgICBwcm92aWRlV2lkZ2V0c0NvbmZpZygocGFyZW50Q29uZmlnKSA9PiB7XG5cdCogICAgICAgLy8gZmlyc3Qgc3RlcCBjb25maWd1cmF0aW9uOiB0cmFuc2Zvcm1zIHRoZSBwYXJlbnQgY29uZmlndXJhdGlvblxuXHQqICAgICAgIHBhcmVudENvbmZpZy5yYXRpbmcgPSBwYXJlbnRDb25maWcucmF0aW5nID8/IHt9O1xuXHQqICAgICAgIHBhcmVudENvbmZpZy5yYXRpbmcuY2xhc3NOYW1lID0gYCR7cGFyZW50Q29uZmlnLnJhdGluZy5jbGFzc05hbWUgPz8gJyd9IG15LXJhdGluZy1leHRyYS1jbGFzc2Bcblx0KiAgICAgICByZXR1cm4gcGFyZW50Q29uZmlnO1xuXHQqICAgICB9KVxuXHQqICAgXVxuXHQqIH0pXG5cdCogY2xhc3MgTXlDb21wb25lbnQge1xuXHQqICAgd2lkZ2V0c0NvbmZpZyA9IGluamVjdFdpZGdldHNDb25maWcoKTtcblx0KiAgIGNvbnN0cnVjdG9yKCkge1xuXHQqICAgICB0aGlzLndpZGdldHNDb25maWcuc2V0KHtcblx0KiAgICAgICAvLyBzZWNvbmQgc3RlcCBjb25maWd1cmF0aW9uOiBvdmVycmlkZXMgdGhlIHBhcmVudCBjb25maWd1cmF0aW9uXG5cdCogICAgICAgcmF0aW5nOiB7XG5cdCogICAgICAgICBzbG90U3RhcjogTXlDdXN0b21TbG90U3RhclxuXHQqICAgICAgIH1cblx0KiAgICAgfSk7XG5cdCogICB9XG5cdCogICAvLyAuLi5cblx0KiB9XG5cdCogYGBgXG5cdCovXG5cdGNvbnN0IHByb3ZpZGVXaWRnZXRzQ29uZmlnID0gKGFkYXB0UGFyZW50Q29uZmlnPzogKGNvbmZpZzogUGFydGlhbDJMZXZlbHM8Q29uZmlnPikgPT4gUGFydGlhbDJMZXZlbHM8Q29uZmlnPik6IEZhY3RvcnlQcm92aWRlciA9PiAoe1xuXHRcdHByb3ZpZGU6IHdpZGdldHNDb25maWdJbmplY3Rpb25Ub2tlbixcblx0XHR1c2VGYWN0b3J5OiAocGFyZW50OiBXaWRnZXRzQ29uZmlnU3RvcmU8Q29uZmlnPiB8IG51bGwpID0+IHtcblx0XHRcdGlmIChhZGFwdFBhcmVudENvbmZpZykge1xuXHRcdFx0XHRjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0XHRcdGNvbnN0IG9yaWdpbmFsQWRhcHRQYXJlbnRDb25maWcgPSBhZGFwdFBhcmVudENvbmZpZztcblx0XHRcdFx0YWRhcHRQYXJlbnRDb25maWcgPSAodmFsdWUpID0+IHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4gb3JpZ2luYWxBZGFwdFBhcmVudENvbmZpZyh2YWx1ZSkpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGNyZWF0ZVdpZGdldHNDb25maWcocGFyZW50ID8/IHVuZGVmaW5lZCwgYWRhcHRQYXJlbnRDb25maWcpO1xuXHRcdH0sXG5cdFx0ZGVwczogW1tuZXcgU2tpcFNlbGYoKSwgbmV3IE9wdGlvbmFsKCksIHdpZGdldHNDb25maWdJbmplY3Rpb25Ub2tlbl1dLFxuXHR9KTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgd2lkZ2V0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc3RvcmUgdGhhdCB3YXMgcHJvdmlkZWQgaW4gdGhlIGN1cnJlbnQgaW5qZWN0aW9uIGNvbnRleHQuXG5cdCAqIFRocm93cyBpZiB0aGUgbm8gd2lkZ2V0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc3RvcmUgd2FzIHByb3ZpZGVkLlxuXHQgKlxuXHQgKiBAcmVtYXJrc1xuXHQgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGZyb20gYW4gaW5qZWN0aW9uIGNvbnRleHQsIHN1Y2ggYXMgYSBjb25zdHJ1Y3RvciwgYSBmYWN0b3J5IGZ1bmN0aW9uLCBhIGZpZWxkIGluaXRpYWxpemVyIG9yXG5cdCAqIGEgZnVuY3Rpb24gdXNlZCB3aXRoIHtAbGluayBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvcnVuSW5JbmplY3Rpb25Db250ZXh0IHwgcnVuSW5JbmplY3Rpb25Db250ZXh0fS5cblx0ICpcblx0ICogQHJldHVybnMgdGhlIHdpZGdldHMgZGVmYXVsdCBjb25maWd1cmF0aW9uIHN0b3JlLlxuXHQgKi9cblx0Y29uc3QgaW5qZWN0V2lkZ2V0c0NvbmZpZyA9ICgpID0+IGluamVjdCh3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4pO1xuXG5cdGNvbnN0IGluamVjdFdpZGdldENvbmZpZyA9IDxOIGV4dGVuZHMga2V5b2YgQ29uZmlnPih3aWRnZXROYW1lOiBOKTogUmVhZGFibGVTaWduYWw8UGFydGlhbDxDb25maWdbTl0+IHwgdW5kZWZpbmVkPiA9PiB7XG5cdFx0Y29uc3Qgd2lkZ2V0c0NvbmZpZyA9IGluamVjdCh3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4sIHtvcHRpb25hbDogdHJ1ZX0pO1xuXHRcdHJldHVybiBjb21wdXRlZCgoKSA9PiB3aWRnZXRzQ29uZmlnPy4oKVt3aWRnZXROYW1lXSk7XG5cdH07XG5cblx0Y29uc3QgY2FsbFdpZGdldEZhY3RvcnkgPSA8VyBleHRlbmRzIFdpZGdldD4oe1xuXHRcdGZhY3RvcnksXG5cdFx0d2lkZ2V0TmFtZSA9IG51bGwsXG5cdFx0ZGVmYXVsdENvbmZpZyA9IHt9LFxuXHRcdGV2ZW50cyxcblx0fToge1xuXHRcdGZhY3Rvcnk6IFdpZGdldEZhY3Rvcnk8Vz47XG5cdFx0d2lkZ2V0TmFtZT86IG51bGwgfCBrZXlvZiBDb25maWc7XG5cdFx0ZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHRcdGV2ZW50czogUGljazxXaWRnZXRQcm9wczxXPiwga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gJiBgb24ke3N0cmluZ31gPjtcblx0fSk6IFdpdGhQYXRjaFNsb3RzPFc+ID0+XG5cdFx0Y2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnKHtcblx0XHRcdGZhY3RvcnksXG5cdFx0XHR3aWRnZXRDb25maWc6IHdpZGdldE5hbWUgPyAoaW5qZWN0V2lkZ2V0Q29uZmlnKHdpZGdldE5hbWUpIGFzIGFueSkgOiBudWxsLFxuXHRcdFx0ZGVmYXVsdENvbmZpZyxcblx0XHRcdGV2ZW50cyxcblx0XHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdC8qKlxuXHRcdCAqIERlcGVuZGVuY3kgSW5qZWN0aW9uIHRva2VuIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgb3IgaW5qZWN0IHRoZSB3aWRnZXRzIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzdG9yZS5cblx0XHQgKi9cblx0XHR3aWRnZXRzQ29uZmlnSW5qZWN0aW9uVG9rZW4sXG5cdFx0cHJvdmlkZVdpZGdldHNDb25maWcsXG5cdFx0aW5qZWN0V2lkZ2V0c0NvbmZpZyxcblx0XHRpbmplY3RXaWRnZXRDb25maWcsXG5cdFx0Y2FsbFdpZGdldEZhY3RvcnksXG5cdH07XG59O1xuXG5leHBvcnQgY29uc3Qge3dpZGdldHNDb25maWdJbmplY3Rpb25Ub2tlbiwgcHJvdmlkZVdpZGdldHNDb25maWcsIGluamVjdFdpZGdldENvbmZpZywgaW5qZWN0V2lkZ2V0c0NvbmZpZywgY2FsbFdpZGdldEZhY3Rvcnl9ID1cblx0d2lkZ2V0c0NvbmZpZ0ZhY3Rvcnk8V2lkZ2V0c0NvbmZpZz4oKTtcbiJdfQ==
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, EnvironmentInjector, Input, TemplateRef, ViewContainerRef, createComponent, inject, reflectComponentType } from '@angular/core';
|
|
3
|
-
import { ComponentTemplate } from './slotTypes';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
class SlotHandler {
|
|
6
|
-
constructor(viewContainerRef, document) {
|
|
7
|
-
this.viewContainerRef = viewContainerRef;
|
|
8
|
-
this.document = document;
|
|
9
|
-
}
|
|
10
|
-
slotChange(slot, props) { }
|
|
11
|
-
propsChange(slot, props) { }
|
|
12
|
-
destroy() { }
|
|
13
|
-
}
|
|
14
|
-
class StringSlotHandler extends SlotHandler {
|
|
15
|
-
#nodeRef;
|
|
16
|
-
#previousText = '';
|
|
17
|
-
slotChange(slot) {
|
|
18
|
-
if (slot === this.#previousText) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
this.#previousText = slot;
|
|
22
|
-
if (this.#nodeRef) {
|
|
23
|
-
this.#nodeRef.textContent = slot;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const viewContainerElement = this.viewContainerRef.element.nativeElement;
|
|
27
|
-
if (this.document && viewContainerElement?.parentNode) {
|
|
28
|
-
this.#nodeRef = viewContainerElement.parentNode.insertBefore(this.document.createTextNode(slot), viewContainerElement);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
destroy() {
|
|
33
|
-
this.#nodeRef?.parentNode?.removeChild(this.#nodeRef);
|
|
34
|
-
this.#nodeRef = undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
class FunctionSlotHandler extends SlotHandler {
|
|
38
|
-
#stringSlotHandler = new StringSlotHandler(this.viewContainerRef, this.document);
|
|
39
|
-
slotChange(slot, props) {
|
|
40
|
-
this.#stringSlotHandler.slotChange(slot(props));
|
|
41
|
-
}
|
|
42
|
-
propsChange(slot, props) {
|
|
43
|
-
this.#stringSlotHandler.slotChange(slot(props));
|
|
44
|
-
}
|
|
45
|
-
destroy() {
|
|
46
|
-
this.#stringSlotHandler.destroy();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
class ComponentSlotHandler extends SlotHandler {
|
|
50
|
-
#componentRef;
|
|
51
|
-
#properties;
|
|
52
|
-
slotChange(slot, props) {
|
|
53
|
-
if (this.#componentRef) {
|
|
54
|
-
this.destroy();
|
|
55
|
-
}
|
|
56
|
-
this.#componentRef = this.viewContainerRef.createComponent(slot);
|
|
57
|
-
this.#applyProperties(props);
|
|
58
|
-
}
|
|
59
|
-
#applyProperties(props, oldProperties) {
|
|
60
|
-
const properties = Object.keys(props);
|
|
61
|
-
this.#properties = properties;
|
|
62
|
-
const componentRef = this.#componentRef;
|
|
63
|
-
for (const property of properties) {
|
|
64
|
-
componentRef.setInput(property, props[property]);
|
|
65
|
-
oldProperties?.delete(property);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
propsChange(slot, props) {
|
|
69
|
-
const oldProperties = new Set(this.#properties);
|
|
70
|
-
this.#applyProperties(props, oldProperties);
|
|
71
|
-
const componentRef = this.#componentRef;
|
|
72
|
-
for (const property of oldProperties) {
|
|
73
|
-
componentRef.setInput(property, undefined);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
destroy() {
|
|
77
|
-
this.viewContainerRef.clear();
|
|
78
|
-
this.#componentRef = undefined;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
class TemplateRefSlotHandler extends SlotHandler {
|
|
82
|
-
#viewRef;
|
|
83
|
-
#props;
|
|
84
|
-
slotChange(slot, props) {
|
|
85
|
-
if (this.#viewRef) {
|
|
86
|
-
this.destroy();
|
|
87
|
-
}
|
|
88
|
-
props = { ...props };
|
|
89
|
-
this.#props = props;
|
|
90
|
-
this.#viewRef = this.viewContainerRef.createEmbeddedView(slot, props);
|
|
91
|
-
}
|
|
92
|
-
propsChange(slot, props) {
|
|
93
|
-
if (this.#viewRef) {
|
|
94
|
-
const templateProps = this.#props;
|
|
95
|
-
const oldProperties = new Set(Object.keys(templateProps));
|
|
96
|
-
for (const property of Object.keys(props)) {
|
|
97
|
-
templateProps[property] = props[property];
|
|
98
|
-
oldProperties.delete(property);
|
|
99
|
-
}
|
|
100
|
-
for (const oldProperty of oldProperties) {
|
|
101
|
-
delete templateProps[oldProperty];
|
|
102
|
-
}
|
|
103
|
-
this.#viewRef.markForCheck();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
destroy() {
|
|
107
|
-
this.viewContainerRef.clear();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
class ComponentTemplateSlotHandler extends SlotHandler {
|
|
111
|
-
#componentRef;
|
|
112
|
-
#templateSlotHandler = new TemplateRefSlotHandler(this.viewContainerRef, this.document);
|
|
113
|
-
#templateRef;
|
|
114
|
-
slotChange(slot, props) {
|
|
115
|
-
if (this.#componentRef) {
|
|
116
|
-
this.destroy();
|
|
117
|
-
}
|
|
118
|
-
this.#componentRef = createComponent(slot.component, {
|
|
119
|
-
elementInjector: this.viewContainerRef.injector,
|
|
120
|
-
environmentInjector: this.viewContainerRef.injector.get(EnvironmentInjector),
|
|
121
|
-
});
|
|
122
|
-
this.#templateRef = this.#componentRef.instance[slot.templateProp];
|
|
123
|
-
this.#templateSlotHandler.slotChange(this.#templateRef, props);
|
|
124
|
-
}
|
|
125
|
-
propsChange(slot, props) {
|
|
126
|
-
this.#templateSlotHandler.propsChange(this.#templateRef, props);
|
|
127
|
-
}
|
|
128
|
-
destroy() {
|
|
129
|
-
this.#templateSlotHandler.destroy();
|
|
130
|
-
this.#componentRef?.destroy();
|
|
131
|
-
this.#componentRef = undefined;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
const getSlotType = (value) => {
|
|
135
|
-
if (!value)
|
|
136
|
-
return undefined;
|
|
137
|
-
const type = typeof value;
|
|
138
|
-
switch (type) {
|
|
139
|
-
case 'string':
|
|
140
|
-
return StringSlotHandler;
|
|
141
|
-
case 'function':
|
|
142
|
-
if (reflectComponentType(value)) {
|
|
143
|
-
return ComponentSlotHandler;
|
|
144
|
-
}
|
|
145
|
-
return FunctionSlotHandler;
|
|
146
|
-
case 'object':
|
|
147
|
-
if (value instanceof TemplateRef) {
|
|
148
|
-
return TemplateRefSlotHandler;
|
|
149
|
-
}
|
|
150
|
-
if (value instanceof ComponentTemplate) {
|
|
151
|
-
return ComponentTemplateSlotHandler;
|
|
152
|
-
}
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
return undefined;
|
|
156
|
-
};
|
|
157
|
-
export class SlotDirective {
|
|
158
|
-
constructor() {
|
|
159
|
-
this._viewContainerRef = inject(ViewContainerRef);
|
|
160
|
-
this._document = inject(DOCUMENT);
|
|
161
|
-
}
|
|
162
|
-
ngOnChanges(changes) {
|
|
163
|
-
const slotChange = changes['slot'];
|
|
164
|
-
const propsChange = changes['props'];
|
|
165
|
-
const slot = this.slot;
|
|
166
|
-
if (slotChange) {
|
|
167
|
-
const newSlotType = getSlotType(slot);
|
|
168
|
-
if (newSlotType !== this._slotType) {
|
|
169
|
-
this._slotHandler?.destroy();
|
|
170
|
-
this._slotHandler = newSlotType ? new newSlotType(this._viewContainerRef, this._document) : undefined;
|
|
171
|
-
this._slotType = newSlotType;
|
|
172
|
-
}
|
|
173
|
-
this._slotHandler?.slotChange(slot, this.props);
|
|
174
|
-
}
|
|
175
|
-
else if (propsChange) {
|
|
176
|
-
this._slotHandler?.propsChange(slot, this.props);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
ngOnDestroy() {
|
|
180
|
-
this._slotHandler?.destroy();
|
|
181
|
-
this._slotHandler = undefined;
|
|
182
|
-
}
|
|
183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
184
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SlotDirective, isStandalone: true, selector: "[auSlot]", inputs: { slot: ["auSlot", "slot"], props: ["auSlotProps", "props"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
185
|
-
}
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlotDirective, decorators: [{
|
|
187
|
-
type: Directive,
|
|
188
|
-
args: [{
|
|
189
|
-
selector: '[auSlot]',
|
|
190
|
-
standalone: true,
|
|
191
|
-
}]
|
|
192
|
-
}], propDecorators: { slot: [{
|
|
193
|
-
type: Input,
|
|
194
|
-
args: ['auSlot']
|
|
195
|
-
}], props: [{
|
|
196
|
-
type: Input,
|
|
197
|
-
args: ['auSlotProps']
|
|
198
|
-
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9oZWFkbGVzcy9zcmMvbGliL3Nsb3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBRTlDLE1BQWUsV0FBVztJQUN6QixZQUFtQixnQkFBa0MsRUFBUyxRQUFrQjtRQUE3RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFDcEYsVUFBVSxDQUFDLElBQVUsRUFBRSxLQUFZLElBQUcsQ0FBQztJQUN2QyxXQUFXLENBQUMsSUFBVSxFQUFFLEtBQVksSUFBRyxDQUFDO0lBQ3hDLE9BQU8sS0FBSSxDQUFDO0NBQ1o7QUFFRCxNQUFNLGlCQUFxRCxTQUFRLFdBQTBCO0lBQzVGLFFBQVEsQ0FBbUI7SUFDM0IsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUVWLFVBQVUsQ0FBQyxJQUFZO1FBQy9CLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEMsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUNqQzthQUFNO1lBQ04sTUFBTSxvQkFBb0IsR0FBd0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7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QVMsR0FBRyxXQUFXLENBQUM7YUFDN0I7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxXQUFXLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNGLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDOytHQTdCVyxhQUFhO21HQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjs4QkFFaUIsSUFBSTtzQkFBcEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNPLEtBQUs7c0JBQTFCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7Q29tcG9uZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBFbnZpcm9ubWVudEluamVjdG9yLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIGNyZWF0ZUNvbXBvbmVudCwgaW5qZWN0LCByZWZsZWN0Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7U2xvdENvbnRlbnR9IGZyb20gJy4vc2xvdFR5cGVzJztcbmltcG9ydCB7Q29tcG9uZW50VGVtcGxhdGV9IGZyb20gJy4vc2xvdFR5cGVzJztcblxuYWJzdHJhY3QgY2xhc3MgU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBTbG90IGV4dGVuZHMgU2xvdENvbnRlbnQ8UHJvcHM+ID0gU2xvdENvbnRlbnQ8UHJvcHM+PiB7XG5cdGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwdWJsaWMgZG9jdW1lbnQ6IERvY3VtZW50KSB7fVxuXHRzbG90Q2hhbmdlKHNsb3Q6IFNsb3QsIHByb3BzOiBQcm9wcykge31cblx0cHJvcHNDaGFuZ2Uoc2xvdDogU2xvdCwgcHJvcHM6IFByb3BzKSB7fVxuXHRkZXN0cm95KCkge31cbn1cblxuY2xhc3MgU3RyaW5nU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBleHRlbmRzIFNsb3RIYW5kbGVyPFByb3BzLCBzdHJpbmc+IHtcblx0I25vZGVSZWY6IFRleHQgfCB1bmRlZmluZWQ7XG5cdCNwcmV2aW91c1RleHQgPSAnJztcblxuXHRvdmVycmlkZSBzbG90Q2hhbmdlKHNsb3Q6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmIChzbG90ID09PSB0aGlzLiNwcmV2aW91c1RleHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy4jcHJldmlvdXNUZXh0ID0gc2xvdDtcblx0XHRpZiAodGhpcy4jbm9kZVJlZikge1xuXHRcdFx0dGhpcy4jbm9kZVJlZi50ZXh0Q29udGVudCA9IHNsb3Q7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHZpZXdDb250YWluZXJFbGVtZW50OiBDb21tZW50IHwgdW5kZWZpbmVkID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICh0aGlzLmRvY3VtZW50ICYmIHZpZXdDb250YWluZXJFbGVtZW50Py5wYXJlbnROb2RlKSB7XG5cdFx0XHRcdHRoaXMuI25vZGVSZWYgPSB2aWV3Q29udGFpbmVyRWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNsb3QpLCB2aWV3Q29udGFpbmVyRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0b3ZlcnJpZGUgZGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLiNub2RlUmVmPy5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzLiNub2RlUmVmKTtcblx0XHR0aGlzLiNub2RlUmVmID0gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmNsYXNzIEZ1bmN0aW9uU2xvdEhhbmRsZXI8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBleHRlbmRzIFNsb3RIYW5kbGVyPFByb3BzLCAocHJvcHM6IFByb3BzKSA9PiBzdHJpbmc+IHtcblx0I3N0cmluZ1Nsb3RIYW5kbGVyID0gbmV3IFN0cmluZ1Nsb3RIYW5kbGVyKHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy5kb2N1bWVudCk7XG5cblx0b3ZlcnJpZGUgc2xvdENoYW5nZShzbG90OiAocHJvcHM6IFByb3BzKSA9PiBzdHJpbmcsIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdHRoaXMuI3N0cmluZ1Nsb3RIYW5kbGVyLnNsb3RDaGFuZ2Uoc2xvdChwcm9wcykpO1xuXHR9XG5cblx0b3ZlcnJpZGUgcHJvcHNDaGFuZ2Uoc2xvdDogKHByb3BzOiBQcm9wcykgPT4gc3RyaW5nLCBwcm9wczogUHJvcHMpOiB2b2lkIHtcblx0XHR0aGlzLiNzdHJpbmdTbG90SGFuZGxlci5zbG90Q2hhbmdlKHNsb3QocHJvcHMpKTtcblx0fVxuXG5cdG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy4jc3RyaW5nU2xvdEhhbmRsZXIuZGVzdHJveSgpO1xuXHR9XG59XG5cbmNsYXNzIENvbXBvbmVudFNsb3RIYW5kbGVyPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgVHlwZTx1bmtub3duPj4ge1xuXHQjY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IHVuZGVmaW5lZDtcblx0I3Byb3BlcnRpZXM6IHN0cmluZ1tdO1xuXG5cdG92ZXJyaWRlIHNsb3RDaGFuZ2Uoc2xvdDogVHlwZTx1bmtub3duPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI2NvbXBvbmVudFJlZikge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdHRoaXMuI2NvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoc2xvdCk7XG5cdFx0dGhpcy4jYXBwbHlQcm9wZXJ0aWVzKHByb3BzKTtcblx0fVxuXG5cdCNhcHBseVByb3BlcnRpZXMocHJvcHM6IFByb3BzLCBvbGRQcm9wZXJ0aWVzPzogU2V0PHN0cmluZz4pIHtcblx0XHRjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMocHJvcHMpO1xuXHRcdHRoaXMuI3Byb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuXHRcdGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuI2NvbXBvbmVudFJlZiE7XG5cdFx0Zm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG5cdFx0XHRjb21wb25lbnRSZWYuc2V0SW5wdXQocHJvcGVydHksIHByb3BzW3Byb3BlcnR5XSk7XG5cdFx0XHRvbGRQcm9wZXJ0aWVzPy5kZWxldGUocHJvcGVydHkpO1xuXHRcdH1cblx0fVxuXG5cdG92ZXJyaWRlIHByb3BzQ2hhbmdlKHNsb3Q6IFR5cGU8dW5rbm93bj4sIHByb3BzOiBQcm9wcyk6IHZvaWQge1xuXHRcdGNvbnN0IG9sZFByb3BlcnRpZXMgPSBuZXcgU2V0KHRoaXMuI3Byb3BlcnRpZXMpO1xuXHRcdHRoaXMuI2FwcGx5UHJvcGVydGllcyhwcm9wcywgb2xkUHJvcGVydGllcyk7XG5cdFx0Y29uc3QgY29tcG9uZW50UmVmID0gdGhpcy4jY29tcG9uZW50UmVmITtcblx0XHRmb3IgKGNvbnN0IHByb3BlcnR5IG9mIG9sZFByb3BlcnRpZXMpIHtcblx0XHRcdGNvbXBvbmVudFJlZi5zZXRJbnB1dChwcm9wZXJ0eSwgdW5kZWZpbmVkKTtcblx0XHR9XG5cdH1cblxuXHRvdmVycmlkZSBkZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXHRcdHRoaXMuI2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcblx0fVxufVxuXG5jbGFzcyBUZW1wbGF0ZVJlZlNsb3RIYW5kbGVyPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgVGVtcGxhdGVSZWY8UHJvcHM+PiB7XG5cdCN2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8UHJvcHM+IHwgdW5kZWZpbmVkO1xuXHQjcHJvcHM6IFByb3BzO1xuXG5cdG92ZXJyaWRlIHNsb3RDaGFuZ2Uoc2xvdDogVGVtcGxhdGVSZWY8UHJvcHM+LCBwcm9wczogUHJvcHMpOiB2b2lkIHtcblx0XHRpZiAodGhpcy4jdmlld1JlZikge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdHByb3BzID0gey4uLnByb3BzfTtcblx0XHR0aGlzLiNwcm9wcyA9IHByb3BzO1xuXHRcdHRoaXMuI3ZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHNsb3QsIHByb3BzKTtcblx0fVxuXG5cdG92ZXJyaWRlIHByb3BzQ2hhbmdlKHNsb3Q6IFRlbXBsYXRlUmVmPFByb3BzPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI3ZpZXdSZWYpIHtcblx0XHRcdGNvbnN0IHRlbXBsYXRlUHJvcHMgPSB0aGlzLiNwcm9wcztcblx0XHRcdGNvbnN0IG9sZFByb3BlcnRpZXMgPSBuZXcgU2V0PGtleW9mIFByb3BzPihPYmplY3Qua2V5cyh0ZW1wbGF0ZVByb3BzKSk7XG5cdFx0XHRmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKHByb3BzKSBhcyAoa2V5b2YgUHJvcHMpW10pIHtcblx0XHRcdFx0dGVtcGxhdGVQcm9wc1twcm9wZXJ0eV0gPSBwcm9wc1twcm9wZXJ0eV07XG5cdFx0XHRcdG9sZFByb3BlcnRpZXMuZGVsZXRlKHByb3BlcnR5KTtcblx0XHRcdH1cblx0XHRcdGZvciAoY29uc3Qgb2xkUHJvcGVydHkgb2Ygb2xkUHJvcGVydGllcykge1xuXHRcdFx0XHRkZWxldGUgdGVtcGxhdGVQcm9wc1tvbGRQcm9wZXJ0eV07XG5cdFx0XHR9XG5cdFx0XHR0aGlzLiN2aWV3UmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblx0fVxuXG5cdG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cdH1cbn1cblxuY2xhc3MgQ29tcG9uZW50VGVtcGxhdGVTbG90SGFuZGxlcjxcblx0UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuXHRLIGV4dGVuZHMgc3RyaW5nLFxuXHRUIGV4dGVuZHMge1trZXkgaW4gS106IFRlbXBsYXRlUmVmPFByb3BzPn1cbj4gZXh0ZW5kcyBTbG90SGFuZGxlcjxQcm9wcywgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIEssIFQ+PiB7XG5cdCNjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IHVuZGVmaW5lZDtcblx0I3RlbXBsYXRlU2xvdEhhbmRsZXIgPSBuZXcgVGVtcGxhdGVSZWZTbG90SGFuZGxlcih0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMuZG9jdW1lbnQpO1xuXHQjdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFByb3BzPiB8IHVuZGVmaW5lZDtcblxuXHRvdmVycmlkZSBzbG90Q2hhbmdlKHNsb3Q6IENvbXBvbmVudFRlbXBsYXRlPFByb3BzLCBLLCBUPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI2NvbXBvbmVudFJlZikge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdHRoaXMuI2NvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChzbG90LmNvbXBvbmVudCwge1xuXHRcdFx0ZWxlbWVudEluamVjdG9yOiB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IsXG5cdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpLFxuXHRcdH0pO1xuXHRcdHRoaXMuI3RlbXBsYXRlUmVmID0gdGhpcy4jY29tcG9uZW50UmVmLmluc3RhbmNlW3Nsb3QudGVtcGxhdGVQcm9wXTtcblx0XHR0aGlzLiN0ZW1wbGF0ZVNsb3RIYW5kbGVyLnNsb3RDaGFuZ2UodGhpcy4jdGVtcGxhdGVSZWYsIHByb3BzKTtcblx0fVxuXG5cdG92ZXJyaWRlIHByb3BzQ2hhbmdlKHNsb3Q6IENvbXBvbmVudFRlbXBsYXRlPFByb3BzLCBLLCBUPiwgcHJvcHM6IFByb3BzKTogdm9pZCB7XG5cdFx0dGhpcy4jdGVtcGxhdGVTbG90SGFuZGxlci5wcm9wc0NoYW5nZSh0aGlzLiN0ZW1wbGF0ZVJlZiEsIHByb3BzKTtcblx0fVxuXG5cdG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy4jdGVtcGxhdGVTbG90SGFuZGxlci5kZXN0cm95KCk7XG5cdFx0dGhpcy4jY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG5cdFx0dGhpcy4jY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmNvbnN0IGdldFNsb3RUeXBlID0gKHZhbHVlOiBhbnkpOiB1bmRlZmluZWQgfCB7bmV3ICh2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBkb2N1bWVudDogRG9jdW1lbnQpOiBTbG90SGFuZGxlcjxhbnk+fSA9PiB7XG5cdGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XG5cdGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cdHN3aXRjaCAodHlwZSkge1xuXHRcdGNhc2UgJ3N0cmluZyc6XG5cdFx0XHRyZXR1cm4gU3RyaW5nU2xvdEhhbmRsZXI7XG5cdFx0Y2FzZSAnZnVuY3Rpb24nOlxuXHRcdFx0aWYgKHJlZmxlY3RDb21wb25lbnRUeXBlKHZhbHVlKSkge1xuXHRcdFx0XHRyZXR1cm4gQ29tcG9uZW50U2xvdEhhbmRsZXI7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gRnVuY3Rpb25TbG90SGFuZGxlcjtcblx0XHRjYXNlICdvYmplY3QnOlxuXHRcdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcblx0XHRcdFx0cmV0dXJuIFRlbXBsYXRlUmVmU2xvdEhhbmRsZXI7XG5cdFx0XHR9XG5cdFx0XHRpZiAodmFsdWUgaW5zdGFuY2VvZiBDb21wb25lbnRUZW1wbGF0ZSkge1xuXHRcdFx0XHRyZXR1cm4gQ29tcG9uZW50VGVtcGxhdGVTbG90SGFuZGxlcjtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYXVTbG90XScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNsb3REaXJlY3RpdmU8UHJvcHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0QElucHV0KCdhdVNsb3QnKSBzbG90OiBTbG90Q29udGVudDxQcm9wcz47XG5cdEBJbnB1dCgnYXVTbG90UHJvcHMnKSBwcm9wczogUHJvcHM7XG5cblx0cHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRwcml2YXRlIF9zbG90VHlwZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2xvdFR5cGU+O1xuXHRwcml2YXRlIF9zbG90SGFuZGxlcjogU2xvdEhhbmRsZXI8UHJvcHM+IHwgdW5kZWZpbmVkO1xuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRjb25zdCBzbG90Q2hhbmdlID0gY2hhbmdlc1snc2xvdCddO1xuXHRcdGNvbnN0IHByb3BzQ2hhbmdlID0gY2hhbmdlc1sncHJvcHMnXTtcblx0XHRjb25zdCBzbG90ID0gdGhpcy5zbG90O1xuXHRcdGlmIChzbG90Q2hhbmdlKSB7XG5cdFx0XHRjb25zdCBuZXdTbG90VHlwZSA9IGdldFNsb3RUeXBlKHNsb3QpO1xuXHRcdFx0aWYgKG5ld1Nsb3RUeXBlICE9PSB0aGlzLl9zbG90VHlwZSkge1xuXHRcdFx0XHR0aGlzLl9zbG90SGFuZGxlcj8uZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLl9zbG90SGFuZGxlciA9IG5ld1Nsb3RUeXBlID8gbmV3IG5ld1Nsb3RUeXBlKHRoaXMuX3ZpZXdDb250YWluZXJSZWYsIHRoaXMuX2RvY3VtZW50KSA6IHVuZGVmaW5lZDtcblx0XHRcdFx0dGhpcy5fc2xvdFR5cGUgPSBuZXdTbG90VHlwZTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX3Nsb3RIYW5kbGVyPy5zbG90Q2hhbmdlKHNsb3QsIHRoaXMucHJvcHMpO1xuXHRcdH0gZWxzZSBpZiAocHJvcHNDaGFuZ2UpIHtcblx0XHRcdHRoaXMuX3Nsb3RIYW5kbGVyPy5wcm9wc0NoYW5nZShzbG90LCB0aGlzLnByb3BzKTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9zbG90SGFuZGxlcj8uZGVzdHJveSgpO1xuXHRcdHRoaXMuX3Nsb3RIYW5kbGVyID0gdW5kZWZpbmVkO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef, inject } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SlotDefaultDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.templateRef = inject((TemplateRef));
|
|
6
|
-
}
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
this.auSlotDefault.update((value) => ({ ...value, slotDefault: this.templateRef }));
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlotDefaultDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SlotDefaultDirective, isStandalone: true, selector: "[auSlotDefault]", inputs: { auSlotDefault: "auSlotDefault" }, ngImport: i0 }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlotDefaultDirective, decorators: [{
|
|
14
|
-
type: Directive,
|
|
15
|
-
args: [{ selector: '[auSlotDefault]', standalone: true }]
|
|
16
|
-
}], propDecorators: { auSlotDefault: [{
|
|
17
|
-
type: Input,
|
|
18
|
-
args: ['auSlotDefault']
|
|
19
|
-
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdERlZmF1bHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vaGVhZGxlc3Mvc3JjL2xpYi9zbG90RGVmYXVsdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFJcEUsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUlDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBYyxDQUFBLENBQUMsQ0FBQztLQUtyQztJQUhBLFFBQVE7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7K0dBUFcsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQzs4QkFFakMsYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1dyaXRhYmxlU2lnbmFsfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7T25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7U2xvdENvbnRlbnR9IGZyb20gJy4vc2xvdFR5cGVzJztcblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbYXVTbG90RGVmYXVsdF0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBTbG90RGVmYXVsdERpcmVjdGl2ZTxUIGV4dGVuZHMgb2JqZWN0PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgnYXVTbG90RGVmYXVsdCcpIGF1U2xvdERlZmF1bHQ6IFdyaXRhYmxlU2lnbmFsPHtzbG90RGVmYXVsdD86IFNsb3RDb250ZW50PFQ+fT47XG5cblx0dGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8VD4pO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuYXVTbG90RGVmYXVsdC51cGRhdGUoKHZhbHVlKSA9PiAoey4uLnZhbHVlLCBzbG90RGVmYXVsdDogdGhpcy50ZW1wbGF0ZVJlZn0pKTtcblx0fVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class ComponentTemplate {
|
|
2
|
-
constructor(component, templateProp) {
|
|
3
|
-
this.component = component;
|
|
4
|
-
this.templateProp = templateProp;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdFR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vaGVhZGxlc3Mvc3JjL2xpYi9zbG90VHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUM3QixZQUE0QixTQUFrQixFQUFrQixZQUFlO1FBQW5ELGNBQVMsR0FBVCxTQUFTLENBQVM7UUFBa0IsaUJBQVksR0FBWixZQUFZLENBQUc7SUFBRyxDQUFDO0NBQ25GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Nsb3RDb250ZW50IGFzIENvcmVTbG90Q29udGVudCwgV2lkZ2V0LCBXaWRnZXRGYWN0b3J5LCBXaWRnZXRQcm9wcywgV2lkZ2V0U2xvdENvbnRleHQsIFdpZGdldFN0YXRlfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQgdHlwZSB7VGVtcGxhdGVSZWYsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIEsgZXh0ZW5kcyBzdHJpbmcsIFQgZXh0ZW5kcyB7W2tleSBpbiBLXTogVGVtcGxhdGVSZWY8UHJvcHM+fT4ge1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPFQ+LCBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVQcm9wOiBLKSB7fVxufVxuXG5leHBvcnQgdHlwZSBTbG90Q29udGVudDxQcm9wcyBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gPVxuXHR8IENvcmVTbG90Q29udGVudDxQcm9wcz5cblx0fCBUZW1wbGF0ZVJlZjxQcm9wcz5cblx0fCBUeXBlPHVua25vd24+XG5cdHwgQ29tcG9uZW50VGVtcGxhdGU8UHJvcHMsIGFueSwgYW55PjtcblxuZXhwb3J0IHR5cGUgQWRhcHRTbG90Q29udGVudFByb3BzPFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSBQcm9wcyBleHRlbmRzIFdpZGdldFNsb3RDb250ZXh0PGluZmVyIFU+XG5cdD8gV2lkZ2V0U2xvdENvbnRleHQ8QWRhcHRXaWRnZXRTbG90czxVPj4gJiBBZGFwdFByb3BzU2xvdHM8T21pdDxQcm9wcywga2V5b2YgV2lkZ2V0U2xvdENvbnRleHQ8YW55Pj4+XG5cdDogQWRhcHRQcm9wc1Nsb3RzPFByb3BzPjtcblxuZXhwb3J0IHR5cGUgQWRhcHRQcm9wc1Nsb3RzPFByb3BzPiA9IE9taXQ8UHJvcHMsIGBzbG90JHtzdHJpbmd9YD4gJiB7XG5cdFtLIGluIGtleW9mIFByb3BzICYgYHNsb3Qke3N0cmluZ31gXTogUHJvcHNbS10gZXh0ZW5kcyBDb3JlU2xvdENvbnRlbnQ8aW5mZXIgVT4gPyBTbG90Q29udGVudDxBZGFwdFNsb3RDb250ZW50UHJvcHM8VT4+IDogUHJvcHNbS107XG59O1xuXG5leHBvcnQgdHlwZSBBZGFwdFdpZGdldEZhY3RvcmllczxUPiA9IHtcblx0W0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBXaWRnZXRGYWN0b3J5PGluZmVyIFU+ID8gV2lkZ2V0RmFjdG9yeTxBZGFwdFdpZGdldFNsb3RzPFU+PiA6IFRbS107XG59O1xuXG5leHBvcnQgdHlwZSBBZGFwdFdpZGdldFNsb3RzPFcgZXh0ZW5kcyBXaWRnZXQ+ID0gV2lkZ2V0PFxuXHRBZGFwdFByb3BzU2xvdHM8V2lkZ2V0UHJvcHM8Vz4+LFxuXHRBZGFwdFByb3BzU2xvdHM8V2lkZ2V0U3RhdGU8Vz4+LFxuXHRBZGFwdFdpZGdldEZhY3RvcmllczxXWydhcGknXT4sXG5cdFdbJ2FjdGlvbnMnXSxcblx0V1snZGlyZWN0aXZlcyddXG4+O1xuIl19
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, Directive, ElementRef, inject, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
// All calls of the directive in this class are done asynchronously (with await 0)
|
|
4
|
-
// in order to avoid ExpressionChangedAfterItHasBeenCheckedError
|
|
5
|
-
// or the corresponding issue with signals (https://github.com/angular/angular/issues/50320)
|
|
6
|
-
// This is relevant especially if calling the directive changes variables used in a template.
|
|
7
|
-
export const useDirectiveForHost = (use, params) => {
|
|
8
|
-
const ref = inject(ElementRef);
|
|
9
|
-
let instance = use?.(ref.nativeElement, params);
|
|
10
|
-
async function destroyDirectiveInstance() {
|
|
11
|
-
const oldInstance = instance;
|
|
12
|
-
instance = undefined;
|
|
13
|
-
use = undefined;
|
|
14
|
-
if (oldInstance?.destroy) {
|
|
15
|
-
await 0;
|
|
16
|
-
oldInstance.destroy?.();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
inject(DestroyRef).onDestroy(destroyDirectiveInstance);
|
|
20
|
-
async function update(newUse, newParams) {
|
|
21
|
-
if (newUse !== use) {
|
|
22
|
-
destroyDirectiveInstance();
|
|
23
|
-
use = newUse;
|
|
24
|
-
params = newParams;
|
|
25
|
-
if (newUse) {
|
|
26
|
-
await 0;
|
|
27
|
-
// checks that the directive did not change while waiting:
|
|
28
|
-
if (use === newUse && !instance) {
|
|
29
|
-
instance = use(ref.nativeElement, params);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (newParams != params) {
|
|
34
|
-
params = newParams;
|
|
35
|
-
await 0;
|
|
36
|
-
instance?.update?.(params);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return { update };
|
|
40
|
-
};
|
|
41
|
-
export class UseDirective {
|
|
42
|
-
#useDirective = useDirectiveForHost();
|
|
43
|
-
ngOnChanges() {
|
|
44
|
-
this.#useDirective.update(this.use, this.params);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: UseDirective, isStandalone: true, selector: "[auUse]", inputs: { use: ["auUse", "use"], params: ["auUseParams", "params"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UseDirective, decorators: [{
|
|
50
|
-
type: Directive,
|
|
51
|
-
args: [{
|
|
52
|
-
standalone: true,
|
|
53
|
-
selector: '[auUse]',
|
|
54
|
-
}]
|
|
55
|
-
}], propDecorators: { use: [{
|
|
56
|
-
type: Input,
|
|
57
|
-
args: ['auUse']
|
|
58
|
-
}], params: [{
|
|
59
|
-
type: Input,
|
|
60
|
-
args: ['auUseParams']
|
|
61
|
-
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2hlYWRsZXNzL3NyYy9saWIvdXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHL0Usa0ZBQWtGO0FBQ2xGLGdFQUFnRTtBQUNoRSw0RkFBNEY7QUFDNUYsNkZBQTZGO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUksR0FBeUIsRUFBRSxNQUFVLEVBQUUsRUFBRTtJQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFL0IsSUFBSSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFXLENBQUMsQ0FBQztJQUVyRCxLQUFLLFVBQVUsd0JBQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM3QixRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDaEIsSUFBSSxXQUFXLEVBQUUsT0FBTyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxDQUFDO1lBQ1IsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7U0FDeEI7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRXZELEtBQUssVUFBVSxNQUFNLENBQUMsTUFBNEIsRUFBRSxTQUFhO1FBQ2hFLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtZQUNuQix3QkFBd0IsRUFBRSxDQUFDO1lBQzNCLEdBQUcsR0FBRyxNQUFNLENBQUM7WUFDYixNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ25CLElBQUksTUFBTSxFQUFFO2dCQUNYLE1BQU0sQ0FBQyxDQUFDO2dCQUNSLDBEQUEwRDtnQkFDMUQsSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNoQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBVyxDQUFDLENBQUM7aUJBQy9DO2FBQ0Q7U0FDRDthQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRTtZQUMvQixNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxDQUFDO1lBQ1IsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQVcsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0YsQ0FBQztJQUVELE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztBQUNqQixDQUFDLENBQUM7QUFNRixNQUFNLE9BQU8sWUFBWTtJQU94QixhQUFhLEdBQUcsbUJBQW1CLEVBQUssQ0FBQztJQUV6QyxXQUFXO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQzsrR0FYVyxZQUFZO21HQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxTQUFTO2lCQUNuQjs4QkFHQSxHQUFHO3NCQURGLEtBQUs7dUJBQUMsT0FBTztnQkFJZCxNQUFNO3NCQURMLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge0RpcmVjdGl2ZSBhcyBBZ25vc1VJRGlyZWN0aXZlfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5cbi8vIEFsbCBjYWxscyBvZiB0aGUgZGlyZWN0aXZlIGluIHRoaXMgY2xhc3MgYXJlIGRvbmUgYXN5bmNocm9ub3VzbHkgKHdpdGggYXdhaXQgMClcbi8vIGluIG9yZGVyIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3Jcbi8vIG9yIHRoZSBjb3JyZXNwb25kaW5nIGlzc3VlIHdpdGggc2lnbmFscyAoaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNTAzMjApXG4vLyBUaGlzIGlzIHJlbGV2YW50IGVzcGVjaWFsbHkgaWYgY2FsbGluZyB0aGUgZGlyZWN0aXZlIGNoYW5nZXMgdmFyaWFibGVzIHVzZWQgaW4gYSB0ZW1wbGF0ZS5cblxuZXhwb3J0IGNvbnN0IHVzZURpcmVjdGl2ZUZvckhvc3QgPSA8VD4odXNlPzogQWdub3NVSURpcmVjdGl2ZTxUPiwgcGFyYW1zPzogVCkgPT4ge1xuXHRjb25zdCByZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cblx0bGV0IGluc3RhbmNlID0gdXNlPy4ocmVmLm5hdGl2ZUVsZW1lbnQsIHBhcmFtcyBhcyBUKTtcblxuXHRhc3luYyBmdW5jdGlvbiBkZXN0cm95RGlyZWN0aXZlSW5zdGFuY2UoKSB7XG5cdFx0Y29uc3Qgb2xkSW5zdGFuY2UgPSBpbnN0YW5jZTtcblx0XHRpbnN0YW5jZSA9IHVuZGVmaW5lZDtcblx0XHR1c2UgPSB1bmRlZmluZWQ7XG5cdFx0aWYgKG9sZEluc3RhbmNlPy5kZXN0cm95KSB7XG5cdFx0XHRhd2FpdCAwO1xuXHRcdFx0b2xkSW5zdGFuY2UuZGVzdHJveT8uKCk7XG5cdFx0fVxuXHR9XG5cblx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveShkZXN0cm95RGlyZWN0aXZlSW5zdGFuY2UpO1xuXG5cdGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShuZXdVc2U/OiBBZ25vc1VJRGlyZWN0aXZlPFQ+LCBuZXdQYXJhbXM/OiBUKSB7XG5cdFx0aWYgKG5ld1VzZSAhPT0gdXNlKSB7XG5cdFx0XHRkZXN0cm95RGlyZWN0aXZlSW5zdGFuY2UoKTtcblx0XHRcdHVzZSA9IG5ld1VzZTtcblx0XHRcdHBhcmFtcyA9IG5ld1BhcmFtcztcblx0XHRcdGlmIChuZXdVc2UpIHtcblx0XHRcdFx0YXdhaXQgMDtcblx0XHRcdFx0Ly8gY2hlY2tzIHRoYXQgdGhlIGRpcmVjdGl2ZSBkaWQgbm90IGNoYW5nZSB3aGlsZSB3YWl0aW5nOlxuXHRcdFx0XHRpZiAodXNlID09PSBuZXdVc2UgJiYgIWluc3RhbmNlKSB7XG5cdFx0XHRcdFx0aW5zdGFuY2UgPSB1c2UocmVmLm5hdGl2ZUVsZW1lbnQsIHBhcmFtcyBhcyBUKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobmV3UGFyYW1zICE9IHBhcmFtcykge1xuXHRcdFx0cGFyYW1zID0gbmV3UGFyYW1zO1xuXHRcdFx0YXdhaXQgMDtcblx0XHRcdGluc3RhbmNlPy51cGRhdGU/LihwYXJhbXMgYXMgVCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHt1cGRhdGV9O1xufTtcblxuQERpcmVjdGl2ZSh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnW2F1VXNlXScsXG59KVxuZXhwb3J0IGNsYXNzIFVzZURpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgnYXVVc2UnKVxuXHR1c2U6IEFnbm9zVUlEaXJlY3RpdmU8VD4gfCB1bmRlZmluZWQ7XG5cblx0QElucHV0KCdhdVVzZVBhcmFtcycpXG5cdHBhcmFtczogVCB8IHVuZGVmaW5lZDtcblxuXHQjdXNlRGlyZWN0aXZlID0gdXNlRGlyZWN0aXZlRm9ySG9zdDxUPigpO1xuXG5cdG5nT25DaGFuZ2VzKCkge1xuXHRcdHRoaXMuI3VzZURpcmVjdGl2ZS51cGRhdGUodGhpcy51c2UsIHRoaXMucGFyYW1zKTtcblx0fVxufVxuIl19
|
package/esm2022/lib/utils.mjs
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
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";
|
|
5
|
-
const createPatchSlots = (set) => {
|
|
6
|
-
let lastValue = {};
|
|
7
|
-
return (object) => {
|
|
8
|
-
const newValue = {};
|
|
9
|
-
let hasChange = false;
|
|
10
|
-
for (const key of Object.keys(object)) {
|
|
11
|
-
const objectKey = object[key];
|
|
12
|
-
if (objectKey != null) {
|
|
13
|
-
// only use defined slots
|
|
14
|
-
newValue[key] = objectKey;
|
|
15
|
-
}
|
|
16
|
-
if (objectKey != lastValue[key]) {
|
|
17
|
-
hasChange = true;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
if (hasChange) {
|
|
21
|
-
lastValue = newValue;
|
|
22
|
-
set(newValue);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
};
|
|
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);
|
|
104
|
-
const slots$ = writable({});
|
|
105
|
-
events = zoneWrapper.insideNgZoneWrapFunctionsObject(events);
|
|
106
|
-
const widget = factory({
|
|
107
|
-
config: computed(() => ({ ...defaultConfig$(), ...widgetConfig?.(), ...slots$(), ...events })),
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
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
|
-
patchSlots: createPatchSlots(slots$.set),
|
|
116
|
-
};
|
|
117
|
-
};
|
|
118
|
-
export function patchSimpleChanges(patchFn, changes) {
|
|
119
|
-
const obj = {};
|
|
120
|
-
for (const [key, simpleChange] of Object.entries(changes)) {
|
|
121
|
-
if (simpleChange !== undefined) {
|
|
122
|
-
obj[key] = simpleChange.currentValue;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
patchFn(obj);
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9oZWFkbGVzcy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNELE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUc3RSxNQUFNLGdCQUFnQixHQUFHLENBQW1CLEdBQWlDLEVBQUUsRUFBRTtJQUNoRixJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sUUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUIsRUFBRTtZQUM5RCxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUN0Qix5QkFBeUI7Z0JBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7YUFDMUI7WUFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDakI7U0FDRDtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2QsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDZDtJQUNGLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENB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Q0FBZ0MsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzdELFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQ3hDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBMkIsRUFBRSxPQUFzQjtJQUNyRixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDMUQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1NBQ3JDO0tBQ0Q7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1dpZGdldCwgV2lkZ2V0RmFjdG9yeSwgV2lkZ2V0UHJvcHN9IGZyb20gJ0BhZ25vcy11aS9jb3JlJztcbmltcG9ydCB7dG9SZWFkYWJsZVN0b3JlfSBmcm9tICdAYWdub3MtdWkvY29yZSc7XG5pbXBvcnQgdHlwZSB7UmVhZGFibGVTaWduYWx9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB7Y29tcHV0ZWQsIHdyaXRhYmxlfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7U2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Rlc3Ryb3lSZWYsIEluamVjdGFibGUsIE5nWm9uZSwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1Nsb3RDb250ZW50fSBmcm9tICcuL3Nsb3RUeXBlcyc7XG5cbmNvbnN0IGNyZWF0ZVBhdGNoU2xvdHMgPSA8VCBleHRlbmRzIG9iamVjdD4oc2V0OiAob2JqZWN0OiBQYXJ0aWFsPFQ+KSA9PiB2b2lkKSA9PiB7XG5cdGxldCBsYXN0VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0cmV0dXJuIChvYmplY3Q6IFQpID0+IHtcblx0XHRjb25zdCBuZXdWYWx1ZTogUGFydGlhbDxUPiA9IHt9O1xuXHRcdGxldCBoYXNDaGFuZ2UgPSBmYWxzZTtcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpIGFzIChzdHJpbmcgJiBrZXlvZiBUKVtdKSB7XG5cdFx0XHRjb25zdCBvYmplY3RLZXkgPSAob2JqZWN0IGFzIGFueSlba2V5XTtcblx0XHRcdGlmIChvYmplY3RLZXkgIT0gbnVsbCkge1xuXHRcdFx0XHQvLyBvbmx5IHVzZSBkZWZpbmVkIHNsb3RzXG5cdFx0XHRcdG5ld1ZhbHVlW2tleV0gPSBvYmplY3RLZXk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IGxhc3RWYWx1ZVtrZXldKSB7XG5cdFx0XHRcdGhhc0NoYW5nZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChoYXNDaGFuZ2UpIHtcblx0XHRcdGxhc3RWYWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdFx0c2V0KG5ld1ZhbHVlKTtcblx0XHR9XG5cdH07XG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5jb25zdCBpZGVudGl0eSA9IDxUPihhOiBUKSA9PiBhO1xuXG50eXBlIFdyYXBwZXIgPSA8VD4oZm46IFQpID0+IFQ7XG5cbmNvbnN0IGNyZWF0ZU9iamVjdFdyYXBwZXIgPVxuXHQod3JhcDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KG9iamVjdCkgPT4ge1xuXHRcdGlmICghb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRyZXR1cm4gb2JqZWN0O1xuXHRcdH1cblx0XHRjb25zdCByZXMgPSB7fSBhcyBhbnk7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xuXHRcdFx0cmVzW2tleV0gPSB3cmFwKChvYmplY3QgYXMgYW55KVtrZXldKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlcztcblx0fTtcblxuY29uc3QgY3JlYXRlUmV0dXJuVmFsdWVXcmFwcGVyID1cblx0KHdyYXBSZXR1cm5WYWx1ZTogV3JhcHBlciwgd3JhcFJlc3VsdDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KGZuKSA9PlxuXHRcdHdyYXBSZXN1bHQodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHdyYXBSZXR1cm5WYWx1ZShmbiguLi5hcmdzKSkpIGFzIGFueSkgOiBmbik7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmNsYXNzIFpvbmVXcmFwcGVyIHtcblx0cmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cmVhZG9ubHkgI2hhc1pvbmUgPSB0aGlzLiN6b25lLnJ1bigoKSA9PiBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCkpOyAvLyBjaGVjayBpZiB6b25lIGlzIGVuYWJsZWQgKGNhbiBiZSBOb29wWm9uZSwgY2YgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3pvbmUjbm9vcHpvbmUpXG5cdCNydW5OZWVkZWQgPSBmYWxzZTtcblx0I3J1blBsYW5uZWQgPSBmYWxzZTtcblxuXHRwbGFuTmdab25lUnVuID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy4jem9uZS5pc1N0YWJsZSkge1xuXHRcdFx0XHRcdHRoaXMuI3J1bk5lZWRlZCA9IHRydWU7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLiNydW5QbGFubmVkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiNydW5QbGFubmVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IDA7XG5cdFx0XHRcdFx0XHRcdHRoaXMuI3J1blBsYW5uZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI3J1bk5lZWRlZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubmdab25lUnVuKG5vb3ApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdCAgfVxuXHRcdDogbm9vcDtcblxuXHRuZ1pvbmVSdW48VD4oZm46ICgpID0+IFQpOiBUIHtcblx0XHR0aGlzLiNydW5OZWVkZWQgPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy4jem9uZS5ydW4oZm4pO1xuXHR9XG5cblx0aW5zaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMubmdab25lUnVuKCgpID0+IGZuKC4uLmFyZ3MpKSkgYXMgYW55KSA6IGZuKVxuXHRcdDogaWRlbnRpdHk7XG5cdGluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QgPSBjcmVhdGVPYmplY3RXcmFwcGVyKHRoaXMuaW5zaWRlTmdab25lKTtcblxuXHRvdXRzaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pXG5cdFx0OiBpZGVudGl0eTtcblxuXHRvdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCA9IGNyZWF0ZU9iamVjdFdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmUgPSBjcmVhdGVSZXR1cm5WYWx1ZVdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCwgdGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0ID0gY3JlYXRlT2JqZWN0V3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRvQW5ndWxhclNpZ25hbCA9IDxUPih0YW5zdVNpZ25hbDogUmVhZGFibGVTaWduYWw8VD4pOiBTaWduYWw8VD4gPT4ge1xuXHRjb25zdCB6b25lV3JhcHBlciA9IGluamVjdChab25lV3JhcHBlcik7XG5cdGNvbnN0IHJlcyA9IHNpZ25hbCh1bmRlZmluZWQgYXMgYW55IGFzIFQpO1xuXHRjb25zdCBzdWJzY3JpcHRpb24gPSB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHRhbnN1U2lnbmFsLnN1YnNjcmliZSkoKHZhbHVlKSA9PiB7XG5cdFx0cmVzLnNldCh2YWx1ZSk7XG5cdFx0em9uZVdyYXBwZXIucGxhbk5nWm9uZVJ1bigpO1xuXHR9KTtcblx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSh6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHN1YnNjcmlwdGlvbikpO1xuXHRyZXR1cm4gcmVzO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aFBhdGNoU2xvdHM8VyBleHRlbmRzIFdpZGdldD4gPSBXICYge1xuXHRwYXRjaFNsb3RzKHNsb3RzOiB7XG5cdFx0W0sgaW4ga2V5b2YgV2lkZ2V0UHJvcHM8Vz4gJiBgc2xvdCR7c3RyaW5nfWBdOiBXaWRnZXRQcm9wczxXPltLXSBleHRlbmRzIFNsb3RDb250ZW50PGluZmVyIFU+ID8gVGVtcGxhdGVSZWY8VT4gfCB1bmRlZmluZWQgOiBuZXZlcjtcblx0fSk6IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG59OiB7XG5cdGZhY3Rvcnk6IFdpZGdldEZhY3Rvcnk8Vz47XG5cdGRlZmF1bHRDb25maWc/OiBQYXJ0aWFsPFdpZGdldFByb3BzPFc+PiB8IFJlYWRhYmxlU2lnbmFsPFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgdW5kZWZpbmVkPjtcblx0d2lkZ2V0Q29uZmlnPzogbnVsbCB8IHVuZGVmaW5lZCB8IFJlYWRhYmxlU2lnbmFsPFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgdW5kZWZpbmVkPjtcblx0ZXZlbnRzOiBQaWNrPFdpZGdldFByb3BzPFc+LCBrZXlvZiBXaWRnZXRQcm9wczxXPiAmIGBvbiR7c3RyaW5nfWA+O1xufSk6IFdpdGhQYXRjaFNsb3RzPFc+ID0+IHtcblx0Y29uc3Qgem9uZVdyYXBwZXIgPSBpbmplY3QoWm9uZVdyYXBwZXIpO1xuXHRmYWN0b3J5ID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShmYWN0b3J5KTtcblx0Y29uc3QgZGVmYXVsdENvbmZpZyQgPSB0b1JlYWRhYmxlU3RvcmUoZGVmYXVsdENvbmZpZyk7XG5cdGNvbnN0IHNsb3RzJCA9IHdyaXRhYmxlKHt9KTtcblx0ZXZlbnRzID0gem9uZVdyYXBwZXIuaW5zaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdChldmVudHMpO1xuXHRjb25zdCB3aWRnZXQgPSBmYWN0b3J5KHtcblx0XHRjb25maWc6IGNvbXB1dGVkKCgpID0+ICh7Li4uZGVmYXVsdENvbmZpZyQoKSwgLi4ud2lkZ2V0Q29uZmlnPy4oKSwgLi4uc2xvdHMkKCksIC4uLihldmVudHMgYXMgUGFydGlhbDxXaWRnZXRQcm9wczxXPj4pfSkpLFxuXHR9KTtcblx0cmV0dXJuIHtcblx0XHQuLi53aWRnZXQsXG5cdFx0cGF0Y2g6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmUod2lkZ2V0LnBhdGNoKSxcblx0XHRkaXJlY3RpdmVzOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcERpcmVjdGl2ZXNPYmplY3Qod2lkZ2V0LmRpcmVjdGl2ZXMpLFxuXHRcdGFjdGlvbnM6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0KHdpZGdldC5hY3Rpb25zKSxcblx0XHRhcGk6IHpvbmVXcmFwcGVyLm91dHNpZGVOZ1pvbmVXcmFwRnVuY3Rpb25zT2JqZWN0KHdpZGdldC5hcGkpLFxuXHRcdHBhdGNoU2xvdHM6IGNyZWF0ZVBhdGNoU2xvdHMoc2xvdHMkLnNldCksXG5cdH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hTaW1wbGVDaGFuZ2VzKHBhdGNoRm46IChvYmo6IGFueSkgPT4gdm9pZCwgY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRjb25zdCBvYmo6IGFueSA9IHt9O1xuXHRmb3IgKGNvbnN0IFtrZXksIHNpbXBsZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoY2hhbmdlcykpIHtcblx0XHRpZiAoc2ltcGxlQ2hhbmdlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG9ialtrZXldID0gc2ltcGxlQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcblx0XHR9XG5cdH1cblx0cGF0Y2hGbihvYmopO1xufVxuIl19
|