@koobiq/components 18.3.0 → 18.4.1

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 (162) hide show
  1. package/accordion/accordion-tokens.scss +0 -2
  2. package/alert/alert-tokens.scss +0 -2
  3. package/autocomplete/autocomplete-tokens.scss +0 -2
  4. package/badge/badge-tokens.scss +0 -2
  5. package/button/button-tokens.scss +7 -2
  6. package/button/button.scss +0 -2
  7. package/button-toggle/button-toggle-tokens.scss +0 -2
  8. package/checkbox/checkbox-tokens.scss +0 -2
  9. package/code-block/_code-block-theme.scss +1 -1
  10. package/code-block/actionbar.component.d.ts +14 -4
  11. package/code-block/code-block-tokens.scss +4 -6
  12. package/code-block/code-block.component.d.ts +12 -15
  13. package/code-block/code-block.types.d.ts +12 -0
  14. package/core/common-behaviors/color.d.ts +1 -1
  15. package/core/formatters/date/formatter.pipe.d.ts +82 -65
  16. package/core/formatters/index.d.ts +1 -1
  17. package/core/forms/forms-tokens.scss +0 -2
  18. package/core/forms/validators.d.ts +21 -0
  19. package/core/locales/en-US.d.ts +13 -0
  20. package/core/locales/es-LA.d.ts +13 -0
  21. package/core/locales/fa-IR.d.ts +13 -0
  22. package/core/locales/locale-service.d.ts +78 -0
  23. package/core/locales/pt-BR.d.ts +13 -0
  24. package/core/locales/ru-RU.d.ts +13 -0
  25. package/core/locales/zh-CN.d.ts +13 -0
  26. package/core/option/optgroup-tokens.scss +0 -2
  27. package/core/option/option-action-tokens.scss +0 -2
  28. package/core/option/option-tokens.scss +0 -2
  29. package/core/select/common.d.ts +2 -0
  30. package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +0 -2
  31. package/core/services/theme.service.d.ts +2 -2
  32. package/core/styles/theming/_components-theming.scss +1 -1
  33. package/core/styles/theming/_theming.scss +1 -1
  34. package/core/styles/theming/scrollbar-tokens.scss +0 -2
  35. package/datepicker/_datepicker-theme.scss +1 -1
  36. package/datepicker/datepicker-tokens.scss +2 -4
  37. package/divider/divider-tokens.scss +0 -2
  38. package/dl/dl-tokens.scss +0 -2
  39. package/dropdown/_dropdown-theme.scss +1 -1
  40. package/dropdown/dropdown-tokens.scss +1 -3
  41. package/empty-state/empty-state-tokens.scss +0 -2
  42. package/esm2022/button/button.component.mjs +2 -2
  43. package/esm2022/code-block/actionbar.component.mjs +35 -8
  44. package/esm2022/code-block/code-block.component.mjs +28 -19
  45. package/esm2022/code-block/code-block.types.mjs +5 -2
  46. package/esm2022/core/common-behaviors/color.mjs +2 -2
  47. package/esm2022/core/formatters/date/formatter.pipe.mjs +280 -120
  48. package/esm2022/core/formatters/index.mjs +65 -12
  49. package/esm2022/core/forms/validators.mjs +32 -1
  50. package/esm2022/core/locales/en-US.mjs +14 -1
  51. package/esm2022/core/locales/es-LA.mjs +14 -1
  52. package/esm2022/core/locales/fa-IR.mjs +14 -1
  53. package/esm2022/core/locales/pt-BR.mjs +14 -1
  54. package/esm2022/core/locales/ru-RU.mjs +14 -1
  55. package/esm2022/core/locales/zh-CN.mjs +14 -1
  56. package/esm2022/core/select/common.mjs +7 -1
  57. package/esm2022/core/services/theme.service.mjs +3 -3
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  60. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  61. package/esm2022/file-upload/file-upload.mjs +2 -3
  62. package/esm2022/file-upload/multiple-file-upload.component.mjs +57 -17
  63. package/esm2022/file-upload/single-file-upload.component.mjs +31 -19
  64. package/esm2022/form-field/validate.directive.mjs +21 -1
  65. package/esm2022/markdown/markdown.values.mjs +4 -2
  66. package/esm2022/modal/modal.component.mjs +2 -2
  67. package/esm2022/navbar/navbar-item.component.mjs +2 -2
  68. package/esm2022/navbar/navbar.component.mjs +2 -2
  69. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  70. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  71. package/esm2022/popover/popover.component.mjs +3 -3
  72. package/esm2022/select/select.component.mjs +1 -1
  73. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  74. package/esm2022/splitter/splitter.component.mjs +2 -2
  75. package/esm2022/timezone/timezone-select.component.mjs +20 -10
  76. package/esm2022/toast/toast.component.mjs +3 -3
  77. package/esm2022/tooltip/tooltip.component.mjs +13 -1
  78. package/fesm2022/koobiq-components-button.mjs +2 -2
  79. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-code-block.mjs +58 -24
  81. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-core.mjs +461 -131
  83. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-datepicker.mjs +2 -2
  85. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-dropdown.mjs +2 -2
  87. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-file-upload.mjs +76 -27
  89. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-form-field.mjs +20 -0
  91. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-markdown.mjs +3 -1
  93. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-modal.mjs +2 -2
  95. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-navbar.mjs +6 -6
  97. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-popover.mjs +4 -4
  99. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  102. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-splitter.mjs +1 -1
  104. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-timezone.mjs +18 -8
  106. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-toast.mjs +2 -2
  108. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-tooltip.mjs +12 -0
  110. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  111. package/file-upload/_file-upload-theme.scss +6 -10
  112. package/file-upload/file-upload-tokens.scss +0 -2
  113. package/file-upload/file-upload.d.ts +3 -0
  114. package/file-upload/file-upload.scss +6 -0
  115. package/file-upload/multiple-file-upload.component.d.ts +28 -5
  116. package/file-upload/multiple-file-upload.component.scss +0 -4
  117. package/file-upload/single-file-upload.component.d.ts +13 -4
  118. package/file-upload/single-file-upload.component.scss +0 -12
  119. package/form-field/form-field-tokens.scss +0 -2
  120. package/form-field/hint-tokens.scss +0 -2
  121. package/form-field/validate.directive.d.ts +20 -0
  122. package/icon/icon-button-tokens.scss +0 -2
  123. package/icon/icon-item-tokens.scss +0 -2
  124. package/icon/icon-tokens.scss +0 -2
  125. package/input/input-tokens.scss +0 -2
  126. package/link/link-tokens.scss +0 -2
  127. package/list/list-tokens.scss +0 -2
  128. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  129. package/markdown/markdown-tokens.scss +0 -2
  130. package/markdown/markdown.values.d.ts +3 -0
  131. package/modal/_modal-theme.scss +1 -1
  132. package/modal/modal-tokens.scss +2 -4
  133. package/navbar/_navbar-theme.scss +1 -1
  134. package/navbar/navbar-tokens.scss +2 -10
  135. package/package.json +4 -4
  136. package/popover/_popover-theme.scss +2 -2
  137. package/popover/popover-tokens.scss +2 -4
  138. package/popover/popover.scss +2 -2
  139. package/progress-bar/progress-bar-tokens.scss +0 -2
  140. package/progress-spinner/progress-spinner-tokens.scss +0 -2
  141. package/radio/radio-tokens.scss +0 -2
  142. package/risk-level/risk-level-tokens.scss +0 -2
  143. package/schematics/ng-add/index.js +2 -2
  144. package/scrollbar/scrollbar-tokens.scss +0 -2
  145. package/select/select-tokens.scss +0 -2
  146. package/select/select.component.d.ts +1 -1
  147. package/sidepanel/_sidepanel-theme.scss +1 -1
  148. package/sidepanel/sidepanel-tokens.scss +2 -4
  149. package/table/table-tokens.scss +0 -2
  150. package/tabs/tabs-tokens.scss +0 -2
  151. package/tags/tag-input-tokens.scss +0 -2
  152. package/tags/tag-tokens.scss +0 -2
  153. package/textarea/textarea-tokens.scss +0 -2
  154. package/timezone/timezone-option-tokens.scss +0 -2
  155. package/timezone/timezone-select.component.d.ts +5 -6
  156. package/toast/toast-tokens.scss +4 -3
  157. package/toggle/toggle-tokens.scss +0 -2
  158. package/tooltip/tooltip-tokens.scss +0 -2
  159. package/tooltip/tooltip.component.d.ts +9 -0
  160. package/tree/tree-tokens.scss +0 -2
  161. package/tree-select/tree-select-tokens.scss +0 -2
  162. package/splitter/splitter-tokens.scss +0 -1
