@ethlete/cdk 4.35.0 → 4.36.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/CHANGELOG.md +6 -0
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-handler.mjs +40 -22
- package/fesm2022/ethlete-cdk.mjs +38 -20
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/overlay/components/overlay/utils/overlay-handler.d.ts +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @ethlete/cdk
|
|
2
2
|
|
|
3
|
+
## 4.36.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`51621d2`](https://github.com/ethlete-io/ethdk/commit/51621d2e35f20eb6cf08de42d2a28fb699a5e144) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `updateQueryParam` method to the function returned by `createOverlayHandlerWithQueryParamLifecycle`
|
|
8
|
+
|
|
3
9
|
## 4.35.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DestroyRef, effect, inject, untracked, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { DestroyRef, effect, inject, Injector, untracked, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
4
|
import { injectQueryParam } from '@ethlete/core';
|
|
@@ -49,7 +49,7 @@ export const createOverlayHandler = (rootConfig) => {
|
|
|
49
49
|
export const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
|
|
50
50
|
/**
|
|
51
51
|
* This handler will automatically open the overlay when the query param is present.
|
|
52
|
-
* The overlay can contain a
|
|
52
|
+
* The overlay can contain a input or model with the name `overlayQueryParam` to receive the query param value.
|
|
53
53
|
*
|
|
54
54
|
* If you need to transfer more information (eg. a second query param), you need to combine them into a single query param string.
|
|
55
55
|
* You can then split the string inside the overlay component using computed signals.
|
|
@@ -57,29 +57,42 @@ export const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
|
|
|
57
57
|
* To open the overlay either use the `OverlayHandlerLinkDirective` or call the `.open` method of the returned handler.
|
|
58
58
|
*/
|
|
59
59
|
export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
60
|
-
const handler = createOverlayHandler(config);
|
|
60
|
+
const handler = createOverlayHandler({ ...config, closeOnNavigation: false });
|
|
61
61
|
let fnCalled = false;
|
|
62
|
+
let router = null;
|
|
63
|
+
const updateQueryParam = (value) => {
|
|
64
|
+
router?.navigate([], {
|
|
65
|
+
queryParams: {
|
|
66
|
+
[config.queryParamKey]: value,
|
|
67
|
+
},
|
|
68
|
+
queryParamsHandling: 'merge',
|
|
69
|
+
});
|
|
70
|
+
};
|
|
62
71
|
const fn = (innerConfig) => {
|
|
63
72
|
if (fnCalled) {
|
|
64
73
|
throw new Error('The function returned by createOverlayHandlerWithQueryParamLifecycle can only be called once until the caller is destroyed');
|
|
65
74
|
}
|
|
66
75
|
fnCalled = true;
|
|
67
|
-
|
|
76
|
+
router = inject(Router);
|
|
68
77
|
const destroyRef = inject(DestroyRef);
|
|
69
|
-
const
|
|
78
|
+
const injector = inject(Injector);
|
|
79
|
+
const overlayHandler = handler({ ...(innerConfig ?? {}) });
|
|
70
80
|
const queryParamValue = injectQueryParam(config.queryParamKey);
|
|
71
81
|
let currentOverlayRef = null;
|
|
82
|
+
let inputSignalEffect = null;
|
|
72
83
|
destroyRef.onDestroy(() => {
|
|
73
84
|
fnCalled = false;
|
|
85
|
+
router = null;
|
|
74
86
|
cleanup();
|
|
75
87
|
});
|
|
76
88
|
const cleanup = () => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
inputSignalEffect?.destroy();
|
|
90
|
+
inputSignalEffect = null;
|
|
91
|
+
updateQueryParam(null);
|
|
92
|
+
};
|
|
93
|
+
const getQueryParamInput = () => {
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
+
return currentOverlayRef?.componentInstance?.[OVERLAY_QUERY_PARAM_INPUT_NAME];
|
|
83
96
|
};
|
|
84
97
|
effect(() => {
|
|
85
98
|
const value = queryParamValue();
|
|
@@ -91,28 +104,32 @@ export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
|
91
104
|
.afterClosed()
|
|
92
105
|
.pipe(takeUntilDestroyed(destroyRef), tap(() => cleanup()))
|
|
93
106
|
.subscribe();
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
108
|
+
const inputSignal = getQueryParamInput();
|
|
109
|
+
if (inputSignal) {
|
|
110
|
+
inputSignalEffect = effect(() => {
|
|
111
|
+
const inputVal = inputSignal();
|
|
112
|
+
untracked(() => {
|
|
113
|
+
updateQueryParam(inputVal);
|
|
114
|
+
});
|
|
115
|
+
}, { injector });
|
|
116
|
+
}
|
|
94
117
|
}
|
|
95
|
-
|
|
96
|
-
if (currentOverlayRef.componentInstance[OVERLAY_QUERY_PARAM_INPUT_NAME]) {
|
|
118
|
+
if (getQueryParamInput()) {
|
|
97
119
|
currentOverlayRef.componentRef?.setInput(OVERLAY_QUERY_PARAM_INPUT_NAME, value);
|
|
98
120
|
}
|
|
99
121
|
}
|
|
100
122
|
else {
|
|
101
123
|
if (currentOverlayRef) {
|
|
124
|
+
inputSignalEffect?.destroy();
|
|
125
|
+
inputSignalEffect = null;
|
|
102
126
|
currentOverlayRef.close();
|
|
103
127
|
currentOverlayRef = null;
|
|
104
128
|
}
|
|
105
129
|
}
|
|
106
130
|
});
|
|
107
131
|
});
|
|
108
|
-
const open = (queryParamValue) =>
|
|
109
|
-
router.navigate([], {
|
|
110
|
-
queryParams: {
|
|
111
|
-
[config.queryParamKey]: queryParamValue,
|
|
112
|
-
},
|
|
113
|
-
queryParamsHandling: 'merge',
|
|
114
|
-
});
|
|
115
|
-
};
|
|
132
|
+
const open = (queryParamValue) => updateQueryParam(queryParamValue);
|
|
116
133
|
const close = () => {
|
|
117
134
|
cleanup();
|
|
118
135
|
};
|
|
@@ -123,6 +140,7 @@ export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
|
123
140
|
return lifecycleHandler;
|
|
124
141
|
};
|
|
125
142
|
fn['injectOverlayRef'] = () => handler().injectOverlayRef();
|
|
143
|
+
fn['updateQueryParam'] = (value) => updateQueryParam(value);
|
|
126
144
|
return fn;
|
|
127
145
|
};
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQW1DM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsVUFBZ0UsRUFDaEUsRUFBRTtJQUNGLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBNkQsRUFBRSxFQUFFO1FBQzNFLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFFeEQsSUFBSSxDQUFDLEdB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O1NBQ04sQ0FBQztRQUVGLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBRUYsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUU1RCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgVGVtcGxhdGVSZWYsIHVudHJhY2tlZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGluamVjdFF1ZXJ5UGFyYW0gfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9EQVRBIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheUNvbnN1bWVyQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB9IGZyb20gJy4vb3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICcuL292ZXJsYXktcmVmJztcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3ZlcmxheUhhbmRsZXJDb25maWc8VCwgRCA9IHVua25vd24+ID0gT21pdDxPdmVybGF5Q29uZmlnPEQ+LCAncG9zaXRpb25zJz4gJiB7XG4gIC8qKiBUaGUgb3ZlcmxheSBjb21wb25lbnQuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYHRlbXBsYXRlYCBwcm9wZXJ0eSAgKi9cbiAgY29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxUPjtcblxuICAvKiogVGhlIG92ZXJsYXkgdGVtcGxhdGUuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYGNvbXBvbmVudGAgcHJvcGVydHkgICovXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VD47XG5cbiAgLyoqIFRoZSBvdmVybGF5IHBvc2l0aW9ucyB1c2luZyB0aGUgcG9zaXRpb24gYnVpbGRlciBwcm92aWRlZCB2aWEgYXJndW1lbnQgICovXG4gIHBvc2l0aW9uczogKGJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpID0+IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXTtcbn07XG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlIYW5kbGVyPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4gPSB7XG4gIC8qKiBPcGVuIHRoZSBvdmVybGF5IHVzaW5nIGEgY29tYmluYXRpb24gb2YgdGhlIGdpdmVuIGNvbmZpZ3MgICovXG4gIG9wZW46IChjb25maWc/OiBPdmVybGF5Q29uc3VtZXJDb25maWc8RD4pID0+IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHR5cGVkIG92ZXJsYXkgcmVmLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBvdmVybGF5IHJlZiBnZXRzIGFjY2Vzc2VkIG91dHNpZGUgb2YgdGhlIG92ZXJsYXkgY29tcG9uZW50IG9yIHRlbXBsYXRlUmVmXG4gICAqL1xuICBpbmplY3RPdmVybGF5UmVmOiAoKSA9PiBPdmVybGF5UmVmPFQsIFI+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvdmVybGF5IGRhdGEuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIG92ZXJsYXkgZGF0YSBnZXRzIGFjY2Vzc2VkIG91dHNpZGUgb2YgdGhlIG92ZXJsYXkgY29tcG9uZW50IG9yIHRlbXBsYXRlUmVmXG4gICAqL1xuICBpbmplY3RPdmVybGF5RGF0YTogKCkgPT4gRDtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZU92ZXJsYXlIYW5kbGVySW5uZXJDb25maWc8UiA9IHVua25vd24+ID0ge1xuICAvKiogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBvdmVybGF5IGhhcyBiZWVuIGNsb3NlZCAqL1xuICBhZnRlckNsb3NlZD86IChyZXN1bHQ6IFIgfCBudWxsKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlIYW5kbGVyID0gPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSA9IHVua25vd24sIFRPdmVybGF5UmVzdWx0ID0gdW5rbm93bj4oXG4gIHJvb3RDb25maWc6IENyZWF0ZU92ZXJsYXlIYW5kbGVyQ29uZmlnPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZm4gPSAoaW5uZXJDb25maWc/OiBDcmVhdGVPdmVybGF5SGFuZGxlcklubmVyQ29uZmlnPFRPdmVybGF5UmVzdWx0PikgPT4ge1xuICAgIGNvbnN0IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdCB0cGwgPSByb290Q29uZmlnLmNvbXBvbmVudCA/PyByb290Q29uZmlnLnRlbXBsYXRlO1xuXG4gICAgaWYgKCF0cGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGNvbXBvbmVudCBvciB0ZW1wbGF0ZSBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3BlbiA9IChjb25maWc/OiBPdmVybGF5Q29uc3VtZXJDb25maWc8VE92ZXJsYXlEYXRhPikgPT4ge1xuICAgICAgY29uc3QgcmVmID0gb3ZlcmxheVNlcnZpY2Uub3BlbjxUQ29tcG9uZW50LCBUT3ZlcmxheURhdGEsIFRPdmVybGF5UmVzdWx0Pih0cGwsIHtcbiAgICAgICAgdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgLi4ucm9vdENvbmZpZyxcbiAgICAgICAgcG9zaXRpb25zOiByb290Q29uZmlnLnBvc2l0aW9ucyhvdmVybGF5U2VydmljZS5wb3NpdGlvbnMpLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYWZ0ZXJDbG9zZWRGbiA9IGlubmVyQ29uZmlnPy5hZnRlckNsb3NlZDtcblxuICAgICAgaWYgKGFmdGVyQ2xvc2VkRm4pIHtcbiAgICAgICAgcmVmXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgICAgIHRhcCgocikgPT4gYWZ0ZXJDbG9zZWRGbihyID8/IG51bGwpKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVmO1xuICAgIH07XG5cbiAgICBjb25zdCBpbmplY3RPdmVybGF5UmVmID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGluamVjdDxPdmVybGF5UmVmPFRDb21wb25lbnQsIFRPdmVybGF5UmVzdWx0Pj4oT3ZlcmxheVJlZik7XG4gICAgfTtcblxuICAgIGNvbnN0IGluamVjdE92ZXJsYXlEYXRhID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGluamVjdDxUT3ZlcmxheURhdGE+KE9WRVJMQVlfREFUQSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXI6IE92ZXJsYXlIYW5kbGVyPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSwgVE92ZXJsYXlSZXN1bHQ+ID0ge1xuICAgICAgb3BlbixcbiAgICAgIGluamVjdE92ZXJsYXlSZWYsXG4gICAgICBpbmplY3RPdmVybGF5RGF0YSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGhhbmRsZXI7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufTtcblxuZXhwb3J0IHR5cGUgT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZTxRID0gc3RyaW5nPiA9IHtcbiAgLyoqIE9wZW4gdGhlIG92ZXJsYXkgdXNpbmcgdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtIHZhbHVlICAqL1xuICBvcGVuOiAocXVlcnlQYXJhbVZhbHVlOiBRKSA9PiB2b2lkO1xuXG4gIC8qKiBDbG9zZSB0aGUgb3ZlcmxheSBhbmQgcmVtb3ZlIHRoZSBxdWVyeSBwYXJhbSAgKi9cbiAgY2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlQ29uZmlnPFQ+ID0gT21pdDxcbiAgT3ZlcmxheUNvbmZpZzx1bmtub3duPixcbiAgJ3Bvc2l0aW9ucycgfCAnZGF0YSdcbj4gJiB7XG4gIC8qKiBUaGUgb3ZlcmxheSBjb21wb25lbnQgICovXG4gIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPjtcblxuICAvKiogVGhlIG92ZXJsYXkgcG9zaXRpb25zIHVzaW5nIHRoZSBwb3NpdGlvbiBidWlsZGVyIHByb3ZpZGVkIHZpYSBhcmd1bWVudCAgKi9cbiAgcG9zaXRpb25zOiAoYnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcikgPT4gT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdO1xuXG4gIC8qKiBUaGUgcXVlcnkgcGFyYW0ga2V5IHRvIGJlIHVzZWQgZm9yIHRoZSBvdmVybGF5ICAqL1xuICBxdWVyeVBhcmFtS2V5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgT1ZFUkxBWV9RVUVSWV9QQVJBTV9JTlBVVF9OQU1FID0gJ292ZXJsYXlRdWVyeVBhcmFtJztcblxuLyoqXG4gKiBUaGlzIGhhbmRsZXIgd2lsbCBhdXRvbWF0aWNhbGx5IG9wZW4gdGhlIG92ZXJsYXkgd2hlbiB0aGUgcXVlcnkgcGFyYW0gaXMgcHJlc2VudC5cbiAqIFRoZSBvdmVybGF5IGNhbiBjb250YWluIGEgcmVxdWlyZWQgaW5wdXQgd2l0aCB0aGUgbmFtZSBgb3ZlcmxheVF1ZXJ5UGFyYW1gIHRvIHJlY2VpdmUgdGhlIHF1ZXJ5IHBhcmFtIHZhbHVlLlxuICpcbiAqIElmIHlvdSBuZWVkIHRvIHRyYW5zZmVyIG1vcmUgaW5mb3JtYXRpb24gKGVnLiBhIHNlY29uZCBxdWVyeSBwYXJhbSksIHlvdSBuZWVkIHRvIGNvbWJpbmUgdGhlbSBpbnRvIGEgc2luZ2xlIHF1ZXJ5IHBhcmFtIHN0cmluZy5cbiAqIFlvdSBjYW4gdGhlbiBzcGxpdCB0aGUgc3RyaW5nIGluc2lkZSB0aGUgb3ZlcmxheSBjb21wb25lbnQgdXNpbmcgY29tcHV0ZWQgc2lnbmFscy5cbiAqXG4gKiBUbyBvcGVuIHRoZSBvdmVybGF5IGVpdGhlciB1c2UgdGhlIGBPdmVybGF5SGFuZGxlckxpbmtEaXJlY3RpdmVgIG9yIGNhbGwgdGhlIGAub3BlbmAgbWV0aG9kIG9mIHRoZSByZXR1cm5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZSA9IDxcbiAgVENvbXBvbmVudCxcbiAgVFF1ZXJ5UGFyYW0gZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIFRSZXN1bHQgPSB1bmtub3duLFxuPihcbiAgY29uZmlnOiBDcmVhdGVPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlQ29uZmlnPFRDb21wb25lbnQ+LFxuKSA9PiB7XG4gIGNvbnN0IGhhbmRsZXIgPSBjcmVhdGVPdmVybGF5SGFuZGxlcjxUQ29tcG9uZW50LCB2b2lkLCBUUmVzdWx0Pihjb25maWcpO1xuXG4gIGxldCBmbkNhbGxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGZuID0gKGlubmVyQ29uZmlnPzogQ3JlYXRlT3ZlcmxheUhhbmRsZXJJbm5lckNvbmZpZzxUUmVzdWx0PikgPT4ge1xuICAgIGlmIChmbkNhbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIGZ1bmN0aW9uIHJldHVybmVkIGJ5IGNyZWF0ZU92ZXJsYXlIYW5kbGVyV2l0aFF1ZXJ5UGFyYW1MaWZlY3ljbGUgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UgdW50aWwgdGhlIGNhbGxlciBpcyBkZXN0cm95ZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmbkNhbGxlZCA9IHRydWU7XG5cbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGNvbnN0IG92ZXJsYXlIYW5kbGVyID0gaGFuZGxlcihpbm5lckNvbmZpZyk7XG4gICAgY29uc3QgcXVlcnlQYXJhbVZhbHVlID0gaW5qZWN0UXVlcnlQYXJhbTxUUXVlcnlQYXJhbT4oY29uZmlnLnF1ZXJ5UGFyYW1LZXkpO1xuXG4gICAgbGV0IGN1cnJlbnRPdmVybGF5UmVmOiBPdmVybGF5UmVmPFRDb21wb25lbnQsIFRSZXN1bHQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBmbkNhbGxlZCA9IGZhbHNlO1xuICAgICAgY2xlYW51cCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIFtjb25maWcucXVlcnlQYXJhbUtleV06IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbVZhbHVlKCk7XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGlmICghY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGN1cnJlbnRPdmVybGF5UmVmID0gb3ZlcmxheUhhbmRsZXIub3BlbigpO1xuICAgICAgICAgICAgY3VycmVudE92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjbGVhbnVwKCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgIGlmICgoY3VycmVudE92ZXJsYXlSZWYuY29tcG9uZW50SW5zdGFuY2UgYXMgYW55KVtPVkVSTEFZX1FVRVJZX1BBUkFNX0lOUFVUX05BTUVdKSB7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZi5jb21wb25lbnRSZWY/LnNldElucHV0KE9WRVJMQVlfUVVFUllfUEFSQU1fSU5QVVRfTkFNRSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGN1cnJlbnRPdmVybGF5UmVmLmNsb3NlKCk7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG9wZW4gPSAocXVlcnlQYXJhbVZhbHVlOiBUUXVlcnlQYXJhbSkgPT4ge1xuICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgW2NvbmZpZy5xdWVyeVBhcmFtS2V5XTogcXVlcnlQYXJhbVZhbHVlLFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgY2xlYW51cCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBsaWZlY3ljbGVIYW5kbGVyOiBPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlPFRRdWVyeVBhcmFtPiA9IHtcbiAgICAgIG9wZW4sXG4gICAgICBjbG9zZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGxpZmVjeWNsZUhhbmRsZXI7XG4gIH07XG5cbiAgZm5bJ2luamVjdE92ZXJsYXlSZWYnXSA9ICgpID0+IGhhbmRsZXIoKS5pbmplY3RPdmVybGF5UmVmKCk7XG5cbiAgcmV0dXJuIGZuO1xufTtcbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFFTixNQUFNLEVBQ04sUUFBUSxFQUlSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBbUMzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxVQUFnRSxFQUNoRSxFQUFFO0lBQ0YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUE2RCxFQUFFLEVBQUU7UUFDM0UsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUV4RCxJ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RUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWZmZWN0UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dFNpZ25hbCxcbiAgTW9kZWxTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICB1bnRyYWNrZWQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGluamVjdFF1ZXJ5UGFyYW0gfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9EQVRBIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheUNvbnN1bWVyQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB9IGZyb20gJy4vb3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICcuL292ZXJsYXktcmVmJztcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3ZlcmxheUhhbmRsZXJDb25maWc8VCwgRCA9IHVua25vd24+ID0gT21pdDxPdmVybGF5Q29uZmlnPEQ+LCAncG9zaXRpb25zJz4gJiB7XG4gIC8qKiBUaGUgb3ZlcmxheSBjb21wb25lbnQuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYHRlbXBsYXRlYCBwcm9wZXJ0eSAgKi9cbiAgY29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxUPjtcblxuICAvKiogVGhlIG92ZXJsYXkgdGVtcGxhdGUuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYGNvbXBvbmVudGAgcHJvcGVydHkgICovXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VD47XG5cbiAgLyoqIFRoZSBvdmVybGF5IHBvc2l0aW9ucyB1c2luZyB0aGUgcG9zaXRpb24gYnVpbGRlciBwcm92aWRlZCB2aWEgYXJndW1lbnQgICovXG4gIHBvc2l0aW9uczogKGJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpID0+IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXTtcbn07XG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlIYW5kbGVyPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4gPSB7XG4gIC8qKiBPcGVuIHRoZSBvdmVybGF5IHVzaW5nIGEgY29tYmluYXRpb24gb2YgdGhlIGdpdmVuIGNvbmZpZ3MgICovXG4gIG9wZW46IChjb25maWc/OiBPdmVybGF5Q29uc3VtZXJDb25maWc8RD4pID0+IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHR5cGVkIG92ZXJsYXkgcmVmLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBvdmVybGF5IHJlZiBnZXRzIGFjY2Vzc2VkIG91dHNpZGUgb2YgdGhlIG92ZXJsYXkgY29tcG9uZW50IG9yIHRlbXBsYXRlUmVmXG4gICAqL1xuICBpbmplY3RPdmVybGF5UmVmOiAoKSA9PiBPdmVybGF5UmVmPFQsIFI+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvdmVybGF5IGRhdGEuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIG92ZXJsYXkgZGF0YSBnZXRzIGFjY2Vzc2VkIG91dHNpZGUgb2YgdGhlIG92ZXJsYXkgY29tcG9uZW50IG9yIHRlbXBsYXRlUmVmXG4gICAqL1xuICBpbmplY3RPdmVybGF5RGF0YTogKCkgPT4gRDtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZU92ZXJsYXlIYW5kbGVySW5uZXJDb25maWc8UiA9IHVua25vd24+ID0ge1xuICAvKiogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBvdmVybGF5IGhhcyBiZWVuIGNsb3NlZCAqL1xuICBhZnRlckNsb3NlZD86IChyZXN1bHQ6IFIgfCBudWxsKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlIYW5kbGVyID0gPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSA9IHVua25vd24sIFRPdmVybGF5UmVzdWx0ID0gdW5rbm93bj4oXG4gIHJvb3RDb25maWc6IENyZWF0ZU92ZXJsYXlIYW5kbGVyQ29uZmlnPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZm4gPSAoaW5uZXJDb25maWc/OiBDcmVhdGVPdmVybGF5SGFuZGxlcklubmVyQ29uZmlnPFRPdmVybGF5UmVzdWx0PikgPT4ge1xuICAgIGNvbnN0IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdCB0cGwgPSByb290Q29uZmlnLmNvbXBvbmVudCA/PyByb290Q29uZmlnLnRlbXBsYXRlO1xuXG4gICAgaWYgKCF0cGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGNvbXBvbmVudCBvciB0ZW1wbGF0ZSBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3BlbiA9IChjb25maWc/OiBPdmVybGF5Q29uc3VtZXJDb25maWc8VE92ZXJsYXlEYXRhPikgPT4ge1xuICAgICAgY29uc3QgcmVmID0gb3ZlcmxheVNlcnZpY2Uub3BlbjxUQ29tcG9uZW50LCBUT3ZlcmxheURhdGEsIFRPdmVybGF5UmVzdWx0Pih0cGwsIHtcbiAgICAgICAgdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgLi4ucm9vdENvbmZpZyxcbiAgICAgICAgcG9zaXRpb25zOiByb290Q29uZmlnLnBvc2l0aW9ucyhvdmVybGF5U2VydmljZS5wb3NpdGlvbnMpLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYWZ0ZXJDbG9zZWRGbiA9IGlubmVyQ29uZmlnPy5hZnRlckNsb3NlZDtcblxuICAgICAgaWYgKGFmdGVyQ2xvc2VkRm4pIHtcbiAgICAgICAgcmVmXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgICAgIHRhcCgocikgPT4gYWZ0ZXJDbG9zZWRGbihyID8/IG51bGwpKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVmO1xuICAgIH07XG5cbiAgICBjb25zdCBpbmplY3RPdmVybGF5UmVmID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGluamVjdDxPdmVybGF5UmVmPFRDb21wb25lbnQsIFRPdmVybGF5UmVzdWx0Pj4oT3ZlcmxheVJlZik7XG4gICAgfTtcblxuICAgIGNvbnN0IGluamVjdE92ZXJsYXlEYXRhID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIGluamVjdDxUT3ZlcmxheURhdGE+KE9WRVJMQVlfREFUQSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXI6IE92ZXJsYXlIYW5kbGVyPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSwgVE92ZXJsYXlSZXN1bHQ+ID0ge1xuICAgICAgb3BlbixcbiAgICAgIGluamVjdE92ZXJsYXlSZWYsXG4gICAgICBpbmplY3RPdmVybGF5RGF0YSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGhhbmRsZXI7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufTtcblxuZXhwb3J0IHR5cGUgT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZTxRID0gc3RyaW5nPiA9IHtcbiAgLyoqIE9wZW4gdGhlIG92ZXJsYXkgdXNpbmcgdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtIHZhbHVlICAqL1xuICBvcGVuOiAocXVlcnlQYXJhbVZhbHVlOiBRKSA9PiB2b2lkO1xuXG4gIC8qKiBDbG9zZSB0aGUgb3ZlcmxheSBhbmQgcmVtb3ZlIHRoZSBxdWVyeSBwYXJhbSAgKi9cbiAgY2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlQ29uZmlnPFQ+ID0gT21pdDxcbiAgT3ZlcmxheUNvbmZpZzx1bmtub3duPixcbiAgJ3Bvc2l0aW9ucycgfCAnZGF0YScgfCAnY2xvc2VPbk5hdmlnYXRpb24nXG4+ICYge1xuICAvKiogVGhlIG92ZXJsYXkgY29tcG9uZW50ICAqL1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47XG5cbiAgLyoqIFRoZSBvdmVybGF5IHBvc2l0aW9ucyB1c2luZyB0aGUgcG9zaXRpb24gYnVpbGRlciBwcm92aWRlZCB2aWEgYXJndW1lbnQgICovXG4gIHBvc2l0aW9uczogKGJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpID0+IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXTtcblxuICAvKiogVGhlIHF1ZXJ5IHBhcmFtIGtleSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheSAgKi9cbiAgcXVlcnlQYXJhbUtleTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfUVVFUllfUEFSQU1fSU5QVVRfTkFNRSA9ICdvdmVybGF5UXVlcnlQYXJhbSc7XG5cbi8qKlxuICogVGhpcyBoYW5kbGVyIHdpbGwgYXV0b21hdGljYWxseSBvcGVuIHRoZSBvdmVybGF5IHdoZW4gdGhlIHF1ZXJ5IHBhcmFtIGlzIHByZXNlbnQuXG4gKiBUaGUgb3ZlcmxheSBjYW4gY29udGFpbiBhIGlucHV0IG9yIG1vZGVsIHdpdGggdGhlIG5hbWUgYG92ZXJsYXlRdWVyeVBhcmFtYCB0byByZWNlaXZlIHRoZSBxdWVyeSBwYXJhbSB2YWx1ZS5cbiAqXG4gKiBJZiB5b3UgbmVlZCB0byB0cmFuc2ZlciBtb3JlIGluZm9ybWF0aW9uIChlZy4gYSBzZWNvbmQgcXVlcnkgcGFyYW0pLCB5b3UgbmVlZCB0byBjb21iaW5lIHRoZW0gaW50byBhIHNpbmdsZSBxdWVyeSBwYXJhbSBzdHJpbmcuXG4gKiBZb3UgY2FuIHRoZW4gc3BsaXQgdGhlIHN0cmluZyBpbnNpZGUgdGhlIG92ZXJsYXkgY29tcG9uZW50IHVzaW5nIGNvbXB1dGVkIHNpZ25hbHMuXG4gKlxuICogVG8gb3BlbiB0aGUgb3ZlcmxheSBlaXRoZXIgdXNlIHRoZSBgT3ZlcmxheUhhbmRsZXJMaW5rRGlyZWN0aXZlYCBvciBjYWxsIHRoZSBgLm9wZW5gIG1ldGhvZCBvZiB0aGUgcmV0dXJuZWQgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlIYW5kbGVyV2l0aFF1ZXJ5UGFyYW1MaWZlY3ljbGUgPSA8XG4gIFRDb21wb25lbnQsXG4gIFRRdWVyeVBhcmFtIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBUUmVzdWx0ID0gdW5rbm93bixcbj4oXG4gIGNvbmZpZzogQ3JlYXRlT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZUNvbmZpZzxUQ29tcG9uZW50PixcbikgPT4ge1xuICBjb25zdCBoYW5kbGVyID0gY3JlYXRlT3ZlcmxheUhhbmRsZXI8VENvbXBvbmVudCwgdm9pZCwgVFJlc3VsdD4oeyAuLi5jb25maWcsIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSB9KTtcblxuICBsZXQgZm5DYWxsZWQgPSBmYWxzZTtcbiAgbGV0IHJvdXRlcjogUm91dGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3QgdXBkYXRlUXVlcnlQYXJhbSA9ICh2YWx1ZTogVFF1ZXJ5UGFyYW0gfCBudWxsKSA9PiB7XG4gICAgcm91dGVyPy5uYXZpZ2F0ZShbXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgW2NvbmZpZy5xdWVyeVBhcmFtS2V5XTogdmFsdWUsXG4gICAgICB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBmbiA9IChpbm5lckNvbmZpZz86IENyZWF0ZU92ZXJsYXlIYW5kbGVySW5uZXJDb25maWc8VFJlc3VsdD4pID0+IHtcbiAgICBpZiAoZm5DYWxsZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBjcmVhdGVPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlIHVudGlsIHRoZSBjYWxsZXIgaXMgZGVzdHJveWVkJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZm5DYWxsZWQgPSB0cnVlO1xuXG4gICAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgY29uc3Qgb3ZlcmxheUhhbmRsZXIgPSBoYW5kbGVyKHsgLi4uKGlubmVyQ29uZmlnID8/IHt9KSB9KTtcbiAgICBjb25zdCBxdWVyeVBhcmFtVmFsdWUgPSBpbmplY3RRdWVyeVBhcmFtPFRRdWVyeVBhcmFtPihjb25maWcucXVlcnlQYXJhbUtleSk7XG5cbiAgICBsZXQgY3VycmVudE92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VENvbXBvbmVudCwgVFJlc3VsdD4gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaW5wdXRTaWduYWxFZmZlY3Q6IEVmZmVjdFJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgZm5DYWxsZWQgPSBmYWxzZTtcbiAgICAgIHJvdXRlciA9IG51bGw7XG4gICAgICBjbGVhbnVwKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgaW5wdXRTaWduYWxFZmZlY3Q/LmRlc3Ryb3koKTtcbiAgICAgIGlucHV0U2lnbmFsRWZmZWN0ID0gbnVsbDtcbiAgICAgIHVwZGF0ZVF1ZXJ5UGFyYW0obnVsbCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFF1ZXJ5UGFyYW1JbnB1dCA9ICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICByZXR1cm4gKGN1cnJlbnRPdmVybGF5UmVmPy5jb21wb25lbnRJbnN0YW5jZSBhcyBhbnkpPy5bT1ZFUkxBWV9RVUVSWV9QQVJBTV9JTlBVVF9OQU1FXSBhc1xuICAgICAgICB8IE1vZGVsU2lnbmFsPFRRdWVyeVBhcmFtPlxuICAgICAgICB8IElucHV0U2lnbmFsPFRRdWVyeVBhcmFtPlxuICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbVZhbHVlKCk7XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGlmICghY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGN1cnJlbnRPdmVybGF5UmVmID0gb3ZlcmxheUhhbmRsZXIub3BlbigpO1xuICAgICAgICAgICAgY3VycmVudE92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjbGVhbnVwKCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgIGNvbnN0IGlucHV0U2lnbmFsID0gZ2V0UXVlcnlQYXJhbUlucHV0KCk7XG5cbiAgICAgICAgICAgIGlmIChpbnB1dFNpZ25hbCkge1xuICAgICAgICAgICAgICBpbnB1dFNpZ25hbEVmZmVjdCA9IGVmZmVjdChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbCA9IGlucHV0U2lnbmFsKCk7XG5cbiAgICAgICAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVF1ZXJ5UGFyYW0oaW5wdXRWYWwpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGluamVjdG9yIH0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGdldFF1ZXJ5UGFyYW1JbnB1dCgpKSB7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZi5jb21wb25lbnRSZWY/LnNldElucHV0KE9WRVJMQVlfUVVFUllfUEFSQU1fSU5QVVRfTkFNRSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGlucHV0U2lnbmFsRWZmZWN0Py5kZXN0cm95KCk7XG4gICAgICAgICAgICBpbnB1dFNpZ25hbEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgY3VycmVudE92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcGVuID0gKHF1ZXJ5UGFyYW1WYWx1ZTogVFF1ZXJ5UGFyYW0pID0+IHVwZGF0ZVF1ZXJ5UGFyYW0ocXVlcnlQYXJhbVZhbHVlKTtcblxuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgY2xlYW51cCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBsaWZlY3ljbGVIYW5kbGVyOiBPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlPFRRdWVyeVBhcmFtPiA9IHtcbiAgICAgIG9wZW4sXG4gICAgICBjbG9zZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGxpZmVjeWNsZUhhbmRsZXI7XG4gIH07XG5cbiAgZm5bJ2luamVjdE92ZXJsYXlSZWYnXSA9ICgpID0+IGhhbmRsZXIoKS5pbmplY3RPdmVybGF5UmVmKCk7XG4gIGZuWyd1cGRhdGVRdWVyeVBhcmFtJ10gPSAodmFsdWU6IFRRdWVyeVBhcmFtKSA9PiB1cGRhdGVRdWVyeVBhcmFtKHZhbHVlKTtcblxuICByZXR1cm4gZm47XG59O1xuIl19
|
package/fesm2022/ethlete-cdk.mjs
CHANGED
|
@@ -12460,7 +12460,7 @@ const createOverlayHandler = (rootConfig) => {
|
|
|
12460
12460
|
const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
|
|
12461
12461
|
/**
|
|
12462
12462
|
* This handler will automatically open the overlay when the query param is present.
|
|
12463
|
-
* The overlay can contain a
|
|
12463
|
+
* The overlay can contain a input or model with the name `overlayQueryParam` to receive the query param value.
|
|
12464
12464
|
*
|
|
12465
12465
|
* If you need to transfer more information (eg. a second query param), you need to combine them into a single query param string.
|
|
12466
12466
|
* You can then split the string inside the overlay component using computed signals.
|
|
@@ -12468,29 +12468,42 @@ const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
|
|
|
12468
12468
|
* To open the overlay either use the `OverlayHandlerLinkDirective` or call the `.open` method of the returned handler.
|
|
12469
12469
|
*/
|
|
12470
12470
|
const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
12471
|
-
const handler = createOverlayHandler(config);
|
|
12471
|
+
const handler = createOverlayHandler({ ...config, closeOnNavigation: false });
|
|
12472
12472
|
let fnCalled = false;
|
|
12473
|
+
let router = null;
|
|
12474
|
+
const updateQueryParam = (value) => {
|
|
12475
|
+
router?.navigate([], {
|
|
12476
|
+
queryParams: {
|
|
12477
|
+
[config.queryParamKey]: value,
|
|
12478
|
+
},
|
|
12479
|
+
queryParamsHandling: 'merge',
|
|
12480
|
+
});
|
|
12481
|
+
};
|
|
12473
12482
|
const fn = (innerConfig) => {
|
|
12474
12483
|
if (fnCalled) {
|
|
12475
12484
|
throw new Error('The function returned by createOverlayHandlerWithQueryParamLifecycle can only be called once until the caller is destroyed');
|
|
12476
12485
|
}
|
|
12477
12486
|
fnCalled = true;
|
|
12478
|
-
|
|
12487
|
+
router = inject(Router);
|
|
12479
12488
|
const destroyRef = inject(DestroyRef);
|
|
12480
|
-
const
|
|
12489
|
+
const injector = inject(Injector);
|
|
12490
|
+
const overlayHandler = handler({ ...(innerConfig ?? {}) });
|
|
12481
12491
|
const queryParamValue = injectQueryParam(config.queryParamKey);
|
|
12482
12492
|
let currentOverlayRef = null;
|
|
12493
|
+
let inputSignalEffect = null;
|
|
12483
12494
|
destroyRef.onDestroy(() => {
|
|
12484
12495
|
fnCalled = false;
|
|
12496
|
+
router = null;
|
|
12485
12497
|
cleanup();
|
|
12486
12498
|
});
|
|
12487
12499
|
const cleanup = () => {
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12492
|
-
|
|
12493
|
-
|
|
12500
|
+
inputSignalEffect?.destroy();
|
|
12501
|
+
inputSignalEffect = null;
|
|
12502
|
+
updateQueryParam(null);
|
|
12503
|
+
};
|
|
12504
|
+
const getQueryParamInput = () => {
|
|
12505
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12506
|
+
return currentOverlayRef?.componentInstance?.[OVERLAY_QUERY_PARAM_INPUT_NAME];
|
|
12494
12507
|
};
|
|
12495
12508
|
effect(() => {
|
|
12496
12509
|
const value = queryParamValue();
|
|
@@ -12502,28 +12515,32 @@ const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
|
12502
12515
|
.afterClosed()
|
|
12503
12516
|
.pipe(takeUntilDestroyed(destroyRef), tap(() => cleanup()))
|
|
12504
12517
|
.subscribe();
|
|
12518
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12519
|
+
const inputSignal = getQueryParamInput();
|
|
12520
|
+
if (inputSignal) {
|
|
12521
|
+
inputSignalEffect = effect(() => {
|
|
12522
|
+
const inputVal = inputSignal();
|
|
12523
|
+
untracked(() => {
|
|
12524
|
+
updateQueryParam(inputVal);
|
|
12525
|
+
});
|
|
12526
|
+
}, { injector });
|
|
12527
|
+
}
|
|
12505
12528
|
}
|
|
12506
|
-
|
|
12507
|
-
if (currentOverlayRef.componentInstance[OVERLAY_QUERY_PARAM_INPUT_NAME]) {
|
|
12529
|
+
if (getQueryParamInput()) {
|
|
12508
12530
|
currentOverlayRef.componentRef?.setInput(OVERLAY_QUERY_PARAM_INPUT_NAME, value);
|
|
12509
12531
|
}
|
|
12510
12532
|
}
|
|
12511
12533
|
else {
|
|
12512
12534
|
if (currentOverlayRef) {
|
|
12535
|
+
inputSignalEffect?.destroy();
|
|
12536
|
+
inputSignalEffect = null;
|
|
12513
12537
|
currentOverlayRef.close();
|
|
12514
12538
|
currentOverlayRef = null;
|
|
12515
12539
|
}
|
|
12516
12540
|
}
|
|
12517
12541
|
});
|
|
12518
12542
|
});
|
|
12519
|
-
const open = (queryParamValue) =>
|
|
12520
|
-
router.navigate([], {
|
|
12521
|
-
queryParams: {
|
|
12522
|
-
[config.queryParamKey]: queryParamValue,
|
|
12523
|
-
},
|
|
12524
|
-
queryParamsHandling: 'merge',
|
|
12525
|
-
});
|
|
12526
|
-
};
|
|
12543
|
+
const open = (queryParamValue) => updateQueryParam(queryParamValue);
|
|
12527
12544
|
const close = () => {
|
|
12528
12545
|
cleanup();
|
|
12529
12546
|
};
|
|
@@ -12534,6 +12551,7 @@ const createOverlayHandlerWithQueryParamLifecycle = (config) => {
|
|
|
12534
12551
|
return lifecycleHandler;
|
|
12535
12552
|
};
|
|
12536
12553
|
fn['injectOverlayRef'] = () => handler().injectOverlayRef();
|
|
12554
|
+
fn['updateQueryParam'] = (value) => updateQueryParam(value);
|
|
12537
12555
|
return fn;
|
|
12538
12556
|
};
|
|
12539
12557
|
|