@ethlete/core 4.23.8 → 4.24.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.
Files changed (142) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/fesm2022/ethlete-core.mjs +130 -138
  3. package/fesm2022/ethlete-core.mjs.map +1 -1
  4. package/lib/types/angular.types.d.ts +0 -1
  5. package/package.json +7 -9
  6. package/esm2022/ethlete-core.mjs +0 -5
  7. package/esm2022/index.mjs +0 -38
  8. package/esm2022/lib/components/structured-data/index.mjs +0 -2
  9. package/esm2022/lib/components/structured-data/structured-data.component.mjs +0 -37
  10. package/esm2022/lib/constants/index.mjs +0 -2
  11. package/esm2022/lib/constants/viewport.constants.mjs +0 -17
  12. package/esm2022/lib/decorators/memo/index.mjs +0 -2
  13. package/esm2022/lib/decorators/memo/memo.decorator.mjs +0 -25
  14. package/esm2022/lib/directives/animatable/animatable.directive.mjs +0 -121
  15. package/esm2022/lib/directives/animatable/index.mjs +0 -2
  16. package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +0 -54
  17. package/esm2022/lib/directives/animated-if/index.mjs +0 -2
  18. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +0 -136
  19. package/esm2022/lib/directives/animated-lifecycle/index.mjs +0 -2
  20. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +0 -344
  21. package/esm2022/lib/directives/animated-overlay/index.mjs +0 -2
  22. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -37
  23. package/esm2022/lib/directives/click-outside/index.mjs +0 -2
  24. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.mjs +0 -3
  25. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +0 -170
  26. package/esm2022/lib/directives/cursor-drag-scroll/index.mjs +0 -3
  27. package/esm2022/lib/directives/debug/debug.directive.mjs +0 -44
  28. package/esm2022/lib/directives/debug/index.mjs +0 -2
  29. package/esm2022/lib/directives/delayable/delayable.directive.mjs +0 -55
  30. package/esm2022/lib/directives/delayable/index.mjs +0 -2
  31. package/esm2022/lib/directives/is-active-element/index.mjs +0 -2
  32. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +0 -33
  33. package/esm2022/lib/directives/is-element/index.mjs +0 -2
  34. package/esm2022/lib/directives/is-element/is-element.directive.mjs +0 -33
  35. package/esm2022/lib/directives/let/index.mjs +0 -3
  36. package/esm2022/lib/directives/let/let.directive.mjs +0 -40
  37. package/esm2022/lib/directives/let/let.types.mjs +0 -9
  38. package/esm2022/lib/directives/observe-content/index.mjs +0 -2
  39. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +0 -72
  40. package/esm2022/lib/directives/observe-resize/index.mjs +0 -2
  41. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +0 -72
  42. package/esm2022/lib/directives/observe-scroll-state/index.mjs +0 -4
  43. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.constants.mjs +0 -3
  44. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +0 -180
  45. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.types.mjs +0 -2
  46. package/esm2022/lib/directives/observe-visibility/index.mjs +0 -2
  47. package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +0 -80
  48. package/esm2022/lib/directives/repeat/index.mjs +0 -2
  49. package/esm2022/lib/directives/repeat/repeat.directive.mjs +0 -35
  50. package/esm2022/lib/directives/root-boundary/index.mjs +0 -2
  51. package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +0 -36
  52. package/esm2022/lib/directives/scroll-observer-first-element/index.mjs +0 -2
  53. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +0 -24
  54. package/esm2022/lib/directives/scroll-observer-ignore-target/index.mjs +0 -2
  55. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +0 -18
  56. package/esm2022/lib/directives/scroll-observer-last-element/index.mjs +0 -2
  57. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +0 -27
  58. package/esm2022/lib/directives/seo/index.mjs +0 -5
  59. package/esm2022/lib/directives/seo/seo.directive.constants.mjs +0 -3
  60. package/esm2022/lib/directives/seo/seo.directive.mjs +0 -166
  61. package/esm2022/lib/directives/seo/seo.directive.types.mjs +0 -2
  62. package/esm2022/lib/directives/seo/seo.directive.utils.mjs +0 -7
  63. package/esm2022/lib/pipes/infer-mime-type/index.mjs +0 -3
  64. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +0 -18
  65. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.util.mjs +0 -196
  66. package/esm2022/lib/pipes/normalize-game-result-type/index.mjs +0 -4
  67. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +0 -15
  68. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.mjs +0 -2
  69. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.mjs +0 -34
  70. package/esm2022/lib/pipes/normalize-match-participants/index.mjs +0 -4
  71. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +0 -15
  72. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.types.mjs +0 -2
  73. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.util.mjs +0 -47
  74. package/esm2022/lib/pipes/normalize-match-score/index.mjs +0 -4
  75. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +0 -15
  76. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.types.mjs +0 -2
  77. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.util.mjs +0 -126
  78. package/esm2022/lib/pipes/normalize-match-state/index.mjs +0 -4
  79. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.constants.mjs +0 -2
  80. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +0 -15
  81. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.util.mjs +0 -19
  82. package/esm2022/lib/pipes/normalize-match-type/index.mjs +0 -3
  83. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +0 -15
  84. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.util.mjs +0 -38
  85. package/esm2022/lib/pipes/to-array/index.mjs +0 -3
  86. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +0 -15
  87. package/esm2022/lib/pipes/to-array/to-array.util.mjs +0 -5
  88. package/esm2022/lib/props/create-prop-handlers.mjs +0 -17
  89. package/esm2022/lib/props/create-props.mjs +0 -53
  90. package/esm2022/lib/props/create-setup.mjs +0 -19
  91. package/esm2022/lib/props/dependency-stash.mjs +0 -20
  92. package/esm2022/lib/props/element-dictionary.mjs +0 -44
  93. package/esm2022/lib/props/index.mjs +0 -9
  94. package/esm2022/lib/props/props-binding.mjs +0 -53
  95. package/esm2022/lib/props/props.directive.mjs +0 -35
  96. package/esm2022/lib/props/template-input.mjs +0 -41
  97. package/esm2022/lib/services/click-observer.service.mjs +0 -73
  98. package/esm2022/lib/services/content-observer.service.mjs +0 -79
  99. package/esm2022/lib/services/focus-visible.service.mjs +0 -34
  100. package/esm2022/lib/services/index.mjs +0 -9
  101. package/esm2022/lib/services/intersection-observer.service.mjs +0 -75
  102. package/esm2022/lib/services/resize-observer.service.mjs +0 -75
  103. package/esm2022/lib/services/router-state.service.mjs +0 -205
  104. package/esm2022/lib/services/viewport.service.mjs +0 -244
  105. package/esm2022/lib/services/viewport.types.mjs +0 -2
  106. package/esm2022/lib/types/angular.types.mjs +0 -15
  107. package/esm2022/lib/types/i18n.types.mjs +0 -2
  108. package/esm2022/lib/types/index.mjs +0 -5
  109. package/esm2022/lib/types/value.types.mjs +0 -2
  110. package/esm2022/lib/types/viewport.types.mjs +0 -2
  111. package/esm2022/lib/utils/active-selection-model.utils.mjs +0 -91
  112. package/esm2022/lib/utils/angular.utils.mjs +0 -7
  113. package/esm2022/lib/utils/animation.utils.mjs +0 -113
  114. package/esm2022/lib/utils/clamp.util.mjs +0 -4
  115. package/esm2022/lib/utils/clone.util.mjs +0 -78
  116. package/esm2022/lib/utils/component-id.utils.mjs +0 -7
  117. package/esm2022/lib/utils/cookie.util.mjs +0 -53
  118. package/esm2022/lib/utils/destroy.utils.mjs +0 -13
  119. package/esm2022/lib/utils/equal.util.mjs +0 -118
  120. package/esm2022/lib/utils/form.utils.mjs +0 -63
  121. package/esm2022/lib/utils/index.mjs +0 -27
  122. package/esm2022/lib/utils/inject.utils.mjs +0 -4
  123. package/esm2022/lib/utils/intersection-observer.utils.mjs +0 -65
  124. package/esm2022/lib/utils/key-press-manager.utils.mjs +0 -30
  125. package/esm2022/lib/utils/media-query-observable.util.mjs +0 -18
  126. package/esm2022/lib/utils/mutation-observable.util.mjs +0 -42
  127. package/esm2022/lib/utils/object.utils.mjs +0 -30
  128. package/esm2022/lib/utils/reactive-binding.util.mjs +0 -124
  129. package/esm2022/lib/utils/resize-observable.util.mjs +0 -12
  130. package/esm2022/lib/utils/round.utils.mjs +0 -5
  131. package/esm2022/lib/utils/runtime-error.utils.mjs +0 -31
  132. package/esm2022/lib/utils/scrollable.utils.mjs +0 -157
  133. package/esm2022/lib/utils/selection-model.utils.mjs +0 -376
  134. package/esm2022/lib/utils/signal.utils.mjs +0 -1004
  135. package/esm2022/lib/utils/smart-block-scroll-strategy.utils.mjs +0 -96
  136. package/esm2022/lib/utils/value.utils.mjs +0 -22
  137. package/esm2022/lib/utils/viewport.util.mjs +0 -5
  138. package/esm2022/lib/validators/at-least-one-required.validator.mjs +0 -20
  139. package/esm2022/lib/validators/index.mjs +0 -15
  140. package/esm2022/lib/validators/is-array-not-empty.validator.mjs +0 -9
  141. package/esm2022/lib/validators/is-email.validator.mjs +0 -10
  142. package/esm2022/lib/validators/must-match.validator.mjs +0 -19