@@ -1,220 +1,380 @@
1
- import { Pipe } from '@angular/core';
1
+ import { inject, Pipe } from '@angular/core';
2
2
  import { DateAdapter } from '../../datetime';
3
3
  import { DateFormatter } from './formatter';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../datetime";
6
- import * as i2 from "./formatter";
7
- export class AbsoluteDateFormatterPipe {
8
- constructor(adapter, formatter) {
9
- this.adapter = adapter;
10
- this.formatter = formatter;
5
+ export class BaseFormatterPipe {
6
+ constructor() {
7
+ this.adapter = inject((DateAdapter));
8
+ this.formatter = inject((DateFormatter));
11
9
  }
10
+ }
11
+ export class AbsoluteDateFormatterPipe extends BaseFormatterPipe {
12
12
  transform(value, currYear) {
13
13
  const date = this.adapter.deserialize(value);
14
14
  return date ? this.formatter.absoluteLongDate(date, currYear) : '';
15
15
  }
16
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterPipe, name: "absoluteLongDate" }); }
16
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterPipe, isStandalone: true, name: "absoluteLongDate" }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterPipe, decorators: [{
20
20
  type: Pipe,
21
- args: [{ name: 'absoluteLongDate' }]
22
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
23
- export class AbsoluteDateTimeFormatterPipe {
24
- constructor(adapter, formatter) {
25
- this.adapter = adapter;
26
- this.formatter = formatter;
27
- }
21
+ args: [{
22
+ standalone: true,
23
+ name: 'absoluteLongDate'
24
+ }]
25
+ }] });
26
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
27
+ export class AbsoluteDateFormatterImpurePipe extends AbsoluteDateFormatterPipe {
28
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
29
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateImpurePipe", pure: false }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, decorators: [{
32
+ type: Pipe,
33
+ args: [{
34
+ standalone: true,
35
+ name: 'absoluteLongDateImpurePipe',
36
+ pure: false
37
+ }]
38
+ }] });
39
+ export class AbsoluteDateTimeFormatterPipe extends BaseFormatterPipe {
28
40
  transform(value, options) {
29
41
  const date = this.adapter.deserialize(value);
30
42
  return date ? this.formatter.absoluteLongDateTime(date, options) : '';
31
43
  }
32
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
33
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, name: "absoluteLongDateTime" }); }
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
45
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, isStandalone: true, name: "absoluteLongDateTime" }); }
34
46
  }
