ecabs-components 1.0.27 → 1.0.29

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 (159) hide show
  1. package/esm2022/ecabs-components.mjs +4 -4
  2. package/esm2022/lib/base/consts/date-mask.consts.mjs +56 -56
  3. package/esm2022/lib/base/directives/date-mask.directive.mjs +64 -64
  4. package/esm2022/lib/base/directives/date-mask.directive.module.mjs +21 -21
  5. package/esm2022/lib/base/directives/digits-only.directive.mjs +129 -129
  6. package/esm2022/lib/base/directives/digits-only.directive.module.mjs +21 -21
  7. package/esm2022/lib/base/directives/number-border.directive.mjs +53 -53
  8. package/esm2022/lib/base/directives/number-border.directive.module.mjs +21 -21
  9. package/esm2022/lib/base/element-base.mjs +99 -99
  10. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +53 -53
  11. package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +52 -52
  12. package/esm2022/lib/base/hint/hint.component.mjs +20 -20
  13. package/esm2022/lib/base/hint/hint.module.mjs +19 -19
  14. package/esm2022/lib/base/validation/validation.component.mjs +70 -70
  15. package/esm2022/lib/base/validation/validation.module.mjs +20 -20
  16. package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.mjs +30 -30
  17. package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.mjs +19 -19
  18. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +15 -15
  19. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +19 -19
  20. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +62 -62
  21. package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +20 -20
  22. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +100 -100
  23. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +35 -35
  24. package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +16 -16
  25. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +84 -84
  26. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +47 -47
  27. package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +16 -16
  28. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +203 -179
  29. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +63 -63
  30. package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +16 -16
  31. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +192 -192
  32. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +64 -64
  33. package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +44 -44
  34. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +46 -46
  35. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +19 -19
  36. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +43 -43
  37. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +19 -19
  38. package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +18 -18
  39. package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +18 -18
  40. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +75 -75
  41. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +23 -23
  42. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +77 -77
  43. package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +22 -22
  44. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +82 -82
  45. package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +21 -21
  46. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +61 -61
  47. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +38 -38
  48. package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +23 -23
  49. package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +18 -18
  50. package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +15 -15
  51. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +29 -29
  52. package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +18 -18
  53. package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +103 -103
  54. package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +21 -21
  55. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +50 -50
  56. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +21 -21
  57. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +64 -64
  58. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +31 -31
  59. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +309 -309
  60. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +59 -59
  61. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +16 -16
  62. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +23 -23
  63. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +42 -42
  64. package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +32 -32
  65. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +61 -61
  66. package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +19 -19
  67. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +136 -136
  68. package/esm2022/lib/ecabs-timepicker/config.model.mjs +1 -1
  69. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +311 -311
  70. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +19 -19
  71. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +30 -30
  72. package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +19 -0
  73. package/esm2022/lib/ecabs-validation/ecabs-validation.module.mjs +19 -0
  74. package/esm2022/lib/models/bread-crumb.mjs +1 -1
  75. package/esm2022/lib/models/timepicker.models.mjs +1 -1
  76. package/esm2022/lib/models/validation.models.mjs +2 -0
  77. package/esm2022/lib/services/ecabs-components.service.mjs +31 -31
  78. package/esm2022/public-api.mjs +59 -57
  79. package/fesm2022/ecabs-components.mjs +3282 -3229
  80. package/fesm2022/ecabs-components.mjs.map +1 -1
  81. package/index.d.ts +5 -5
  82. package/lib/base/consts/date-mask.consts.d.ts +7 -7
  83. package/lib/base/directives/date-mask.directive.d.ts +16 -16
  84. package/lib/base/directives/date-mask.directive.module.d.ts +8 -8
  85. package/lib/base/directives/digits-only.directive.d.ts +26 -26
  86. package/lib/base/directives/digits-only.directive.module.d.ts +8 -8
  87. package/lib/base/directives/number-border.directive.d.ts +13 -13
  88. package/lib/base/directives/number-border.directive.module.d.ts +8 -8
  89. package/lib/base/element-base.d.ts +28 -28
  90. package/lib/base/element-wrapper/element-wrapper.component.d.ts +19 -19
  91. package/lib/base/element-wrapper/element-wrapper.module.d.ts +16 -16
  92. package/lib/base/hint/hint.component.d.ts +8 -8
  93. package/lib/base/hint/hint.module.d.ts +10 -10
  94. package/lib/base/validation/validation.component.d.ts +24 -24
  95. package/lib/base/validation/validation.module.d.ts +10 -10
  96. package/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.d.ts +14 -14
  97. package/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.d.ts +10 -10
  98. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +7 -7
  99. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.d.ts +10 -10
  100. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +20 -20
  101. package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +11 -11
  102. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +31 -31
  103. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +12 -12
  104. package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +6 -6
  105. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +29 -29
  106. package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +15 -15
  107. package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +6 -6
  108. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +55 -51
  109. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +19 -19
  110. package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +6 -6
  111. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +58 -58
  112. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +20 -20
  113. package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +15 -15
  114. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +31 -31
  115. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +11 -11
  116. package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +28 -28
  117. package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +11 -11
  118. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +12 -12
  119. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.d.ts +9 -9
  120. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +28 -28
  121. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +14 -14
  122. package/lib/ecabs-increment/ecabs-increment.component.d.ts +26 -26
  123. package/lib/ecabs-increment/ecabs-increment.module.d.ts +13 -13
  124. package/lib/ecabs-input/ecabs-input.component.d.ts +27 -27
  125. package/lib/ecabs-input/ecabs-input.module.d.ts +12 -12
  126. package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +20 -20
  127. package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +12 -12
  128. package/lib/ecabs-loading/ecabs-loading.component.d.ts +8 -8
  129. package/lib/ecabs-loading/ecabs-loading.module.d.ts +9 -9
  130. package/lib/ecabs-loading/spinner/spinner.component.d.ts +6 -6
  131. package/lib/ecabs-note/ecabs-note.component.d.ts +7 -7
  132. package/lib/ecabs-note/ecabs-note.module.d.ts +9 -9
  133. package/lib/ecabs-phone/ecabs-phone.component.d.ts +33 -33
  134. package/lib/ecabs-phone/ecabs-phone.module.d.ts +12 -12
  135. package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +19 -19
  136. package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +12 -12
  137. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +24 -24
  138. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +11 -11
  139. package/lib/ecabs-select/ecabs-select.component.d.ts +71 -71
  140. package/lib/ecabs-select/ecabs-select.module.d.ts +15 -15
  141. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +8 -8
  142. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.d.ts +9 -9
  143. package/lib/ecabs-table/ecabs-table.component.d.ts +18 -18
  144. package/lib/ecabs-table/ecabs-table.module.d.ts +12 -12
  145. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +20 -20
  146. package/lib/ecabs-textarea/ecabs-textarea.module.d.ts +10 -10
  147. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +40 -40
  148. package/lib/ecabs-timepicker/config.model.d.ts +5 -5
  149. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +53 -53
  150. package/lib/ecabs-timepicker/ecabs-timepicker.module.d.ts +10 -10
  151. package/lib/ecabs-timepicker/ecabs-timepicker.service.d.ts +12 -12
  152. package/lib/ecabs-validation/ecabs-validation.component.d.ts +10 -0
  153. package/lib/ecabs-validation/ecabs-validation.module.d.ts +9 -0
  154. package/lib/models/bread-crumb.d.ts +5 -5
  155. package/lib/models/timepicker.models.d.ts +6 -6
  156. package/lib/models/validation.models.d.ts +7 -0
  157. package/lib/services/ecabs-components.service.d.ts +16 -16
  158. package/package.json +1 -1
  159. package/public-api.d.ts +58 -56
