@ethlete/core 0.2.0-next.7 → 0.2.0-next.9

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 (81) hide show
  1. package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  2. package/esm2020/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
  3. package/esm2020/lib/directives/destroy/destroy.directive.mjs +3 -3
  4. package/esm2020/lib/directives/let/let.directive.mjs +3 -3
  5. package/esm2020/lib/directives/observe-content/observe-content.directive.mjs +3 -3
  6. package/esm2020/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
  7. package/esm2020/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
  8. package/esm2020/lib/directives/public-api.mjs +2 -1
  9. package/esm2020/lib/directives/repeat/repeat.directive.mjs +3 -3
  10. package/esm2020/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
  11. package/esm2020/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
  12. package/esm2020/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
  13. package/esm2020/lib/directives/seo/public-api.mjs +5 -0
  14. package/esm2020/lib/directives/seo/seo.directive.constants.mjs +3 -0
  15. package/esm2020/lib/directives/seo/seo.directive.mjs +166 -0
  16. package/esm2020/lib/directives/seo/seo.directive.types.mjs +2 -0
  17. package/esm2020/lib/directives/seo/seo.directive.utils.mjs +7 -0
  18. package/esm2020/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +15 -0
  19. package/esm2020/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.mjs +2 -0
  20. package/esm2020/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.mjs +34 -0
  21. package/esm2020/lib/pipes/normalize-game-result-type/public-api.mjs +4 -0
  22. package/esm2020/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +15 -0
  23. package/esm2020/lib/pipes/normalize-match-participants/normalize-match-participants.types.mjs +2 -0
  24. package/esm2020/lib/pipes/normalize-match-participants/normalize-match-participants.util.mjs +47 -0
  25. package/esm2020/lib/pipes/normalize-match-participants/public-api.mjs +4 -0
  26. package/esm2020/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +15 -0
  27. package/esm2020/lib/pipes/normalize-match-score/normalize-match-score.types.mjs +2 -0
  28. package/esm2020/lib/pipes/normalize-match-score/normalize-match-score.util.mjs +126 -0
  29. package/esm2020/lib/pipes/normalize-match-score/public-api.mjs +4 -0
  30. package/esm2020/lib/pipes/normalize-match-state/index.mjs +2 -0
  31. package/esm2020/lib/pipes/normalize-match-state/normalize-match-state.constants.mjs +2 -0
  32. package/esm2020/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +15 -0
  33. package/esm2020/lib/pipes/normalize-match-state/normalize-match-state.util.mjs +19 -0
  34. package/esm2020/lib/pipes/normalize-match-state/public-api.mjs +4 -0
  35. package/esm2020/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +15 -0
  36. package/esm2020/lib/pipes/normalize-match-type/normalize-match-type.util.mjs +38 -0
  37. package/esm2020/lib/pipes/normalize-match-type/public-api.mjs +3 -0
  38. package/esm2020/lib/pipes/public-api.mjs +6 -1
  39. package/esm2020/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  40. package/esm2020/lib/services/click-observer.service.mjs +6 -6
  41. package/esm2020/lib/services/content-observer.service.mjs +6 -6
  42. package/esm2020/lib/services/destroy.service.mjs +3 -3
  43. package/esm2020/lib/services/focus-visible.service.mjs +3 -3
  44. package/esm2020/lib/services/resize-observer.service.mjs +6 -6
  45. package/esm2020/lib/services/viewport.service.mjs +3 -3
  46. package/esm2020/lib/types/i18n.types.mjs +2 -0
  47. package/esm2020/lib/types/public-api.mjs +3 -2
  48. package/fesm2015/ethlete-core.mjs +549 -64
  49. package/fesm2015/ethlete-core.mjs.map +1 -1
  50. package/fesm2020/ethlete-core.mjs +556 -64
  51. package/fesm2020/ethlete-core.mjs.map +1 -1
  52. package/lib/directives/public-api.d.ts +1 -0
  53. package/lib/directives/seo/public-api.d.ts +4 -0
  54. package/lib/directives/seo/seo.directive.constants.d.ts +3 -0
  55. package/lib/directives/seo/seo.directive.d.ts +21 -0
  56. package/lib/directives/seo/seo.directive.types.d.ts +51 -0
  57. package/lib/directives/seo/seo.directive.utils.d.ts +2 -0
  58. package/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.d.ts +7 -0
  59. package/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.d.ts +4 -0
  60. package/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.d.ts +2 -0
  61. package/lib/pipes/normalize-game-result-type/public-api.d.ts +3 -0
  62. package/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.d.ts +7 -0
  63. package/lib/pipes/normalize-match-participants/normalize-match-participants.types.d.ts +21 -0
  64. package/lib/pipes/normalize-match-participants/normalize-match-participants.util.d.ts +4 -0
  65. package/lib/pipes/normalize-match-participants/public-api.d.ts +3 -0
  66. package/lib/pipes/normalize-match-score/normalize-match-score.pipe.d.ts +7 -0
  67. package/lib/pipes/normalize-match-score/normalize-match-score.types.d.ts +12 -0
  68. package/lib/pipes/normalize-match-score/normalize-match-score.util.d.ts +27 -0
  69. package/lib/pipes/normalize-match-score/public-api.d.ts +3 -0
  70. package/lib/pipes/normalize-match-state/index.d.ts +1 -0
  71. package/lib/pipes/normalize-match-state/normalize-match-state.constants.d.ts +7 -0
  72. package/lib/pipes/normalize-match-state/normalize-match-state.pipe.d.ts +7 -0
  73. package/lib/pipes/normalize-match-state/normalize-match-state.util.d.ts +3 -0
  74. package/lib/pipes/normalize-match-state/public-api.d.ts +3 -0
  75. package/lib/pipes/normalize-match-type/normalize-match-type.pipe.d.ts +7 -0
  76. package/lib/pipes/normalize-match-type/normalize-match-type.util.d.ts +3 -0
  77. package/lib/pipes/normalize-match-type/public-api.d.ts +2 -0
  78. package/lib/pipes/public-api.d.ts +5 -0
  79. package/lib/types/i18n.types.d.ts +4 -0
  80. package/lib/types/public-api.d.ts +2 -1
  81. package/package.json +4 -2