35
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, decorators: [{
36
48
  type: Pipe,
37
- args: [{ name: 'absoluteLongDateTime' }]
38
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
39
- export class AbsoluteDateShortFormatterPipe {
40
- constructor(adapter, formatter) {
41
- this.adapter = adapter;
42
- this.formatter = formatter;
43
- }
49
+ args: [{
50
+ standalone: true,
51
+ name: 'absoluteLongDateTime'
52
+ }]
53
+ }] });
54
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
55
+ export class AbsoluteDateTimeFormatterImpurePipe extends AbsoluteDateTimeFormatterPipe {
56
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
57
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateTimeImpurePipe", pure: false }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, decorators: [{
60
+ type: Pipe,
61
+ args: [{
62
+ standalone: true,
63
+ name: 'absoluteLongDateTimeImpurePipe',
64
+ pure: false
65
+ }]
66
+ }] });
67
+ export class AbsoluteDateShortFormatterPipe extends BaseFormatterPipe {
44
68
  transform(value, currYear) {
45
69
  const date = this.adapter.deserialize(value);
46
70
  return date ? this.formatter.absoluteShortDate(date, currYear) : '';
47
71
  }
48
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
49
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterPipe, name: "absoluteShortDate" }); }
72
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
73
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterPipe, isStandalone: true, name: "absoluteShortDate" }); }
50
74
  }
51
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterPipe, decorators: [{
52
76
  type: Pipe,
53
- args: [{ name: 'absoluteShortDate' }]
54
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
55
- export class AbsoluteShortDateTimeFormatterPipe {
56
- constructor(adapter, formatter) {
57
- this.adapter = adapter;
58
- this.formatter = formatter;
59
- }
77
+ args: [{
78
+ standalone: true,
79
+ name: 'absoluteShortDate'
80
+ }]
81
+ }] });
82
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
83
+ export class AbsoluteDateShortFormatterImpurePipe extends AbsoluteDateShortFormatterPipe {
84
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
85
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateImpurePipe", pure: false }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, decorators: [{
88
+ type: Pipe,
89
+ args: [{
90
+ standalone: true,
91
+ name: 'absoluteShortDateImpurePipe',
92
+ pure: false
93
+ }]
94
+ }] });
95
+ export class AbsoluteShortDateTimeFormatterPipe extends BaseFormatterPipe {
60
96
  transform(value, options) {
61
97
  const date = this.adapter.deserialize(value);
62
98
  return date ? this.formatter.absoluteShortDateTime(date, options) : '';
63
99
  }
64
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
65
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, name: "absoluteShortDateTime" }); }
100
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
101
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, isStandalone: true, name: "absoluteShortDateTime" }); }
66
102
  }
67
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, decorators: [{
68
104
  type: Pipe,
69
- args: [{ name: 'absoluteShortDateTime' }]
70
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
71
- export class RelativeDateFormatterPipe {
72
- constructor(adapter, formatter) {
73
- this.adapter = adapter;
74
- this.formatter = formatter;
75
- }
105
+ args: [{
106
+ standalone: true,
107
+ name: 'absoluteShortDateTime'
108
+ }]
109
+ }] });
110
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
111
+ export class AbsoluteShortDateTimeFormatterImpurePipe extends AbsoluteShortDateTimeFormatterPipe {
112
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
113
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateTimeImpurePipe", pure: false }); }
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, decorators: [{
116
+ type: Pipe,
117
+ args: [{
118
+ standalone: true,
119
+ name: 'absoluteShortDateTimeImpurePipe',
120
+ pure: false
121
+ }]
122
+ }] });
123
+ export class RelativeDateFormatterPipe extends BaseFormatterPipe {
76
124
  transform(value) {
77
125
  const date = this.adapter.deserialize(value);
78
126
  return date ? this.formatter.relativeLongDate(date) : '';
79
127
  }
80
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
81
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterPipe, name: "relativeLongDate" }); }
128
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
129
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterPipe, isStandalone: true, name: "relativeLongDate" }); }
82
130
  }
83
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterPipe, decorators: [{
84
132
  type: Pipe,
85
- args: [{ name: 'relativeLongDate' }]
86
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
87
- export class RelativeDateTimeFormatterPipe {
88
- constructor(adapter, formatter) {
89
- this.adapter = adapter;
90
- this.formatter = formatter;
91
- }
133
+ args: [{
134
+ standalone: true,
135
+ name: 'relativeLongDate'
136
+ }]
137
+ }] });
138
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
139
+ export class RelativeDateFormatterImpurePipe extends RelativeDateFormatterPipe {
140
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
141
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterImpurePipe, isStandalone: true, name: "relativeLongDateImpurePipe", pure: false }); }
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateFormatterImpurePipe, decorators: [{
144
+ type: Pipe,
145
+ args: [{
146
+ standalone: true,
147
+ name: 'relativeLongDateImpurePipe',
148
+ pure: false
149
+ }]
150
+ }] });
151
+ export class RelativeDateTimeFormatterPipe extends BaseFormatterPipe {
92
152
  transform(value, options) {
93
153
  const date = this.adapter.deserialize(value);
94
154
  return date ? this.formatter.relativeLongDateTime(date, options) : '';
95
155
  }
96
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
97
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterPipe, name: "relativeLongDateTime" }); }
156
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
157
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterPipe, isStandalone: true, name: "relativeLongDateTime" }); }
98
158
  }
99
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterPipe, decorators: [{
100
160
  type: Pipe,
101
- args: [{ name: 'relativeLongDateTime' }]
102
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
103
- export class RelativeShortDateFormatterPipe {
104
- constructor(adapter, formatter) {
105
- this.adapter = adapter;
106
- this.formatter = formatter;
107
- }
161
+ args: [{
162
+ standalone: true,
163
+ name: 'relativeLongDateTime'
164
+ }]
165
+ }] });
166
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
167
+ export class RelativeDateTimeFormatterImpurePipe extends RelativeDateTimeFormatterPipe {
168
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
169
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeLongDateTimeImpurePipe", pure: false }); }
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, decorators: [{
172
+ type: Pipe,
173
+ args: [{
174
+ standalone: true,
175
+ name: 'relativeLongDateTimeImpurePipe',
176
+ pure: false
177
+ }]
178
+ }] });
179
+ export class RelativeShortDateFormatterPipe extends BaseFormatterPipe {
108
180
  transform(value) {
109
181
  const date = this.adapter.deserialize(value);
110
182
  return date ? this.formatter.relativeShortDate(date) : '';
111
183
  }
112
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
113
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterPipe, name: "relativeShortDate" }); }
184
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
185
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterPipe, isStandalone: true, name: "relativeShortDate" }); }
114
186
  }
