@ethlete/cdk 4.34.1 → 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 CHANGED
@@ -1,5 +1,21 @@
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
+
9
+ ## 4.35.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`642182c`](https://github.com/ethlete-io/ethdk/commit/642182c9896b6173a2f1c82c970b15add5aad6e6) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `injectOverlayRef` to the method returned by `createOverlayHandlerWithQueryParamLifecycle`
14
+
15
+ - [`642182c`](https://github.com/ethlete-io/ethdk/commit/642182c9896b6173a2f1c82c970b15add5aad6e6) Thanks [@TomTomB](https://github.com/TomTomB)! - Rename overlay handler `getOverlayRef` method to `injectOverlayRef`
16
+
17
+ - [`642182c`](https://github.com/ethlete-io/ethdk/commit/642182c9896b6173a2f1c82c970b15add5aad6e6) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `injectOverlayData` method to overlay handler
18
+
3
19
  ## 4.34.1
4
20
 
5
21
  ### Patch Changes
@@ -1,15 +1,15 @@
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';
5
5
  import { tap } from 'rxjs';
6
+ import { OVERLAY_DATA } from '../constants';
6
7
  import { OverlayService } from '../services';
7
8
  import { OverlayRef } from './overlay-ref';
8
9
  export const createOverlayHandler = (rootConfig) => {
9
10
  const fn = (innerConfig) => {
10
11
  const overlayService = inject(OverlayService);
11
12
  const viewContainerRef = inject(ViewContainerRef);
12
- const overlayRef = inject(OverlayRef, { optional: true });
13
13
  const destroyRef = inject(DestroyRef);
14
14
  const tpl = rootConfig.component ?? rootConfig.template;
15
15
  if (!tpl) {
@@ -31,24 +31,25 @@ export const createOverlayHandler = (rootConfig) => {
31
31
  }
32
32
  return ref;
33
33
  };
34
- const getOverlayRef = () => {
35
- if (!overlayRef) {
36
- throw new Error('OverlayRef is only available inside the overlay component or templateRef');
37
- }
38
- return overlayRef;
34
+ const injectOverlayRef = () => {
35
+ return inject(OverlayRef);
36
+ };
37
+ const injectOverlayData = () => {
38
+ return inject(OVERLAY_DATA);
39
39
  };
40
40
  const handler = {
41
41
  open,
42
- getOverlayRef,
42
+ injectOverlayRef,
43
+ injectOverlayData,
43
44
  };
44
45
  return handler;
45
46
  };
46
47
  return fn;
47
48
  };
48
- const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
49
+ export const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
49
50
  /**
50
51
  * This handler will automatically open the overlay when the query param is present.
51
- * The overlay can contain a required input with the name `overlayQueryParam` to receive the query param value.
52
+ * The overlay can contain a input or model with the name `overlayQueryParam` to receive the query param value.
52
53
  *
53
54
  * If you need to transfer more information (eg. a second query param), you need to combine them into a single query param string.
54
55
  * You can then split the string inside the overlay component using computed signals.
@@ -56,29 +57,42 @@ const OVERLAY_QUERY_PARAM_INPUT_NAME = 'overlayQueryParam';
56
57
  * To open the overlay either use the `OverlayHandlerLinkDirective` or call the `.open` method of the returned handler.
57
58
  */
58
59
  export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
59
- const handler = createOverlayHandler(config);
60
+ const handler = createOverlayHandler({ ...config, closeOnNavigation: false });
60
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
+ };
61
71
  const fn = (innerConfig) => {
62
72
  if (fnCalled) {
63
73
  throw new Error('The function returned by createOverlayHandlerWithQueryParamLifecycle can only be called once until the caller is destroyed');
64
74
  }
65
75
  fnCalled = true;
66
- const router = inject(Router);
76
+ router = inject(Router);
67
77
  const destroyRef = inject(DestroyRef);
68
- const overlayHandler = handler(innerConfig);
78
+ const injector = inject(Injector);
79
+ const overlayHandler = handler({ ...(innerConfig ?? {}) });
69
80
  const queryParamValue = injectQueryParam(config.queryParamKey);
70
81
  let currentOverlayRef = null;
82
+ let inputSignalEffect = null;
71
83
  destroyRef.onDestroy(() => {
72
84
  fnCalled = false;
85
+ router = null;
73
86
  cleanup();
74
87
  });
75
88
  const cleanup = () => {
76
- router.navigate([], {
77
- queryParams: {
78
- [config.queryParamKey]: null,
79
- },
80
- queryParamsHandling: 'merge',
81
- });
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];
82
96
  };
83
97
  effect(() => {
84
98
  const value = queryParamValue();
@@ -90,28 +104,32 @@ export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
90
104
  .afterClosed()
91
105
  .pipe(takeUntilDestroyed(destroyRef), tap(() => cleanup()))
92
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
+ }
93
117
  }
94
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- if (currentOverlayRef.componentInstance[OVERLAY_QUERY_PARAM_INPUT_NAME]) {
118
+ if (getQueryParamInput()) {
96
119
  currentOverlayRef.componentRef?.setInput(OVERLAY_QUERY_PARAM_INPUT_NAME, value);
97
120
  }
98
121
  }
99
122
  else {
100
123
  if (currentOverlayRef) {
124
+ inputSignalEffect?.destroy();
125
+ inputSignalEffect = null;
101
126
  currentOverlayRef.close();
102
127
  currentOverlayRef = null;
103
128
  }
104
129
  }
105
130
  });