@@ -1,91 +0,0 @@
1
- import { DOWN_ARROW, END, HOME, PAGE_DOWN, PAGE_UP, UP_ARROW } from '@angular/cdk/keycodes';
2
- import { BehaviorSubject, map, of, switchMap, takeUntil, tap } from 'rxjs';
3
- import { createDestroy } from './destroy.utils';
4
- export class ActiveSelectionModel {
5
- get selectionModel$() {
6
- return this._selectionModel$.asObservable();
7
- }
8
- get selectionModel() {
9
- return this._selectionModel$.value;
10
- }
11
- get activeOption$() {
12
- return this._activeOption$.asObservable();
13
- }
14
- get activeOption() {
15
- return this._activeOption$.value;
16
- }
17
- constructor() {
18
- this._destroy$ = createDestroy();
19
- this._selectionModel$ = new BehaviorSubject(null);
20
- this._activeOption$ = new BehaviorSubject(null);
21
- this._selectionModel$
22
- .pipe(takeUntil(this._destroy$), switchMap((model) => model?.filteredOptions$ ?? of([])), tap(() => this._resetActiveOptions()))
23
- .subscribe();
24
- }
25
- setSelectionModel(selectionModel) {
26
- this._selectionModel$.next(selectionModel);
27
- return this;
28
- }
29
- setActiveOption(option) {
30
- this._activeOption$.next(option);
31
- return this;
32
- }
33
- isOptionActive$(option) {
34
- return this.activeOption$.pipe(map((activeOption) => activeOption === option));
35
- }
36
- evaluateKeyboardEvent(event, config) {
37
- const { skipDisabled = false } = config ?? {};
38
- const keyCode = event.keyCode;
39
- const activeOption = this.activeOption;
40
- if (!this.selectionModel || !activeOption)
41
- return null;
42
- const currentIndex = this.selectionModel?.getOptionIndex(activeOption);
43
- if (currentIndex === null)
44
- return null;
45
- let newActiveOption = undefined;
46
- switch (keyCode) {
47
- case DOWN_ARROW:
48
- {
49
- newActiveOption = this.selectionModel?.getOptionByOffset(1, currentIndex, { skipDisabled });
50
- }
51
- break;
52
- case UP_ARROW:
53
- {
54
- newActiveOption = this.selectionModel?.getOptionByOffset(-1, currentIndex, { skipDisabled });
55
- }
56
- break;
57
- case PAGE_UP:
58
- {
59
- newActiveOption = this.selectionModel?.getOptionByOffset(-10, currentIndex, { skipDisabled, clamp: true });
60
- }
61
- break;
62
- case PAGE_DOWN:
63
- {
64
- newActiveOption = this.selectionModel?.getOptionByOffset(10, currentIndex, { skipDisabled, clamp: true });
65
- }
66
- break;
67
- case HOME:
68
- {
69
- newActiveOption = this.selectionModel?.getFirstOption();
70
- }
71
- break;
72
- case END:
73
- {
74
- newActiveOption = this.selectionModel?.getLastOption();
75
- }
76
- break;
77
- }
78
- if (newActiveOption !== undefined) {
79
- event.preventDefault();
80
- }
81
- if (newActiveOption !== activeOption && newActiveOption) {
82
- this._activeOption$.next(newActiveOption);
83
- }
84
- return newActiveOption ?? null;
85
- }
86
- _resetActiveOptions() {
87
- const firstOption = this.selectionModel?.getFirstOption();
88
- this._activeOption$.next(firstOption ?? null);
89
- }
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXNlbGVjdGlvbi1tb2RlbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2FjdGl2ZS1zZWxlY3Rpb24tbW9kZWwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFHRDtRQWxCaUIsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBUTVCLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztRQVF2RSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFXLElBQUksQ0FBQyxDQUFDO1FBR3BFLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENB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S0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksZUFBZSxLQUFLLFlBQVksSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxlQUFlLElBQUksSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUUxRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5ELCBIT01FLCBQQUdFX0RPV04sIFBBR0VfVVAsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBvZiwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSB9IGZyb20gJy4vZGVzdHJveS51dGlscyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJy4vc2VsZWN0aW9uLW1vZGVsLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIEFjdGl2ZVNlbGVjdGlvbk1vZGVsPFQgPSB1bmtub3duPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIGdldCBzZWxlY3Rpb25Nb2RlbCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsJC5hc09ic2VydmFibGUoKTtcbiAgfVxuICBnZXQgc2VsZWN0aW9uTW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsJC52YWx1ZTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3Rpb25Nb2RlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdGlvbk1vZGVsPFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgZ2V0IGFjdGl2ZU9wdGlvbiQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU9wdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgZ2V0IGFjdGl2ZU9wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlT3B0aW9uJC52YWx1ZTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVPcHRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgc3dpdGNoTWFwKChtb2RlbCkgPT4gbW9kZWw/LmZpbHRlcmVkT3B0aW9ucyQgPz8gb2YoW10pKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3Jlc2V0QWN0aXZlT3B0aW9ucygpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCQubmV4dChzZWxlY3Rpb25Nb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldEFjdGl2ZU9wdGlvbihvcHRpb246IFQgfCBudWxsKSB7XG4gICAgdGhpcy5fYWN0aXZlT3B0aW9uJC5uZXh0KG9wdGlvbik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzT3B0aW9uQWN0aXZlJChvcHRpb246IFQpIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVPcHRpb24kLnBpcGUobWFwKChhY3RpdmVPcHRpb24pID0+IGFjdGl2ZU9wdGlvbiA9PT0gb3B0aW9uKSk7XG4gIH1cblxuICBldmFsdWF0ZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvbmZpZz86IHsgc2tpcERpc2FibGVkPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgeyBza2lwRGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnID8/IHt9O1xuXG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5hY3RpdmVPcHRpb247XG5cbiAgICBpZiAoIXRoaXMuc2VsZWN0aW9uTW9kZWwgfHwgIWFjdGl2ZU9wdGlvbikgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNlbGVjdGlvbk1vZGVsPy5nZXRPcHRpb25JbmRleChhY3RpdmVPcHRpb24pO1xuXG4gICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgbmV3QWN0aXZlT3B0aW9uOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICB7XG4gICAgICAgICAgbmV3QWN0aXZlT3B0aW9uID0gdGhpcy5zZWxlY3Rpb25Nb2RlbD8uZ2V0T3B0aW9uQnlPZmZzZXQoMSwgY3VycmVudEluZGV4LCB7IHNraXBEaXNhYmxlZCB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgIHtcbiAgICAgICAgICBuZXdBY3RpdmVPcHRpb24gPSB0aGlzLnNlbGVjdGlvbk1vZGVsPy5nZXRPcHRpb25CeU9mZnNldCgtMSwgY3VycmVudEluZGV4LCB7IHNraXBEaXNhYmxlZCB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUEFHRV9VUDpcbiAgICAgICAge1xuICAgICAgICAgIG5ld0FjdGl2ZU9wdGlvbiA9IHRoaXMuc2VsZWN0aW9uTW9kZWw/LmdldE9wdGlvbkJ5T2Zmc2V0KC0xMCwgY3VycmVudEluZGV4LCB7IHNraXBEaXNhYmxlZCwgY2xhbXA6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAge1xuICAgICAgICAgIG5ld0FjdGl2ZU9wdGlvbiA9IHRoaXMuc2VsZWN0aW9uTW9kZWw/LmdldE9wdGlvbkJ5T2Zmc2V0KDEwLCBjdXJyZW50SW5kZXgsIHsgc2tpcERpc2FibGVkLCBjbGFtcDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSE9NRTpcbiAgICAgICAge1xuICAgICAgICAgIG5ld0FjdGl2ZU9wdGlvbiA9IHRoaXMuc2VsZWN0aW9uTW9kZWw/LmdldEZpcnN0T3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVORDpcbiAgICAgICAge1xuICAgICAgICAgIG5ld0FjdGl2ZU9wdGlvbiA9IHRoaXMuc2VsZWN0aW9uTW9kZWw/LmdldExhc3RPcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobmV3QWN0aXZlT3B0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZU9wdGlvbiAhPT0gYWN0aXZlT3B0aW9uICYmIG5ld0FjdGl2ZU9wdGlvbikge1xuICAgICAgdGhpcy5fYWN0aXZlT3B0aW9uJC5uZXh0KG5ld0FjdGl2ZU9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0FjdGl2ZU9wdGlvbiA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRBY3RpdmVPcHRpb25zKCkge1xuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gdGhpcy5zZWxlY3Rpb25Nb2RlbD8uZ2V0Rmlyc3RPcHRpb24oKTtcblxuICAgIHRoaXMuX2FjdGl2ZU9wdGlvbiQubmV4dChmaXJzdE9wdGlvbiA/PyBudWxsKTtcbiAgfVxufVxuIl19
@@ -1,7 +0,0 @@
1
- import { of, startWith, switchMap } from 'rxjs';
2
- export function switchQueryListChanges() {
3
- return function (source) {
4
- return source.pipe(switchMap((value) => value?.changes.pipe(startWith(value)) ?? of(null)));
5
- };
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2FuZ3VsYXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVELE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxVQUFnRSxNQUFxQjtRQUMxRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBa0IsQ0FBQztJQUMvRyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUeXBlZFF1ZXJ5TGlzdCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFF1ZXJ5TGlzdENoYW5nZXMoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFR5cGVkUXVlcnlMaXN0PHVua25vd24+IHwgbnVsbCB8IHVuZGVmaW5lZD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHN3aXRjaE1hcCgodmFsdWUpID0+IHZhbHVlPy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHZhbHVlKSkgPz8gb2YobnVsbCkpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xufVxuIl19
@@ -1,113 +0,0 @@
1
- import { combineLatest, Observable, Subject } from 'rxjs';
2
- export const nextFrame = (cb) => {
3
- requestAnimationFrame(() => {
4
- requestAnimationFrame(cb);
5
- });
6
- };
7
- export const fromNextFrame = () => {
8
- return new Observable((observer) => {
9
- nextFrame(() => {
10
- observer.next();
11
- observer.complete();
12
- });
13
- });
14
- };
15
- export const forceReflow = (element = document.body) => {
16
- return element.offsetHeight;
17
- };
18
- export const createFlipAnimationGroup = (config) => {
19
- const { elements, duration = 250, easing = 'cubic-bezier(0.4, 0, 0.2, 1)' } = config;
20
- const flips = elements.map((el) => {
21
- const element = 'element' in el ? el.element : el;
22
- const originElement = 'originElement' in el ? el.originElement : undefined;
23
- return createFlipAnimation({ element, originElement, duration, easing });
24
- });
25
- const onStart$ = combineLatest(flips.map((animation) => animation.onStart$));
26
- const onFinish$ = combineLatest(flips.map((animation) => animation.onFinish$));
27
- const onCancel$ = combineLatest(flips.map((animation) => animation.onCancel$));
28
- const updateInit = () => {
29
- flips.forEach((animation) => animation.updateInit());
30
- };
31
- const play = () => {
32
- flips.forEach((animation) => animation.play());
33
- };
34
- const cancel = () => {
35
- flips.forEach((animation) => animation.cancel());
36
- };
37
- return {
38
- updateInit,
39
- play,
40
- cancel,
41
- onStart$,
42
- onFinish$,
43
- onCancel$,
44
- };
45
- };
46
- export const createFlipAnimation = (config) => {
47
- const { element: el, originElement = el, duration = 250, easing = 'cubic-bezier(0.4, 0, 0.2, 1)' } = config;
48
- let initialRect = originElement.getBoundingClientRect();
49
- let animation = null;
50
- const onStart$ = new Subject();
51
- const onFinish$ = new Subject();
52
- const onCancel$ = new Subject();
53
- const onAnimationFinish = () => {
54
- cleanup();
55
- onFinish$.next();
56
- };
57
- const onAnimationCancel = () => {
58
- cleanup();
59
- onCancel$.next();
60
- };
61
- const cleanup = () => {
62
- if (!animation) {
63
- return;
64
- }
65
- animation.removeEventListener('finish', onAnimationFinish);
66
- animation.removeEventListener('cancel', onAnimationCancel);
67
- };
68
- const updateInit = () => {
69
- initialRect = originElement.getBoundingClientRect();
70
- };
71
- const play = () => {
72
- const lastRect = el.getBoundingClientRect();
73
- const delta = {
74
- x: initialRect.left - lastRect.left,
75
- y: initialRect.top - lastRect.top,
76
- scaleX: initialRect.width / lastRect.width,
77
- scaleY: initialRect.height / lastRect.height,
78
- };
79
- animation = el.animate([
80
- {
81
- transformOrigin: 'top left',
82
- transform: `
83
- translate(${delta.x}px, ${delta.y}px)
84
- scale(${delta.scaleX}, ${delta.scaleY})
85
- `,
86
- },
87
- {
88
- transformOrigin: 'top left',
89
- transform: 'none',
90
- },
91
- ], {
92
- duration,
93
- easing,
94
- fill: 'both',
95
- });
96
- animation.addEventListener('finish', onAnimationFinish);
97
- animation.addEventListener('cancel', onAnimationCancel);
98
- onStart$.next();
99
- };
100
- const cancel = () => {
101
- animation?.cancel();
102
- cleanup();
103
- };
104
- return {
105
- updateInit,
106
- play,
107
- cancel,
108
- onStart$: onStart$.asObservable(),
109
- onFinish$: onFinish$.asObservable(),
110
- onCancel$: onCancel$.asObservable(),
111
- };
112
- };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYW5pbWF0aW9uLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFjLEVBQUUsRUFBRTtJQUMxQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7UUFDekIscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLE9BQU8sSUFBSSxVQUFVLENBQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN2QyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBdUIsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ2xFLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQztBQUM5QixDQUFDLENBQUM7QUFxQkYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7SUFDM0UsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyw4QkFBOEIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUVyRixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxPQUFPLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFHLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUUzRSxPQUFPLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtRQUN0QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDaEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO1FBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxVQUFVO1FBQ1YsSUFBSTtRQUNKLE1BQU07UUFDTixRQUFRO1FBQ1IsU0FBUztRQUNULFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMkJGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBMkIsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsR0FBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEdBQUcsRUFBRSxNQUFNLEdBQUcsOEJBQThCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFNUcsSUFBSSxXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEQsSUFBSSxTQUFTLEdBQXFCLElBQUksQ0FBQztJQUV2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV0QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRTtRQUM3QixPQUFPLEVBQUUsQ0FBQztRQUNWLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRTtRQUM3QixPQUFPLEVBQUUsQ0FBQztRQUNWLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDM0QsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtRQUN0QixXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTVDLE1BQU0sS0FBSyxHQUFHO1lBQ1osQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUk7WUFDbkMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUc7WUFDakMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUs7WUFDMUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU07U0FDN0MsQ0FBQztRQUVGLFNBQVMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUNwQjtZQUNFO2dCQUNFLGVBQWUsRUFBRSxVQUFVO2dCQUMzQixTQUFTLEVBQUU7c0JBQ0MsS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztrQkFDekIsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtTQUN0QzthQUNBO1lBQ0Q7Z0JBQ0UsZUFBZSxFQUFFLFVBQVU7Z0JBQzNCLFNBQVMsRUFBRSxNQUFNO2FBQ2xCO1NBQ0YsRUFDRDtZQUNFLFFBQVE7WUFDUixNQUFNO1lBQ04sSUFBSSxFQUFFLE1BQU07U0FDYixDQUNGLENBQUM7UUFFRixTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhELFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUU7UUFDbEIsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRXBCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFVBQVU7UUFDVixJQUFJO1FBQ0osTUFBTTtRQUNOLFFBQVEsRUFBRSxRQUFRLENBQUMsWUFBWSxFQUFFO1FBQ2pDLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFO1FBQ25DLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFO0tBQ3BDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBuZXh0RnJhbWUgPSAoY2I6ICgpID0+IHZvaWQpID0+IHtcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmcm9tTmV4dEZyYW1lID0gKCkgPT4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4oKG9ic2VydmVyKSA9PiB7XG4gICAgbmV4dEZyYW1lKCgpID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcmNlUmVmbG93ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSkgPT4ge1xuICByZXR1cm4gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG59O1xuXG5pbnRlcmZhY2UgRmxpcEFuaW1hdGlvbkdyb3VwQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50cyB0byBhbmltYXRlXG4gICAqL1xuICBlbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQgfCB7IGVsZW1lbnQ6IEhUTUxFbGVtZW50OyBvcmlnaW5FbGVtZW50PzogSFRNTEVsZW1lbnQgfT47XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgKiBAZGVmYXVsdCAyNTBcbiAgICovXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZWFzaW5nIGZ1bmN0aW9uIHRvIHVzZSBmb3IgdGhlIGFuaW1hdGlvblxuICAgKiBAZGVmYXVsdCAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSdcbiAgICovXG4gIGVhc2luZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZsaXBBbmltYXRpb25Hcm91cCA9IChjb25maWc6IEZsaXBBbmltYXRpb25Hcm91cENvbmZpZykgPT4ge1xuICBjb25zdCB7IGVsZW1lbnRzLCBkdXJhdGlvbiA9IDI1MCwgZWFzaW5nID0gJ2N1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSknIH0gPSBjb25maWc7XG5cbiAgY29uc3QgZmxpcHMgPSBlbGVtZW50cy5tYXAoKGVsKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9ICdlbGVtZW50JyBpbiBlbCA/IGVsLmVsZW1lbnQgOiBlbDtcbiAgICBjb25zdCBvcmlnaW5FbGVtZW50ID0gJ29yaWdpbkVsZW1lbnQnIGluIGVsID8gZWwub3JpZ2luRWxlbWVudCA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBjcmVhdGVGbGlwQW5pbWF0aW9uKHsgZWxlbWVudCwgb3JpZ2luRWxlbWVudCwgZHVyYXRpb24sIGVhc2luZyB9KTtcbiAgfSk7XG5cbiAgY29uc3Qgb25TdGFydCQgPSBjb21iaW5lTGF0ZXN0KGZsaXBzLm1hcCgoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24ub25TdGFydCQpKTtcbiAgY29uc3Qgb25GaW5pc2gkID0gY29tYmluZUxhdGVzdChmbGlwcy5tYXAoKGFuaW1hdGlvbikgPT4gYW5pbWF0aW9uLm9uRmluaXNoJCkpO1xuICBjb25zdCBvbkNhbmNlbCQgPSBjb21iaW5lTGF0ZXN0KGZsaXBzLm1hcCgoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24ub25DYW5jZWwkKSk7XG5cbiAgY29uc3QgdXBkYXRlSW5pdCA9ICgpID0+IHtcbiAgICBmbGlwcy5mb3JFYWNoKChhbmltYXRpb24pID0+IGFuaW1hdGlvbi51cGRhdGVJbml0KCkpO1xuICB9O1xuXG4gIGNvbnN0IHBsYXkgPSAoKSA9PiB7XG4gICAgZmxpcHMuZm9yRWFjaCgoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24ucGxheSgpKTtcbiAgfTtcblxuICBjb25zdCBjYW5jZWwgPSAoKSA9PiB7XG4gICAgZmxpcHMuZm9yRWFjaCgoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24uY2FuY2VsKCkpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdXBkYXRlSW5pdCxcbiAgICBwbGF5LFxuICAgIGNhbmNlbCxcbiAgICBvblN0YXJ0JCxcbiAgICBvbkZpbmlzaCQsXG4gICAgb25DYW5jZWwkLFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBGbGlwQW5pbWF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFuaW1hdGVcbiAgICovXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byB1c2UgYXMgdGhlIG9yaWdpbiBmb3IgdGhlIGFuaW1hdGlvblxuICAgKiBAZGVmYXVsdCBlbGVtZW50XG4gICAqL1xuICBvcmlnaW5FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgKiBAZGVmYXVsdCAyNTBcbiAgICovXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZWFzaW5nIGZ1bmN0aW9uIHRvIHVzZSBmb3IgdGhlIGFuaW1hdGlvblxuICAgKiBAZGVmYXVsdCAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSdcbiAgICovXG4gIGVhc2luZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZsaXBBbmltYXRpb24gPSAoY29uZmlnOiBGbGlwQW5pbWF0aW9uQ29uZmlnKSA9PiB7XG4gIGNvbnN0IHsgZWxlbWVudDogZWwsIG9yaWdpbkVsZW1lbnQgPSBlbCwgZHVyYXRpb24gPSAyNTAsIGVhc2luZyA9ICdjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyB9ID0gY29uZmlnO1xuXG4gIGxldCBpbml0aWFsUmVjdCA9IG9yaWdpbkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGxldCBhbmltYXRpb246IEFuaW1hdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IG9uU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uc3Qgb25GaW5pc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uc3Qgb25DYW5jZWwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdCBvbkFuaW1hdGlvbkZpbmlzaCA9ICgpID0+IHtcbiAgICBjbGVhbnVwKCk7XG4gICAgb25GaW5pc2gkLm5leHQoKTtcbiAgfTtcblxuICBjb25zdCBvbkFuaW1hdGlvbkNhbmNlbCA9ICgpID0+IHtcbiAgICBjbGVhbnVwKCk7XG4gICAgb25DYW5jZWwkLm5leHQoKTtcbiAgfTtcblxuICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgIGlmICghYW5pbWF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZpbmlzaCcsIG9uQW5pbWF0aW9uRmluaXNoKTtcbiAgICBhbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2FuY2VsJywgb25BbmltYXRpb25DYW5jZWwpO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZUluaXQgPSAoKSA9PiB7XG4gICAgaW5pdGlhbFJlY3QgPSBvcmlnaW5FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9O1xuXG4gIGNvbnN0IHBsYXkgPSAoKSA9PiB7XG4gICAgY29uc3QgbGFzdFJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGRlbHRhID0ge1xuICAgICAgeDogaW5pdGlhbFJlY3QubGVmdCAtIGxhc3RSZWN0LmxlZnQsXG4gICAgICB5OiBpbml0aWFsUmVjdC50b3AgLSBsYXN0UmVjdC50b3AsXG4gICAgICBzY2FsZVg6IGluaXRpYWxSZWN0LndpZHRoIC8gbGFzdFJlY3Qud2lkdGgsXG4gICAgICBzY2FsZVk6IGluaXRpYWxSZWN0LmhlaWdodCAvIGxhc3RSZWN0LmhlaWdodCxcbiAgICB9O1xuXG4gICAgYW5pbWF0aW9uID0gZWwuYW5pbWF0ZShcbiAgICAgIFtcbiAgICAgICAge1xuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogJ3RvcCBsZWZ0JyxcbiAgICAgICAgICB0cmFuc2Zvcm06IGBcbiAgICAgICAgICB0cmFuc2xhdGUoJHtkZWx0YS54fXB4LCAke2RlbHRhLnl9cHgpXG4gICAgICAgICAgc2NhbGUoJHtkZWx0YS5zY2FsZVh9LCAke2RlbHRhLnNjYWxlWX0pXG4gICAgICAgIGAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgbGVmdCcsXG4gICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAge1xuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nLFxuICAgICAgICBmaWxsOiAnYm90aCcsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBhbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcignZmluaXNoJywgb25BbmltYXRpb25GaW5pc2gpO1xuICAgIGFuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjYW5jZWwnLCBvbkFuaW1hdGlvbkNhbmNlbCk7XG5cbiAgICBvblN0YXJ0JC5uZXh0KCk7XG4gIH07XG5cbiAgY29uc3QgY2FuY2VsID0gKCkgPT4ge1xuICAgIGFuaW1hdGlvbj8uY2FuY2VsKCk7XG5cbiAgICBjbGVhbnVwKCk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICB1cGRhdGVJbml0LFxuICAgIHBsYXksXG4gICAgY2FuY2VsLFxuICAgIG9uU3RhcnQkOiBvblN0YXJ0JC5hc09ic2VydmFibGUoKSxcbiAgICBvbkZpbmlzaCQ6IG9uRmluaXNoJC5hc09ic2VydmFibGUoKSxcbiAgICBvbkNhbmNlbCQ6IG9uQ2FuY2VsJC5hc09ic2VydmFibGUoKSxcbiAgfTtcbn07XG4iXX0=
@@ -1,4 +0,0 @@
1
- export const clamp = (value, min = 0, max = 100) => {
2
- return Math.max(min, Math.min(max, value));
3
- };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXAudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2NsYW1wLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBYSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY2xhbXAgPSAodmFsdWU6IG51bWJlciwgbWluID0gMCwgbWF4ID0gMTAwKSA9PiB7XG4gIHJldHVybiBNYXRoLm1heChtaW4sIE1hdGgubWluKG1heCwgdmFsdWUpKTtcbn07XG4iXX0=
@@ -1,78 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable no-var */
3
- /**
4
- * Stolen from klona to avoid adding a dependency
5
- * https://github.com/lukeed/klona
6
- *
7
- * MIT License
8
- *
9
- * Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
10
- *
11
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14
- *
15
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
- */
17
- const set = (obj, key, val) => {
18
- if (typeof val.value === 'object')
19
- val.value = clone(val.value);
20
- if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {
21
- Object.defineProperty(obj, key, val);
22
- }
23
- else
24
- obj[key] = val.value;
25
- };
26
- export const clone = (original) => {
27
- if (typeof original !== 'object')
28
- return original;
29
- var _og = original;
30
- var i = 0, k, list, tmp, str = Object.prototype.toString.call(_og);
31
- if (str === '[object Object]') {
32
- tmp = Object.create(_og.__proto__ || null);
33
- }
34
- else if (str === '[object Array]') {
35
- tmp = Array(_og.length);
36
- }
37
- else if (str === '[object Set]') {
38
- tmp = new Set();
39
- _og.forEach(function (val) {
40
- tmp.add(clone(val));
41
- });
42
- }
43
- else if (str === '[object Map]') {
44
- tmp = new Map();
45
- _og.forEach(function (val, key) {
46
- tmp.set(clone(key), clone(val));
47
- });
48
- }
49
- else if (str === '[object Date]') {
50
- tmp = new Date(+_og);
51
- }
52
- else if (str === '[object RegExp]') {
53
- tmp = new RegExp(_og.source, _og.flags);
54
- }
55
- else if (str === '[object DataView]') {
56
- tmp = new _og.constructor(clone(_og.buffer));
57
- }
58
- else if (str === '[object ArrayBuffer]') {
59
- tmp = _og.slice(0);
60
- }
61
- else if (str.slice(-6) === 'Array]') {
62
- // ArrayBuffer.isView(x)
63
- // ~> `new` bcuz `Buffer.slice` => ref
64
- tmp = new _og.constructor(_og);
65
- }
66
- if (tmp) {
67
- for (list = Object.getOwnPropertySymbols(_og); i < list.length; i++) {
68
- set(tmp, list[i], Object.getOwnPropertyDescriptor(_og, list[i]));
69
- }
70
- for (i = 0, list = Object.getOwnPropertyNames(_og); i < list.length; i++) {
71
- if (Object.hasOwnProperty.call(tmp, (k = list[i])) && tmp[k] === _og[k])
72
- continue;
73
- set(tmp, k, Object.getOwnPropertyDescriptor(_og, k));
74
- }
75
- }
76
- return tmp || _og;
77
- };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2Nsb25lLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELDJCQUEyQjtBQUMzQjs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFRLEVBQUUsR0FBUSxFQUFFLEdBQVEsRUFBRSxFQUFFO0lBQzNDLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVE7UUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDOztRQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFJLFFBQVcsRUFBSyxFQUFFO0lBQ3pDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRWxELElBQUksR0FBRyxHQUFHLFFBQWUsQ0FBQztJQUUxQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ1AsQ0FBQyxFQUNELElBQUksRUFDSixHQUFRLEVBQ1IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FB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RixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vKipcbiAqIFN0b2xlbiBmcm9tIGtsb25hIHRvIGF2b2lkIGFkZGluZyBhIGRlcGVuZGVuY3lcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQva2xvbmFcbiAqXG4gKiBNSVQgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgTHVrZSBFZHdhcmRzIDxsdWtlLmVkd2FyZHMwNUBnbWFpbC5jb20+IChsdWtlZWQuY29tKVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKi9cblxuY29uc3Qgc2V0ID0gKG9iajogYW55LCBrZXk6IGFueSwgdmFsOiBhbnkpID0+IHtcbiAgaWYgKHR5cGVvZiB2YWwudmFsdWUgPT09ICdvYmplY3QnKSB2YWwudmFsdWUgPSBjbG9uZSh2YWwudmFsdWUpO1xuICBpZiAoIXZhbC5lbnVtZXJhYmxlIHx8IHZhbC5nZXQgfHwgdmFsLnNldCB8fCAhdmFsLmNvbmZpZ3VyYWJsZSB8fCAhdmFsLndyaXRhYmxlIHx8IGtleSA9PT0gJ19fcHJvdG9fXycpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbCk7XG4gIH0gZWxzZSBvYmpba2V5XSA9IHZhbC52YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbG9uZSA9IDxUPihvcmlnaW5hbDogVCk6IFQgPT4ge1xuICBpZiAodHlwZW9mIG9yaWdpbmFsICE9PSAnb2JqZWN0JykgcmV0dXJuIG9yaWdpbmFsO1xuXG4gIHZhciBfb2cgPSBvcmlnaW5hbCBhcyBhbnk7XG5cbiAgdmFyIGkgPSAwLFxuICAgIGssXG4gICAgbGlzdCxcbiAgICB0bXA6IGFueSxcbiAgICBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX29nKTtcblxuICBpZiAoc3RyID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIHRtcCA9IE9iamVjdC5jcmVhdGUoX29nLl9fcHJvdG9fXyB8fCBudWxsKTtcbiAgfSBlbHNlIGlmIChzdHIgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICB0bXAgPSBBcnJheShfb2cubGVuZ3RoKTtcbiAgfSBlbHNlIGlmIChzdHIgPT09ICdbb2JqZWN0IFNldF0nKSB7XG4gICAgdG1wID0gbmV3IFNldCgpO1xuICAgIF9vZy5mb3JFYWNoKGZ1bmN0aW9uICh2YWw6IGFueSkge1xuICAgICAgdG1wLmFkZChjbG9uZSh2YWwpKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChzdHIgPT09ICdbb2JqZWN0IE1hcF0nKSB7XG4gICAgdG1wID0gbmV3IE1hcCgpO1xuICAgIF9vZy5mb3JFYWNoKGZ1bmN0aW9uICh2YWw6IGFueSwga2V5OiBhbnkpIHtcbiAgICAgIHRtcC5zZXQoY2xvbmUoa2V5KSwgY2xvbmUodmFsKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoc3RyID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICB0bXAgPSBuZXcgRGF0ZSgrX29nKTtcbiAgfSBlbHNlIGlmIChzdHIgPT09ICdbb2JqZWN0IFJlZ0V4cF0nKSB7XG4gICAgdG1wID0gbmV3IFJlZ0V4cChfb2cuc291cmNlLCBfb2cuZmxhZ3MpO1xuICB9IGVsc2UgaWYgKHN0ciA9PT0gJ1tvYmplY3QgRGF0YVZpZXddJykge1xuICAgIHRtcCA9IG5ldyBfb2cuY29uc3RydWN0b3IoY2xvbmUoX29nLmJ1ZmZlcikpO1xuICB9IGVsc2UgaWYgKHN0ciA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJykge1xuICAgIHRtcCA9IF9vZy5zbGljZSgwKTtcbiAgfSBlbHNlIGlmIChzdHIuc2xpY2UoLTYpID09PSAnQXJyYXldJykge1xuICAgIC8vIEFycmF5QnVmZmVyLmlzVmlldyh4KVxuICAgIC8vIH4+IGBuZXdgIGJjdXogYEJ1ZmZlci5zbGljZWAgPT4gcmVmXG4gICAgdG1wID0gbmV3IF9vZy5jb25zdHJ1Y3Rvcihfb2cpO1xuICB9XG5cbiAgaWYgKHRtcCkge1xuICAgIGZvciAobGlzdCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoX29nKTsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNldCh0bXAsIGxpc3RbaV0sIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX29nLCBsaXN0W2ldISkpO1xuICAgIH1cblxuICAgIGZvciAoaSA9IDAsIGxpc3QgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhfb2cpOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRtcCwgKGsgPSBsaXN0W2ldISkpICYmIHRtcFtrXSA9PT0gX29nW2tdKSBjb250aW51ZTtcbiAgICAgIHNldCh0bXAsIGssIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX29nLCBrKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRtcCB8fCBfb2c7XG59O1xuIl19
@@ -1,7 +0,0 @@
1
- const componentIds = new Map();
2
- export const createComponentId = (prefix) => {
3
- const id = componentIds.get(prefix) ?? 0;
4
- componentIds.set(prefix, id + 1);
5
- return `${prefix}-${id}`;
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWlkLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvY29tcG9uZW50LWlkLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7SUFDbEQsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWpDLE9BQU8sR0FBRyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcG9uZW50SWRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbXBvbmVudElkID0gKHByZWZpeDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGlkID0gY29tcG9uZW50SWRzLmdldChwcmVmaXgpID8/IDA7XG4gIGNvbXBvbmVudElkcy5zZXQocHJlZml4LCBpZCArIDEpO1xuXG4gIHJldHVybiBgJHtwcmVmaXh9LSR7aWR9YDtcbn07XG4iXX0=
@@ -1,53 +0,0 @@
1
- export const hasCookie = (name) => {
2
- if (typeof document === 'undefined') {
3
- return false;
4
- }
5
- return document.cookie.split(';').some((c) => {
6
- return c.trim().startsWith(name + '=');
7
- });
8
- };
9
- export const getCookie = (name) => {
10
- if (typeof document === 'undefined') {
11
- return null;
12
- }
13
- // From https://stackoverflow.com/questions/10730362/get-cookie-by-name
14
- return ('; ' + document.cookie).split(`; ${name}=`).pop()?.split(';')[0];
15
- };
16
- export const setCookie = (name, data, expiresInDays = 30, domain = getDomain(), path = '/', sameSite = 'lax') => {
17
- if (typeof document === 'undefined') {
18
- return;
19
- }
20
- const sameSiteUpper = sameSite.toUpperCase();
21
- const date = new Date();
22
- date.setTime(date.getTime() + expiresInDays * 24 * 60 * 60 * 1000);
23
- document.cookie = `${name}=${data}; path=${path}; expires=${date.toUTCString()}; domain=${domain}; SameSite=${sameSiteUpper};`;
24
- };
25
- export const deleteCookie = (name, path = '/', domain = getDomain()) => {
26
- if (hasCookie(name)) {
27
- document.cookie =
28
- name +
29
- '=' +
30
- (path ? ';path=' + path : '') +
31
- (domain ? ';domain=' + domain : '') +
32
- ';expires=Thu, 01 Jan 1970 00:00:01 GMT';
33
- }
34
- };
35
- export const getDomain = () => {
36
- if (typeof navigator === 'undefined') {
37
- return null;
38
- }
39
- const hostname = window.location.hostname;
40
- if (hostname.includes('localhost')) {
41
- return 'localhost';
42
- }
43
- const hostIsIP = hostname.match(/^(\d{1,3}\.){3}\d{1,3}$/);
44
- if (hostIsIP) {
45
- return hostname;
46
- }
47
- const splitHost = hostname.split('.');
48
- if (splitHost.length > 2) {
49
- return `${splitHost[splitHost.length - 2]}.${splitHost[splitHost.length - 1]}`;
50
- }
51
- return hostname;
52
- };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9jb29raWUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUN4QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDM0MsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3hDLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUN2QixJQUFZLEVBQ1osSUFBWSxFQUNaLGFBQWEsR0FBRyxFQUFFLEVBQ2xCLE1BQU0sR0FBRyxTQUFTLEVBQUUsRUFDcEIsSUFBSSxHQUFHLEdBQUcsRUFDVixXQUFzQyxLQUFLLEVBQzNDLEVBQUU7SUFDRixJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRW5FLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksTUFBTSxjQUFjLGFBQWEsR0FBRyxDQUFDO0FBQ2pJLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzdFLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsUUFBUSxDQUFDLE1BQU07WUFDYixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsd0NBQXdDLENBQUM7SUFDN0MsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7SUFDNUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUUxQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTNELElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoYXNDb29raWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLnNvbWUoKGMpID0+IHtcbiAgICByZXR1cm4gYy50cmltKCkuc3RhcnRzV2l0aChuYW1lICsgJz0nKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29va2llID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDczMDM2Mi9nZXQtY29va2llLWJ5LW5hbWVcbiAgcmV0dXJuICgnOyAnICsgZG9jdW1lbnQuY29va2llKS5zcGxpdChgOyAke25hbWV9PWApLnBvcCgpPy5zcGxpdCgnOycpWzBdO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldENvb2tpZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhOiBzdHJpbmcsXG4gIGV4cGlyZXNJbkRheXMgPSAzMCxcbiAgZG9tYWluID0gZ2V0RG9tYWluKCksXG4gIHBhdGggPSAnLycsXG4gIHNhbWVTaXRlOiAnc3RyaWN0JyB8ICdub25lJyB8ICdsYXgnID0gJ2xheCcsXG4pID0+IHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzYW1lU2l0ZVVwcGVyID0gc2FtZVNpdGUudG9VcHBlckNhc2UoKTtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIGV4cGlyZXNJbkRheXMgKiAyNCAqIDYwICogNjAgKiAxMDAwKTtcblxuICBkb2N1bWVudC5jb29raWUgPSBgJHtuYW1lfT0ke2RhdGF9OyBwYXRoPSR7cGF0aH07IGV4cGlyZXM9JHtkYXRlLnRvVVRDU3RyaW5nKCl9OyBkb21haW49JHtkb21haW59OyBTYW1lU2l0ZT0ke3NhbWVTaXRlVXBwZXJ9O2A7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQ29va2llID0gKG5hbWU6IHN0cmluZywgcGF0aCA9ICcvJywgZG9tYWluID0gZ2V0RG9tYWluKCkpID0+IHtcbiAgaWYgKGhhc0Nvb2tpZShuYW1lKSkge1xuICAgIGRvY3VtZW50LmNvb2tpZSA9XG4gICAgICBuYW1lICtcbiAgICAgICc9JyArXG4gICAgICAocGF0aCA/ICc7cGF0aD0nICsgcGF0aCA6ICcnKSArXG4gICAgICAoZG9tYWluID8gJztkb21haW49JyArIGRvbWFpbiA6ICcnKSArXG4gICAgICAnO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQnO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RG9tYWluID0gKCkgPT4ge1xuICBpZiAodHlwZW9mIG5hdmlnYXRvciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG4gIGlmIChob3N0bmFtZS5pbmNsdWRlcygnbG9jYWxob3N0JykpIHtcbiAgICByZXR1cm4gJ2xvY2FsaG9zdCc7XG4gIH1cblxuICBjb25zdCBob3N0SXNJUCA9IGhvc3RuYW1lLm1hdGNoKC9eKFxcZHsxLDN9XFwuKXszfVxcZHsxLDN9JC8pO1xuXG4gIGlmIChob3N0SXNJUCkge1xuICAgIHJldHVybiBob3N0bmFtZTtcbiAgfVxuXG4gIGNvbnN0IHNwbGl0SG9zdCA9IGhvc3RuYW1lLnNwbGl0KCcuJyk7XG5cbiAgaWYgKHNwbGl0SG9zdC5sZW5ndGggPiAyKSB7XG4gICAgcmV0dXJuIGAke3NwbGl0SG9zdFtzcGxpdEhvc3QubGVuZ3RoIC0gMl19LiR7c3BsaXRIb3N0W3NwbGl0SG9zdC5sZW5ndGggLSAxXX1gO1xuICB9XG5cbiAgcmV0dXJuIGhvc3RuYW1lO1xufTtcbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { DestroyRef, assertInInjectionContext, inject } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- export const createDestroy = () => {
4
- assertInInjectionContext(createDestroy);
5
- const destroy$ = new Subject();
6
- const ref = inject(DestroyRef);
7
- ref.onDestroy(() => {
8
- destroy$.next(true);
9
- destroy$.complete();
10
- });
11
- return destroy$.asObservable();
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2Rlc3Ryb3kudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlc3Ryb3kgPSAoKSA9PiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChjcmVhdGVEZXN0cm95KTtcblxuICBjb25zdCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3QgcmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIGRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlc3Ryb3kkLmFzT2JzZXJ2YWJsZSgpO1xufTtcbiJdfQ==
@@ -1,118 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable no-var */
3
- /**
4
- * Stolen from dequal to avoid adding a dependency
5
- * https://github.com/lukeed/dequal
6
- *
7
- * The MIT License (MIT)
8
- *
9
- * Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
10
- *
11
- * Permission is hereby granted, free of charge, to any person obtaining a copy
12
- * of this software and associated documentation files (the "Software"), to deal
13
- * in the Software without restriction, including without limitation the rights
14
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- * copies of the Software, and to permit persons to whom the Software is
16
- * furnished to do so, subject to the following conditions:
17
- *
18
- * The above copyright notice and this permission notice shall be included in
19
- * all copies or substantial portions of the Software.
20
- *
21
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27
- * THE SOFTWARE.
28
- */
29
- const has = Object.prototype.hasOwnProperty;
30
- function find(iter, tar, key) {
31
- for (key of iter.keys()) {
32
- if (equal(key, tar))
33
- return key;
34
- }
35
- }
36
- export const equal = (foo, bar) => {
37
- var ctor, len, tmp;
38
- if (foo === bar)
39
- return true;
40
- if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
41
- if (ctor === Date)
42
- return foo.getTime() === bar.getTime();
43
- if (ctor === RegExp)
44
- return foo.toString() === bar.toString();
45
- if (ctor === Array) {
46
- if ((len = foo.length) === bar.length) {
47
- while (len-- && equal(foo[len], bar[len]))
48
- ;
49
- }
50
- return len === -1;
51
- }
52
- if (ctor === Set) {
53
- if (foo.size !== bar.size) {
54
- return false;
55
- }
56
- for (len of foo) {
57
- tmp = len;
58
- if (tmp && typeof tmp === 'object') {
59
- tmp = find(bar, tmp);
60
- if (!tmp)
61
- return false;
62
- }
63
- if (!bar.has(tmp))
64
- return false;
65
- }
66
- return true;
67
- }
68
- if (ctor === Map) {
69
- if (foo.size !== bar.size) {
70
- return false;
71
- }
72
- for (len of foo) {
73
- tmp = len[0];
74
- if (tmp && typeof tmp === 'object') {
75
- tmp = find(bar, tmp);
76
- if (!tmp)
77
- return false;
78
- }
79
- if (!equal(len[1], bar.get(tmp))) {
80
- return false;
81
- }
82
- }
83
- return true;
84
- }
85
- if (ctor === ArrayBuffer) {
86
- foo = new Uint8Array(foo);
87
- bar = new Uint8Array(bar);
88
- }
89
- else if (ctor === DataView) {
90
- if ((len = foo.byteLength) === bar.byteLength) {
91
- while (len-- && foo.getInt8(len) === bar.getInt8(len))
92
- ;
93
- }
94
- return len === -1;
95
- }
96
- if (ArrayBuffer.isView(foo)) {
97
- if ((len = foo.byteLength) === bar.byteLength) {
98
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
99
- //@ts-ignore
100
- while (len-- && foo[len] === bar[len])
101
- ;
102
- }
103
- return len === -1;
104
- }
105
- if (!ctor || typeof foo === 'object') {
106
- len = 0;
107
- for (ctor in foo) {
108
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor))
109
- return false;
110
- if (!(ctor in bar) || !equal(foo[ctor], bar[ctor]))
111
- return false;
112
- }
113
- return Object.keys(bar).length === len;
114
- }
115
- }
116
- return foo !== foo && bar !== bar;
117
- };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2VxdWFsLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELDJCQUEyQjtBQUMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0FBRTVDLFNBQVMsSUFBSSxDQUFDLElBQVMsRUFBRSxHQUFRLEVBQUUsR0FBUztJQUMxQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN4QixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFRLEVBQUUsR0FBUSxFQUFFLEVBQUU7SUFDMUMsSUFBSSxJQUFTLEVBQUUsR0FBUSxFQUFFLEdBQVEsQ0FBQztJQUNsQyxJQUFJLEdBQUcsS0FBSyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFN0IsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0QsSUFBSSxJQUFJLEtBQUssSUFBSTtZQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxJQUFJLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlELElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FB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QyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7b0JBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNSLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUFFLE9BQU8sS0FBSyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFBRSxPQUFPLEtBQUssQ0FBQztZQUNuRSxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQztBQUNwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cbi8qKlxuICogU3RvbGVuIGZyb20gZGVxdWFsIHRvIGF2b2lkIGFkZGluZyBhIGRlcGVuZGVuY3lcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvZGVxdWFsXG4gKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5jb25zdCBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBmaW5kKGl0ZXI6IGFueSwgdGFyOiBhbnksIGtleT86IGFueSkge1xuICBmb3IgKGtleSBvZiBpdGVyLmtleXMoKSkge1xuICAgIGlmIChlcXVhbChrZXksIHRhcikpIHJldHVybiBrZXk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGVxdWFsID0gKGZvbzogYW55LCBiYXI6IGFueSkgPT4ge1xuICB2YXIgY3RvcjogYW55LCBsZW46IGFueSwgdG1wOiBhbnk7XG4gIGlmIChmb28gPT09IGJhcikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGZvbyAmJiBiYXIgJiYgKGN0b3IgPSBmb28uY29uc3RydWN0b3IpID09PSBiYXIuY29uc3RydWN0b3IpIHtcbiAgICBpZiAoY3RvciA9PT0gRGF0ZSkgcmV0dXJuIGZvby5nZXRUaW1lKCkgPT09IGJhci5nZXRUaW1lKCk7XG4gICAgaWYgKGN0b3IgPT09IFJlZ0V4cCkgcmV0dXJuIGZvby50b1N0cmluZygpID09PSBiYXIudG9TdHJpbmcoKTtcblxuICAgIGlmIChjdG9yID09PSBBcnJheSkge1xuICAgICAgaWYgKChsZW4gPSBmb28ubGVuZ3RoKSA9PT0gYmFyLmxlbmd0aCkge1xuICAgICAgICB3aGlsZSAobGVuLS0gJiYgZXF1YWwoZm9vW2xlbl0sIGJhcltsZW5dKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGVuID09PSAtMTtcbiAgICB9XG5cbiAgICBpZiAoY3RvciA9PT0gU2V0KSB7XG4gICAgICBpZiAoZm9vLnNpemUgIT09IGJhci5zaXplKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAobGVuIG9mIGZvbykge1xuICAgICAgICB0bXAgPSBsZW47XG4gICAgICAgIGlmICh0bXAgJiYgdHlwZW9mIHRtcCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0bXAgPSBmaW5kKGJhciwgdG1wKTtcbiAgICAgICAgICBpZiAoIXRtcCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYmFyLmhhcyh0bXApKSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY3RvciA9PT0gTWFwKSB7XG4gICAgICBpZiAoZm9vLnNpemUgIT09IGJhci5zaXplKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAobGVuIG9mIGZvbykge1xuICAgICAgICB0bXAgPSBsZW5bMF07XG4gICAgICAgIGlmICh0bXAgJiYgdHlwZW9mIHRtcCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0bXAgPSBmaW5kKGJhciwgdG1wKTtcbiAgICAgICAgICBpZiAoIXRtcCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXF1YWwobGVuWzFdLCBiYXIuZ2V0KHRtcCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY3RvciA9PT0gQXJyYXlCdWZmZXIpIHtcbiAgICAgIGZvbyA9IG5ldyBVaW50OEFycmF5KGZvbyk7XG4gICAgICBiYXIgPSBuZXcgVWludDhBcnJheShiYXIpO1xuICAgIH0gZWxzZSBpZiAoY3RvciA9PT0gRGF0YVZpZXcpIHtcbiAgICAgIGlmICgobGVuID0gZm9vLmJ5dGVMZW5ndGgpID09PSBiYXIuYnl0ZUxlbmd0aCkge1xuICAgICAgICB3aGlsZSAobGVuLS0gJiYgZm9vLmdldEludDgobGVuKSA9PT0gYmFyLmdldEludDgobGVuKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGVuID09PSAtMTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGZvbykpIHtcbiAgICAgIGlmICgobGVuID0gZm9vLmJ5dGVMZW5ndGgpID09PSBiYXIuYnl0ZUxlbmd0aCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICB3aGlsZSAobGVuLS0gJiYgZm9vW2xlbl0gPT09IGJhcltsZW5dKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsZW4gPT09IC0xO1xuICAgIH1cblxuICAgIGlmICghY3RvciB8fCB0eXBlb2YgZm9vID09PSAnb2JqZWN0Jykge1xuICAgICAgbGVuID0gMDtcbiAgICAgIGZvciAoY3RvciBpbiBmb28pIHtcbiAgICAgICAgaWYgKGhhcy5jYWxsKGZvbywgY3RvcikgJiYgKytsZW4gJiYgIWhhcy5jYWxsKGJhciwgY3RvcikpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKCEoY3RvciBpbiBiYXIpIHx8ICFlcXVhbChmb29bY3Rvcl0sIGJhcltjdG9yXSkpIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhiYXIpLmxlbmd0aCA9PT0gbGVuO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb28gIT09IGZvbyAmJiBiYXIgIT09IGJhcjtcbn07XG4iXX0=