115
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterPipe, decorators: [{
116
188
  type: Pipe,
117
- args: [{ name: 'relativeShortDate' }]
118
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
119
- export class RelativeShortDateTimeFormatterPipe {
120
- constructor(adapter, formatter) {
121
- this.adapter = adapter;
122
- this.formatter = formatter;
123
- }
189
+ args: [{
190
+ standalone: true,
191
+ name: 'relativeShortDate'
192
+ }]
193
+ }] });
194
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
195
+ export class RelativeShortDateFormatterImpurePipe extends RelativeShortDateFormatterPipe {
196
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
197
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, isStandalone: true, name: "relativeShortDateImpurePipe", pure: false }); }
198
+ }
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, decorators: [{
200
+ type: Pipe,
201
+ args: [{
202
+ standalone: true,
203
+ name: 'relativeShortDateImpurePipe',
204
+ pure: false
205
+ }]
206
+ }] });
207
+ export class RelativeShortDateTimeFormatterPipe extends BaseFormatterPipe {
124
208
  transform(value, options) {
125
209
  const date = this.adapter.deserialize(value);
126
210
  return date ? this.formatter.relativeShortDateTime(date, options) : '';
127
211
  }
128
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
129
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, name: "relativeShortDateTime" }); }
212
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
213
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, isStandalone: true, name: "relativeShortDateTime" }); }
130
214
  }
131
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, decorators: [{
132
216
  type: Pipe,
133
- args: [{ name: 'relativeShortDateTime' }]
134
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
135
- export class RangeDateFormatterPipe {
136
- constructor(adapter, formatter) {
137
- this.adapter = adapter;
138
- this.formatter = formatter;
139
- }
217
+ args: [{
218
+ standalone: true,
219
+ name: 'relativeShortDateTime'
220
+ }]
221
+ }] });
222
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
223
+ export class RelativeShortDateTimeFormatterImpurePipe extends RelativeShortDateTimeFormatterPipe {
224
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
225
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeShortDateTimeImpurePipe", pure: false }); }
226
+ }
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, decorators: [{
228
+ type: Pipe,
229
+ args: [{
230
+ standalone: true,
231
+ name: 'relativeShortDateTimeImpurePipe',
232
+ pure: false
233
+ }]
234
+ }] });
235
+ export class RangeDateFormatterPipe extends BaseFormatterPipe {
140
236
  transform([value1, value2]) {
141
237
  const date1 = this.adapter.deserialize(value1);
142
238
  const date2 = this.adapter.deserialize(value2);
143
239
  return this.formatter.rangeLongDate(date1, date2);
144
240
  }
145
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
146
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterPipe, name: "rangeLongDate" }); }
241
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
242
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterPipe, isStandalone: true, name: "rangeLongDate" }); }
147
243
  }
148
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterPipe, decorators: [{
149
245
  type: Pipe,
150
- args: [{ name: 'rangeLongDate' }]
151
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
152
- export class RangeShortDateFormatterPipe {
153
- constructor(adapter, formatter) {
154
- this.adapter = adapter;
155
- this.formatter = formatter;
156
- }
246
+ args: [{
247
+ standalone: true,
248
+ name: 'rangeLongDate'
249
+ }]
250
+ }] });
251
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
252
+ export class RangeDateFormatterImpurePipe extends RangeDateFormatterPipe {
253
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
254
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterImpurePipe, isStandalone: true, name: "rangeLongDateImpurePipe", pure: false }); }
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateFormatterImpurePipe, decorators: [{
257
+ type: Pipe,
258
+ args: [{
259
+ standalone: true,
260
+ name: 'rangeLongDateImpurePipe',
261
+ pure: false
262
+ }]
263
+ }] });
264
+ export class RangeShortDateFormatterPipe extends BaseFormatterPipe {
157
265
  transform([value1, value2]) {
158
266
  const date1 = this.adapter.deserialize(value1);
159
267
  const date2 = this.adapter.deserialize(value2);
160
268
  return this.formatter.rangeShortDate(date1, date2);
161
269
  }
162
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
163
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterPipe, name: "rangeShortDate" }); }
270
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
271
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterPipe, isStandalone: true, name: "rangeShortDate" }); }
164
272
  }
165
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterPipe, decorators: [{
166
274
  type: Pipe,
167
- args: [{ name: 'rangeShortDate' }]
168
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
169
- export class RangeDateTimeFormatterPipe {
170
- constructor(adapter, formatter) {
171
- this.adapter = adapter;
172
- this.formatter = formatter;
173
- }
275
+ args: [{
276
+ standalone: true,
277
+ name: 'rangeShortDate'
278
+ }]
279
+ }] });
280
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
281
+ export class RangeShortDateFormatterImpurePipe extends RangeShortDateFormatterPipe {
282
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
283
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterImpurePipe, isStandalone: true, name: "rangeShortDateImpurePipe", pure: false }); }
284
+ }
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateFormatterImpurePipe, decorators: [{
286
+ type: Pipe,
287
+ args: [{
288
+ standalone: true,
289
+ name: 'rangeShortDateImpurePipe',
290
+ pure: false
291
+ }]
292
+ }] });
293
+ export class RangeDateTimeFormatterPipe extends BaseFormatterPipe {
174
294
  transform([value1, value2], options) {
175
295
  const date1 = this.adapter.deserialize(value1);
176
296
  const date2 = this.adapter.deserialize(value2);
177
297
  return this.formatter.rangeLongDateTime(date1, date2, options);
178
298
  }
179
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
180
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterPipe, name: "rangeLongDateTime" }); }
299
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
300
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterPipe, isStandalone: true, name: "rangeLongDateTime" }); }
181
301
  }