@@ -23,9 +23,9 @@ export class ClickOutsideDirective {
23
23
  this._subscription?.unsubscribe();
24
24
  }
25
25
  }
26
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
26
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClickOutsideDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: '[etClickOutside]',
@@ -130,9 +130,9 @@ export class CursorDragScrollDirective {
130
130
  }
131
131
  }
132
132
  }
133
- CursorDragScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
134
- CursorDragScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"] }, providers: [DestroyService], exportAs: ["etCursorDragScroll"], ngImport: i0 });
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
133
+ CursorDragScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
134
+ CursorDragScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"] }, providers: [DestroyService], exportAs: ["etCursorDragScroll"], ngImport: i0 });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
136
136
  type: Directive,
137
137
  args: [{
138
138
  selector: '[etCursorDragScroll]',
@@ -11,9 +11,9 @@ export class DestroyDirective {
11
11
  this._destroy$.unsubscribe();
12
12
  }
13
13
  }
14
- DestroyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: DestroyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15
- DestroyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: DestroyDirective, isStandalone: true, ngImport: i0 });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: DestroyDirective, decorators: [{
14
+ DestroyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DestroyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15
+ DestroyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DestroyDirective, isStandalone: true, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DestroyDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  standalone: true,
@@ -26,9 +26,9 @@ export class LetDirective {
26
26
  }
27
27
  }
28
28
  }
