@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,166 +0,0 @@
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
157
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3Nlby5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLFlBQVk7SUFKekI7UUFLbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRWpELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBSzFFLFlBQU8sR0FBYyxFQUFFLENBQUM7S0E4SmpDO0lBaktDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFB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LENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0F6S1UsWUFBWTttR0FBWixZQUFZLGlDQUZaLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDOzs0RkFFN0QsWUFBWTtrQkFKeEIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxjQUFjLEVBQUUsQ0FBQztpQkFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNFT19ESVJFQ1RJVkVfVE9LRU4gfSBmcm9tICcuL3Nlby5kaXJlY3RpdmUuY29uc3RhbnRzJztcbmltcG9ydCB7IEFsdGVybmF0ZUxpbmssIFNlb0NvbmZpZyB9IGZyb20gJy4vc2VvLmRpcmVjdGl2ZS50eXBlcyc7XG5pbXBvcnQgeyBtZXJnZVNlb0NvbmZpZyB9IGZyb20gJy4vc2VvLmRpcmVjdGl2ZS51dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFNFT19ESVJFQ1RJVkVfVE9LRU4sIHVzZUV4aXN0aW5nOiBTZW9EaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlb0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWV0YVNlcnZpY2UgPSBpbmplY3QoTWV0YSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uRGVhY3RpdmF0ZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2lzRGVhY3RpdmF0ZWQgPSBmYWxzZTtcblxuICByZWFkb25seSBwYXJlbnQgPSBpbmplY3QoU0VPX0RJUkVDVElWRV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG5cbiAgZ2V0IGNvbmZpZygpOiBTZW9Db25maWcge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cbiAgcHJpdmF0ZSBfY29uZmlnOiBTZW9Db25maWcgPSB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudD8uX2RlYWN0aXZhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RlYWN0aXZhdGUoKTtcbiAgICB0aGlzLl9jbGVhblVwKCk7XG4gICAgdGhpcy5wYXJlbnQ/Ll9hY3RpdmF0ZSgpO1xuICB9XG5cbiAgLy8gVE9ETyhUUkIpOiBUaGlzIHNob3VsZCBnZXQgc3BsaXQgdXAgaW50byBtdWx0aXBsZSBtZXRob2RzIHRvIG1ha2UgaXQgbW9yZSByZWFkYWJsZVxuICAvLyAtIHVwZGF0ZVRpdGxlXG4gIC8vIC0gdXBkYXRlTWV0YVxuICAvLyAtIHVwZGF0ZUxpbmtcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZzogU2VvQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gbWVyZ2VTZW9Db25maWcoY29uZmlnLCB0aGlzLnBhcmVudD8uY29uZmlnIHx8IHt9KTtcblxuICAgIGlmICh0aGlzLl9pc0RlYWN0aXZhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2FjdGl2YXRlKCk7XG4gIH1cblxuICBfYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5fb25EZWFjdGl2YXRlJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLl9pc0RlYWN0aXZhdGVkID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9jb25maWcpKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgIHZhbHVlLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVhY3RpdmF0ZSQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLl91cGRhdGUoa2V5LCB2YWx1ZSkpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICAgIHZhbHVlLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVhY3RpdmF0ZSQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLl91cGRhdGUoa2V5LCB2YWx1ZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBmb3IgKGNvbnN0IFtzdWJLZXksIHN1YlZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgICAgICBpZiAoc3ViVmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgICAgICBzdWJWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlYWN0aXZhdGUkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5fdXBkYXRlKGAke2tleX06JHtzdWJLZXl9YCwgdmFsdWUpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlKGAke2tleX06JHtzdWJLZXl9YCwgc3ViVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9kZWFjdGl2YXRlKCkge1xuICAgIHRoaXMuX29uRGVhY3RpdmF0ZSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLl9pc0RlYWN0aXZhdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2Nhbm9uaWNhbCc6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tyZWw9XCIke2tleX1cIl1gKTtcblxuICAgICAgICAgIGlmIChsaW5rKSB7XG4gICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0xpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBuZXdMaW5rLnNldEF0dHJpYnV0ZSgncmVsJywga2V5KTtcbiAgICAgICAgICAgIG5ld0xpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmV3TGluayk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2FsdGVybmF0ZSc6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tyZWw9XCIke2tleX1cIl1baHJlZmxhbmc9XCIkeyh2YWx1ZSBhcyBBbHRlcm5hdGVMaW5rKS5ocmVmbGFuZ31cIl1gKTtcblxuICAgICAgICAgIGlmIChsaW5rKSB7XG4gICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsICh2YWx1ZSBhcyBBbHRlcm5hdGVMaW5rKS5ocmVmKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgIG5ld0xpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCBrZXkpO1xuICAgICAgICAgICAgbmV3TGluay5zZXRBdHRyaWJ1dGUoJ2hyZWZsYW5nJywgKHZhbHVlIGFzIEFsdGVybmF0ZUxpbmspLmhyZWZsYW5nKTtcbiAgICAgICAgICAgIG5ld0xpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgKHZhbHVlIGFzIEFsdGVybmF0ZUxpbmspLmhyZWYpO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuZXdMaW5rKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB2YWwgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJywgJykgOiAodmFsdWUgYXMgc3RyaW5nKTtcblxuICAgICAgICAgIHRoaXMuX21ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6IGtleSwgY29udGVudDogdmFsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX21ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT1cIiR7a2V5fVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5VcCgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl9jb25maWcpIHtcbiAgICAgIGlmIChrZXkgPT09ICdhbHRlcm5hdGUnKSB7XG4gICAgICAgIGNvbnN0IGxpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9XCIke2tleX1cIl1gKTtcblxuICAgICAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICAgICAgbGluay5yZW1vdmUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD1cIiR7a2V5fVwiXWApO1xuXG4gICAgICAgIGlmIChsaW5rKSB7XG4gICAgICAgICAgbGluay5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB0aGlzLl9jb25maWdba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdGhpcy5fY29uZmlnW2tleV0gIT09IG51bGwgJiZcbiAgICAgICAgISh0aGlzLl9jb25maWdba2V5XSBpbnN0YW5jZW9mIE9ic2VydmFibGUpXG4gICAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBzdWJLZXkgaW4gdGhpcy5fY29uZmlnW2tleV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLnBhcmVudD8uY29uZmlnPy5ba2V5IGFzIGtleW9mIFNlb0NvbmZpZ10/LltzdWJLZXkgYXMga2V5b2YgU2VvQ29uZmlnW2tleW9mIFNlb0NvbmZpZ11dO1xuXG4gICAgICAgICAgaWYgKHBhcmVudFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZShgJHtrZXl9OiR7c3ViS2V5fWAsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZSA9IHRoaXMucGFyZW50Py5jb25maWc/LltrZXkgYXMga2V5b2YgU2VvQ29uZmlnXTtcblxuICAgICAgICBpZiAocGFyZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZShrZXksIG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
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==
@@ -1,7 +0,0 @@
1
- export const mergeSeoConfig = (config, parentConfig) => {
2
- return {
3
- ...parentConfig,
4
- ...config,
5
- };
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2VvL3Nlby5kaXJlY3RpdmUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxZQUF1QixFQUFhLEVBQUU7SUFDdEYsT0FBTztRQUNMLEdBQUcsWUFBWTtRQUNmLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW9Db25maWcgfSBmcm9tICcuL3Nlby5kaXJlY3RpdmUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgbWVyZ2VTZW9Db25maWcgPSAoY29uZmlnOiBTZW9Db25maWcsIHBhcmVudENvbmZpZzogU2VvQ29uZmlnKTogU2VvQ29uZmlnID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJlbnRDb25maWcsXG4gICAgLi4uY29uZmlnLFxuICB9O1xufTtcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './infer-mime-type.pipe';
2
- export * from './infer-mime-type.util';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9pbmZlci1taW1lLXR5cGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbmZlci1taW1lLXR5cGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2luZmVyLW1pbWUtdHlwZS51dGlsJztcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { inferMimeType } from './infer-mime-type.util';
3
- import * as i0 from "@angular/core";
4
- export class InferMimeTypePipe {
5
- constructor() {
6
- this.transform = inferMimeType;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: InferMimeTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: InferMimeTypePipe, isStandalone: true, name: "inferMimeType" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: InferMimeTypePipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- name: 'inferMimeType',
15
- standalone: true,
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXItbWltZS10eXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9pbmZlci1taW1lLXR5cGUvaW5mZXItbWltZS10eXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU12RCxNQUFNLE9BQU8saUJBQWlCO0lBSjlCO1FBS0UsY0FBUyxHQUFHLGFBQWEsQ0FBQztLQUMzQjsrR0FGWSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5mZXJNaW1lVHlwZSB9IGZyb20gJy4vaW5mZXItbWltZS10eXBlLnV0aWwnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpbmZlck1pbWVUeXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5mZXJNaW1lVHlwZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtID0gaW5mZXJNaW1lVHlwZTtcbn1cbiJdfQ==
@@ -1,196 +0,0 @@
1
- /**
2
- * Infers the mime type of a given url or srcset.
3
- * If a srcset is provided, it will infer the mime type of the first url in the srcset.
4
- * If the srcset contains a query parameter `?fm=`, it will use the value of that parameter, since it is often used to specify the file format in image api's like contentful.
5
- */
6
- export const inferMimeType = (srcset) => {
7
- if (!srcset)
8
- return null;
9
- const urls = srcset.split(',');
10
- const firstUrl = urls[0];
11
- if (!firstUrl)
12
- return null;
13
- // make sure the url does not end with something like x1, x2 or 400w, 800w... We need to remove these parts to get the correct file extension
14
- const urlParts = firstUrl.split(' ');
15
- const lastPart = urlParts[urlParts.length - 1];
16
- if (urlParts.length > 1 && !lastPart?.includes('/')) {
17
- urlParts.pop();
18
- }
19
- const cleanedUrl = urlParts.join(' ');
20
- const queryPart = cleanedUrl.split('?')[1] ?? '';
21
- const containsFm = queryPart.startsWith('fm=') || queryPart.includes('&fm=');
22
- let fileExtension = null;
23
- if (containsFm) {
24
- const fmIndex = queryPart.indexOf('fm=');
25
- const fmValue = queryPart
26
- .substring(fmIndex + 3)
27
- .split('&')[0]
28
- ?.toLowerCase();
29
- if (fmValue) {
30
- fileExtension = fmValue;
31
- }
32
- }
33
- if (!fileExtension) {
34
- const noQueryUrl = cleanedUrl.split('?')[0] || cleanedUrl;
35
- const lastDotIndex = noQueryUrl.lastIndexOf('.');
36
- if (lastDotIndex === -1)
37
- return null;
38
- fileExtension = noQueryUrl.substring(lastDotIndex + 1).toLowerCase();
39
- }
40
- if (fileExtension) {
41
- switch (fileExtension) {
42
- case 'avif':
43
- return 'image/avif';
44
- case 'bmp':
45
- return 'image/bmp';
46
- case 'gif':
47
- return 'image/gif';
48
- case 'ico':
49
- return 'image/vdn.microsoft.icon';
50
- case 'jpg':
51
- case 'jpeg':
52
- return 'image/jpeg';
53
- case 'png':
54
- return 'image/png';
55
- case 'svg':
56
- return 'image/svg+xml';
57
- case 'tif':
58
- case 'tiff':
59
- return 'image/tiff';
60
- case 'webp':
61
- return 'image/webp';
62
- case 'aac':
63
- return 'audio/aac';
64
- case 'abw':
65
- return 'application/x-abiword';
66
- case 'arc':
67
- return 'application/x-freearc';
68
- case 'avi':
69
- return 'video/x-msvideo';
70
- case 'azw':
71
- return 'application/vnd.amazon.ebook';
72
- case 'bin':
73
- return 'application/octet-stream';
74
- case 'bz':
75
- return 'application/x-bzip';
76
- case 'bz2':
77
- return 'application/x-bzip2';
78
- case 'cda':
79
- return 'application/x-cdf';
80
- case 'csh':
81
- return 'application/x-csh';
82
- case 'css':
83
- return 'text/css';
84
- case 'csv':
85
- return 'text/csv';
86
- case 'doc':
87
- return 'application/msword';
88
- case 'docx':
89
- return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
90
- case 'eot':
91
- return 'application/vnd.ms-fontobject';
92
- case 'epub':
93
- return 'application/epub+zip';
94
- case 'gz':
95
- return 'application/gzip';
96
- case 'htm':
97
- case 'html':
98
- return 'text/html';
99
- case 'ics':
100
- return 'text/calendar';
101
- case 'jar':
102
- return 'application/java-archive';
103
- case 'js':
104
- return 'text/javascript';
105
- case 'json':
106
- return 'application/json';
107
- case 'jsonld':
108
- return 'application/ld+json';
109
- case 'mid':
110
- case 'midi':
111
- return 'audio/midi';
112
- case 'mjs':
113
- return 'text/javascript';
114
- case 'mp3':
115
- return 'audio/mpeg';
116
- case 'mp4':
117
- return 'video/mp4';
118
- case 'mpeg':
119
- return 'video/mpeg';
120
- case 'mpkg':
121
- return 'tapplication/vnd.apple.installer+xml';
122
- case 'odp':
123
- return 'application/vnd.oasis.opendocument.presentation';
124
- case 'ods':
125
- return 'application/vnd.oasis.opendocument.spreadsheet';
126
- case 'odt':
127
- return 'application/vnd.oasis.opendocument.text';
128
- case 'oga':
129
- return 'audio/ogg';
130
- case 'ogv':
131
- return 'video/ogg';
132
- case 'ogx':
133
- return 'application/ogg';
134
- case 'opus':
135
- return 'audio/opus';
136
- case 'otf':
137
- return 'font/otf';
138
- case 'pdf':
139
- return 'application/pdf';
140
- case 'php':
141
- return 'application/x-httpd-php';
142
- case 'ppt':
143
- return 'application/vnd.ms-powerpoint';
144
- case 'pptx':
145
- return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
146
- case 'rar':
147
- return 'application/vnd.rar';
148
- case 'rtf':
149
- return 'application/rtf';
150
- case 'sh':
151
- return 'application/x-sh';
152
- case 'tar':
153
- return 'application/x-tar';
154
- case 'ts':
155
- return 'video/mp2t';
156
- case 'ttf':
157
- return 'font/ttf';
158
- case 'txt':
159
- return 'text/plain';
160
- case 'vsd':
161
- return 'application/vnd.visio';
162
- case 'wav':
163
- return 'audio/wav';
164
- case 'weba':
165
- return 'audio/webm';
166
- case 'webm':
167
- return 'video/webm';
168
- case 'woff':
169
- return 'font/woff';
170
- case 'woff2':
171
- return 'font/woff2';
172
- case 'xhtml':
173
- return 'application/xhtml+xml';
174
- case 'xls':
175
- return 'application/vnd.ms-excel';
176
- case 'xlsx':
177
- return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
178
- case 'xml':
179
- return 'application/xml';
180
- case 'xul':
181
- return 'application/vnd.mozilla.xul+xml';
182
- case 'zip':
183
- return 'application/zip';
184
- case '3gp':
185
- return 'video/3gpp';
186
- case '3g2':
187
- return 'video/3gpp2';
188
- case '7z':
189
- return 'application/x-7z-compressed';
190
- default:
191
- return null;
192
- }
193
- }
194
- return null;
195
- };
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXItbWltZS10eXBlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9pbmZlci1taW1lLXR5cGUvaW5mZXItbWltZS10eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQzlDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFekIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekIsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQztJQUUzQiw2SUFBNkk7SUFDN0ksTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFR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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW5mZXJzIHRoZSBtaW1lIHR5cGUgb2YgYSBnaXZlbiB1cmwgb3Igc3Jjc2V0LlxuICogSWYgYSBzcmNzZXQgaXMgcHJvdmlkZWQsIGl0IHdpbGwgaW5mZXIgdGhlIG1pbWUgdHlwZSBvZiB0aGUgZmlyc3QgdXJsIGluIHRoZSBzcmNzZXQuXG4gKiBJZiB0aGUgc3Jjc2V0IGNvbnRhaW5zIGEgcXVlcnkgcGFyYW1ldGVyIGA/Zm09YCwgaXQgd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoYXQgcGFyYW1ldGVyLCBzaW5jZSBpdCBpcyBvZnRlbiB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgZm9ybWF0IGluIGltYWdlIGFwaSdzIGxpa2UgY29udGVudGZ1bC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluZmVyTWltZVR5cGUgPSAoc3Jjc2V0OiBzdHJpbmcpID0+IHtcbiAgaWYgKCFzcmNzZXQpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHVybHMgPSBzcmNzZXQuc3BsaXQoJywnKTtcbiAgY29uc3QgZmlyc3RVcmwgPSB1cmxzWzBdO1xuXG4gIGlmICghZmlyc3RVcmwpIHJldHVybiBudWxsO1xuXG4gIC8vIG1ha2Ugc3VyZSB0aGUgdXJsIGRvZXMgbm90IGVuZCB3aXRoIHNvbWV0aGluZyBsaWtlIHgxLCB4MiBvciA0MDB3LCA4MDB3Li4uIFdlIG5lZWQgdG8gcmVtb3ZlIHRoZXNlIHBhcnRzIHRvIGdldCB0aGUgY29ycmVjdCBmaWxlIGV4dGVuc2lvblxuICBjb25zdCB1cmxQYXJ0cyA9IGZpcnN0VXJsLnNwbGl0KCcgJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gdXJsUGFydHNbdXJsUGFydHMubGVuZ3RoIC0gMV07XG5cbiAgaWYgKHVybFBhcnRzLmxlbmd0aCA+IDEgJiYgIWxhc3RQYXJ0Py5pbmNsdWRlcygnLycpKSB7XG4gICAgdXJsUGFydHMucG9wKCk7XG4gIH1cblxuICBjb25zdCBjbGVhbmVkVXJsID0gdXJsUGFydHMuam9pbignICcpO1xuXG4gIGNvbnN0IHF1ZXJ5UGFydCA9IGNsZWFuZWRVcmwuc3BsaXQoJz8nKVsxXSA/PyAnJztcbiAgY29uc3QgY29udGFpbnNGbSA9IHF1ZXJ5UGFydC5zdGFydHNXaXRoKCdmbT0nKSB8fCBxdWVyeVBhcnQuaW5jbHVkZXMoJyZmbT0nKTtcbiAgbGV0IGZpbGVFeHRlbnNpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChjb250YWluc0ZtKSB7XG4gICAgY29uc3QgZm1JbmRleCA9IHF1ZXJ5UGFydC5pbmRleE9mKCdmbT0nKTtcbiAgICBjb25zdCBmbVZhbHVlID0gcXVlcnlQYXJ0XG4gICAgICAuc3Vic3RyaW5nKGZtSW5kZXggKyAzKVxuICAgICAgLnNwbGl0KCcmJylbMF1cbiAgICAgID8udG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChmbVZhbHVlKSB7XG4gICAgICBmaWxlRXh0ZW5zaW9uID0gZm1WYWx1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGVFeHRlbnNpb24pIHtcbiAgICBjb25zdCBub1F1ZXJ5VXJsID0gY2xlYW5lZFVybC5zcGxpdCgnPycpWzBdIHx8IGNsZWFuZWRVcmw7XG5cbiAgICBjb25zdCBsYXN0RG90SW5kZXggPSBub1F1ZXJ5VXJsLmxhc3RJbmRleE9mKCcuJyk7XG5cbiAgICBpZiAobGFzdERvdEluZGV4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgICBmaWxlRXh0ZW5zaW9uID0gbm9RdWVyeVVybC5zdWJzdHJpbmcobGFzdERvdEluZGV4ICsgMSkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGlmIChmaWxlRXh0ZW5zaW9uKSB7XG4gICAgc3dpdGNoIChmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICBjYXNlICdhdmlmJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9hdmlmJztcbiAgICAgIGNhc2UgJ2JtcCc6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvYm1wJztcbiAgICAgIGNhc2UgJ2dpZic6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvZ2lmJztcbiAgICAgIGNhc2UgJ2ljbyc6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvdmRuLm1pY3Jvc29mdC5pY29uJztcbiAgICAgIGNhc2UgJ2pwZyc6XG4gICAgICBjYXNlICdqcGVnJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJztcbiAgICAgIGNhc2UgJ3BuZyc6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJztcbiAgICAgIGNhc2UgJ3N2Zyc6XG4gICAgICAgIHJldHVybiAnaW1hZ2Uvc3ZnK3htbCc7XG4gICAgICBjYXNlICd0aWYnOlxuICAgICAgY2FzZSAndGlmZic6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvdGlmZic7XG4gICAgICBjYXNlICd3ZWJwJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS93ZWJwJztcbiAgICAgIGNhc2UgJ2FhYyc6XG4gICAgICAgIHJldHVybiAnYXVkaW8vYWFjJztcbiAgICAgIGNhc2UgJ2Fidyc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1hYml3b3JkJztcbiAgICAgIGNhc2UgJ2FyYyc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1mcmVlYXJjJztcbiAgICAgIGNhc2UgJ2F2aSc6XG4gICAgICAgIHJldHVybiAndmlkZW8veC1tc3ZpZGVvJztcbiAgICAgIGNhc2UgJ2F6dyc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9vayc7XG4gICAgICBjYXNlICdiaW4nOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG4gICAgICBjYXNlICdieic6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1iemlwJztcbiAgICAgIGNhc2UgJ2J6Mic6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1iemlwMic7XG4gICAgICBjYXNlICdjZGEnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3gtY2RmJztcbiAgICAgIGNhc2UgJ2NzaCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1jc2gnO1xuICAgICAgY2FzZSAnY3NzJzpcbiAgICAgICAgcmV0dXJuICd0ZXh0L2Nzcyc7XG4gICAgICBjYXNlICdjc3YnOlxuICAgICAgICByZXR1cm4gJ3RleHQvY3N2JztcbiAgICAgIGNhc2UgJ2RvYyc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vbXN3b3JkJztcbiAgICAgIGNhc2UgJ2RvY3gnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JztcbiAgICAgIGNhc2UgJ2VvdCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnO1xuICAgICAgY2FzZSAnZXB1Yic6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vZXB1Yit6aXAnO1xuICAgICAgY2FzZSAnZ3onOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL2d6aXAnO1xuICAgICAgY2FzZSAnaHRtJzpcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gJ3RleHQvaHRtbCc7XG4gICAgICBjYXNlICdpY3MnOlxuICAgICAgICByZXR1cm4gJ3RleHQvY2FsZW5kYXInO1xuICAgICAgY2FzZSAnamFyJzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnO1xuICAgICAgY2FzZSAnanMnOlxuICAgICAgICByZXR1cm4gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgIGNhc2UgJ2pzb25sZCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vbGQranNvbic7XG4gICAgICBjYXNlICdtaWQnOlxuICAgICAgY2FzZSAnbWlkaSc6XG4gICAgICAgIHJldHVybiAnYXVkaW8vbWlkaSc7XG4gICAgICBjYXNlICdtanMnOlxuICAgICAgICByZXR1cm4gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICBjYXNlICdtcDMnOlxuICAgICAgICByZXR1cm4gJ2F1ZGlvL21wZWcnO1xuICAgICAgY2FzZSAnbXA0JzpcbiAgICAgICAgcmV0dXJuICd2aWRlby9tcDQnO1xuICAgICAgY2FzZSAnbXBlZyc6XG4gICAgICAgIHJldHVybiAndmlkZW8vbXBlZyc7XG4gICAgICBjYXNlICdtcGtnJzpcbiAgICAgICAgcmV0dXJuICd0YXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWwnO1xuICAgICAgY2FzZSAnb2RwJzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbic7XG4gICAgICBjYXNlICdvZHMnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnO1xuICAgICAgY2FzZSAnb2R0JzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQnO1xuICAgICAgY2FzZSAnb2dhJzpcbiAgICAgICAgcmV0dXJuICdhdWRpby9vZ2cnO1xuICAgICAgY2FzZSAnb2d2JzpcbiAgICAgICAgcmV0dXJuICd2aWRlby9vZ2cnO1xuICAgICAgY2FzZSAnb2d4JzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi9vZ2cnO1xuICAgICAgY2FzZSAnb3B1cyc6XG4gICAgICAgIHJldHVybiAnYXVkaW8vb3B1cyc7XG4gICAgICBjYXNlICdvdGYnOlxuICAgICAgICByZXR1cm4gJ2ZvbnQvb3RmJztcbiAgICAgIGNhc2UgJ3BkZic6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vcGRmJztcbiAgICAgIGNhc2UgJ3BocCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1odHRwZC1waHAnO1xuICAgICAgY2FzZSAncHB0JzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc7XG4gICAgICBjYXNlICdwcHR4JzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcbiAgICAgIGNhc2UgJ3Jhcic6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vdm5kLnJhcic7XG4gICAgICBjYXNlICdydGYnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3J0Zic7XG4gICAgICBjYXNlICdzaCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1zaCc7XG4gICAgICBjYXNlICd0YXInOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3gtdGFyJztcbiAgICAgIGNhc2UgJ3RzJzpcbiAgICAgICAgcmV0dXJuICd2aWRlby9tcDJ0JztcbiAgICAgIGNhc2UgJ3R0Zic6XG4gICAgICAgIHJldHVybiAnZm9udC90dGYnO1xuICAgICAgY2FzZSAndHh0JzpcbiAgICAgICAgcmV0dXJuICd0ZXh0L3BsYWluJztcbiAgICAgIGNhc2UgJ3ZzZCc6XG4gICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vdm5kLnZpc2lvJztcbiAgICAgIGNhc2UgJ3dhdic6XG4gICAgICAgIHJldHVybiAnYXVkaW8vd2F2JztcbiAgICAgIGNhc2UgJ3dlYmEnOlxuICAgICAgICByZXR1cm4gJ2F1ZGlvL3dlYm0nO1xuICAgICAgY2FzZSAnd2VibSc6XG4gICAgICAgIHJldHVybiAndmlkZW8vd2VibSc7XG4gICAgICBjYXNlICd3b2ZmJzpcbiAgICAgICAgcmV0dXJuICdmb250L3dvZmYnO1xuICAgICAgY2FzZSAnd29mZjInOlxuICAgICAgICByZXR1cm4gJ2ZvbnQvd29mZjInO1xuICAgICAgY2FzZSAneGh0bWwnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCc7XG4gICAgICBjYXNlICd4bHMnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc7XG4gICAgICBjYXNlICd4bHN4JzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCc7XG4gICAgICBjYXNlICd4bWwnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3htbCc7XG4gICAgICBjYXNlICd4dWwnOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwnO1xuICAgICAgY2FzZSAnemlwJzpcbiAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi96aXAnO1xuICAgICAgY2FzZSAnM2dwJzpcbiAgICAgICAgcmV0dXJuICd2aWRlby8zZ3BwJztcbiAgICAgIGNhc2UgJzNnMic6XG4gICAgICAgIHJldHVybiAndmlkZW8vM2dwcDInO1xuICAgICAgY2FzZSAnN3onOlxuICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==
@@ -1,4 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudXRpbCc7XG4iXX0=
@@ -1,15 +0,0 @@
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
12
- type: Pipe,
13
- args: [{ name: 'etNormalizeGameResultType', standalone: true }]
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzVFLE1BQU0sT0FBTywyQkFBMkI7SUFEeEM7UUFFRSxjQUFTLEdBQUcsdUJBQXVCLENBQUM7S0FDckM7K0dBRlksMkJBQTJCOzZHQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZUdhbWVSZXN1bHRUeXBlIH0gZnJvbSAnLi9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS51dGlsJztcblxuQFBpcGUoeyBuYW1lOiAnZXROb3JtYWxpemVHYW1lUmVzdWx0VHlwZScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVHYW1lUmVzdWx0VHlwZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtID0gbm9ybWFsaXplR2FtZVJlc3VsdFR5cGU7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWRHYW1lUmVzdWx0VHlwZSBleHRlbmRzIFRyYW5zbGF0YWJsZSB7XG4gIHNob3J0Q29kZTogc3RyaW5nO1xufVxuIl19
@@ -1,34 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWdhbWUtcmVzdWx0LXR5cGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlL25vcm1hbGl6ZS1nYW1lLXJlc3VsdC10eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBbUIsRUFBbUMsRUFBRTtJQUM5RixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxZQUFZO1lBQ2YsT0FBTztnQkFDTCxJQUFJLEVBQUUsNkJBQTZCO2dCQUNuQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjthQUN6QixDQUFDO1FBRUosS0FBSyxTQUFTO1lBQ1osT0FBTztnQkFDTCxJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjthQUN6QixDQUFDO1FBRUosS0FBSyxhQUFhO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLGFBQWE7YUFDcEIsQ0FBQztRQUVKLEtBQUssU0FBUyxDQUFDO1FBQ2Y7WUFDRSxPQUFPO2dCQUNMLElBQUksRUFBRSw0QkFBNEI7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUM7SUFDTixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9ybWFsaXplZEdhbWVSZXN1bHRUeXBlIH0gZnJvbSAnLi9ub3JtYWxpemUtZ2FtZS1yZXN1bHQtdHlwZS50eXBlcyc7XG5cbi8vIFRPRE8oVFJCKTogQWRkIGNvcnJlY3QgdHlwZSBvbmNlIHByb3ZpZGVkIGJ5IEFQSVxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUdhbWVSZXN1bHRUeXBlID0gKHR5cGU6IHN0cmluZyB8IG51bGwpOiBOb3JtYWxpemVkR2FtZVJlc3VsdFR5cGUgfCBudWxsID0+IHtcbiAgaWYgKCF0eXBlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdleHRyYV90aW1lJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGkxOG46ICdnYW1lLXJlc3VsdC10eXBlLmV4dHJhLXRpbWUnLFxuICAgICAgICBzaG9ydENvZGU6ICdBRVQnLFxuICAgICAgICB0ZXh0OiAnQWZ0ZXIgRXh0cmEgVGltZScsXG4gICAgICB9O1xuXG4gICAgY2FzZSAncGVuYWx0eSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpMThuOiAnZ2FtZS1yZXN1bHQtdHlwZS5wZW5hbHR5JyxcbiAgICAgICAgc2hvcnRDb2RlOiAnUFNPJyxcbiAgICAgICAgdGV4dDogJ1BlbmFsdHkgc2hvb3RvdXQnLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ2dvbGRlbl9nb2FsJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGkxOG46ICdnYW1lLXJlc3VsdC10eXBlLmdvbGRlbi1nb2FsJyxcbiAgICAgICAgc2hvcnRDb2RlOiAnR0cnLFxuICAgICAgICB0ZXh0OiAnR29sZGVuIEdvYWwnLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpMThuOiAnZ2FtZS1yZXN1bHQtdHlwZS5mdWxsLXRpbWUnLFxuICAgICAgICBzaG9ydENvZGU6ICdGVCcsXG4gICAgICAgIHRleHQ6ICdGdWxsIFRpbWUnLFxuICAgICAgfTtcbiAgfVxufTtcbiJdfQ==
@@ -1,4 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy51dGlsJztcbiJdfQ==
@@ -1,15 +0,0 @@
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
12
- type: Pipe,
13
- args: [{ name: 'etNormalizeMatchParticipants', standalone: true }]
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR2pGLE1BQU0sT0FBTyw4QkFBOEI7SUFEM0M7UUFFRSxjQUFTLEdBQUcsMEJBQTBCLENBQUM7S0FDeEM7K0dBRlksOEJBQThCOzZHQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBRDFDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzIH0gZnJvbSAnLi9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnV0aWwnO1xuXG5AUGlwZSh7IG5hbWU6ICdldE5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnRzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0gPSBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50cztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL25vcm1hbGl6ZS1tYXRjaC1wYXJ0aWNpcGFudHMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydGljaXBhbnRWaWV3VW5pb24gfSBmcm9tICdAZXRobGV0ZS90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGFibGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnRzIHtcbiAgaG9tZTogTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQgfCBudWxsO1xuICBhd2F5OiBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudCB8IG51bGw7XG59XG5cbnR5cGUgTm9ybWFsaXplZFBhcnRpY2lwYW50VHlwZSA9ICd0ZWFtJyB8ICdwbGF5ZXInIHwgJ3Vua25vd24nO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudCA9XG4gIHwgKHtcbiAgICAgIHR5cGU6ICd0YmQnO1xuICAgICAgcGFydGljaXBhbnRUeXBlOiBOb3JtYWxpemVkUGFydGljaXBhbnRUeXBlO1xuICAgICAgZGF0YTogUGFydGljaXBhbnRWaWV3VW5pb24gfCBudWxsO1xuICAgIH0gJiBUcmFuc2xhdGFibGUpXG4gIHwge1xuICAgICAgdHlwZTogJ3BhcnRpY2lwYW50JztcbiAgICAgIHBhcnRpY2lwYW50VHlwZTogTm9ybWFsaXplZFBhcnRpY2lwYW50VHlwZTtcbiAgICAgIGRhdGE6IFBhcnRpY2lwYW50Vmlld1VuaW9uO1xuICAgIH1cbiAgfCAoe1xuICAgICAgdHlwZTogJ25vbmUnO1xuICAgICAgcGFydGljaXBhbnRUeXBlOiBOb3JtYWxpemVkUGFydGljaXBhbnRUeXBlO1xuICAgICAgZGF0YTogUGFydGljaXBhbnRWaWV3VW5pb24gfCBudWxsO1xuICAgIH0gJiBUcmFuc2xhdGFibGUpO1xuIl19
@@ -1,47 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy9ub3JtYWxpemUtbWF0Y2gtcGFydGljaXBhbnRzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBMkIsRUFBc0MsRUFBRTtJQUM1RyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQzlDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0tBQy9DLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxLQUEyQixFQUMzQixJQUFxQixFQUNjLEVBQUU7SUFDckMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxTQUFTLENBQUM7SUFFMUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLElBQUksVUFBVSxnREFBOEIsSUFBSSxVQUFVLDRDQUE0QixFQUFFLENBQUM7WUFDdkYsT0FBTztnQkFDTCxlQUFlO2dCQUNmLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsV0FBVzthQUNsQixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPO2dCQUNMLGVBQWU7Z0JBQ2YsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLFdBQVc7YUFDbEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU87WUFDTCxlQUFlO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFLFdBQVc7U0FDbEIsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRjaExpc3RWaWV3IH0gZnJvbSAnQGV0aGxldGUvdHlwZXMnO1xuaW1wb3J0IHsgTWF0Y2hTdGF0ZVR5cGUsIG5vcm1hbGl6ZU1hdGNoU3RhdGUgfSBmcm9tICcuLi9ub3JtYWxpemUtbWF0Y2gtc3RhdGUnO1xuaW1wb3J0IHsgTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQsIE5vcm1hbGl6ZWRNYXRjaFBhcnRpY2lwYW50cyB9IGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXBhcnRpY2lwYW50cy50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50cyA9IChtYXRjaDogTWF0Y2hMaXN0VmlldyB8IG51bGwpOiBOb3JtYWxpemVkTWF0Y2hQYXJ0aWNpcGFudHMgfCBudWxsID0+IHtcbiAgY29uc3QgbWF0Y2hTdGF0ZSA9IG5vcm1hbGl6ZU1hdGNoU3RhdGUobWF0Y2gpO1xuXG4gIGlmICghbWF0Y2ggfHwgIW1hdGNoU3RhdGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaG9tZTogbm9ybWFsaXplTWF0Y2hQYXJ0aWNpcGFudChtYXRjaCwgJ2hvbWUnKSxcbiAgICBhd2F5OiBub3JtYWxpemVNYXRjaFBhcnRpY2lwYW50KG1hdGNoLCAnYXdheScpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZU1hdGNoUGFydGljaXBhbnQgPSAoXG4gIG1hdGNoOiBNYXRjaExpc3RWaWV3IHwgbnVsbCxcbiAgc2lkZTogJ2hvbWUnIHwgJ2F3YXknLFxuKTogTm9ybWFsaXplZE1hdGNoUGFydGljaXBhbnQgfCBudWxsID0+IHtcbiAgY29uc3QgbWF0Y2hTdGF0ZSA9IG5vcm1hbGl6ZU1hdGNoU3RhdGUobWF0Y2gpO1xuXG4gIGlmICghbWF0Y2ggfHwgIW1hdGNoU3RhdGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHBhcnRpY2lwYW50ID0gbWF0Y2hbc2lkZV07XG4gIGNvbnN0IHBhcnRpY2lwYW50VHlwZSA9IG1hdGNoLmhvbWU/LnR5cGUgPz8gbWF0Y2guYXdheT8udHlwZSA/PyAndW5rbm93bic7XG5cbiAgaWYgKCFwYXJ0aWNpcGFudCkge1xuICAgIGlmIChtYXRjaFN0YXRlID09PSBNYXRjaFN0YXRlVHlwZS5QT1NUX01BVENIIHx8IG1hdGNoU3RhdGUgPT09IE1hdGNoU3RhdGVUeXBlLkFVVE9fV0lOKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aWNpcGFudFR5cGUsXG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgaTE4bjogJ21hdGNoLXBhcnRpY2lwYW50Lm5vbmUnLFxuICAgICAgICB0ZXh0OiAnTm8gb3Bwb25lbnQnLFxuICAgICAgICBkYXRhOiBwYXJ0aWNpcGFudCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRpY2lwYW50VHlwZSxcbiAgICAgICAgdHlwZTogJ3RiZCcsXG4gICAgICAgIGkxOG46ICdtYXRjaC1wYXJ0aWNpcGFudC50YmQnLFxuICAgICAgICB0ZXh0OiAnVEJEJyxcbiAgICAgICAgZGF0YTogcGFydGljaXBhbnQsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFydGljaXBhbnRUeXBlLFxuICAgICAgdHlwZTogJ3BhcnRpY2lwYW50JyxcbiAgICAgIGRhdGE6IHBhcnRpY2lwYW50LFxuICAgIH07XG4gIH1cbn07XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './normalize-match-score.pipe';
2
- export * from './normalize-match-score.types';
3
- export * from './normalize-match-score.util';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy9ub3JtYWxpemUtbWF0Y2gtc2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZS1tYXRjaC1zY29yZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXNjb3JlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ybWFsaXplLW1hdGNoLXNjb3JlLnV0aWwnO1xuIl19