182
302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterPipe, decorators: [{
183
303
  type: Pipe,
184
- args: [{ name: 'rangeLongDateTime' }]
185
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
186
- export class RangeMiddleDateTimeFormatterPipe {
187
- constructor(adapter, formatter) {
188
- this.adapter = adapter;
189
- this.formatter = formatter;
190
- }
304
+ args: [{
305
+ standalone: true,
306
+ name: 'rangeLongDateTime'
307
+ }]
308
+ }] });
309
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
310
+ export class RangeDateTimeFormatterImpurePipe extends RangeDateTimeFormatterPipe {
311
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
312
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeLongDateTimeImpurePipe", pure: false }); }
313
+ }
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, decorators: [{
315
+ type: Pipe,
316
+ args: [{
317
+ standalone: true,
318
+ name: 'rangeLongDateTimeImpurePipe',
319
+ pure: false
320
+ }]
321
+ }] });
322
+ export class RangeMiddleDateTimeFormatterPipe extends BaseFormatterPipe {
191
323
  transform([value1, value2], options) {
192
324
  const date1 = this.adapter.deserialize(value1);
193
325
  const date2 = this.adapter.deserialize(value2);
194
326
  return this.formatter.rangeMiddleDateTime(date1, date2, options);
195
327
  }
196
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
197
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, name: "rangeMiddleDateTime" }); }
328
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
329
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, isStandalone: true, name: "rangeMiddleDateTime" }); }
198
330
  }
199
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, decorators: [{
200
332
  type: Pipe,
201
- args: [{ name: 'rangeMiddleDateTime' }]
202
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
203
- export class RangeShortDateTimeFormatterPipe {
204
- constructor(adapter, formatter) {
205
- this.adapter = adapter;
206
- this.formatter = formatter;
207
- }
333
+ args: [{
334
+ standalone: true,
335
+ name: 'rangeMiddleDateTime'
336
+ }]
337
+ }] });
338
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
339
+ export class RangeMiddleDateTimeFormatterImpurePipe extends RangeMiddleDateTimeFormatterPipe {
340
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
341
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeMiddleDateTimeImpurePipe", pure: false }); }
342
+ }
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, decorators: [{
344
+ type: Pipe,
345
+ args: [{
346
+ standalone: true,
347
+ name: 'rangeMiddleDateTimeImpurePipe',
348
+ pure: false
349
+ }]
350
+ }] });
351
+ export class RangeShortDateTimeFormatterPipe extends BaseFormatterPipe {
208
352
  transform([value1, value2], options) {
209
353
  const date1 = this.adapter.deserialize(value1);
210
354
  const date2 = this.adapter.deserialize(value2);
211
355
  return this.formatter.rangeShortDateTime(date1, date2, options);
212
356
  }
213
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: i2.DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe }); }
214
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterPipe, name: "rangeShortDateTime" }); }
357
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
358
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterPipe, isStandalone: true, name: "rangeShortDateTime" }); }
215
359
  }