29
- LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
30
- LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: LetDirective, decorators: [{
29
+ LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LetDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  selector: '[etLet]',
@@ -46,9 +46,9 @@ export class ObserveContentDirective {
46
46
  this._currentSubscription?.unsubscribe();
47
47
  }
48
48
  }
49
- ObserveContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- ObserveContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { event: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveContentDirective, decorators: [{
49
+ ObserveContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
+ ObserveContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { event: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveContentDirective, decorators: [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[etObserveContent]',
@@ -46,9 +46,9 @@ export class ObserveResizeDirective {
46
46
  this._currentSubscription?.unsubscribe();
47
47
  }
48
48
  }
49
- ObserveResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- ObserveResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { event: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveResizeDirective, decorators: [{
49
+ ObserveResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
+ ObserveResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { event: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveResizeDirective, decorators: [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[etObserveResize]',
@@ -139,15 +139,15 @@ export class ObserveScrollStateDirective {
139
139
  return element;
140
140
  }
141
141
  }
142
- ObserveScrollStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
143
- ObserveScrollStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { observerRootMargin: "observerRootMargin", observerThreshold: "observerThreshold" }, outputs: { etObserveScrollState: "etObserveScrollState" }, providers: [
142
+ ObserveScrollStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
143
+ ObserveScrollStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { observerRootMargin: "observerRootMargin", observerThreshold: "observerThreshold" }, outputs: { etObserveScrollState: "etObserveScrollState" }, providers: [
144
144
  {
145
145
  provide: OBSERVE_SCROLL_STATE,
146
146
  useExisting: ObserveScrollStateDirective,
147
147
  },
148
148
  DestroyService,
149
149
  ], exportAs: ["etObserveScrollState"], ngImport: i0 });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
151
151
  type: Directive,
152
152
  args: [{
153
153
  selector: '[etObserveScrollState]',
@@ -9,4 +9,5 @@ export * from './repeat/public-api';
9
9
  export * from './scroll-observer-first-element/public-api';
10
10
  export * from './scroll-observer-ignore-target/public-api';
11
11
  export * from './scroll-observer-last-element/public-api';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnNvci1kcmFnLXNjcm9sbC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzdHJveS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGV0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLWNvbnRlbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtcmVzaXplL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwZWF0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvcHVibGljLWFwaSc7XG4iXX0=
12
+ export * from './seo/public-api';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY3Vyc29yLWRyYWctc2Nyb2xsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9kZXN0cm95L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9sZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtY29udGVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1yZXNpemUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtc2Nyb2xsLXN0YXRlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBlYXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1maXJzdC1lbGVtZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItaWdub3JlLXRhcmdldC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvL3B1YmxpYy1hcGknO1xuIl19
@@ -22,9 +22,9 @@ export class RepeatDirective {
22
22
  }
23
23
  }
24
24
  }
25
- RepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
26
- RepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: RepeatDirective, decorators: [{
25
+ RepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
26
+ RepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: RepeatDirective, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  selector: '[etRepeat]',
@@ -13,9 +13,9 @@ export class ScrollObserverFirstElementDirective {
13
13
  this._isFirstElement = coerceBooleanProperty(value);
14
14
  }
15
15
  }
16
- ScrollObserverFirstElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- ScrollObserverFirstElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement"] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
16
+ ScrollObserverFirstElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ ScrollObserverFirstElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement"] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[etScrollObserverFirstElement]',
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export const SCROLL_OBSERVER_IGNORE_TARGET_CLASS = 'et-scroll-observer-ignore-target';
4
4
  export class ScrollObserverIgnoreTargetDirective {
5
5
  }
6
- ScrollObserverIgnoreTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
- ScrollObserverIgnoreTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
6
+ ScrollObserverIgnoreTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
+ ScrollObserverIgnoreTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[etScrollObserverIgnoreTarget]',
@@ -13,9 +13,9 @@ export class ScrollObserverLastElementDirective {
13
13
  this._isLastElement = coerceBooleanProperty(value);
14
14
  }
15
15
  }
16
- ScrollObserverLastElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- ScrollObserverLastElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: ScrollObserverLastElementDirective, isStandalone: true, selector: "[etScrollObserverLastElement]", inputs: { isLastElement: ["etScrollObserverLastElement", "isLastElement"] }, host: { properties: { "class.et-scroll-observer-last-element": "this.isLastElement" }, classAttribute: "et-scroll-observer-last-element" }, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
16
+ ScrollObserverLastElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ ScrollObserverLastElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ScrollObserverLastElementDirective, isStandalone: true, selector: "[etScrollObserverLastElement]", inputs: { isLastElement: ["etScrollObserverLastElement", "isLastElement"] }, host: { properties: { "class.et-scroll-observer-last-element": "this.isLastElement" }, classAttribute: "et-scroll-observer-last-element" }, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[etScrollObserverLastElement]',
@@ -0,0 +1,5 @@
1
+ export * from './seo.directive';
2
+ export * from './seo.directive.constants';
3
+ export * from './seo.directive.types';
4
+ export * from './seo.directive.utils';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VvLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlby5kaXJlY3RpdmUuY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvLmRpcmVjdGl2ZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Nlby5kaXJlY3RpdmUudXRpbHMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const SEO_DIRECTIVE_TOKEN = new InjectionToken('SEO_DIRECTIVE_TOKEN');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Nlby9zZW8uZGlyZWN0aXZlLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFlLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VvRGlyZWN0aXZlIH0gZnJvbSAnLi9zZW8uZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFNFT19ESVJFQ1RJVkVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VvRGlyZWN0aXZlPignU0VPX0RJUkVDVElWRV9UT0tFTicpO1xuIl19
@@ -0,0 +1,166 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { Meta, Title } from '@angular/platform-browser';
3
+ import { Observable, Subject, takeUntil } from 'rxjs';
4
+ import { SEO_DIRECTIVE_TOKEN } from './seo.directive.constants';
5
+ import { mergeSeoConfig } from './seo.directive.utils';
6
+ import * as i0 from "@angular/core";
7
+ export class SeoDirective {
8
+ constructor() {
9
+ this._metaService = inject(Meta);
10
+ this._titleService = inject(Title);
11
+ this._onDeactivate$ = new Subject();
12
+ this._isDeactivated = false;
13
+ this.parent = inject(SEO_DIRECTIVE_TOKEN, { optional: true, skipSelf: true });
14
+ this._config = {};
15
+ }
16
+ get config() {
17
+ return this._config;
18
+ }
19
+ ngOnInit() {
20
+ this.parent?._deactivate();
21
+ }
22
+ ngOnDestroy() {
23
+ this._deactivate();
24
+ this._cleanUp();
25
+ this.parent?._activate();
26
+ }
27
+ // TODO(TRB): This should get split up into multiple methods to make it more readable
28
+ // - updateTitle
29
+ // - updateMeta
30
+ // - updateLink
31
+ updateConfig(config) {
32
+ this._config = mergeSeoConfig(config, this.parent?.config || {});
33
+ if (this._isDeactivated) {
34
+ return;
35
+ }
36
+ this._deactivate();
37
+ this._activate();
38
+ }
39
+ _activate() {
40
+ this._onDeactivate$.next(false);
41
+ this._isDeactivated = false;
42
+ for (const [key, value] of Object.entries(this._config)) {
43
+ if (value instanceof Observable) {
44
+ value.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(key, value));
45
+ }
46
+ else if (Array.isArray(value)) {
47
+ value.forEach((value) => {
48
+ if (value instanceof Observable) {
49
+ value.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(key, value));
50
+ }
51
+ else {
52
+ this._update(key, value);
53
+ }
54
+ });
55
+ }
56
+ else if (typeof value === 'object' && value !== null) {
57
+ for (const [subKey, subValue] of Object.entries(value)) {
58
+ if (subValue instanceof Observable) {
59
+ subValue.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(`${key}:${subKey}`, value));
60
+ }
61
+ else {
62
+ this._update(`${key}:${subKey}`, subValue);
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ this._update(key, value);
68
+ }
69
+ }
70
+ }
71
+ _deactivate() {
72
+ this._onDeactivate$.next(true);
73
+ this._isDeactivated = true;
74
+ }
75
+ _update(key, value) {
76
+ switch (key) {
77
+ case 'title':
78
+ if (value && typeof value === 'string') {
79
+ this._titleService.setTitle(value);
80
+ }
81
+ break;
82
+ case 'canonical':
83
+ {
84
+ const link = document.querySelector(`link[rel="${key}"]`);
85
+ if (link) {
86
+ link.setAttribute('href', value);
87
+ }
88
+ else {
89
+ const newLink = document.createElement('link');
90
+ newLink.setAttribute('rel', key);
91
+ newLink.setAttribute('href', value);
92
+ document.head.appendChild(newLink);
93
+ }
94
+ }
95
+ break;
96
+ case 'alternate':
97
+ {
98
+ const link = document.querySelector(`link[rel="${key}"][hreflang="${value.hreflang}"]`);
99
+ if (link) {
100
+ link.setAttribute('href', value.href);
101
+ }
102
+ else {
103
+ const newLink = document.createElement('link');
104
+ newLink.setAttribute('rel', key);
105
+ newLink.setAttribute('hreflang', value.hreflang);
106
+ newLink.setAttribute('href', value.href);
107
+ document.head.appendChild(newLink);
108
+ }
109
+ }
110
+ break;
111
+ default:
112
+ if (value !== undefined && value !== null) {
113
+ const val = Array.isArray(value) ? value.join(', ') : value;
114
+ this._metaService.updateTag({ name: key, content: val });
115
+ }
116
+ else {
117
+ this._metaService.removeTag(`name="${key}"`);
118
+ }
119
+ break;
120
+ }
121
+ }
122
+ _cleanUp() {
123
+ for (const key in this._config) {
124
+ if (key === 'alternate') {
125
+ const links = document.querySelectorAll(`link[rel="${key}"]`);
126
+ links.forEach((link) => {
127
+ link.remove();
128
+ });
129
+ continue;
130
+ }
131
+ if (key === 'canonical') {
132
+ const link = document.querySelector(`link[rel="${key}"]`);
133
+ if (link) {
134
+ link.remove();
135
+ }
136
+ continue;
137
+ }
138
+ if (typeof this._config[key] === 'object' &&
139
+ this._config[key] !== null &&
140
+ !(this._config[key] instanceof Observable)) {
141
+ for (const subKey in this._config[key]) {
142
+ const parentValue = this.parent?.config?.[key]?.[subKey];
143
+ if (parentValue === undefined) {
144
+ this._update(`${key}:${subKey}`, undefined);
145
+ }
146
+ }
147
+ }
148
+ else {
149
+ const parentValue = this.parent?.config?.[key];
150
+ if (parentValue === undefined) {
151
+ this._update(key, null);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ SeoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
158
+ SeoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SeoDirective, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ standalone: true,
163
+ providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }],
164
+ }]
165
+ }] });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3Nlby5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLFlBQVk7SUFKekI7UUFLbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRWpELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBSzFFLFlBQU8sR0FBYyxFQUFFLENBQUM7S0E4SmpDO0lBaktDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHFGQUFxRjtJQUNyRixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGVBQWU7SUFDZixZQUFZLENBQUMsTUFBaUI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFNUIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZELElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzNGO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUN0QixJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7d0JBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDM0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQzFCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDdEQsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3RELElBQUksUUFBUSxZQUFZLFVBQVUsRUFBRTt3QkFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQzdHO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7cUJBQzVDO2lCQUNGO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDMUI7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVPLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYztRQUN6QyxRQUFRLEdBQUcsRUFBRTtZQUNYLEtBQUssT0FBTztnQkFDVixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNwQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxXQUFXO2dCQUNkO29CQUNFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUUxRCxJQUFJLElBQUksRUFBRTt3QkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFlLENBQUMsQ0FBQztxQkFDNUM7eUJBQU07d0JBQ0wsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDL0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ2pDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQWUsQ0FBQyxDQUFDO3dCQUM5QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDcEM7aUJBQ0Y7Z0JBRUQsTUFBTTtZQUVSLEtBQUssV0FBVztnQkFDZDtvQkFDRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsR0FBRyxnQkFBaUIsS0FBdUIsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUUzRyxJQUFJLElBQUksRUFBRTt3QkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRyxLQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxRDt5QkFBTTt3QkFDTCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMvQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDakMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUcsS0FBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDcEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUcsS0FBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3BDO2lCQUNGO2dCQUVELE1BQU07WUFFUjtnQkFDRSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtvQkFDekMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUUsS0FBZ0IsQ0FBQztvQkFFeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7aUJBQzlDO2dCQUNELE1BQU07U0FDVDtJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRTtnQkFDdkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFFOUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUVILFNBQVM7YUFDVjtZQUVELElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBRTFELElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDZjtnQkFFRCxTQUFTO2FBQ1Y7WUFFRCxJQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUk7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLFVBQVUsQ0FBQyxFQUMxQztnQkFDQSxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUE0QixFQUFFO29CQUNqRSxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQXNCLENBQUMsRUFBRSxDQUFDLE1BQTBDLENBQUMsQ0FBQztvQkFFOUYsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO3dCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLE1BQU0sRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO3FCQUM3QztpQkFDRjthQUNGO2lCQUFNO2dCQUNMLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBc0IsQ0FBQyxDQUFDO2dCQUVsRSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN6QjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzt5R0F6S1UsWUFBWTs2RkFBWixZQUFZLGlDQUZaLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDOzJGQUU3RCxZQUFZO2tCQUp4QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGNBQWMsRUFBRSxDQUFDO2lCQUN6RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU0VPX0RJUkVDVElWRV9UT0tFTiB9IGZyb20gJy4vc2VvLmRpcmVjdGl2ZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgQWx0ZXJuYXRlTGluaywgU2VvQ29uZmlnIH0gZnJvbSAnLi9zZW8uZGlyZWN0aXZlLnR5cGVzJztcbmltcG9ydCB7IG1lcmdlU2VvQ29uZmlnIH0gZnJvbSAnLi9zZW8uZGlyZWN0aXZlLnV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VPX0RJUkVDVElWRV9UT0tFTiwgdXNlRXhpc3Rpbmc6IFNlb0RpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VvRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZXRhU2VydmljZSA9IGluamVjdChNZXRhKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGl0bGVTZXJ2aWNlID0gaW5qZWN0KFRpdGxlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25EZWFjdGl2YXRlJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBfaXNEZWFjdGl2YXRlZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHBhcmVudCA9IGluamVjdChTRU9fRElSRUNUSVZFX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcblxuICBnZXQgY29uZmlnKCk6IFNlb0NvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuICBwcml2YXRlIF9jb25maWc6IFNlb0NvbmZpZyA9IHt9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50Py5fZGVhY3RpdmF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2NsZWFuVXAoKTtcbiAgICB0aGlzLnBhcmVudD8uX2FjdGl2YXRlKCk7XG4gIH1cblxuICAvLyBUT0RPKFRSQik6IFRoaXMgc2hvdWxkIGdldCBzcGxpdCB1cCBpbnRvIG11bHRpcGxlIG1ldGhvZHMgdG8gbWFrZSBpdCBtb3JlIHJlYWRhYmxlXG4gIC8vIC0gdXBkYXRlVGl0bGVcbiAgLy8gLSB1cGRhdGVNZXRhXG4gIC8vIC0gdXBkYXRlTGlua1xuICB1cGRhdGVDb25maWcoY29uZmlnOiBTZW9Db25maWcpIHtcbiAgICB0aGlzLl9jb25maWcgPSBtZXJnZVNlb0NvbmZpZyhjb25maWcsIHRoaXMucGFyZW50Py5jb25maWcgfHwge30pO1xuXG4gICAgaWYgKHRoaXMuX2lzRGVhY3RpdmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fYWN0aXZhdGUoKTtcbiAgfVxuXG4gIF9hY3RpdmF0ZSgpIHtcbiAgICB0aGlzLl9vbkRlYWN0aXZhdGUkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuX2lzRGVhY3RpdmF0ZWQgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2NvbmZpZykpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZWFjdGl2YXRlJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuX3VwZGF0ZShrZXksIHZhbHVlKSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICAgICAgdmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZWFjdGl2YXRlJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuX3VwZGF0ZShrZXksIHZhbHVlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGZvciAoY29uc3QgW3N1YktleSwgc3ViVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgIGlmIChzdWJWYWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICAgIHN1YlZhbHVlLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVhY3RpdmF0ZSQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLl91cGRhdGUoYCR7a2V5fToke3N1YktleX1gLCB2YWx1ZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGUoYCR7a2V5fToke3N1YktleX1gLCBzdWJWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl91cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2RlYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5fb25EZWFjdGl2YXRlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2lzRGVhY3RpdmF0ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICd0aXRsZSc6XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5fdGl0bGVTZXJ2aWNlLnNldFRpdGxlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnY2Fub25pY2FsJzpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD1cIiR7a2V5fVwiXWApO1xuXG4gICAgICAgICAgaWYgKGxpbmspIHtcbiAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgIG5ld0xpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCBrZXkpO1xuICAgICAgICAgICAgbmV3TGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuZXdMaW5rKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnYWx0ZXJuYXRlJzpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD1cIiR7a2V5fVwiXVtocmVmbGFuZz1cIiR7KHZhbHVlIGFzIEFsdGVybmF0ZUxpbmspLmhyZWZsYW5nfVwiXWApO1xuXG4gICAgICAgICAgaWYgKGxpbmspIHtcbiAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgKHZhbHVlIGFzIEFsdGVybmF0ZUxpbmspLmhyZWYpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBuZXdMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgbmV3TGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsIGtleSk7XG4gICAgICAgICAgICBuZXdMaW5rLnNldEF0dHJpYnV0ZSgnaHJlZmxhbmcnLCAodmFsdWUgYXMgQWx0ZXJuYXRlTGluaykuaHJlZmxhbmcpO1xuICAgICAgICAgICAgbmV3TGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAodmFsdWUgYXMgQWx0ZXJuYXRlTGluaykuaHJlZik7XG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5ld0xpbmspO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHZhbCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuam9pbignLCAnKSA6ICh2YWx1ZSBhcyBzdHJpbmcpO1xuXG4gICAgICAgICAgdGhpcy5fbWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZToga2V5LCBjb250ZW50OiB2YWwgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbWV0YVNlcnZpY2UucmVtb3ZlVGFnKGBuYW1lPVwiJHtrZXl9XCJgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbGVhblVwKCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2NvbmZpZykge1xuICAgICAgaWYgKGtleSA9PT0gJ2FsdGVybmF0ZScpIHtcbiAgICAgICAgY29uc3QgbGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBsaW5rW3JlbD1cIiR7a2V5fVwiXWApO1xuXG4gICAgICAgIGxpbmtzLmZvckVhY2goKGxpbmspID0+IHtcbiAgICAgICAgICBsaW5rLnJlbW92ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtleSA9PT0gJ2Nhbm9uaWNhbCcpIHtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPVwiJHtrZXl9XCJdYCk7XG5cbiAgICAgICAgaWYgKGxpbmspIHtcbiAgICAgICAgICBsaW5rLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHRoaXMuX2NvbmZpZ1trZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgICB0aGlzLl9jb25maWdba2V5XSAhPT0gbnVsbCAmJlxuICAgICAgICAhKHRoaXMuX2NvbmZpZ1trZXldIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSlcbiAgICAgICkge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YktleSBpbiB0aGlzLl9jb25maWdba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFZhbHVlID1cbiAgICAgICAgICAgIHRoaXMucGFyZW50Py5jb25maWc/LltrZXkgYXMga2V5b2YgU2VvQ29uZmlnXT8uW3N1YktleSBhcyBrZXlvZiBTZW9Db25maWdba2V5b2YgU2VvQ29uZmlnXV07XG5cbiAgICAgICAgICBpZiAocGFyZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlKGAke2tleX06JHtzdWJLZXl9YCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlID0gdGhpcy5wYXJlbnQ/LmNvbmZpZz8uW2tleSBhcyBrZXlvZiBTZW9Db25maWddO1xuXG4gICAgICAgIGlmIChwYXJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlKGtleSwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3Nlby5kaXJlY3RpdmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgTWF5YmVPYnNlcnZhYmxlPFQ+ID0gVCB8IE9ic2VydmFibGU8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VvQ29uZmlnIHtcbiAgdGl0bGU/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgZGVzY3JpcHRpb24/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAga2V5d29yZHM/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nW10+O1xuICBpY29uPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIHRoZW1lQ29sb3I/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgY29sb3JTY2hlbWU/OiBNYXliZU9ic2VydmFibGU8J2xpZ2h0JyB8ICdkYXJrJz47XG4gIHJvYm90cz86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjYW5vbmljYWw/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgYWx0ZXJuYXRlPzogTWF5YmVPYnNlcnZhYmxlPEFsdGVybmF0ZUxpbms+W107XG4gIG9nPzogTWF5YmVPYnNlcnZhYmxlPE9wZW5HcmFwaD47XG4gIHR3aXR0ZXI/OiBNYXliZU9ic2VydmFibGU8VHdpdHRlckNhcmQ+O1xuICBmYWNlYm9vaz86IE1heWJlT2JzZXJ2YWJsZTxGYWNlYm9va0NhcmQ+O1xuXG4gIFtrZXk6IHN0cmluZ106IE1heWJlT2JzZXJ2YWJsZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbHRlcm5hdGVMaW5rIHtcbiAgaHJlZjogc3RyaW5nO1xuICBocmVmbGFuZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5HcmFwaCB7XG4gIHRpdGxlPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIGRlc2NyaXB0aW9uPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIHR5cGU/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgdXJsPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIGltYWdlPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIHNpdGVOYW1lPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIGxvY2FsZT86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBsb2NhbGVBbHRlcm5hdGU/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR3aXR0ZXJDYXJkIHtcbiAgY2FyZD86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzaXRlPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIGNyZWF0b3I/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgdGl0bGU/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgZGVzY3JpcHRpb24/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgaW1hZ2U/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgaW1hZ2VBbHQ/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYWNlYm9va0NhcmQge1xuICB0aXRsZT86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBkZXNjcmlwdGlvbj86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpbWFnZT86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpbWFnZUFsdD86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICB0eXBlPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZz47XG4gIHVybD86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzaXRlTmFtZT86IE1heWJlT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBsb2NhbGU/OiBNYXliZU9ic2VydmFibGU8c3RyaW5nPjtcbiAgbG9jYWxlQWx0ZXJuYXRlPzogTWF5YmVPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export const mergeSeoConfig = (config, parentConfig) => {
2
+ return {
3
+ ...parentConfig,
4
+ ...config,
5
+ };
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3Nlby5kaXJlY3RpdmUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxZQUF1QixFQUFhLEVBQUU7SUFDdEYsT0FBTztRQUNMLEdBQUcsWUFBWTtRQUNmLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW9Db25maWcgfSBmcm9tICcuL3Nlby5kaXJlY3RpdmUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgbWVyZ2VTZW9Db25maWcgPSAoY29uZmlnOiBTZW9Db25maWcsIHBhcmVudENvbmZpZzogU2VvQ29uZmlnKTogU2VvQ29uZmlnID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJlbnRDb25maWcsXG4gICAgLi4uY29uZmlnLFxuICB9O1xufTtcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { normalizeGameResultType } from './normalize-game-result-type.util';
3
+ import * as i0 from "@angular/core";
4
+ export class NormalizeGameResultTypePipe {
5
+ constructor() {
6
+ this.transform = normalizeGameResultType;
7
+ }
8
+ }
9
+ NormalizeGameResultTypePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ NormalizeGameResultTypePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{ name: 'etNormalizeGameResultType', standalone: true }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzVFLE1BQU0sT0FBTywyQkFBMkI7SUFEeEM7UUFFRSxjQUFTLEdBQUcsdUJBQXVCLENBQUM7S0FDckM7O3dIQUZZLDJCQUEyQjtzSEFBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZUdhbWVSZXN1bHRUeXBlIH0gZnJvbSAnLi9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS51dGlsJztcblxuQFBpcGUoeyBuYW1lOiAnZXROb3JtYWxpemVHYW1lUmVzdWx0VHlwZScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVHYW1lUmVzdWx0VHlwZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtID0gbm9ybWFsaXplR2FtZVJlc3VsdFR5cGU7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWRHYW1lUmVzdWx0VHlwZSBleHRlbmRzIFRyYW5zbGF0YWJsZSB7XG4gIHNob3J0Q29kZTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,34 @@
1
+ // TODO(TRB): Add correct type once provided by API
2
+ export const normalizeGameResultType = (type) => {
3
+ if (!type) {
4
+ return null;
5
+ }
6
+ switch (type) {
7
+ case 'extra_time':
8
+ return {
9
+ i18n: 'game-result-type.extra-time',
10
+ shortCode: 'AET',
11
+ text: 'After Extra Time',
12
+ };
13
+ case 'penalty':
14
+ return {
15
+ i18n: 'game-result-type.penalty',
16
+ shortCode: 'PSO',
17
+ text: 'Penalty shootout',
18
+ };
19
+ case 'golden_goal':
20
+ return {
21
+ i18n: 'game-result-type.golden-goal',
22
+ shortCode: 'GG',
23
+ text: 'Golden Goal',
24
+ };
25
+ case 'default':
26
+ default:
27
+ return {
28
+ i18n: 'game-result-type.full-time',
29
+ shortCode: 'FT',
30
+ text: 'Full Time',
31
+ };
32
+ }
33
+ };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBbUIsRUFBbUMsRUFBRTtJQUM5RixJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELFFBQVEsSUFBSSxFQUFFO1FBQ1osS0FBSyxZQUFZO1lBQ2YsT0FBTztnQkFDTCxJQUFJLEVBQUUsNkJBQTZCO2dCQUNuQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjthQUN6QixDQUFDO1FBRUosS0FBSyxTQUFTO1lBQ1osT0FBTztnQkFDTCxJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjthQUN6QixDQUFDO1FBRUosS0FBSyxhQUFhO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLGFBQWE7YUFDcEIsQ0FBQztRQUVKLEtBQUssU0FBUyxDQUFDO1FBQ2Y7WUFDRSxPQUFPO2dCQUNMLElBQUksRUFBRSw0QkFBNEI7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUM7S0FDTDtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vcm1hbGl6ZWRHYW1lUmVzdWx0VHlwZSB9IGZyb20gJy4vbm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudHlwZXMnO1xuXG4vLyBUT0RPKFRSQik6IEFkZCBjb3JyZWN0IHR5cGUgb25jZSBwcm92aWRlZCBieSBBUElcbmV4cG9ydCBjb25zdCBub3JtYWxpemVHYW1lUmVzdWx0VHlwZSA9ICh0eXBlOiBzdHJpbmcgfCBudWxsKTogTm9ybWFsaXplZEdhbWVSZXN1bHRUeXBlIHwgbnVsbCA9PiB7XG4gIGlmICghdHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZXh0cmFfdGltZSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpMThuOiAnZ2FtZS1yZXN1bHQtdHlwZS5leHRyYS10aW1lJyxcbiAgICAgICAgc2hvcnRDb2RlOiAnQUVUJyxcbiAgICAgICAgdGV4dDogJ0FmdGVyIEV4dHJhIFRpbWUnLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ3BlbmFsdHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaTE4bjogJ2dhbWUtcmVzdWx0LXR5cGUucGVuYWx0eScsXG4gICAgICAgIHNob3J0Q29kZTogJ1BTTycsXG4gICAgICAgIHRleHQ6ICdQZW5hbHR5IHNob290b3V0JyxcbiAgICAgIH07XG5cbiAgICBjYXNlICdnb2xkZW5fZ29hbCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpMThuOiAnZ2FtZS1yZXN1bHQtdHlwZS5nb2xkZW4tZ29hbCcsXG4gICAgICAgIHNob3J0Q29kZTogJ0dHJyxcbiAgICAgICAgdGV4dDogJ0dvbGRlbiBHb2FsJyxcbiAgICAgIH07XG5cbiAgICBjYXNlICdkZWZhdWx0JzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaTE4bjogJ2dhbWUtcmVzdWx0LXR5cGUuZnVsbC10aW1lJyxcbiAgICAgICAgc2hvcnRDb2RlOiAnRlQnLFxuICAgICAgICB0ZXh0OiAnRnVsbCBUaW1lJyxcbiAgICAgIH07XG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './normalize-game-result-type.pipe';
2
+ export * from './normalize-game-result-type.types';
3
+ export * from './normalize-game-result-type.util';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnV0aWwnO1xuIl19
@@ -0,0 +1,15 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { normalizeMatchParticipants } from './normalize-match-participants.util';
3
+ import * as i0 from "@angular/core";
4
+ export class NormalizeMatchParticipantsPipe {
5
+ constructor() {
6
+ this.transform = normalizeMatchParticipants;
7
+ }
8
+ }
9
+ NormalizeMatchParticipantsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ NormalizeMatchParticipantsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{ name: 'etNormalizeMatchParticipants', standalone: true }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR2pGLE1BQU0sT0FBTyw4QkFBOEI7SUFEM0M7UUFFRSxjQUFTLEdBQUcsMEJBQTBCLENBQUM7S0FDeEM7OzJIQUZZLDhCQUE4Qjt5SEFBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBRDFDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzIH0gZnJvbSAnLi9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnV0aWwnO1xuXG5AUGlwZSh7IG5hbWU6ICdldE5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0gPSBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50cztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1tYXRjaC1wYXJ0aWNpcGFudHMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydGljaXBhbnRWaWV3VW5pb24gfSBmcm9tICdAZXRobGV0ZS90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGFibGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnRzIHtcbiAgaG9tZTogTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQgfCBudWxsO1xuICBhd2F5OiBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudCB8IG51bGw7XG59XG5cbnR5cGUgTm9ybWFsaXplZFBhcnRpY2lwYW50VHlwZSA9ICd0ZWFtJyB8ICdwbGF5ZXInIHwgJ3Vua25vd24nO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudCA9XG4gIHwgKHtcbiAgICAgIHR5cGU6ICd0YmQnO1xuICAgICAgcGFydGljaXBhbnRUeXBlOiBOb3JtYWxpemVkUGFydGljaXBhbnRUeXBlO1xuICAgICAgZGF0YTogUGFydGljaXBhbnRWaWV3VW5pb24gfCBudWxsO1xuICAgIH0gJiBUcmFuc2xhdGFibGUpXG4gIHwge1xuICAgICAgdHlwZTogJ3BhcnRpY2lwYW50JztcbiAgICAgIHBhcnRpY2lwYW50VHlwZTogTm9ybWFsaXplZFBhcnRpY2lwYW50VHlwZTtcbiAgICAgIGRhdGE6IFBhcnRpY2lwYW50Vmlld1VuaW9uO1xuICAgIH1cbiAgfCAoe1xuICAgICAgdHlwZTogJ25vbmUnO1xuICAgICAgcGFydGljaXBhbnRUeXBlOiBOb3JtYWxpemVkUGFydGljaXBhbnRUeXBlO1xuICAgICAgZGF0YTogUGFydGljaXBhbnRWaWV3VW5pb24gfCBudWxsO1xuICAgIH0gJiBUcmFuc2xhdGFibGUpO1xuIl19
@@ -0,0 +1,47 @@
1
+ import { normalizeMatchState } from '../normalize-match-state';
2
+ export const normalizeMatchParticipants = (match) => {
3
+ const matchState = normalizeMatchState(match);
4
+ if (!match || !matchState) {
5
+ return null;
6
+ }
7
+ return {
8
+ home: normalizeMatchParticipant(match, 'home'),
9
+ away: normalizeMatchParticipant(match, 'away'),
10
+ };
11
+ };
12
+ export const normalizeMatchParticipant = (match, side) => {
13
+ const matchState = normalizeMatchState(match);
14
+ if (!match || !matchState) {
15
+ return null;
16
+ }
17
+ const participant = match[side];
18
+ const participantType = match.home?.type ?? match.away?.type ?? 'unknown';
19
+ if (!participant) {
20
+ if (matchState === "postMatch" /* MatchStateType.POST_MATCH */ || matchState === "autoWin" /* MatchStateType.AUTO_WIN */) {
21
+ return {
22
+ participantType,
23
+ type: 'none',
24
+ i18n: 'match-participant.none',
25
+ text: 'No opponent',
26
+ data: participant,
27
+ };
28
+ }
29
+ else {
30
+ return {
31
+ participantType,
32
+ type: 'tbd',
33
+ i18n: 'match-participant.tbd',
34
+ text: 'TBD',
35
+ data: participant,
36
+ };
37
+ }
38
+ }
39
+ else {
40
+ return {
41
+ participantType,
42
+ type: 'participant',
43
+ data: participant,
44
+ };
45
+ }
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBMkIsRUFBc0MsRUFBRTtJQUM1RyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLHlCQUF5QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7UUFDOUMsSUFBSSxFQUFFLHlCQUF5QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7S0FDL0MsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3ZDLEtBQTJCLEVBQzNCLElBQXFCLEVBQ2MsRUFBRTtJQUNyQyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDO0lBRTFFLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsSUFBSSxVQUFVLGdEQUE4QixJQUFJLFVBQVUsNENBQTRCLEVBQUU7WUFDdEYsT0FBTztnQkFDTCxlQUFlO2dCQUNmLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsV0FBVzthQUNsQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU87Z0JBQ0wsZUFBZTtnQkFDZixJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsV0FBVzthQUNsQixDQUFDO1NBQ0g7S0FDRjtTQUFNO1FBQ0wsT0FBTztZQUNMLGVBQWU7WUFDZixJQUFJLEVBQUUsYUFBYTtZQUNuQixJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRjaExpc3RWaWV3IH0gZnJvbSAnQGV0aGxldGUvdHlwZXMnO1xuaW1wb3J0IHsgTWF0Y2hTdGF0ZVR5cGUsIG5vcm1hbGl6ZU1hdGNoU3RhdGUgfSBmcm9tICcuLi9ub3JtYWxpemUtbWF0Y2gtc3RhdGUnO1xuaW1wb3J0IHsgTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQsIE5vcm1hbGl6ZWRNYXRjaFBhcnRpY2lwYW50cyB9IGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50cyA9IChtYXRjaDogTWF0Y2hMaXN0VmlldyB8IG51bGwpOiBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudHMgfCBudWxsID0+IHtcbiAgY29uc3QgbWF0Y2hTdGF0ZSA9IG5vcm1hbGl6ZU1hdGNoU3RhdGUobWF0Y2gpO1xuXG4gIGlmICghbWF0Y2ggfHwgIW1hdGNoU3RhdGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaG9tZTogbm9ybWFsaXplTWF0Y2hQYXJ0aWNpcGFudChtYXRjaCwgJ2hvbWUnKSxcbiAgICBhd2F5OiBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50KG1hdGNoLCAnYXdheScpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnQgPSAoXG4gIG1hdGNoOiBNYXRjaExpc3RWaWV3IHwgbnVsbCxcbiAgc2lkZTogJ2hvbWUnIHwgJ2F3YXknLFxuKTogTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQgfCBudWxsID0+IHtcbiAgY29uc3QgbWF0Y2hTdGF0ZSA9IG5vcm1hbGl6ZU1hdGNoU3RhdGUobWF0Y2gpO1xuXG4gIGlmICghbWF0Y2ggfHwgIW1hdGNoU3RhdGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHBhcnRpY2lwYW50ID0gbWF0Y2hbc2lkZV07XG4gIGNvbnN0IHBhcnRpY2lwYW50VHlwZSA9IG1hdGNoLmhvbWU/LnR5cGUgPz8gbWF0Y2guYXdheT8udHlwZSA/PyAndW5rbm93bic7XG5cbiAgaWYgKCFwYXJ0aWNpcGFudCkge1xuICAgIGlmIChtYXRjaFN0YXRlID09PSBNYXRjaFN0YXRlVHlwZS5QT1NUX01BVENIIHx8IG1hdGNoU3RhdGUgPT09IE1hdGNoU3RhdGVUeXBlLkFVVE9fV0lOKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aWNpcGFudFR5cGUsXG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgaTE4bjogJ21hdGNoLXBhcnRpY2lwYW50Lm5vbmUnLFxuICAgICAgICB0ZXh0OiAnTm8gb3Bwb25lbnQnLFxuICAgICAgICBkYXRhOiBwYXJ0aWNpcGFudCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRpY2lwYW50VHlwZSxcbiAgICAgICAgdHlwZTogJ3RiZCcsXG4gICAgICAgIGkxOG46ICdtYXRjaC1wYXJ0aWNpcGFudC50YmQnLFxuICAgICAgICB0ZXh0OiAnVEJEJyxcbiAgICAgICAgZGF0YTogcGFydGljaXBhbnQsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFydGljaXBhbnRUeXBlLFxuICAgICAgdHlwZTogJ3BhcnRpY2lwYW50JyxcbiAgICAgIGRhdGE6IHBhcnRpY2lwYW50LFxuICAgIH07XG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './normalize-match-participants.pipe';
2
+ export * from './normalize-match-participants.types';
3
+ export * from './normalize-match-participants.util';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1tYXRjaC1wYXJ0aWNpcGFudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZS1tYXRjaC1wYXJ0aWNpcGFudHMudXRpbCc7XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { normalizeMatchScore } from './normalize-match-score.util';
3
+ import * as i0 from "@angular/core";
4
+ export class NormalizeMatchScorePipe {
5
+ constructor() {
6
+ this.transform = normalizeMatchScore;
7
+ }
8
+ }
9
+ NormalizeMatchScorePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ NormalizeMatchScorePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{ name: 'etNormalizeMatchScore', standalone: true }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXNjb3JlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtbWF0Y2gtc2NvcmUvbm9ybWFsaXplLW1hdGNoLXNjb3JlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR25FLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxjQUFTLEdBQUcsbUJBQW1CLENBQUM7S0FDakM7O29IQUZZLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZU1hdGNoU2NvcmUgfSBmcm9tICcuL25vcm1hbGl6ZS1tYXRjaC1zY29yZS51dGlsJztcblxuQFBpcGUoeyBuYW1lOiAnZXROb3JtYWxpemVNYXRjaFNjb3JlJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZU1hdGNoU2NvcmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSA9IG5vcm1hbGl6ZU1hdGNoU2NvcmU7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXNjb3JlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvbm9ybWFsaXplLW1hdGNoLXNjb3JlL25vcm1hbGl6ZS1tYXRjaC1zY29yZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOb3JtYWxpemVkTWF0Y2hTY29yZSB7XG4gIGhvbWU6IHtcbiAgICBzY29yZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgICBpc1dpbm5lcjogYm9vbGVhbjtcbiAgfTtcbiAgYXdheToge1xuICAgIHNjb3JlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xuICAgIGlzV2lubmVyOiBib29sZWFuO1xuICB9O1xuICBzdWJMaW5lOiBzdHJpbmcgfCBudWxsO1xuICBpc051bWVyaWM6IGJvb2xlYW47XG59XG4iXX0=