106
131
  });
107
- const open = (queryParamValue) => {
108
- router.navigate([], {
109
- queryParams: {
110
- [config.queryParamKey]: queryParamValue,
111
- },
112
- queryParamsHandling: 'merge',
113
- });
114
- };
132
+ const open = (queryParamValue) => updateQueryParam(queryParamValue);
115
133
  const close = () => {
116
134
  cleanup();
117
135
  };
@@ -121,6 +139,8 @@ export const createOverlayHandlerWithQueryParamLifecycle = (config) => {
121
139
  };
122
140
  return lifecycleHandler;
123
141
  };
142
+ fn['injectOverlayRef'] = () => handler().injectOverlayRef();
143
+ fn['updateQueryParam'] = (value) => updateQueryParam(value);
124
144
  return fn;
125
145
  };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUE2QjNDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFVBQWdGLEVBQ2hGLEVBQUU7SUFDRixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQTZELEVBQUUsRUFBRTtRQUMzRSxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQXlDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVB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QUFDO1FBRUYsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFFRixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgVGVtcGxhdGVSZWYsIHVudHJhY2tlZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGluamVjdFF1ZXJ5UGFyYW0gfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5Q29uc3VtZXJDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPdmVybGF5UG9zaXRpb25CdWlsZGVyIH0gZnJvbSAnLi9vdmVybGF5LXBvc2l0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4vb3ZlcmxheS1yZWYnO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVPdmVybGF5SGFuZGxlckNvbmZpZzxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+ID0gT21pdDxPdmVybGF5Q29uZmlnPEQ+LCAncG9zaXRpb25zJz4gJiB7XG4gIC8qKiBUaGUgb3ZlcmxheSBjb21wb25lbnQuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYHRlbXBsYXRlYCBwcm9wZXJ0eSAgKi9cbiAgY29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxUPjtcblxuICAvKiogVGhlIG92ZXJsYXkgdGVtcGxhdGUuIFVzZSBlaXRoZXIgdGhpcyBvciB0aGUgYGNvbXBvbmVudGAgcHJvcGVydHkgICovXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VD47XG5cbiAgLyoqIFRoZSBvdmVybGF5IHBvc2l0aW9ucyB1c2luZyB0aGUgcG9zaXRpb24gYnVpbGRlciBwcm92aWRlZCB2aWEgYXJndW1lbnQgICovXG4gIHBvc2l0aW9uczogKGJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpID0+IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXTtcbn07XG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlIYW5kbGVyPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4gPSB7XG4gIC8qKiBPcGVuIHRoZSBvdmVybGF5IHVzaW5nIGEgY29tYmluYXRpb24gb2YgdGhlIGdpdmVuIGNvbmZpZ3MgICovXG4gIG9wZW46IChjb25maWc/OiBPdmVybGF5Q29uc3VtZXJDb25maWc8RD4pID0+IE92ZXJsYXlSZWY8VCwgUj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHR5cGVkIG92ZXJsYXkgcmVmLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBvdmVybGF5IHJlZiBnZXRzIGFjY2Vzc2VkIG91dHNpZGUgb2YgdGhlIG92ZXJsYXkgY29tcG9uZW50IG9yIHRlbXBsYXRlUmVmXG4gICAqL1xuICBnZXRPdmVybGF5UmVmOiAoKSA9PiBPdmVybGF5UmVmPFQsIFI+O1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3ZlcmxheUhhbmRsZXJJbm5lckNvbmZpZzxSID0gdW5rbm93bj4gPSB7XG4gIC8qKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIG9uY2UgdGhlIG92ZXJsYXkgaGFzIGJlZW4gY2xvc2VkICovXG4gIGFmdGVyQ2xvc2VkPzogKHJlc3VsdDogUiB8IG51bGwpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlT3ZlcmxheUhhbmRsZXIgPSA8VENvbXBvbmVudCwgVE92ZXJsYXlEYXRhID0gdW5rbm93biwgVE92ZXJsYXlSZXN1bHQgPSB1bmtub3duPihcbiAgcm9vdENvbmZpZzogQ3JlYXRlT3ZlcmxheUhhbmRsZXJDb25maWc8VENvbXBvbmVudCwgVE92ZXJsYXlEYXRhLCBUT3ZlcmxheVJlc3VsdD4sXG4pID0+IHtcbiAgY29uc3QgZm4gPSAoaW5uZXJDb25maWc/OiBDcmVhdGVPdmVybGF5SGFuZGxlcklubmVyQ29uZmlnPFRPdmVybGF5UmVzdWx0PikgPT4ge1xuICAgIGNvbnN0IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBpbmplY3Q8T3ZlcmxheVJlZjxUQ29tcG9uZW50LCBUT3ZlcmxheVJlc3VsdD4+KE92ZXJsYXlSZWYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0IHRwbCA9IHJvb3RDb25maWcuY29tcG9uZW50ID8/IHJvb3RDb25maWcudGVtcGxhdGU7XG5cbiAgICBpZiAoIXRwbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgY29tcG9uZW50IG9yIHRlbXBsYXRlIG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcGVuID0gKGNvbmZpZz86IE92ZXJsYXlDb25zdW1lckNvbmZpZzxUT3ZlcmxheURhdGE+KSA9PiB7XG4gICAgICBjb25zdCByZWYgPSBvdmVybGF5U2VydmljZS5vcGVuPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSwgVE92ZXJsYXlSZXN1bHQ+KHRwbCwge1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAuLi5yb290Q29uZmlnLFxuICAgICAgICBwb3NpdGlvbnM6IHJvb3RDb25maWcucG9zaXRpb25zKG92ZXJsYXlTZXJ2aWNlLnBvc2l0aW9ucyksXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhZnRlckNsb3NlZEZuID0gaW5uZXJDb25maWc/LmFmdGVyQ2xvc2VkO1xuXG4gICAgICBpZiAoYWZ0ZXJDbG9zZWRGbikge1xuICAgICAgICByZWZcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgdGFwKChyKSA9PiBhZnRlckNsb3NlZEZuKHIgPz8gbnVsbCkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWY7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldE92ZXJsYXlSZWYgPSAoKSA9PiB7XG4gICAgICBpZiAoIW92ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdmVybGF5UmVmIGlzIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGUgb3ZlcmxheSBjb21wb25lbnQgb3IgdGVtcGxhdGVSZWYnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG92ZXJsYXlSZWY7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXI6IE92ZXJsYXlIYW5kbGVyPFRDb21wb25lbnQsIFRPdmVybGF5RGF0YSwgVE92ZXJsYXlSZXN1bHQ+ID0ge1xuICAgICAgb3BlbixcbiAgICAgIGdldE92ZXJsYXlSZWYsXG4gICAgfTtcblxuICAgIHJldHVybiBoYW5kbGVyO1xuICB9O1xuXG4gIHJldHVybiBmbjtcbn07XG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlIYW5kbGVyV2l0aFF1ZXJ5UGFyYW1MaWZlY3ljbGU8USA9IHN0cmluZz4gPSB7XG4gIC8qKiBPcGVuIHRoZSBvdmVybGF5IHVzaW5nIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbSB2YWx1ZSAgKi9cbiAgb3BlbjogKHF1ZXJ5UGFyYW1WYWx1ZTogUSkgPT4gdm9pZDtcblxuICAvKiogQ2xvc2UgdGhlIG92ZXJsYXkgYW5kIHJlbW92ZSB0aGUgcXVlcnkgcGFyYW0gICovXG4gIGNsb3NlOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZUNvbmZpZzxUPiA9IE9taXQ8XG4gIE92ZXJsYXlDb25maWc8dW5rbm93bj4sXG4gICdwb3NpdGlvbnMnIHwgJ2RhdGEnXG4+ICYge1xuICAvKiogVGhlIG92ZXJsYXkgY29tcG9uZW50ICAqL1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47XG5cbiAgLyoqIFRoZSBvdmVybGF5IHBvc2l0aW9ucyB1c2luZyB0aGUgcG9zaXRpb24gYnVpbGRlciBwcm92aWRlZCB2aWEgYXJndW1lbnQgICovXG4gIHBvc2l0aW9uczogKGJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpID0+IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXTtcblxuICAvKiogVGhlIHF1ZXJ5IHBhcmFtIGtleSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheSAgKi9cbiAgcXVlcnlQYXJhbUtleTogc3RyaW5nO1xufTtcblxuY29uc3QgT1ZFUkxBWV9RVUVSWV9QQVJBTV9JTlBVVF9OQU1FID0gJ292ZXJsYXlRdWVyeVBhcmFtJztcblxuLyoqXG4gKiBUaGlzIGhhbmRsZXIgd2lsbCBhdXRvbWF0aWNhbGx5IG9wZW4gdGhlIG92ZXJsYXkgd2hlbiB0aGUgcXVlcnkgcGFyYW0gaXMgcHJlc2VudC5cbiAqIFRoZSBvdmVybGF5IGNhbiBjb250YWluIGEgcmVxdWlyZWQgaW5wdXQgd2l0aCB0aGUgbmFtZSBgb3ZlcmxheVF1ZXJ5UGFyYW1gIHRvIHJlY2VpdmUgdGhlIHF1ZXJ5IHBhcmFtIHZhbHVlLlxuICpcbiAqIElmIHlvdSBuZWVkIHRvIHRyYW5zZmVyIG1vcmUgaW5mb3JtYXRpb24gKGVnLiBhIHNlY29uZCBxdWVyeSBwYXJhbSksIHlvdSBuZWVkIHRvIGNvbWJpbmUgdGhlbSBpbnRvIGEgc2luZ2xlIHF1ZXJ5IHBhcmFtIHN0cmluZy5cbiAqIFlvdSBjYW4gdGhlbiBzcGxpdCB0aGUgc3RyaW5nIGluc2lkZSB0aGUgb3ZlcmxheSBjb21wb25lbnQgdXNpbmcgY29tcHV0ZWQgc2lnbmFscy5cbiAqXG4gKiBUbyBvcGVuIHRoZSBvdmVybGF5IGVpdGhlciB1c2UgdGhlIGBPdmVybGF5SGFuZGxlckxpbmtEaXJlY3RpdmVgIG9yIGNhbGwgdGhlIGAub3BlbmAgbWV0aG9kIG9mIHRoZSByZXR1cm5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3ZlcmxheUhhbmRsZXJXaXRoUXVlcnlQYXJhbUxpZmVjeWNsZSA9IDxcbiAgVENvbXBvbmVudCxcbiAgVFF1ZXJ5UGFyYW0gZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIFRSZXN1bHQgPSB1bmtub3duLFxuPihcbiAgY29uZmlnOiBDcmVhdGVPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlQ29uZmlnPFRDb21wb25lbnQ+LFxuKSA9PiB7XG4gIGNvbnN0IGhhbmRsZXIgPSBjcmVhdGVPdmVybGF5SGFuZGxlcjxUQ29tcG9uZW50LCB2b2lkLCBUUmVzdWx0Pihjb25maWcpO1xuXG4gIGxldCBmbkNhbGxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGZuID0gKGlubmVyQ29uZmlnPzogQ3JlYXRlT3ZlcmxheUhhbmRsZXJJbm5lckNvbmZpZzxUUmVzdWx0PikgPT4ge1xuICAgIGlmIChmbkNhbGxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIGZ1bmN0aW9uIHJldHVybmVkIGJ5IGNyZWF0ZU92ZXJsYXlIYW5kbGVyV2l0aFF1ZXJ5UGFyYW1MaWZlY3ljbGUgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UgdW50aWwgdGhlIGNhbGxlciBpcyBkZXN0cm95ZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmbkNhbGxlZCA9IHRydWU7XG5cbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGNvbnN0IG92ZXJsYXlIYW5kbGVyID0gaGFuZGxlcihpbm5lckNvbmZpZyk7XG4gICAgY29uc3QgcXVlcnlQYXJhbVZhbHVlID0gaW5qZWN0UXVlcnlQYXJhbTxUUXVlcnlQYXJhbT4oY29uZmlnLnF1ZXJ5UGFyYW1LZXkpO1xuXG4gICAgbGV0IGN1cnJlbnRPdmVybGF5UmVmOiBPdmVybGF5UmVmPFRDb21wb25lbnQsIFRSZXN1bHQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBmbkNhbGxlZCA9IGZhbHNlO1xuICAgICAgY2xlYW51cCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIFtjb25maWcucXVlcnlQYXJhbUtleV06IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbVZhbHVlKCk7XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGlmICghY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGN1cnJlbnRPdmVybGF5UmVmID0gb3ZlcmxheUhhbmRsZXIub3BlbigpO1xuICAgICAgICAgICAgY3VycmVudE92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjbGVhbnVwKCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgIGlmICgoY3VycmVudE92ZXJsYXlSZWYuY29tcG9uZW50SW5zdGFuY2UgYXMgYW55KVtPVkVSTEFZX1FVRVJZX1BBUkFNX0lOUFVUX05BTUVdKSB7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZi5jb21wb25lbnRSZWY/LnNldElucHV0KE9WRVJMQVlfUVVFUllfUEFSQU1fSU5QVVRfTkFNRSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY3VycmVudE92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGN1cnJlbnRPdmVybGF5UmVmLmNsb3NlKCk7XG4gICAgICAgICAgICBjdXJyZW50T3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG9wZW4gPSAocXVlcnlQYXJhbVZhbHVlOiBUUXVlcnlQYXJhbSkgPT4ge1xuICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgW2NvbmZpZy5xdWVyeVBhcmFtS2V5XTogcXVlcnlQYXJhbVZhbHVlLFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgY2xlYW51cCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBsaWZlY3ljbGVIYW5kbGVyOiBPdmVybGF5SGFuZGxlcldpdGhRdWVyeVBhcmFtTGlmZWN5Y2xlPFRRdWVyeVBhcmFtPiA9IHtcbiAgICAgIG9wZW4sXG4gICAgICBjbG9zZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGxpZmVjeWNsZUhhbmRsZXI7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufTtcbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFFTixNQUFNLEVBQ04sUUFBUSxFQUlSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBbUMzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxVQUFnRSxFQUNoRSxFQUFFO0lBQ0YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUE2RCxFQUFFLEVBQUU7UUFDM0UsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUV4RCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBNEMsRUFBRSxFQUFFO1lBQzVELE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQTJDLEdBQUcsRUFBRTtnQkFDN0UsZ0JBQWdCO2dCQUNoQixHQUFHLFVBQVU7Z0JBQ2IsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztnQkFDekQsR0FBRyxNQUFNO2FBQ1YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQztZQUUvQyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixHQUFHO3FCQUNBLFdBQVcsRUFBRTtxQkFDYixJQUFJLENBQ0gsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUNyQztxQkFDQSxTQUFTLEVBQUUsQ0FBQztZQUNqQixDQUFDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUM1QixPQUFPLE1BQU0sQ0FBeUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDO1FBRUYsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7WUFDN0IsT0FBTyxNQUFNLENBQWUsWUFBWSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQTZEO1lBQ3hFLElBQUk7WUFDSixnQkFBZ0I7WUFDaEIsaUJBQWlCO1NBQ2xCLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQXdCRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVsRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFHLENBS3pELE1BQXFFLEVBQ3JFLEVBQUU7SUFDRixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBNEIsRUFBRSxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXpHLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBRWpDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUU7UUFDckQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDbkIsV0FBVyxFQUFFO2dCQUNYLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUs7YUFDOUI7WUFDRCxtQkFBbUIsRUFBRSxPQUFPO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBc0QsRUFBRSxFQUFFO1FBQ3BFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUNiLDRIQUE0SCxDQUM3SCxDQUFDO1FBQ0osQ0FBQztRQUVELFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFjLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU1RSxJQUFJLGlCQUFpQixHQUEyQyxJQUFJLENBQUM7UUFDckUsSUFBSSxpQkFBaUIsR0FBcUIsSUFBSSxDQUFDO1FBRS9DLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDakIsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDbkIsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDN0IsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQzlCLDhEQUE4RDtZQUM5RCxPQUFRLGlCQUFpQixFQUFFLGlCQUF5QixFQUFFLENBQUMsOEJBQThCLENBR3hFLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBRWhDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDdkIsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUMxQyxpQkFBaUI7NkJBQ2QsV0FBVyxFQUFFOzZCQUNiLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFDOUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ3JCOzZCQUNBLFNBQVMsRUFBRSxDQUFDO3dCQUVmLDhEQUE4RDt3QkFDOUQsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQzt3QkFFekMsSUFBSSxXQUFXLEVBQUUsQ0FBQzs0QkFDaEIsaUJBQWlCLEdBQUcsTUFBTSxDQUN4QixHQUFHLEVBQUU7Z0NBQ0gsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7Z0NBRS9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0NBQ2IsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0NBQzdCLENBQUMsQ0FBQyxDQUFDOzRCQUNMLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUM7d0JBQ0osQ0FBQztvQkFDSCxDQUFDO29CQUVELElBQUksa0JBQWtCLEVBQUUsRUFBRSxDQUFDO3dCQUN6QixpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNsRixDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQ3RCLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO3dCQUM3QixpQkFBaUIsR0FBRyxJQUFJLENBQUM7d0JBQ3pCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUMxQixpQkFBaUIsR0FBRyxJQUFJLENBQUM7b0JBQzNCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksR0FBRyxDQUFDLGVBQTRCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWpGLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNqQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQXVEO1lBQzNFLElBQUk7WUFDSixLQUFLO1NBQ04sQ0FBQztRQUVGLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBRUYsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1RCxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpFLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWZmZWN0UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dFNpZ25hbCxcbiAgTW9kZWxTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICB1bnRyYWNrZWQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGluamVjdFF1ZXJ5UGFyYW0gfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9EQVRBIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheUNvbnN1bWVyQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB9IGZyb20gJy4vb3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICcuL292ZXJsYXktcmVmJztcblxuZXhwb3J0IHR5cGUgQ3JlYXRlT3ZlcmxheUhhbmRsZXJDb25maWc8VCwgRCA9IHVua25vd24+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