216
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterPipe, decorators: [{
217
361
  type: Pipe,
218
- args: [{ name: 'rangeShortDateTime' }]
219
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DateFormatter }] });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvZm9ybWF0dGVycy9kYXRlL2Zvcm1hdHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBRzVDLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFDWSxPQUF1QixFQUN2QixTQUEyQjtRQUQzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUNwQyxDQUFDO0lBRUosU0FBUyxDQUFDLEtBQWlCLEVBQUUsUUFBa0I7UUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsQ0FBQztpSUFWUSx5QkFBeUI7K0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTs7QUFlbEMsTUFBTSxPQUFPLDZCQUE2QjtJQUN0QyxZQUNZLE9BQXVCLEVBQ3ZCLFNBQTJCO1FBRDNCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQ3BDLENBQUM7SUFFSixTQUFTLENBQUMsS0FBaUIsRUFBRSxPQUF5QjtRQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMs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SUFDL0UsQ0FBQztpSUFYUSxnQ0FBZ0M7K0hBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTs7QUFnQnJDLE1BQU0sT0FBTywrQkFBK0I7SUFDeEMsWUFDWSxPQUF1QixFQUN2QixTQUEyQjtRQUQzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUNwQyxDQUFDO0lBRUosU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBaUIsRUFBRSxPQUF5QjtRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO2lJQVhRLCtCQUErQjsrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnQGtvb2JpcS9kYXRlLWZvcm1hdHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2RhdGV0aW1lJztcbmltcG9ydCB7IERhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2Zvcm1hdHRlcic7XG5cbkBQaXBlKHsgbmFtZTogJ2Fic29sdXRlTG9uZ0RhdGUnIH0pXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVEYXRlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBwcml2YXRlIGZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlcjxEPlxuICAgICkge31cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogRCB8IHN0cmluZywgY3VyclllYXI/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5hYnNvbHV0ZUxvbmdEYXRlKGRhdGUsIGN1cnJZZWFyKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAnYWJzb2x1dGVMb25nRGF0ZVRpbWUnIH0pXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLmFic29sdXRlTG9uZ0RhdGVUaW1lKGRhdGUsIG9wdGlvbnMpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7IG5hbWU6ICdhYnNvbHV0ZVNob3J0RGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBBYnNvbHV0ZURhdGVTaG9ydEZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIGN1cnJZZWFyPzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5mb3JtYXR0ZXIuYWJzb2x1dGVTaG9ydERhdGUoZGF0ZSwgY3VyclllYXIpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7IG5hbWU6ICdhYnNvbHV0ZVNob3J0RGF0ZVRpbWUnIH0pXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVTaG9ydERhdGVUaW1lRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBwcml2YXRlIGZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlcjxEPlxuICAgICkge31cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogRCB8IHN0cmluZywgb3B0aW9ucz86IERhdGVUaW1lT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5mb3JtYXR0ZXIuYWJzb2x1dGVTaG9ydERhdGVUaW1lKGRhdGUsIG9wdGlvbnMpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7IG5hbWU6ICdyZWxhdGl2ZUxvbmdEYXRlJyB9KVxuZXhwb3J0IGNsYXNzIFJlbGF0aXZlRGF0ZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLnJlbGF0aXZlTG9uZ0RhdGUoZGF0ZSkgOiAnJztcbiAgICB9XG59XG5cbkBQaXBlKHsgbmFtZTogJ3JlbGF0aXZlTG9uZ0RhdGVUaW1lJyB9KVxuZXhwb3J0IGNsYXNzIFJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4sXG4gICAgICAgIHByaXZhdGUgZm9ybWF0dGVyOiBEYXRlRm9ybWF0dGVyPEQ+XG4gICAgKSB7fVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEIHwgc3RyaW5nLCBvcHRpb25zPzogRGF0ZVRpbWVPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5yZWxhdGl2ZUxvbmdEYXRlVGltZShkYXRlLCBvcHRpb25zKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAncmVsYXRpdmVTaG9ydERhdGUnIH0pXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVTaG9ydERhdGVGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4sXG4gICAgICAgIHByaXZhdGUgZm9ybWF0dGVyOiBEYXRlRm9ybWF0dGVyPEQ+XG4gICAgKSB7fVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5yZWxhdGl2ZVNob3J0RGF0ZShkYXRlKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAncmVsYXRpdmVTaG9ydERhdGVUaW1lJyB9KVxuZXhwb3J0IGNsYXNzIFJlbGF0aXZlU2hvcnREYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLnJlbGF0aXZlU2hvcnREYXRlVGltZShkYXRlLCBvcHRpb25zKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAncmFuZ2VMb25nRGF0ZScgfSlcbmV4cG9ydCBjbGFzcyBSYW5nZURhdGVGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4sXG4gICAgICAgIHByaXZhdGUgZm9ybWF0dGVyOiBEYXRlRm9ybWF0dGVyPEQ+XG4gICAgKSB7fVxuXG4gICAgdHJhbnNmb3JtKFt2YWx1ZTEsIHZhbHVlMl06IERbXSB8IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZTEgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUxKTtcbiAgICAgICAgY29uc3QgZGF0ZTIgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUyKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXIucmFuZ2VMb25nRGF0ZShkYXRlMSBhcyBELCBkYXRlMiBhcyBEKTtcbiAgICB9XG59XG5cbkBQaXBlKHsgbmFtZTogJ3JhbmdlU2hvcnREYXRlJyB9KVxuZXhwb3J0IGNsYXNzIFJhbmdlU2hvcnREYXRlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBwcml2YXRlIGZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlcjxEPlxuICAgICkge31cblxuICAgIHRyYW5zZm9ybShbdmFsdWUxLCB2YWx1ZTJdOiBEW10gfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUxID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMSk7XG4gICAgICAgIGNvbnN0IGRhdGUyID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlU2hvcnREYXRlKGRhdGUxIGFzIEQsIGRhdGUyIGFzIEQpO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAncmFuZ2VMb25nRGF0ZVRpbWUnIH0pXG5leHBvcnQgY2xhc3MgUmFuZ2VEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0oW3ZhbHVlMSwgdmFsdWUyXTogRFtdIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlMSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTEpO1xuICAgICAgICBjb25zdCBkYXRlMiA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZUxvbmdEYXRlVGltZShkYXRlMSBhcyBELCBkYXRlMiBhcyBELCBvcHRpb25zKTtcbiAgICB9XG59XG5cbkBQaXBlKHsgbmFtZTogJ3JhbmdlTWlkZGxlRGF0ZVRpbWUnIH0pXG5leHBvcnQgY2xhc3MgUmFuZ2VNaWRkbGVEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0oW3ZhbHVlMSwgdmFsdWUyXTogRFtdIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlMSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTEpO1xuICAgICAgICBjb25zdCBkYXRlMiA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZU1pZGRsZURhdGVUaW1lKGRhdGUxIGFzIEQsIGRhdGUyIGFzIEQsIG9wdGlvbnMpO1xuICAgIH1cbn1cblxuQFBpcGUoeyBuYW1lOiAncmFuZ2VTaG9ydERhdGVUaW1lJyB9KVxuZXhwb3J0IGNsYXNzIFJhbmdlU2hvcnREYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICAgICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD5cbiAgICApIHt9XG5cbiAgICB0cmFuc2Zvcm0oW3ZhbHVlMSwgdmFsdWUyXTogRFtdIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlMSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTEpO1xuICAgICAgICBjb25zdCBkYXRlMiA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZVRpbWUoZGF0ZTEgYXMgRCwgZGF0ZTIgYXMgRCwgb3B0aW9ucyk7XG4gICAgfVxufVxuIl19
362
+ args: [{
363
+ standalone: true,
364
+ name: 'rangeShortDateTime'
365
+ }]
366
+ }] });
367
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
368
+ export class RangeShortDateTimeFormatterImpurePipe extends RangeShortDateTimeFormatterPipe {
369
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
370
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeShortDateTimeImpurePipe", pure: false }); }
371
+ }
372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, decorators: [{
373
+ type: Pipe,
374
+ args: [{
375
+ standalone: true,
376
+ name: 'rangeShortDateTimeImpurePipe',
377
+ pure: false
378
+ }]
379
+ }] });
380
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvZm9ybWF0dGVycy9kYXRlL2Zvcm1hdHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFNUMsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUN1QixZQUFPLEdBQW1CLE1BQU0sQ0FBQyxDQUFBLFdBQWMsQ0FBQSxDQUFDLENBQUM7UUFDakQsY0FBUyxHQUFxQixNQUFNLENBQUMsQ0FBQSxhQUFnQixDQUFBLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQUE7QUFNRCxNQUFNLE9BQU8seUJBQTZCLFNBQVEsaUJBQW9CO0lBQ2xFLFNBQVMsQ0FBQyxLQUFpQixFQUFFLFFBQWtCO1FBQzNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7aUlBTFEseUJBQXlCOytIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7aUJBQzNCOztBQWNELHdFQUF3RTtBQUN4RSxNQUFNLE9BQU8sK0JBQW1DLFNBQVEseUJBQTRCO2lJQUF2RSwrQkFBK0I7K0hBQS9CLCtCQUErQjs7MkZB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QUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBaUIsRUFBRSxPQUF5QjtRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO2lJQU5RLCtCQUErQjsrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUozQyxJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsb0JBQW9CO2lCQUM3Qjs7QUFlRCx3RUFBd0U7QUFDeEUsTUFBTSxPQUFPLHFDQUF5QyxTQUFRLCtCQUFrQztpSUFBbkYscUNBQXFDOytIQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBTmpELElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLElBQUksRUFBRSxLQUFLO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZU9wdGlvbnMgfSBmcm9tICdAa29vYmlxL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vZGF0ZXRpbWUnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVyJztcblxuZXhwb3J0IGNsYXNzIEJhc2VGb3JtYXR0ZXJQaXBlPEQ+IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4gPSBpbmplY3QoRGF0ZUFkYXB0ZXI8RD4pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXI8RD4gPSBpbmplY3QoRGF0ZUZvcm1hdHRlcjxEPik7XG59XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdhYnNvbHV0ZUxvbmdEYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBBYnNvbHV0ZURhdGVGb3JtYXR0ZXJQaXBlPEQ+IGV4dGVuZHMgQmFzZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIGN1cnJZZWFyPzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5mb3JtYXR0ZXIuYWJzb2x1dGVMb25nRGF0ZShkYXRlLCBjdXJyWWVhcikgOiAnJztcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdhYnNvbHV0ZUxvbmdEYXRlSW1wdXJlUGlwZScsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3VzZS1waXBlLXRyYW5zZm9ybS1pbnRlcmZhY2VcbmV4cG9ydCBjbGFzcyBBYnNvbHV0ZURhdGVGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgQWJzb2x1dGVEYXRlRm9ybWF0dGVyUGlwZTxEPiB7fVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAnYWJzb2x1dGVMb25nRGF0ZVRpbWUnXG59KVxuZXhwb3J0IGNsYXNzIEFic29sdXRlRGF0ZVRpbWVGb3JtYXR0ZXJQaXBlPEQ+IGV4dGVuZHMgQmFzZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLmFic29sdXRlTG9uZ0RhdGVUaW1lKGRhdGUsIG9wdGlvbnMpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAnYWJzb2x1dGVMb25nRGF0ZVRpbWVJbXB1cmVQaXBlJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIEFic29sdXRlRGF0ZVRpbWVGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgQWJzb2x1dGVEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ2Fic29sdXRlU2hvcnREYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBBYnNvbHV0ZURhdGVTaG9ydEZvcm1hdHRlclBpcGU8RD4gZXh0ZW5kcyBCYXNlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogRCB8IHN0cmluZywgY3VyclllYXI/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5hYnNvbHV0ZVNob3J0RGF0ZShkYXRlLCBjdXJyWWVhcikgOiAnJztcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdhYnNvbHV0ZVNob3J0RGF0ZUltcHVyZVBpcGUnLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVEYXRlU2hvcnRGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgQWJzb2x1dGVEYXRlU2hvcnRGb3JtYXR0ZXJQaXBlPEQ+IHt9XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdhYnNvbHV0ZVNob3J0RGF0ZVRpbWUnXG59KVxuZXhwb3J0IGNsYXNzIEFic29sdXRlU2hvcnREYXRlVGltZUZvcm1hdHRlclBpcGU8RD4gZXh0ZW5kcyBCYXNlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogRCB8IHN0cmluZywgb3B0aW9ucz86IERhdGVUaW1lT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5mb3JtYXR0ZXIuYWJzb2x1dGVTaG9ydERhdGVUaW1lKGRhdGUsIG9wdGlvbnMpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAnYWJzb2x1dGVTaG9ydERhdGVUaW1lSW1wdXJlUGlwZScsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3VzZS1waXBlLXRyYW5zZm9ybS1pbnRlcmZhY2VcbmV4cG9ydCBjbGFzcyBBYnNvbHV0ZVNob3J0RGF0ZVRpbWVGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgQWJzb2x1dGVTaG9ydERhdGVUaW1lRm9ybWF0dGVyUGlwZTxEPiB7fVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmVsYXRpdmVMb25nRGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVEYXRlRm9ybWF0dGVyUGlwZTxEPiBleHRlbmRzIEJhc2VGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5yZWxhdGl2ZUxvbmdEYXRlKGRhdGUpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmVsYXRpdmVMb25nRGF0ZUltcHVyZVBpcGUnLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVEYXRlRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJlbGF0aXZlRGF0ZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JlbGF0aXZlTG9uZ0RhdGVUaW1lJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyUGlwZTxEPiBleHRlbmRzIEJhc2VGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEIHwgc3RyaW5nLCBvcHRpb25zPzogRGF0ZVRpbWVPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGUgPyB0aGlzLmZvcm1hdHRlci5yZWxhdGl2ZUxvbmdEYXRlVGltZShkYXRlLCBvcHRpb25zKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JlbGF0aXZlTG9uZ0RhdGVUaW1lSW1wdXJlUGlwZScsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3VzZS1waXBlLXRyYW5zZm9ybS1pbnRlcmZhY2VcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXJQaXBlPEQ+IHt9XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdyZWxhdGl2ZVNob3J0RGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVTaG9ydERhdGVGb3JtYXR0ZXJQaXBlPEQ+IGV4dGVuZHMgQmFzZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLnJlbGF0aXZlU2hvcnREYXRlKGRhdGUpIDogJyc7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmVsYXRpdmVTaG9ydERhdGVJbXB1cmVQaXBlJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIFJlbGF0aXZlU2hvcnREYXRlRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJlbGF0aXZlU2hvcnREYXRlRm9ybWF0dGVyUGlwZTxEPiB7fVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmVsYXRpdmVTaG9ydERhdGVUaW1lJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZVNob3J0RGF0ZVRpbWVGb3JtYXR0ZXJQaXBlPEQ+IGV4dGVuZHMgQmFzZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEQgfCBzdHJpbmcsIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gZGF0ZSA/IHRoaXMuZm9ybWF0dGVyLnJlbGF0aXZlU2hvcnREYXRlVGltZShkYXRlLCBvcHRpb25zKSA6ICcnO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JlbGF0aXZlU2hvcnREYXRlVGltZUltcHVyZVBpcGUnLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVTaG9ydERhdGVUaW1lRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJlbGF0aXZlU2hvcnREYXRlVGltZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlTG9uZ0RhdGUnXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlRGF0ZUZvcm1hdHRlclBpcGU8RD4gZXh0ZW5kcyBCYXNlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShbdmFsdWUxLCB2YWx1ZTJdOiBEW10gfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUxID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMSk7XG4gICAgICAgIGNvbnN0IGRhdGUyID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlTG9uZ0RhdGUoZGF0ZTEgYXMgRCwgZGF0ZTIgYXMgRCk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmFuZ2VMb25nRGF0ZUltcHVyZVBpcGUnLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgUmFuZ2VEYXRlRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJhbmdlRGF0ZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlU2hvcnREYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBSYW5nZVNob3J0RGF0ZUZvcm1hdHRlclBpcGU8RD4gZXh0ZW5kcyBCYXNlRm9ybWF0dGVyUGlwZTxEPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShbdmFsdWUxLCB2YWx1ZTJdOiBEW10gfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGUxID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMSk7XG4gICAgICAgIGNvbnN0IGRhdGUyID0gdGhpcy5hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlMik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlU2hvcnREYXRlKGRhdGUxIGFzIEQsIGRhdGUyIGFzIEQpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlU2hvcnREYXRlSW1wdXJlUGlwZScsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3VzZS1waXBlLXRyYW5zZm9ybS1pbnRlcmZhY2VcbmV4cG9ydCBjbGFzcyBSYW5nZVNob3J0RGF0ZUZvcm1hdHRlckltcHVyZVBpcGU8RD4gZXh0ZW5kcyBSYW5nZVNob3J0RGF0ZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlTG9uZ0RhdGVUaW1lJ1xufSlcbmV4cG9ydCBjbGFzcyBSYW5nZURhdGVUaW1lRm9ybWF0dGVyUGlwZTxEPiBleHRlbmRzIEJhc2VGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKFt2YWx1ZTEsIHZhbHVlMl06IERbXSB8IHN0cmluZ1tdLCBvcHRpb25zPzogRGF0ZVRpbWVPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZTEgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUxKTtcbiAgICAgICAgY29uc3QgZGF0ZTIgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUyKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXIucmFuZ2VMb25nRGF0ZVRpbWUoZGF0ZTEgYXMgRCwgZGF0ZTIgYXMgRCwgb3B0aW9ucyk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAncmFuZ2VMb25nRGF0ZVRpbWVJbXB1cmVQaXBlJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIFJhbmdlRGF0ZVRpbWVGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgUmFuZ2VEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlTWlkZGxlRGF0ZVRpbWUnXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlTWlkZGxlRGF0ZVRpbWVGb3JtYXR0ZXJQaXBlPEQ+IGV4dGVuZHMgQmFzZUZvcm1hdHRlclBpcGU8RD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oW3ZhbHVlMSwgdmFsdWUyXTogRFtdIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBEYXRlVGltZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlMSA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTEpO1xuICAgICAgICBjb25zdCBkYXRlMiA9IHRoaXMuYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZTIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZU1pZGRsZURhdGVUaW1lKGRhdGUxIGFzIEQsIGRhdGUyIGFzIEQsIG9wdGlvbnMpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlTWlkZGxlRGF0ZVRpbWVJbXB1cmVQaXBlJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIFJhbmdlTWlkZGxlRGF0ZVRpbWVGb3JtYXR0ZXJJbXB1cmVQaXBlPEQ+IGV4dGVuZHMgUmFuZ2VNaWRkbGVEYXRlVGltZUZvcm1hdHRlclBpcGU8RD4ge31cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlU2hvcnREYXRlVGltZSdcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VTaG9ydERhdGVUaW1lRm9ybWF0dGVyUGlwZTxEPiBleHRlbmRzIEJhc2VGb3JtYXR0ZXJQaXBlPEQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKFt2YWx1ZTEsIHZhbHVlMl06IERbXSB8IHN0cmluZ1tdLCBvcHRpb25zPzogRGF0ZVRpbWVPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZTEgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUxKTtcbiAgICAgICAgY29uc3QgZGF0ZTIgPSB0aGlzLmFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUyKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXIucmFuZ2VTaG9ydERhdGVUaW1lKGRhdGUxIGFzIEQsIGRhdGUyIGFzIEQsIG9wdGlvbnMpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3JhbmdlU2hvcnREYXRlVGltZUltcHVyZVBpcGUnLFxuICAgIHB1cmU6IGZhbHNlXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgUmFuZ2VTaG9ydERhdGVUaW1lRm9ybWF0dGVySW1wdXJlUGlwZTxEPiBleHRlbmRzIFJhbmdlU2hvcnREYXRlVGltZUZvcm1hdHRlclBpcGU8RD4ge31cbiJdfQ==