@@ -1,193 +1,193 @@
1
- import { DecimalPipe } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
- import ElementBaseComponent from '../base/element-base';
5
- import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "../base/element-wrapper/element-wrapper.component";
9
- import * as i3 from "@angular/material/icon";
10
- import * as i4 from "@angular/material/datepicker";
11
- import * as i5 from "@angular/material/legacy-button";
12
- import * as i6 from "@angular/forms";
13
- import * as i7 from "../base/directives/digits-only.directive";
14
- import * as i8 from "../base/directives/number-border.directive";
15
- import * as i9 from "./time-range.directive";
16
- export class EcabsDateTimeRangePickerComponent extends ElementBaseComponent {
17
- get value() {
18
- return this.val;
19
- }
20
- get pickerValue() {
21
- return this._pickerValue;
22
- }
23
- get hoursFrom() {
24
- return this._hoursFrom;
25
- }
26
- get minutesFrom() {
27
- return this._minutesFrom;
28
- }
29
- get hoursTo() {
30
- return this._hoursTo;
31
- }
32
- get minutesTo() {
33
- return this._minutesTo;
34
- }
35
- get seconds() {
36
- return this._seconds;
37
- }
38
- set hoursFrom(value) {
39
- if (value !== undefined && this._hoursFrom !== value) {
40
- this._hoursFrom = this.roundNumber(+value);
41
- }
42
- }
43
- set minutesFrom(value) {
44
- if (value !== undefined && this._minutesFrom !== value) {
45
- this._minutesFrom = this.roundNumber(+value);
46
- }
47
- }
48
- set hoursTo(value) {
49
- if (value !== undefined && this._hoursTo !== value) {
50
- this._hoursTo = this.roundNumber(+value);
51
- }
52
- }
53
- set minutesTo(value) {
54
- if (value !== undefined && this._minutesTo !== value) {
55
- this._minutesTo = this.roundNumber(+value);
56
- }
57
- }
58
- set seconds(value) {
59
- if (value !== undefined && this._seconds !== value) {
60
- this._seconds = this.roundNumber(+value);
61
- }
62
- }
63
- set value(val) {
64
- if (val && this.val !== val) {
65
- this.val = val;
66
- this.pickerValue = val;
67
- this.onChange(val);
68
- this.onTouch(val);
69
- }
70
- }
71
- set pickerValue(val) {
72
- if (val) {
73
- this._pickerValue = val;
74
- this.value = val;
75
- }
76
- }
77
- constructor(injector, decimalPipe) {
78
- super();
79
- this.injector = injector;
80
- this.decimalPipe = decimalPipe;
81
- this.touchUi = false;
82
- this.onblur = new EventEmitter();
83
- this.cancleLabel = 'Cancel';
84
- this.applyLabel = 'Apply';
85
- this.all = 'All';
86
- this.from = 'From';
87
- this.to = 'To';
88
- this._hoursFrom = '12';
89
- this._minutesFrom = '00';
90
- this._hoursTo = '12';
91
- this._minutesTo = '00';
92
- this._seconds = '00';
93
- this.header = EcabsDateTimeRangePickerHeaderComponent;
94
- this.maxValueHours = 23;
95
- this.maxValueMinutesSeconds = 59;
96
- this.onChange = () => { };
97
- this.onTouch = () => { };
98
- }
99
- ngAfterViewInit() {
100
- const ngControl = this.injector.get(NgControl, null);
101
- if (ngControl) {
102
- this.control = ngControl.control;
103
- setTimeout(() => {
104
- this.controlDate = this.control;
105
- const controlDate = !!this.control.value ? this.control.value : '';
106
- if (controlDate) {
107
- this.setValues(controlDate);
108
- }
109
- }, 10);
110
- }
111
- }
112
- writeValue(value) {
113
- this.value = value;
114
- }
115
- registerOnChange(fn) {
116
- this.onChange = fn;
117
- }
118
- registerOnTouched(fn) {
119
- this.onTouch = fn;
120
- }
121
- blurChange(e) {
122
- this.onblur.emit(e);
123
- }
124
- keydownChange(e) {
125
- if (e?.target.value === this.all) {
126
- const val = '';
127
- this.val = val;
128
- this._pickerValue = val;
129
- this.onChange(val);
130
- this.onTouch(val);
131
- }
132
- }
133
- onApply() {
134
- if (this._minutesFrom && this._hoursFrom && this._minutesTo && this._hoursTo) {
135
- this.setValues(this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo);
136
- this.value = this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo;
137
- return;
138
- }
139
- }
140
- opened() {
141
- setTimeout(() => {
142
- const elements = document.getElementsByClassName('mat-calendar-content');
143
- while (elements.length > 0) {
144
- elements[0].parentNode.removeChild(elements[0]);
145
- }
146
- let cols = Array.from(document.getElementsByClassName('mat-calendar'));
147
- for (let i = 0; i < cols.length; i++) {
148
- cols[i].style.height = '50px';
149
- }
150
- });
151
- }
152
- roundNumber(num) {
153
- return this.decimalPipe.transform(num, '2.0-0') ?? '00';
154
- }
155
- setValues(date) {
156
- this._date = date;
157
- }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimeRangePickerComponent, selector: "ecabs-date-time-range-picker", inputs: { touchUi: "touchUi", cancleLabel: "cancleLabel", applyLabel: "applyLabel", all: "all", from: "from", to: "to" }, outputs: { onblur: "onblur" }, providers: [
160
- {
161
- provide: NG_VALUE_ACCESSOR,
162
- useExisting: EcabsDateTimeRangePickerComponent,
163
- multi: true,
164
- },
165
- DecimalPipe,
166
- ], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i4.MatDatepickerCancel, selector: "[matDatepickerCancel], [matDateRangePickerCancel]" }, { kind: "directive", type: i4.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i8.NumberBorderDirective, selector: "[appNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i9.TimeRangeDirective, selector: "[appTimeRange]", inputs: ["isDateTimeMask", "considerSeconds", "all"] }] }); }
167
- }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
169
- type: Component,
170
- args: [{ selector: 'ecabs-date-time-range-picker', providers: [
171
- {
172
- provide: NG_VALUE_ACCESSOR,
173
- useExisting: EcabsDateTimeRangePickerComponent,
174
- multi: true,
175
- },
176
- DecimalPipe,
177
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"] }]
178
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DecimalPipe }]; }, propDecorators: { touchUi: [{
179
- type: Input
180
- }], onblur: [{
181
- type: Output
182
- }], cancleLabel: [{
183
- type: Input
184
- }], applyLabel: [{
185
- type: Input
186
- }], all: [{
187
- type: Input
188
- }], from: [{
189
- type: Input
190
- }], to: [{
191
- type: Input
192
- }] } });
1
+ import { DecimalPipe } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
+ import ElementBaseComponent from '../base/element-base';
5
+ import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../base/element-wrapper/element-wrapper.component";
9
+ import * as i3 from "@angular/material/icon";
10
+ import * as i4 from "@angular/material/datepicker";
11
+ import * as i5 from "@angular/material/legacy-button";
12
+ import * as i6 from "@angular/forms";
13
+ import * as i7 from "../base/directives/digits-only.directive";
14
+ import * as i8 from "../base/directives/number-border.directive";
15
+ import * as i9 from "./time-range.directive";
16
+ export class EcabsDateTimeRangePickerComponent extends ElementBaseComponent {
17
+ get value() {
18
+ return this.val;
19
+ }
20
+ get pickerValue() {
21
+ return this._pickerValue;
22
+ }
23
+ get hoursFrom() {
24
+ return this._hoursFrom;
25
+ }
26
+ get minutesFrom() {
27
+ return this._minutesFrom;
28
+ }
29
+ get hoursTo() {
30
+ return this._hoursTo;
31
+ }
32
+ get minutesTo() {
33
+ return this._minutesTo;
34
+ }
35
+ get seconds() {
36
+ return this._seconds;
37
+ }
38
+ set hoursFrom(value) {
39
+ if (value !== undefined && this._hoursFrom !== value) {
40
+ this._hoursFrom = this.roundNumber(+value);
41
+ }
42
+ }
43
+ set minutesFrom(value) {
44
+ if (value !== undefined && this._minutesFrom !== value) {
45
+ this._minutesFrom = this.roundNumber(+value);
46
+ }
47
+ }
48
+ set hoursTo(value) {
49
+ if (value !== undefined && this._hoursTo !== value) {
50
+ this._hoursTo = this.roundNumber(+value);
51
+ }
52
+ }
53
+ set minutesTo(value) {
54
+ if (value !== undefined && this._minutesTo !== value) {
55
+ this._minutesTo = this.roundNumber(+value);
56
+ }
57
+ }
58
+ set seconds(value) {
59
+ if (value !== undefined && this._seconds !== value) {
60
+ this._seconds = this.roundNumber(+value);
61
+ }
62
+ }
63
+ set value(val) {
64
+ if (val && this.val !== val) {
65
+ this.val = val;
66
+ this.pickerValue = val;
67
+ this.onChange(val);
68
+ this.onTouch(val);
69
+ }
70
+ }
71
+ set pickerValue(val) {
72
+ if (val) {
73
+ this._pickerValue = val;
74
+ this.value = val;
75
+ }
76
+ }
77
+ constructor(injector, decimalPipe) {
78
+ super();
79
+ this.injector = injector;
80
+ this.decimalPipe = decimalPipe;
81
+ this.touchUi = false;
82
+ this.onblur = new EventEmitter();
83
+ this.cancleLabel = 'Cancel';
84
+ this.applyLabel = 'Apply';
85
+ this.all = 'All';
86
+ this.from = 'From';
87
+ this.to = 'To';
88
+ this._hoursFrom = '12';
89
+ this._minutesFrom = '00';
90
+ this._hoursTo = '12';
91
+ this._minutesTo = '00';
92
+ this._seconds = '00';
93
+ this.header = EcabsDateTimeRangePickerHeaderComponent;
94
+ this.maxValueHours = 23;
95
+ this.maxValueMinutesSeconds = 59;
96
+ this.onChange = () => { };
97
+ this.onTouch = () => { };
98
+ }
99
+ ngAfterViewInit() {
100
+ const ngControl = this.injector.get(NgControl, null);
101
+ if (ngControl) {
102
+ this.control = ngControl.control;
103
+ setTimeout(() => {
104
+ this.controlDate = this.control;
105
+ const controlDate = !!this.control.value ? this.control.value : '';
106
+ if (controlDate) {
107
+ this.setValues(controlDate);
108
+ }
109
+ }, 10);
110
+ }
111
+ }
112
+ writeValue(value) {
113
+ this.value = value;
114
+ }
115
+ registerOnChange(fn) {
116
+ this.onChange = fn;
117
+ }
118
+ registerOnTouched(fn) {
119
+ this.onTouch = fn;
120
+ }
121
+ blurChange(e) {
122
+ this.onblur.emit(e);
123
+ }
124
+ keydownChange(e) {
125
+ if (e?.target.value === this.all) {
126
+ const val = '';
127
+ this.val = val;
128
+ this._pickerValue = val;
129
+ this.onChange(val);
130
+ this.onTouch(val);
131
+ }
132
+ }
133
+ onApply() {
134
+ if (this._minutesFrom && this._hoursFrom && this._minutesTo && this._hoursTo) {
135
+ this.setValues(this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo);
136
+ this.value = this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo;
137
+ return;
138
+ }
139
+ }
140
+ opened() {
141
+ setTimeout(() => {
142
+ const elements = document.getElementsByClassName('mat-calendar-content');
143
+ while (elements.length > 0) {
144
+ elements[0].parentNode.removeChild(elements[0]);
145
+ }
146
+ let cols = Array.from(document.getElementsByClassName('mat-calendar'));
147
+ for (let i = 0; i < cols.length; i++) {
148
+ cols[i].style.height = '50px';
149
+ }
150
+ });
151
+ }
152
+ roundNumber(num) {
153
+ return this.decimalPipe.transform(num, '2.0-0') ?? '00';
154
+ }
155
+ setValues(date) {
156
+ this._date = date;
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimeRangePickerComponent, selector: "ecabs-date-time-range-picker", inputs: { touchUi: "touchUi", cancleLabel: "cancleLabel", applyLabel: "applyLabel", all: "all", from: "from", to: "to" }, outputs: { onblur: "onblur" }, providers: [
160
+ {
161
+ provide: NG_VALUE_ACCESSOR,
162
+ useExisting: EcabsDateTimeRangePickerComponent,
163
+ multi: true,
164
+ },
165
+ DecimalPipe,
166
+ ], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i4.MatDatepickerCancel, selector: "[matDatepickerCancel], [matDateRangePickerCancel]" }, { kind: "directive", type: i4.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i8.NumberBorderDirective, selector: "[appNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i9.TimeRangeDirective, selector: "[appTimeRange]", inputs: ["isDateTimeMask", "considerSeconds", "all"] }] }); }
167
+ }
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
169
+ type: Component,
170
+ args: [{ selector: 'ecabs-date-time-range-picker', providers: [
171
+ {
172
+ provide: NG_VALUE_ACCESSOR,
173
+ useExisting: EcabsDateTimeRangePickerComponent,
174
+ multi: true,
175
+ },
176
+ DecimalPipe,
177
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"] }]
178
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DecimalPipe }]; }, propDecorators: { touchUi: [{
179
+ type: Input
180
+ }], onblur: [{
181
+ type: Output
182
+ }], cancleLabel: [{
183
+ type: Input
184
+ }], applyLabel: [{
185
+ type: Input
186
+ }], all: [{
187
+ type: Input
188
+ }], from: [{
189
+ type: Input
190
+ }], to: [{
191
+ type: Input
192
+ }] } });
193
193
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sb0JBQW9CLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7Ozs7Ozs7Ozs7O0FBZXpKLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLG9CQUFvQjtJQTRCNUIsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIERlY2ltYWxQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnRcclxuICBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgdG91Y2hVaSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICBASW5wdXQoKSBjYW5jbGVMYWJlbCA9ICdDYW5jZWwnO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWwgPSAnQXBwbHknO1xyXG4gIEBJbnB1dCgpIGFsbCA9ICdBbGwnO1xyXG4gIEBJbnB1dCgpIGZyb20gPSAnRnJvbSc7XHJcbiAgQElucHV0KCkgdG8gPSAnVG8nO1xyXG5cclxuICBcclxuXHJcbiAgX2hvdXJzRnJvbSA9ICcxMic7XHJcbiAgX21pbnV0ZXNGcm9tID0gJzAwJztcclxuICBfaG91cnNUbyA9ICcxMic7XHJcbiAgX21pbnV0ZXNUbyA9ICcwMCc7XHJcbiAgX3NlY29uZHMgPSAnMDAnO1xyXG4gIF9kYXRlOiBzdHJpbmc7XHJcbiAgX3BpY2tlclZhbHVlOiBzdHJpbmc7XHJcbiAgdmFsOiBzdHJpbmc7XHJcbiAgaGVhZGVyID0gRWNhYnNEYXRlVGltZVJhbmdlUGlja2VySGVhZGVyQ29tcG9uZW50O1xyXG4gIG1heFZhbHVlSG91cnMgPSAyMztcclxuICBtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzID0gNTk7XHJcbiAgY29udHJvbERhdGU6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcGlja2VyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9waWNrZXJWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBob3Vyc0Zyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ob3Vyc0Zyb207XHJcbiAgfVxyXG5cclxuICBnZXQgbWludXRlc0Zyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGVzRnJvbTtcclxuICB9XHJcblxyXG4gIGdldCBob3Vyc1RvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faG91cnNUbztcclxuICB9XHJcblxyXG4gIGdldCBtaW51dGVzVG8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGVzVG87XHJcbiAgfVxyXG5cclxuICBnZXQgc2Vjb25kcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZHM7XHJcbiAgfVxyXG5cclxuICBzZXQgaG91cnNGcm9tKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2hvdXJzRnJvbSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5faG91cnNGcm9tID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IG1pbnV0ZXNGcm9tKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX21pbnV0ZXNGcm9tICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9taW51dGVzRnJvbSA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBob3Vyc1RvKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2hvdXJzVG8gIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2hvdXJzVG8gPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgbWludXRlc1RvKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX21pbnV0ZXNUbyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fbWludXRlc1RvID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHNlY29uZHModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fc2Vjb25kcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh2YWwgJiYgdGhpcy52YWwgIT09IHZhbCkge1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBwaWNrZXJWYWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sRGF0ZSA9IHRoaXMuY29udHJvbDtcclxuICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9ICEhdGhpcy5jb250cm9sLnZhbHVlID8gdGhpcy5jb250cm9sLnZhbHVlIDogJyc7XHJcblxyXG4gICAgICAgIGlmIChjb250cm9sRGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoY29udHJvbERhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIGJsdXJDaGFuZ2UoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAga2V5ZG93bkNoYW5nZShlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlPy50YXJnZXQudmFsdWUgPT09IHRoaXMuYWxsKSB7XHJcbiAgICAgIGNvbnN0IHZhbCA9ICcnO1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX21pbnV0ZXNGcm9tICYmIHRoaXMuX2hvdXJzRnJvbSAmJiB0aGlzLl9taW51dGVzVG8gJiYgdGhpcy5faG91cnNUbykge1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyh0aGlzLl9ob3Vyc0Zyb20gKyAnOicgKyB0aGlzLl9taW51dGVzRnJvbSArICcgLSAnICsgdGhpcy5faG91cnNUbyArICc6JyArIHRoaXMuX21pbnV0ZXNUbyk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl9ob3Vyc0Zyb20gKyAnOicgKyB0aGlzLl9taW51dGVzRnJvbSArICcgLSAnICsgdGhpcy5faG91cnNUbyArICc6JyArIHRoaXMuX21pbnV0ZXNUbztcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5lZCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21hdC1jYWxlbmRhci1jb250ZW50Jyk7XHJcbiAgICAgIHdoaWxlIChlbGVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZWxlbWVudHNbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50c1swXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBjb2xzID0gQXJyYXkuZnJvbShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2FsZW5kYXInKSBhcyBIVE1MQ29sbGVjdGlvbk9mPEhUTUxFbGVtZW50Pik7XHJcbiAgICAgIGZvcihsZXQgaT0wOyBpPGNvbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb2xzW2ldLnN0eWxlLmhlaWdodCA9ICc1MHB4JztcclxuICAgICAgfSAgICAgIFxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZE51bWJlcihudW06IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKG51bSwgJzIuMC0wJykgPz8gJzAwJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzKGRhdGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGF0ZSA9IGRhdGU7XHJcbiAgfVxyXG59IiwiPGFwcC1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZmFrZS1pbnB1dFwiXHJcbiAgICAgIFtpZF09XCJfZGF0ZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiX2RhdGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgY29udHJvbERhdGU/LmRpc2FibGVkXCJcclxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXJcclxuICAgICAgKG9wZW5lZCk9XCJvcGVuZWQoKVwiXHJcbiAgICAgICNwaWNrZXJcclxuICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImhlYWRlclwiXHJcbiAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgZ2FwLXktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgZnJvbSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgZm9ybS1maWVsZF9faW5wdXQgdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcERpZ2l0c09ubHlcclxuICAgICAgICAgICAgICAgICAgYXBwTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwiaG91cnNGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhvdXJzRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwibWludXRlc0Zyb21cIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICBhcHBOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS0taW5wdXRzXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7IHRvIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICBhcHBOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJob3Vyc1RvXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhvdXJzVG9cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwibWludXRlc1RvXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzVG9cIlxyXG4gICAgICAgICAgICAgICAgICBhcHBEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgICAgIGFwcE51bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlTWludXRlc1NlY29uZHNcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXBpY2tlci1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBjYW5jZWwtYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIG1hdERhdGVwaWNrZXJDYW5jZWxcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGNhbmNsZUxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBtbC0wIGFwcGx5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBtYXREYXRlcGlja2VyQXBwbHlcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BcHBseSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGFwcGx5TGFiZWwgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbCBkYXRlLWlucHV0XCJcclxuICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInBpY2tlclZhbHVlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGNvbnRyb2xEYXRlPy5kaXNhYmxlZFwiXHJcbiAgICAgIGFwcFRpbWVSYW5nZVxyXG4gICAgICBbYWxsXT1cImFsbFwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChibHVyKT1cImJsdXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXl1cCk9XCJibHVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoa2V5ZG93bik9XCJrZXlkb3duQ2hhbmdlKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGF0ZXBpY2tlci10b2dnbGVcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiPlxyXG4gICAgICA8bWF0LWljb24+YWNjZXNzX3RpbWU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvYXBwLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
@@ -1,65 +1,65 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatDatepickerModule } from '@angular/material/datepicker';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';
7
- import { DigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';
8
- import { NumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';
9
- import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
10
- import { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';
11
- import { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';
12
- import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
13
- import { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';
14
- import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
15
- import { TimeRangeDirective } from './time-range.directive';
16
- import * as i0 from "@angular/core";
17
- export class EcabsDatetimeRangePickerModule {
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective], imports: [CommonModule,
20
- ElementWrapperModule,
21
- MatIconModule,
22
- MatDatepickerModule,
23
- MatButtonModule,
24
- FormsModule,
25
- ReactiveFormsModule,
26
- EcabsPickerHeaderModule,
27
- EcabsButtonsModule,
28
- DigitsOnlyDirectivesModule,
29
- NumberBorderDirectiveModule,
30
- MaskDateDirectiveModule], exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective] }); }
31
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, imports: [CommonModule,
32
- ElementWrapperModule,
33
- MatIconModule,
34
- MatDatepickerModule,
35
- MatButtonModule,
36
- FormsModule,
37
- ReactiveFormsModule,
38
- EcabsPickerHeaderModule,
39
- EcabsButtonsModule,
40
- DigitsOnlyDirectivesModule,
41
- NumberBorderDirectiveModule,
42
- MaskDateDirectiveModule] }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, decorators: [{
45
- type: NgModule,
46
- args: [{
47
- declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
48
- imports: [
49
- CommonModule,
50
- ElementWrapperModule,
51
- MatIconModule,
52
- MatDatepickerModule,
53
- MatButtonModule,
54
- FormsModule,
55
- ReactiveFormsModule,
56
- EcabsPickerHeaderModule,
57
- EcabsButtonsModule,
58
- DigitsOnlyDirectivesModule,
59
- NumberBorderDirectiveModule,
60
- MaskDateDirectiveModule
61
- ],
62
- exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
63
- }]
64
- }] });
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatDatepickerModule } from '@angular/material/datepicker';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';
7
+ import { DigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';
8
+ import { NumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';
9
+ import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
10
+ import { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';
11
+ import { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';
12
+ import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
13
+ import { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';
14
+ import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
15
+ import { TimeRangeDirective } from './time-range.directive';
16
+ import * as i0 from "@angular/core";
17
+ export class EcabsDatetimeRangePickerModule {
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective], imports: [CommonModule,
20
+ ElementWrapperModule,
21
+ MatIconModule,
22
+ MatDatepickerModule,
23
+ MatButtonModule,
24
+ FormsModule,
25
+ ReactiveFormsModule,
26
+ EcabsPickerHeaderModule,
27
+ EcabsButtonsModule,
28
+ DigitsOnlyDirectivesModule,
29
+ NumberBorderDirectiveModule,
30
+ MaskDateDirectiveModule], exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective] }); }
31
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, imports: [CommonModule,
32
+ ElementWrapperModule,
33
+ MatIconModule,
34
+ MatDatepickerModule,
35
+ MatButtonModule,
36
+ FormsModule,
37
+ ReactiveFormsModule,
38
+ EcabsPickerHeaderModule,
39
+ EcabsButtonsModule,
40
+ DigitsOnlyDirectivesModule,
41
+ NumberBorderDirectiveModule,
42
+ MaskDateDirectiveModule] }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, decorators: [{
45
+ type: NgModule,
46
+ args: [{
47
+ declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
48
+ imports: [
49
+ CommonModule,
50
+ ElementWrapperModule,
51
+ MatIconModule,
52
+ MatDatepickerModule,
53
+ MatButtonModule,
54
+ FormsModule,
55
+ ReactiveFormsModule,
56
+ EcabsPickerHeaderModule,
57
+ EcabsButtonsModule,
58
+ DigitsOnlyDirectivesModule,
59
+ NumberBorderDirectiveModule,
60
+ MaskDateDirectiveModule
61
+ ],
62
+ exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
63
+ }]
64
+ }] });
65
65
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxlQUFlLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRixPQUFPLEVBQ0wsdUNBQXVDLEVBQ3hDLE1BQU0sZ0dBQWdHLENBQUM7QUFDeEcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBcUIxRCxNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixpQkFqQjFCLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQixhQUUzRyxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLHVCQUF1QixhQUVmLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQjtnSEFFN0YsOEJBQThCLFlBZnZDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IsdUJBQXVCOzs0RkFJZCw4QkFBOEI7a0JBbEIxQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQixDQUFDO29CQUM5RyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUNBQWlDLEVBQUUsdUNBQXVDLEVBQUUsa0JBQWtCLENBQUM7aUJBQzFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7TWFza0RhdGVEaXJlY3RpdmVNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9kYXRlLW1hc2suZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7RGlnaXRzT25seURpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUubW9kdWxlJztcclxuaW1wb3J0IHtOdW1iZXJCb3JkZXJEaXJlY3RpdmVNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9udW1iZXItYm9yZGVyLmRpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQge0VsZW1lbnRXcmFwcGVyTW9kdWxlfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHtFY2Fic0J1dHRvbnNNb2R1bGV9IGZyb20gJy4uL2VjYWJzLWJ1dHRvbnMvZWNhYnMtYnV0dG9ucy5tb2R1bGUnO1xyXG5pbXBvcnQge0VjYWJzUGlja2VySGVhZGVyTW9kdWxlfSBmcm9tICcuLi9lY2Ficy1waWNrZXItaGVhZGVyL2VjYWJzLXBpY2tlci1oZWFkZXIubW9kdWxlJztcclxuaW1wb3J0IHtNYXRMZWdhY3lCdXR0b25Nb2R1bGUgYXMgTWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYnV0dG9uJztcclxuaW1wb3J0IHtFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEVjYWJzRGF0ZVRpbWVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLWhlYWRlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RpbWVSYW5nZURpcmVjdGl2ZX0gZnJvbSAnLi90aW1lLXJhbmdlLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQsIEVjYWJzRGF0ZVRpbWVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudCwgVGltZVJhbmdlRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFbGVtZW50V3JhcHBlck1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRWNhYnNQaWNrZXJIZWFkZXJNb2R1bGUsXHJcbiAgICBFY2Fic0J1dHRvbnNNb2R1bGUsXHJcbiAgICBEaWdpdHNPbmx5RGlyZWN0aXZlc01vZHVsZSxcclxuICAgIE51bWJlckJvcmRlckRpcmVjdGl2ZU1vZHVsZSxcclxuICAgIE1hc2tEYXRlRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbRWNhYnNEYXRlVGltZVJhbmdlUGlja2VyQ29tcG9uZW50LCBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnQsIFRpbWVSYW5nZURpcmVjdGl2ZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGV0aW1lUmFuZ2VQaWNrZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==