@@ -12421,7 +12421,6 @@ const createOverlayHandler = (rootConfig) => {
12421
12421
  const fn = (innerConfig) => {
12422
12422
  const overlayService = inject(OverlayService);
12423
12423
  const viewContainerRef = inject(ViewContainerRef);
12424
- const overlayRef = inject(OverlayRef, { optional: true });
12425
12424
  const destroyRef = inject(DestroyRef);
12426
12425
  const tpl = rootConfig.component ?? rootConfig.template;
12427
12426
  if (!tpl) {
@@ -12443,15 +12442,16 @@ const createOverlayHandler = (rootConfig) => {
12443
12442
  }
12444
12443
  return ref;
12445
12444
  };
12446
- const getOverlayRef = () => {
12447
- if (!overlayRef) {
12448
- throw new Error('OverlayRef is only available inside the overlay component or templateRef');
12449
- }
12450
- return overlayRef;
12445
+ const injectOverlayRef = () => {
12446
+ return inject(OverlayRef);
12447
+ };
12448
+ const injectOverlayData = () => {
12449
+ return inject(OVERLAY_DATA);
12451
12450
  };
12452
12451
  const handler = {
12453
12452
  open,
12454
- getOverlayRef,
12453
+ injectOverlayRef,
12454
+ injectOverlayData,
12455
12455
  };
12456
12456
  return handler;
12457
12457
  };
@@ -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 required input with the name `overlayQueryParam` to receive the query param value.
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
- const router = inject(Router);
12487
+ router = inject(Router);
12479
12488
  const destroyRef = inject(DestroyRef);
12480
- const overlayHandler = handler(innerConfig);
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
- router.navigate([], {
12489
- queryParams: {
12490
- [config.queryParamKey]: null,
12491
- },
12492
- queryParamsHandling: 'merge',
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
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
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
  };
@@ -12533,6 +12550,8 @@ const createOverlayHandlerWithQueryParamLifecycle = (config) => {
12533
12550
  };
12534
12551
  return lifecycleHandler;
12535
12552
  };
12553
+ fn['injectOverlayRef'] = () => handler().injectOverlayRef();
12554
+ fn['updateQueryParam'] = (value) => updateQueryParam(value);
12536
12555
  return fn;
12537
12556
  };
12538
12557
 
@@ -17865,5 +17884,5 @@ const FLOATING_UI_PLACEMENTS = [
17865
17884
  * Generated bundle index. Do not edit.
17866
17885
  */
17867
17886
 
17868
- export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CAROUSEL_ITEM_NAV_TOKEN, CAROUSEL_ITEM_TOKEN, CAROUSEL_NEXT_BUTTON_TOKEN, CAROUSEL_PREVIOUS_BUTTON_TOKEN, CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN, CAROUSEL_TOKEN, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_BODY_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_OPTION_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CarouselComponent, CarouselDirective, CarouselImports, CarouselItemComponent, CarouselItemDirective, CarouselItemNavComponent, CarouselItemNavDirective, CarouselNextButtonDirective, CarouselPreviousButtonDirective, CarouselToggleAutoPlayButtonDirective, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyComponent, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionComponent, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DATE_TIME_INPUT_FORMAT_TOKEN, DATE_TIME_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DEFAULT_DATE_TIME_INPUT_FORMAT, DEFAULT_TIME_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DateTimeInputComponent, DateTimeInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_CONFIG_CLASS_KEYS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LAYOUT_CLASSES, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_CONFIG, FLOATING_UI_PLACEMENTS, FilterOverlayService, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, IfSupportsShowPickerDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU, MENU_AIM, MENU_CHECKBOX_GROUP_TOKEN, MENU_CONTAINER, MENU_GROUP_TITLE_TOKEN, MENU_GROUP_TOKEN, MENU_ITEM_TOKEN, MENU_RADIO_GROUP_TOKEN, MENU_SEARCH_TEMPLATE_TOKEN, MENU_STACK, MENU_TEMPLATE, MENU_TRIGGER, MENU_TRIGGER_TOKEN, MasonryComponent, MasonryImports, MasonryItemComponent, MenuCheckboxGroupDirective, MenuCheckboxItemComponent, MenuComponent, MenuContainerComponent, MenuGroupDirective, MenuGroupTitleDirective, MenuImports, MenuItemDirective, MenuRadioGroupDirective, MenuRadioItemComponent, MenuSearchTemplateDirective, MenuStack, MenuTriggerDirective, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CLOSE_BLOCKER_TOKEN, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_MAIN_TOKEN, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OVERLAY_STATE, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseBlockerDirective, OverlayCloseDirective, OverlayContainerComponent, OverlayFooterDirective, OverlayHandlerLinkDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayImports, OverlayMainDirective, OverlayPositionBuilder, OverlayRef, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlayRouterService, OverlayService, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlayTitleDirective, OverlayWithRoutingImports, OverlayWithSidebarImports, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationHeadService, PaginationImports, PaginationLinkDirective, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SCROLLABLE_IGNORE_CHILD_ATTRIBUTE, SCROLLABLE_IGNORE_CHILD_TOKEN, SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE, SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, SCROLLABLE_LOADING_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SHOW_PICKER_TRIGGER_TOKEN, SIDEBAR_OVERLAY_CONFIG, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableIgnoreChildDirective, ScrollableImports, ScrollableIsActiveChildDirective, ScrollableLoadingTemplateDirective, ScrollablePlaceholderComponent, ScrollablePlaceholderItemTemplateDirective, ScrollablePlaceholderOverlayTemplateDirective, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, ShowPickerTriggerDirective, SidebarOverlayService, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEL_INPUT_TOKEN, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TIME_INPUT_FORMAT_TOKEN, TIME_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TelInputComponent, TelInputDirective, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, TimeInputComponent, TimeInputDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessageDe, convertHttpStatusCodeToMessageEn, convertHttpStatusCodeToTitleDe, convertHttpStatusCodeToTitleEn, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createOverlayDismissChecker, createOverlayHandler, createOverlayHandlerWithQueryParamLifecycle, createToggletipConfig, createTooltipConfig, defaultSubmitButtonConfigFn, getClosestBottomSheet, getClosestDialog, getClosestOverlay, isScrollableChildActive, isScrollableChildIgnored, isUpperBracketMatch, normalizePictureSizes, normalizePictureSource, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideComboboxConfig, provideDateFormat, provideDateTimeFormat, provideDialog, provideDialogDefaultConfig, provideFilterOverlayConfig, provideImageConfig, provideOverlay, provideOverlayDefaultConfig, provideOverlayRouterConfig, provideSidebarOverlayConfig, provideSort, provideTimeFormat, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
17887
+ export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CAROUSEL_ITEM_NAV_TOKEN, CAROUSEL_ITEM_TOKEN, CAROUSEL_NEXT_BUTTON_TOKEN, CAROUSEL_PREVIOUS_BUTTON_TOKEN, CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN, CAROUSEL_TOKEN, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_BODY_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_OPTION_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CarouselComponent, CarouselDirective, CarouselImports, CarouselItemComponent, CarouselItemDirective, CarouselItemNavComponent, CarouselItemNavDirective, CarouselNextButtonDirective, CarouselPreviousButtonDirective, CarouselToggleAutoPlayButtonDirective, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyComponent, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionComponent, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DATE_TIME_INPUT_FORMAT_TOKEN, DATE_TIME_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DEFAULT_DATE_TIME_INPUT_FORMAT, DEFAULT_TIME_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DateTimeInputComponent, DateTimeInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_CONFIG_CLASS_KEYS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LAYOUT_CLASSES, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_CONFIG, FLOATING_UI_PLACEMENTS, FilterOverlayService, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, IfSupportsShowPickerDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU, MENU_AIM, MENU_CHECKBOX_GROUP_TOKEN, MENU_CONTAINER, MENU_GROUP_TITLE_TOKEN, MENU_GROUP_TOKEN, MENU_ITEM_TOKEN, MENU_RADIO_GROUP_TOKEN, MENU_SEARCH_TEMPLATE_TOKEN, MENU_STACK, MENU_TEMPLATE, MENU_TRIGGER, MENU_TRIGGER_TOKEN, MasonryComponent, MasonryImports, MasonryItemComponent, MenuCheckboxGroupDirective, MenuCheckboxItemComponent, MenuComponent, MenuContainerComponent, MenuGroupDirective, MenuGroupTitleDirective, MenuImports, MenuItemDirective, MenuRadioGroupDirective, MenuRadioItemComponent, MenuSearchTemplateDirective, MenuStack, MenuTriggerDirective, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CLOSE_BLOCKER_TOKEN, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OVERLAY_STATE, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseBlockerDirective, OverlayCloseDirective, OverlayContainerComponent, OverlayFooterDirective, OverlayHandlerLinkDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayImports, OverlayMainDirective, OverlayPositionBuilder, OverlayRef, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlayRouterService, OverlayService, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlayTitleDirective, OverlayWithRoutingImports, OverlayWithSidebarImports, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationHeadService, PaginationImports, PaginationLinkDirective, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SCROLLABLE_IGNORE_CHILD_ATTRIBUTE, SCROLLABLE_IGNORE_CHILD_TOKEN, SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE, SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, SCROLLABLE_LOADING_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SHOW_PICKER_TRIGGER_TOKEN, SIDEBAR_OVERLAY_CONFIG, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableIgnoreChildDirective, ScrollableImports, ScrollableIsActiveChildDirective, ScrollableLoadingTemplateDirective, ScrollablePlaceholderComponent, ScrollablePlaceholderItemTemplateDirective, ScrollablePlaceholderOverlayTemplateDirective, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, ShowPickerTriggerDirective, SidebarOverlayService, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEL_INPUT_TOKEN, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TIME_INPUT_FORMAT_TOKEN, TIME_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TelInputComponent, TelInputDirective, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, TimeInputComponent, TimeInputDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessageDe, convertHttpStatusCodeToMessageEn, convertHttpStatusCodeToTitleDe, convertHttpStatusCodeToTitleEn, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createOverlayDismissChecker, createOverlayHandler, createOverlayHandlerWithQueryParamLifecycle, createToggletipConfig, createTooltipConfig, defaultSubmitButtonConfigFn, getClosestBottomSheet, getClosestDialog, getClosestOverlay, isScrollableChildActive, isScrollableChildIgnored, isUpperBracketMatch, normalizePictureSizes, normalizePictureSource, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideComboboxConfig, provideDateFormat, provideDateTimeFormat, provideDialog, provideDialogDefaultConfig, provideFilterOverlayConfig, provideImageConfig, provideOverlay, provideOverlayDefaultConfig, provideOverlayRouterConfig, provideSidebarOverlayConfig, provideSort, provideTimeFormat, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
17869
17888
  //# sourceMappingURL=ethlete-cdk.mjs.map