ecabs-components 1.0.15 → 1.0.17

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 (214) hide show
  1. package/esm2022/lib/base/directives/date-mask.directive.mjs +67 -0
  2. package/{esm2020 → esm2022}/lib/base/directives/date-mask.directive.module.mjs +5 -5
  3. package/esm2022/lib/base/directives/digits-only.directive.mjs +133 -0
  4. package/{esm2020 → esm2022}/lib/base/directives/digits-only.directive.module.mjs +5 -5
  5. package/esm2022/lib/base/directives/number-border.directive.mjs +58 -0
  6. package/{esm2020 → esm2022}/lib/base/directives/number-border.directive.module.mjs +5 -5
  7. package/esm2022/lib/base/element-base.mjs +105 -0
  8. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +56 -0
  9. package/{esm2020 → esm2022}/lib/base/element-wrapper/element-wrapper.module.mjs +21 -21
  10. package/esm2022/lib/base/hint/hint.component.mjs +21 -0
  11. package/{esm2020 → esm2022}/lib/base/hint/hint.module.mjs +5 -5
  12. package/esm2022/lib/base/validation/validation.component.mjs +75 -0
  13. package/{esm2020 → esm2022}/lib/base/validation/validation.module.mjs +5 -5
  14. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +17 -0
  15. package/{esm2020 → esm2022}/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +5 -5
  16. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +67 -0
  17. package/{esm2020 → esm2022}/lib/ecabs-buttons/ecabs-buttons.module.mjs +5 -5
  18. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +94 -0
  19. package/{esm2020 → esm2022}/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +13 -13
  20. package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +15 -0
  21. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +89 -0
  22. package/{esm2020 → esm2022}/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +19 -19
  23. package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +15 -0
  24. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +186 -0
  25. package/{esm2020 → esm2022}/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +27 -27
  26. package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +15 -0
  27. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +199 -0
  28. package/{esm2020 → esm2022}/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +27 -27
  29. package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +48 -0
  30. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +49 -0
  31. package/{esm2020 → esm2022}/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +5 -5
  32. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +46 -0
  33. package/{esm2020 → esm2022}/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +7 -4
  35. package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +5 -5
  36. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +85 -0
  37. package/{esm2020 → esm2022}/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +5 -5
  38. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +83 -0
  39. package/{esm2020 → esm2022}/lib/ecabs-increment/ecabs-increment.module.mjs +5 -5
  40. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +90 -0
  41. package/{esm2020 → esm2022}/lib/ecabs-input/ecabs-input.module.mjs +5 -5
  42. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +64 -0
  43. package/{esm2020 → esm2022}/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +15 -15
  44. package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +22 -0
  45. package/{esm2020 → esm2022}/lib/ecabs-loading/ecabs-loading.module.mjs +5 -5
  46. package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +14 -0
  47. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +28 -0
  48. package/{esm2020 → esm2022}/lib/ecabs-note/ecabs-note.module.mjs +5 -5
  49. package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +111 -0
  50. package/{esm2020 → esm2022}/lib/ecabs-phone/ecabs-phone.module.mjs +5 -5
  51. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +53 -0
  52. package/{esm2020 → esm2022}/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +5 -5
  53. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +68 -0
  54. package/{esm2020 → esm2022}/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +11 -11
  55. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +316 -0
  56. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
  57. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +19 -0
  58. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +7 -7
  59. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +48 -0
  60. package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table.module.mjs +11 -11
  61. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +65 -0
  62. package/{esm2020 → esm2022}/lib/ecabs-textarea/ecabs-textarea.module.mjs +5 -5
  63. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +144 -0
  64. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +322 -0
  65. package/{esm2020 → esm2022}/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +5 -5
  66. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +29 -0
  67. package/esm2022/lib/services/ecabs-components.service.mjs +31 -0
  68. package/fesm2022/ecabs-components.mjs +3477 -0
  69. package/fesm2022/ecabs-components.mjs.map +1 -0
  70. package/lib/base/directives/date-mask.directive.d.ts +1 -1
  71. package/lib/base/directives/digits-only.directive.d.ts +1 -1
  72. package/lib/base/directives/number-border.directive.d.ts +1 -1
  73. package/lib/base/element-base.d.ts +1 -1
  74. package/lib/base/element-wrapper/element-wrapper.component.d.ts +1 -1
  75. package/lib/base/hint/hint.component.d.ts +1 -1
  76. package/lib/base/validation/validation.component.d.ts +1 -1
  77. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +1 -1
  78. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +1 -1
  79. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +1 -1
  80. package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +1 -1
  81. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +1 -1
  82. package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +1 -1
  83. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +1 -1
  84. package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +1 -1
  85. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +1 -1
  86. package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +1 -1
  87. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +1 -1
  88. package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +1 -1
  89. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +1 -1
  90. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -1
  91. package/lib/ecabs-increment/ecabs-increment.component.d.ts +1 -1
  92. package/lib/ecabs-input/ecabs-input.component.d.ts +1 -1
  93. package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +1 -1
  94. package/lib/ecabs-loading/ecabs-loading.component.d.ts +1 -1
  95. package/lib/ecabs-loading/spinner/spinner.component.d.ts +1 -1
  96. package/lib/ecabs-note/ecabs-note.component.d.ts +1 -1
  97. package/lib/ecabs-phone/ecabs-phone.component.d.ts +1 -1
  98. package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +1 -1
  99. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +1 -1
  100. package/lib/ecabs-select/ecabs-select.component.d.ts +13 -3
  101. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +1 -1
  102. package/lib/ecabs-table/ecabs-table.component.d.ts +1 -1
  103. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +1 -1
  104. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +1 -1
  105. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +1 -1
  106. package/lib/models/timepicker.models.d.ts +1 -1
  107. package/package.json +5 -11
  108. package/styles/material/_theme.scss +74 -0
  109. package/styles/material/overrides/_autocomplete.scss +11 -0
  110. package/styles/material/overrides/_button.scss +81 -0
  111. package/styles/material/overrides/_card.scss +17 -0
  112. package/styles/material/overrides/_chip.scss +108 -0
  113. package/styles/material/overrides/_datepicker.scss +169 -0
  114. package/styles/material/overrides/_dialog.scss +12 -0
  115. package/styles/material/overrides/_divider.scss +3 -0
  116. package/styles/material/overrides/_expansion.scss +31 -0
  117. package/styles/material/overrides/_form.scss +144 -0
  118. package/styles/material/overrides/_icon.scss +3 -0
  119. package/styles/material/overrides/_menu.scss +3 -0
  120. package/styles/material/overrides/_paginator.scss +0 -0
  121. package/styles/material/overrides/_phone.scss +32 -0
  122. package/styles/material/overrides/_select.scss +62 -0
  123. package/styles/material/overrides/_tab.scss +23 -0
  124. package/styles/material/overrides/_table.scss +12 -0
  125. package/styles/material/overrides/_toaster.scss +38 -0
  126. package/styles/material/overrides/_toggle.scss +15 -0
  127. package/styles/material/overrides/_toolbar.scss +3 -0
  128. package/styles/material/overrides/_tooltip.scss +3 -0
  129. package/styles/material/overrides/index.scss +20 -0
  130. package/styles/scss/base/_heading.scss +17 -0
  131. package/styles/scss/base/_normalize.scss +78 -0
  132. package/styles/scss/base/index.scss +2 -0
  133. package/styles/scss/modules/_autocomplete.scss +29 -0
  134. package/styles/scss/modules/_button.scss +221 -0
  135. package/styles/scss/modules/_card.scss +23 -0
  136. package/styles/scss/modules/_chip.scss +56 -0
  137. package/styles/scss/modules/_datepicker.scss +426 -0
  138. package/styles/scss/modules/_dialog.scss +14 -0
  139. package/styles/scss/modules/_divider.scss +3 -0
  140. package/styles/scss/modules/_form.scss +233 -0
  141. package/styles/scss/modules/_icon.scss +30 -0
  142. package/styles/scss/modules/_img.scss +32 -0
  143. package/styles/scss/modules/_legend.scss +64 -0
  144. package/styles/scss/modules/_list.scss +17 -0
  145. package/styles/scss/modules/_map.scss +112 -0
  146. package/styles/scss/modules/_percentage.scss +33 -0
  147. package/styles/scss/modules/_phone.scss +29 -0
  148. package/styles/scss/modules/_select.scss +41 -0
  149. package/styles/scss/modules/_statuses.scss +31 -0
  150. package/styles/scss/modules/_tab.scss +16 -0
  151. package/styles/scss/modules/_table.scss +107 -0
  152. package/styles/scss/modules/_timepicker.scss +96 -0
  153. package/styles/scss/modules/_toaster.scss +53 -0
  154. package/styles/scss/modules/_tooltip.scss +7 -0
  155. package/styles/scss/modules/drag-drop.scss +31 -0
  156. package/styles/scss/modules/index.scss +23 -0
  157. package/styles/scss/utilities/_colors.scss +52 -0
  158. package/styles/scss/utilities/_fonts.scss +26 -0
  159. package/styles/scss/utilities/_functions.scss +27 -0
  160. package/styles/scss/utilities/_helpers.scss +5 -0
  161. package/styles/scss/utilities/_mixins.scss +65 -0
  162. package/styles/scss/utilities/_palettes.scss +74 -0
  163. package/styles/scss/utilities/_variables.scss +19 -0
  164. package/styles/scss/utilities/index.scss +7 -0
  165. package/styles/styles.scss +5 -0
  166. package/styles/tailwind/index.scss +756 -0
  167. package/esm2020/lib/base/directives/date-mask.directive.mjs +0 -65
  168. package/esm2020/lib/base/directives/digits-only.directive.mjs +0 -130
  169. package/esm2020/lib/base/directives/number-border.directive.mjs +0 -54
  170. package/esm2020/lib/base/element-base.mjs +0 -100
  171. package/esm2020/lib/base/element-wrapper/element-wrapper.component.mjs +0 -53
  172. package/esm2020/lib/base/hint/hint.component.mjs +0 -21
  173. package/esm2020/lib/base/validation/validation.component.mjs +0 -70
  174. package/esm2020/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +0 -16
  175. package/esm2020/lib/ecabs-buttons/ecabs-buttons.component.mjs +0 -65
  176. package/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +0 -89
  177. package/esm2020/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +0 -17
  178. package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +0 -85
  179. package/esm2020/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +0 -17
  180. package/esm2020/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +0 -179
  181. package/esm2020/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +0 -17
  182. package/esm2020/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +0 -193
  183. package/esm2020/lib/ecabs-date-time-range-picker/time-range.directive.mjs +0 -45
  184. package/esm2020/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +0 -46
  185. package/esm2020/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +0 -43
  186. package/esm2020/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +0 -76
  187. package/esm2020/lib/ecabs-increment/ecabs-increment.component.mjs +0 -78
  188. package/esm2020/lib/ecabs-input/ecabs-input.component.mjs +0 -83
  189. package/esm2020/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +0 -62
  190. package/esm2020/lib/ecabs-loading/ecabs-loading.component.mjs +0 -24
  191. package/esm2020/lib/ecabs-loading/spinner/spinner.component.mjs +0 -16
  192. package/esm2020/lib/ecabs-note/ecabs-note.component.mjs +0 -30
  193. package/esm2020/lib/ecabs-phone/ecabs-phone.component.mjs +0 -104
  194. package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +0 -50
  195. package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +0 -65
  196. package/esm2020/lib/ecabs-select/ecabs-select.component.mjs +0 -233
  197. package/esm2020/lib/ecabs-select/ecabs-select.module.mjs +0 -60
  198. package/esm2020/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +0 -17
  199. package/esm2020/lib/ecabs-table/ecabs-table.component.mjs +0 -43
  200. package/esm2020/lib/ecabs-textarea/ecabs-textarea.component.mjs +0 -62
  201. package/esm2020/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +0 -137
  202. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +0 -312
  203. package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +0 -31
  204. package/esm2020/lib/services/ecabs-components.service.mjs +0 -32
  205. package/fesm2015/ecabs-components.mjs +0 -3305
  206. package/fesm2015/ecabs-components.mjs.map +0 -1
  207. package/fesm2020/ecabs-components.mjs +0 -3287
  208. package/fesm2020/ecabs-components.mjs.map +0 -1
  209. /package/{esm2020 → esm2022}/ecabs-components.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/base/consts/date-mask.consts.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/ecabs-timepicker/config.model.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/models/bread-crumb.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/models/timepicker.models.mjs +0 -0
  214. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,137 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../ecabs-timepicker.service";
4
- import * as i2 from "@angular/common";
5
- export class EcabsTimeListPanelComponent {
6
- constructor(elementRef, timepickerService) {
7
- this.elementRef = elementRef;
8
- this.timepickerService = timepickerService;
9
- this.listPlacement = 'auto';
10
- this.listPosition = {};
11
- this.showDayStart = true;
12
- this.showDayEnd = false;
13
- this.position = {};
14
- this.onscroll = new EventEmitter();
15
- this.closeMe = new EventEmitter();
16
- this.hoveredItemIndex = 0;
17
- this.timeList = [];
18
- }
19
- handleKeydown($event) {
20
- if ($event.key === 'ArrowUp') {
21
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
22
- this.hoveredItemIndex ? this.hoveredItemIndex-- : null;
23
- this.scrollTo(this.hoveredItemIndex);
24
- }
25
- if ($event.key === 'ArrowDown') {
26
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
27
- this.hoveredItemIndex + 1 < this.timeList.length ? this.hoveredItemIndex++ : null;
28
- this.scrollTo(this.hoveredItemIndex);
29
- }
30
- if ($event.key === 'Enter') {
31
- this.setTime(this.timeList[this.hoveredItemIndex].value);
32
- }
33
- }
34
- ngOnInit() {
35
- this.calcListItems();
36
- if (this.appendTo) {
37
- this.appendListTo();
38
- }
39
- setTimeout(() => {
40
- this.listItemHeight = this.elementRef.nativeElement.querySelector('li').getBoundingClientRect().height;
41
- this.selectTypedValue(this.typedValue);
42
- });
43
- }
44
- appendListTo() {
45
- const parent = document.querySelector(this.appendTo);
46
- if (!parent) {
47
- throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);
48
- }
49
- parent.appendChild(this.elementRef.nativeElement);
50
- }
51
- calcListItems() {
52
- if (this.showDayStart) {
53
- this.timeList.push({
54
- value: '00:00',
55
- title: this.timepickerService.getConfig().dayStart,
56
- });
57
- }
58
- for (let index = 0; index < 24; index++) {
59
- for (const minute of ['00', '30']) {
60
- if (index === 0 && minute === '00') {
61
- continue;
62
- }
63
- this.timeList.push({
64
- value: (index > 9 ? index + '' : '0' + index) + ':' + minute,
65
- title: (index > 9 ? index + '' : '0' + index) + ':' + minute,
66
- });
67
- }
68
- }
69
- if (this.showDayEnd) {
70
- this.timeList.push({
71
- value: '23:59',
72
- title: this.timepickerService.getConfig().dayEnd,
73
- });
74
- }
75
- }
76
- ngOnChanges() {
77
- this.selectTypedValue(this.typedValue);
78
- if (this.elementRef.nativeElement) {
79
- this.elementRef.nativeElement.style.top = this.listPosition.top + 'px';
80
- this.elementRef.nativeElement.style.left = this.listPosition.left + 'px';
81
- this.elementRef.nativeElement.style.width = this.listPosition.width + 'px';
82
- if (this.appendTo) {
83
- this.elementRef.nativeElement.style.position = 'fixed';
84
- }
85
- }
86
- }
87
- selectTypedValue(value) {
88
- if (value) {
89
- const hour = parseInt(value.split(':')[0], 10);
90
- if (hour || hour === 0) {
91
- this.hoveredItemIndex = hour * 2;
92
- this.scrollTo(this.hoveredItemIndex);
93
- }
94
- }
95
- }
96
- scrollTo(index) {
97
- this.elementRef.nativeElement.querySelector('.inner-scroll').scrollTop = index * this.listItemHeight;
98
- }
99
- close() {
100
- this.closeMe.emit(null);
101
- }
102
- setTime(value) {
103
- this.closeMe.emit(value);
104
- }
105
- }
106
- EcabsTimeListPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimeListPanelComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormTimePickerService }], target: i0.ɵɵFactoryTarget.Component });
107
- EcabsTimeListPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EcabsTimeListPanelComponent, selector: "ecabs-time-list-panel", inputs: { typedValue: "typedValue", listPlacement: "listPlacement", listPosition: "listPosition", appendTo: "appendTo", min: "min", max: "max", showDayStart: "showDayStart", showDayEnd: "showDayEnd", position: "position" }, outputs: { onscroll: "onscroll", closeMe: "closeMe" }, host: { listeners: { "document:keydown": "handleKeydown($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\"\r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimeListPanelComponent, decorators: [{
109
- type: Component,
110
- args: [{ selector: 'ecabs-time-list-panel', template: "<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\"\r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
111
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormTimePickerService }]; }, propDecorators: { typedValue: [{
112
- type: Input
113
- }], listPlacement: [{
114
- type: Input
115
- }], listPosition: [{
116
- type: Input
117
- }], appendTo: [{
118
- type: Input
119
- }], min: [{
120
- type: Input
121
- }], max: [{
122
- type: Input
123
- }], showDayStart: [{
124
- type: Input
125
- }], showDayEnd: [{
126
- type: Input
127
- }], position: [{
128
- type: Input
129
- }], onscroll: [{
130
- type: Output
131
- }], closeMe: [{
132
- type: Output
133
- }], handleKeydown: [{
134
- type: HostListener,
135
- args: ['document:keydown', ['$event']]
136
- }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2NvbXBvbmV0cy9lY2Ficy10aW1lLWxpc3QtcGFuZWwvZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2NvbXBvbmV0cy9lY2Ficy10aW1lLWxpc3QtcGFuZWwvZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQzs7OztBQU9wSCxNQUFNLE9BQU8sMkJBQTJCO0lBb0J0QyxZQUFxQixVQUFzQixFQUFVLGlCQUF3QztRQUF4RSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQWxCcEYsa0JBQWEsR0FBa0IsTUFBTSxDQUFDO1FBQ3RDLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUtoQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBRTNCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBa0MsQ0FBQztRQUM5RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFvQyxFQUFFLENBQUM7SUFJbUQsQ0FBQztJQUduRyxhQUFhLENBQUUsTUFBcUI7UUFDbEMsSUFBSyxNQUFN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R0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFFLEtBQWE7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFFLGVBQWUsQ0FBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUUsS0FBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztJQUM3QixDQUFDOzt3SEFySFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsK2FDUHhDLHllQWdCQTsyRkRUYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsdUJBQXVCO3FJQUl4QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQVVQLGFBQWE7c0JBRFosWUFBWTt1QkFBRSxrQkFBa0IsRUFBRSxDQUFFLFFBQVEsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpc3RQbGFjZW1lbnQsIExpc3RQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90aW1lcGlja2VyLm1vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1UaW1lUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2VjYWJzLXRpbWVwaWNrZXIuc2VydmljZSc7XHJcbkBDb21wb25lbnQoIHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLXRpbWUtbGlzdC1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXRpbWUtbGlzdC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUaW1lTGlzdFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHR5cGVkVmFsdWU6IGFueTtcclxuICBASW5wdXQoKSBsaXN0UGxhY2VtZW50OiBMaXN0UGxhY2VtZW50ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGxpc3RQb3NpdGlvbjogTGlzdFBvc2l0aW9uID0ge307XHJcblxyXG4gIEBJbnB1dCgpIGFwcGVuZFRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXghOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0RheVN0YXJ0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RGF5RW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcG9zaXRpb246IExpc3RQb3NpdGlvbiA9IHt9O1xyXG5cclxuICBAT3V0cHV0KCkgb25zY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VNZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBob3ZlcmVkSXRlbUluZGV4ID0gMDtcclxuICB0aW1lTGlzdDogeyB2YWx1ZTogYW55OyB0aXRsZTogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGxpc3RJdGVtSGVpZ2h0ITogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHRpbWVwaWNrZXJTZXJ2aWNlOiBGb3JtVGltZVBpY2tlclNlcnZpY2UgKSB7IH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lciggJ2RvY3VtZW50OmtleWRvd24nLCBbICckZXZlbnQnIF0gKVxyXG4gIGhhbmRsZUtleWRvd24oICRldmVudDogS2V5Ym9hcmRFdmVudCApOiB2b2lkIHtcclxuICAgIGlmICggJGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnICkge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgICB0aGlzLmhvdmVyZWRJdGVtSW5kZXggPyB0aGlzLmhvdmVyZWRJdGVtSW5kZXgtLSA6IG51bGw7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG8oIHRoaXMuaG92ZXJlZEl0ZW1JbmRleCApO1xyXG4gICAgfVxyXG4gICAgaWYgKCAkZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyApIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgICAgdGhpcy5ob3ZlcmVkSXRlbUluZGV4ICsgMSA8IHRoaXMudGltZUxpc3QubGVuZ3RoID8gdGhpcy5ob3ZlcmVkSXRlbUluZGV4KysgOiBudWxsO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvKCB0aGlzLmhvdmVyZWRJdGVtSW5kZXggKTtcclxuICAgIH1cclxuICAgIGlmICggJGV2ZW50LmtleSA9PT0gJ0VudGVyJyApIHtcclxuICAgICAgdGhpcy5zZXRUaW1lKCB0aGlzLnRpbWVMaXN0WyB0aGlzLmhvdmVyZWRJdGVtSW5kZXggXS52YWx1ZSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGNMaXN0SXRlbXMoKTtcclxuICAgIGlmICggdGhpcy5hcHBlbmRUbyApIHtcclxuICAgICAgdGhpcy5hcHBlbmRMaXN0VG8oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdEl0ZW1IZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCAnbGknICkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICB0aGlzLnNlbGVjdFR5cGVkVmFsdWUoIHRoaXMudHlwZWRWYWx1ZSApO1xyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgYXBwZW5kTGlzdFRvKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFyZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggdGhpcy5hcHBlbmRUbyApO1xyXG4gICAgaWYgKCAhcGFyZW50ICkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoIGBhcHBlbmRUbyBzZWxlY3RvciAkeyB0aGlzLmFwcGVuZFRvIH0gZGlkIG5vdCBmb3VuZCBhbnkgcGFyZW50IGVsZW1lbnRgICk7XHJcbiAgICB9XHJcbiAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICk7XHJcbiAgfVxyXG5cclxuICBjYWxjTGlzdEl0ZW1zKCk6IHZvaWQge1xyXG4gICAgaWYgKCB0aGlzLnNob3dEYXlTdGFydCApIHtcclxuICAgICAgdGhpcy50aW1lTGlzdC5wdXNoKCB7XHJcbiAgICAgICAgdmFsdWU6ICcwMDowMCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuZGF5U3RhcnQsXHJcbiAgICAgIH0gKTtcclxuICAgIH1cclxuICAgIGZvciAoIGxldCBpbmRleCA9IDA7IGluZGV4IDwgMjQ7IGluZGV4KysgKSB7XHJcbiAgICAgIGZvciAoIGNvbnN0IG1pbnV0ZSBvZiBbICcwMCcsICczMCcgXSApIHtcclxuICAgICAgICBpZiAoIGluZGV4ID09PSAwICYmIG1pbnV0ZSA9PT0gJzAwJyApIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRpbWVMaXN0LnB1c2goIHtcclxuICAgICAgICAgIHZhbHVlOiAoIGluZGV4ID4gOSA/IGluZGV4ICsgJycgOiAnMCcgKyBpbmRleCApICsgJzonICsgbWludXRlLFxyXG4gICAgICAgICAgdGl0bGU6ICggaW5kZXggPiA5ID8gaW5kZXggKyAnJyA6ICcwJyArIGluZGV4ICkgKyAnOicgKyBtaW51dGUsXHJcbiAgICAgICAgfSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIHRoaXMuc2hvd0RheUVuZCApIHtcclxuICAgICAgdGhpcy50aW1lTGlzdC5wdXNoKCB7XHJcbiAgICAgICAgdmFsdWU6ICcyMzo1OScsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuZGF5RW5kLFxyXG4gICAgICB9ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0VHlwZWRWYWx1ZSggdGhpcy50eXBlZFZhbHVlICk7XHJcbiAgICBpZiAoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICkge1xyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLmxpc3RQb3NpdGlvbi50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy5saXN0UG9zaXRpb24ubGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5saXN0UG9zaXRpb24ud2lkdGggKyAncHgnO1xyXG4gICAgICBpZiAoIHRoaXMuYXBwZW5kVG8gKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUeXBlZFZhbHVlKCB2YWx1ZTogYW55ICk6IHZvaWQge1xyXG4gICAgaWYgKCB2YWx1ZSApIHtcclxuICAgICAgY29uc3QgaG91ciA9IHBhcnNlSW50KCB2YWx1ZS5zcGxpdCggJzonIClbIDAgXSwgMTAgKTtcclxuICAgICAgaWYgKCBob3VyIHx8IGhvdXIgPT09IDAgKSB7XHJcbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbUluZGV4ID0gaG91ciAqIDI7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUbyggdGhpcy5ob3ZlcmVkSXRlbUluZGV4ICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvKCBpbmRleDogbnVtYmVyICk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvciggJy5pbm5lci1zY3JvbGwnICkuc2Nyb2xsVG9wID0gaW5kZXggKiB0aGlzLmxpc3RJdGVtSGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlTWUuZW1pdCggbnVsbCApO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VNZS5lbWl0KCB2YWx1ZSApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGlzdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICA8dWw+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaSBvZiB0aW1lTGlzdDsgbGV0IGNvdW50ZXIgPSBpbmRleFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0VGltZShpLnZhbHVlKVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkSXRlbUluZGV4ID0gY291bnRlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdHlwZWRWYWx1ZSA9PT0gaS52YWx1ZSwgaG92ZXJlZDogY291bnRlciA9PT0gaG92ZXJlZEl0ZW1JbmRleCB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpLnRpdGxlIH19XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,312 +0,0 @@
1
- import { Component, Input, HostBinding, HostListener } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
3
- import ElementBaseComponent from '../base/element-base';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./ecabs-timepicker.service";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../base/element-wrapper/element-wrapper.component";
8
- import * as i4 from "./componets/ecabs-time-list-panel/ecabs-time-list-panel.component";
9
- export class EcabsTimepickerComponent extends ElementBaseComponent {
10
- constructor(elementRef, timepickerService, injector) {
11
- super();
12
- this.elementRef = elementRef;
13
- this.timepickerService = timepickerService;
14
- this.injector = injector;
15
- this.showCloseIcon = true;
16
- this.focusedFlag = false;
17
- this.listPlacement = 'auto';
18
- this.showDayStart = true;
19
- this.showDayEnd = false;
20
- this.addSecond = true;
21
- this.position = {};
22
- this._data = '';
23
- this.listPosition = {};
24
- //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-empty-function
25
- this.onChangeFn = (_) => { };
26
- // eslint-disable-next-line @typescript-eslint/no-empty-function
27
- this.onTouchedFn = () => { };
28
- this.placeholder = '00:00';
29
- this._timePicker = this.elementRef.nativeElement;
30
- setTimeout(() => {
31
- this._input = this._timePicker.querySelector('input');
32
- });
33
- if (!this.iconClass) {
34
- this.iconClass = this.timepickerService.getConfig().iconClass;
35
- }
36
- }
37
- get data() {
38
- return this._data;
39
- }
40
- set data(value) {
41
- this._data = value;
42
- if (this._data.length === 5) {
43
- if (this._data === '23:59') {
44
- this.onChangeFn(this._data + (this.addSecond ? ':59' : ''));
45
- }
46
- else {
47
- this.onChangeFn(this._data + (this.addSecond ? ':00' : ''));
48
- }
49
- }
50
- else if (this._data === '') {
51
- this.onChangeFn(this._data);
52
- }
53
- }
54
- handleMousedown($event) {
55
- const target = $event.target;
56
- if (target.closest('.form-time-list') ||
57
- target.closest('.timeInputWrapper') === this._timePicker.querySelector('.timeInputWrapper')) {
58
- this._timePicker.querySelector('.timeInputWrapper').focus();
59
- return;
60
- }
61
- if (this.focusedFlag) {
62
- this.close();
63
- }
64
- }
65
- ngAfterViewInit() {
66
- const ngControl = this.injector.get(NgControl, null);
67
- if (ngControl) {
68
- this.control = ngControl.control;
69
- }
70
- }
71
- clearInput() {
72
- this.data = '';
73
- }
74
- calcListPosition() {
75
- const position = this._timePicker.querySelector('.timeInputFieldWrapper').getBoundingClientRect();
76
- if (this.appendTo) {
77
- this.listPosition = {
78
- left: position.x,
79
- top: position.top + position.height,
80
- width: position.width,
81
- };
82
- }
83
- else {
84
- this.listPosition = {
85
- left: 0,
86
- top: position.height,
87
- width: position.width,
88
- };
89
- }
90
- }
91
- inputKeyDown(event) {
92
- this.caretPositionStart = event.target.selectionStart;
93
- this.caretPositionEnd = event.target.selectionEnd;
94
- const key = event.key;
95
- this.setCaretPosition(this._input);
96
- switch (this.checkSpecialKeys(key, this.caretPositionStart, this.caretPositionEnd)) {
97
- case 'stop':
98
- return false;
99
- case 'tab':
100
- this.close();
101
- return false;
102
- case 'arrow':
103
- return false;
104
- }
105
- if (this.checkUnUsedKeys(key)) {
106
- return false;
107
- }
108
- const newData = this.data.slice(0, this.caretPositionStart) + key + this.data.slice(this.caretPositionStart, this.data.length);
109
- if (this.checkOutOfRangeNumber(newData)) {
110
- this.data = newData;
111
- this.caretPositionStart++;
112
- }
113
- if (this.caretPositionStart === this.data.length &&
114
- (this.data.length === 2 || (this.data.length === 1 && parseInt(this.data) > 2))) {
115
- this.makeHourFull();
116
- this.data += ':';
117
- this.caretPositionStart++;
118
- }
119
- return false;
120
- }
121
- checkSpecialKeys(key, selectionStart, selectionEnd) {
122
- if (selectionStart !== selectionEnd && key !== 'ArrowLeft' && key !== 'ArrowRight') {
123
- if (!(this.data.slice(selectionStart, selectionEnd).includes(':') && selectionEnd !== this.data.length)) {
124
- this.data = this.data.slice(0, selectionStart) + this.data.slice(selectionEnd, this.data.length);
125
- }
126
- }
127
- if (selectionStart === selectionEnd && key === 'Backspace') {
128
- if (this.data.length > 0) {
129
- if (this.data[selectionStart - 1] !== ':' ||
130
- (this.data[selectionStart - 1] === ':' && selectionStart === this.data.length)) {
131
- this.data = this.data.slice(0, selectionStart - 1) + this.data.slice(selectionEnd, this.data.length);
132
- this.caretPositionStart--;
133
- }
134
- }
135
- return 'stop';
136
- }
137
- if (key === 'Tab' || key === ' ' || key === ':') {
138
- if (!this.data.includes(':') && this.data.length > 0) {
139
- this.makeHourFull();
140
- this.data += ':';
141
- this.caretPositionStart++;
142
- return 'stop';
143
- }
144
- if (key === 'Tab') {
145
- return 'tab';
146
- }
147
- return 'stop';
148
- }
149
- if (key === 'ArrowRight') {
150
- if (this.caretPositionStart < this.data.length) {
151
- this.caretPositionStart++;
152
- }
153
- return 'arrow';
154
- }
155
- if (key === 'ArrowLeft') {
156
- if (this.caretPositionStart > 0) {
157
- this.caretPositionStart--;
158
- }
159
- return 'arrow';
160
- }
161
- if (key === 'ArrowDown' && !this.focusedFlag) {
162
- this.show();
163
- }
164
- return 'continue';
165
- }
166
- checkUnUsedKeys(key) {
167
- const r = new RegExp('[0-9]');
168
- return !r.test(key);
169
- }
170
- setCaretPosition(elem) {
171
- setTimeout(() => {
172
- if (elem !== null) {
173
- if (elem.createTextRange) {
174
- const range = elem.createTextRange();
175
- range.move('character', this.caretPositionStart);
176
- range.select();
177
- }
178
- else {
179
- if (elem.selectionStart) {
180
- elem.focus();
181
- elem.setSelectionRange(this.caretPositionStart, this.caretPositionStart);
182
- }
183
- else {
184
- elem.focus();
185
- }
186
- }
187
- }
188
- });
189
- }
190
- checkOutOfRangeNumber(time) {
191
- const hour = parseInt(time.split(':')[0], 10);
192
- let minute = -1;
193
- if (time.split(':').length > 1) {
194
- minute = parseInt(time.split(':')[1], 10);
195
- }
196
- if (hour < 24 && time.split(':')[0].length < 3 && minute < 60) {
197
- if (time.split(':').length > 1 && time.split(':')[1].length > 2) {
198
- return false;
199
- }
200
- return true;
201
- }
202
- return false;
203
- }
204
- makeHourFull() {
205
- const hourPart = this.data.split(':')[0];
206
- const minutePart = this.data.split(':').length > 1 ? this.data.split(':')[1] : '';
207
- if (hourPart.length === 1) {
208
- this.data = '0' + hourPart + (minutePart ? ':' + minutePart : minutePart);
209
- this.caretPositionStart++;
210
- }
211
- }
212
- makeMinuteFull() {
213
- const hourPart = this.data.split(':')[0];
214
- const minutePart = this.data.split(':').length > 1 ? this.data.split(':')[1] : '';
215
- if (minutePart.length === 0) {
216
- this.data = hourPart + ':00';
217
- this.caretPositionStart += 2;
218
- }
219
- if (minutePart.length === 1) {
220
- this.data = hourPart + ':' + minutePart + '0';
221
- this.caretPositionStart++;
222
- }
223
- }
224
- fixTimeToNearest() {
225
- if (this.data.length > 0) {
226
- this.makeHourFull();
227
- this.makeMinuteFull();
228
- }
229
- }
230
- registerOnChange(fn) {
231
- this.onChangeFn = fn;
232
- }
233
- registerOnTouched(fn) {
234
- this.onTouchedFn = fn;
235
- }
236
- setDisabledState(isDisabled) {
237
- this.disabled = isDisabled;
238
- }
239
- writeValue(obj) {
240
- if (obj) {
241
- obj = obj.toString();
242
- let temp = '';
243
- if (obj.split(':').length >= 2) {
244
- temp = obj.split(':')[0] + ':' + obj.split(':')[1];
245
- }
246
- this._data = temp;
247
- }
248
- else {
249
- this._data = '';
250
- }
251
- }
252
- onChange() {
253
- this.onChangeFn(this.data);
254
- }
255
- show() {
256
- this.calcListPosition();
257
- this.focusedFlag = true;
258
- }
259
- close(val = null) {
260
- if (val) {
261
- this.data = val;
262
- }
263
- else {
264
- this.fixTimeToNearest();
265
- }
266
- this.focusedFlag = false;
267
- this.control?.markAsTouched();
268
- }
269
- }
270
- EcabsTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimepickerComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormTimePickerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
271
- EcabsTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EcabsTimepickerComponent, selector: "ecabs-timepicker", inputs: { showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", listPlacement: "listPlacement", appendTo: "appendTo", min: "min", max: "max", showDayStart: "showDayStart", showDayEnd: "showDayEnd", addSecond: "addSecond" }, host: { listeners: { "document:mousedown": "handleMousedown($event)" }, properties: { "class.form-timepicker-focused": "this.focusedFlag" } }, providers: [
272
- {
273
- provide: NG_VALUE_ACCESSOR,
274
- useExisting: EcabsTimepickerComponent,
275
- multi: true,
276
- },
277
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"timeInputWrapper\" [ngClass]=\"{ disabled: disabled }\">\r\n <app-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </app-element-wrapper>\r\n</div>\r\n", styles: [":host::ng-deep .timeInputWrapper app-element-wrapper .form-field{margin-bottom:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.EcabsTimeListPanelComponent, selector: "ecabs-time-list-panel", inputs: ["typedValue", "listPlacement", "listPosition", "appendTo", "min", "max", "showDayStart", "showDayEnd", "position"], outputs: ["onscroll", "closeMe"] }] });
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimepickerComponent, decorators: [{
279
- type: Component,
280
- args: [{ selector: 'ecabs-timepicker', providers: [
281
- {
282
- provide: NG_VALUE_ACCESSOR,
283
- useExisting: EcabsTimepickerComponent,
284
- multi: true,
285
- },
286
- ], template: "<div class=\"timeInputWrapper\" [ngClass]=\"{ disabled: disabled }\">\r\n <app-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </app-element-wrapper>\r\n</div>\r\n", styles: [":host::ng-deep .timeInputWrapper app-element-wrapper .form-field{margin-bottom:0}\n"] }]
287
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormTimePickerService }, { type: i0.Injector }]; }, propDecorators: { showCloseIcon: [{
288
- type: Input
289
- }], focusedFlag: [{
290
- type: Input
291
- }, {
292
- type: HostBinding,
293
- args: ['class.form-timepicker-focused']
294
- }], listPlacement: [{
295
- type: Input
296
- }], appendTo: [{
297
- type: Input
298
- }], min: [{
299
- type: Input
300
- }], max: [{
301
- type: Input
302
- }], showDayStart: [{
303
- type: Input
304
- }], showDayEnd: [{
305
- type: Input
306
- }], addSecond: [{
307
- type: Input
308
- }], handleMousedown: [{
309
- type: HostListener,
310
- args: ['document:mousedown', ['$event']]
311
- }] } });
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtdGltZXBpY2tlci9lY2Ficy10aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2VjYWJzLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxTQUFTLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEcsT0FBTyxvQkFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBZXhELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFvQ2hFLFlBQ1UsVUFBc0IsRUFDdEIsaUJBQXdDLEVBQ3hDLFFBQWtCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSkEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVCO1FBQ3hDLGFBQVEsR0FBUixRQUFRLENBQVU7UUF0Q25CLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzJCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BFLGtCQUFhLEdBQWtCLE1BQU0sQ0FBQztRQUl0QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFMUIsYUFBUSxHQUFpQixFQUFFLENBQUM7UUFDNUIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQXdQaEMs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bnQsIElucHV0LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBJbmplY3RvciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL2VjYWJzLXRpbWVwaWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCBFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IExpc3RQbGFjZW1lbnQsIExpc3RQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy90aW1lcGlja2VyLm1vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KCB7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy10aW1lcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICdlY2Ficy10aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzVGltZXBpY2tlckNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUaW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgc2hvd0Nsb3NlSWNvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCAnY2xhc3MuZm9ybS10aW1lcGlja2VyLWZvY3VzZWQnICkgZm9jdXNlZEZsYWcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBsaXN0UGxhY2VtZW50OiBMaXN0UGxhY2VtZW50ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGFwcGVuZFRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXghOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0RheVN0YXJ0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RGF5RW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWRkU2Vjb25kID0gdHJ1ZTtcclxuXHJcbiAgcG9zaXRpb246IExpc3RQb3NpdGlvbiA9IHt9O1xyXG4gIF9kYXRhID0gJyc7XHJcbiAgX3RpbWVQaWNrZXI7XHJcbiAgX2lucHV0ITogYW55O1xyXG4gIGxpc3RQb3NpdGlvbjogTGlzdFBvc2l0aW9uID0ge307XHJcbiAgY2FyZXRQb3NpdGlvblN0YXJ0ITogYW55O1xyXG4gIGNhcmV0UG9zaXRpb25FbmQhOiBhbnk7XHJcblxyXG4gIGdldCBkYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcblxyXG4gIHNldCBkYXRhKCB2YWx1ZTogYW55ICkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xyXG4gICAgaWYgKCB0aGlzLl9kYXRhLmxlbmd0aCA9PT0gNSApIHtcclxuICAgICAgaWYgKCB0aGlzLl9kYXRhID09PSAnMjM6NTknICkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VGbiggdGhpcy5fZGF0YSArICggdGhpcy5hZGRTZWNvbmQgPyAnOjU5JyA6ICcnICkgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuX2RhdGEgKyAoIHRoaXMuYWRkU2Vjb25kID8gJzowMCcgOiAnJyApICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIHRoaXMuX2RhdGEgPT09ICcnICkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuX2RhdGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB0aW1lcGlja2VyU2VydmljZTogRm9ybVRpbWVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJzAwOjAwJztcclxuICAgIHRoaXMuX3RpbWVQaWNrZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHNldFRpbWVvdXQoICgpID0+IHtcclxuICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICdpbnB1dCcgKTtcclxuICAgIH0gKTtcclxuICAgIGlmICggIXRoaXMuaWNvbkNsYXNzICkge1xyXG4gICAgICB0aGlzLmljb25DbGFzcyA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuaWNvbkNsYXNzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lciggJ2RvY3VtZW50Om1vdXNlZG93bicsIFsgJyRldmVudCcgXSApXHJcbiAgaGFuZGxlTW91c2Vkb3duKCAkZXZlbnQ6IE1vdXNlRXZlbnQgKTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKFxyXG4gICAgICB0YXJnZXQuY2xvc2VzdCggJy5mb3JtLXRpbWUtbGlzdCcgKSB8fFxyXG4gICAgICB0YXJnZXQuY2xvc2VzdCggJy50aW1lSW5wdXRXcmFwcGVyJyApID09PSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICcudGltZUlucHV0V3JhcHBlcicgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuX3RpbWVQaWNrZXIucXVlcnlTZWxlY3RvciggJy50aW1lSW5wdXRXcmFwcGVyJyApLmZvY3VzKCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIHRoaXMuZm9jdXNlZEZsYWcgKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoIE5nQ29udHJvbCwgbnVsbCApIGFzIE5nQ29udHJvbDtcclxuICAgIGlmICggbmdDb250cm9sICkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcklucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhID0gJyc7XHJcbiAgfVxyXG5cclxuICBjYWxjTGlzdFBvc2l0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICcudGltZUlucHV0RmllbGRXcmFwcGVyJyApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCB0aGlzLmFwcGVuZFRvICkge1xyXG4gICAgICB0aGlzLmxpc3RQb3NpdGlvbiA9IHtcclxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi54LFxyXG4gICAgICAgIHRvcDogcG9zaXRpb24udG9wICsgcG9zaXRpb24uaGVpZ2h0LFxyXG4gICAgICAgIHdpZHRoOiBwb3NpdGlvbi53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdFBvc2l0aW9uID0ge1xyXG4gICAgICAgIGxlZnQ6IDAsXHJcbiAgICAgICAgdG9wOiBwb3NpdGlvbi5oZWlnaHQsXHJcbiAgICAgICAgd2lkdGg6IHBvc2l0aW9uLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRLZXlEb3duKCBldmVudDogYW55ICk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB0aGlzLmNhcmV0UG9zaXRpb25FbmQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xyXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xyXG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKCB0aGlzLl9pbnB1dCApO1xyXG4gICAgc3dpdGNoICggdGhpcy5jaGVja1NwZWNpYWxLZXlzKCBrZXksIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0LCB0aGlzLmNhcmV0UG9zaXRpb25FbmQgKSApIHtcclxuICAgICAgY2FzZSAnc3RvcCc6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgY2FzZSAndGFiJzpcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIGNhc2UgJ2Fycm93JzpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCB0aGlzLmNoZWNrVW5Vc2VkS2V5cygga2V5ICkgKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdEYXRhID1cclxuICAgICAgdGhpcy5kYXRhLnNsaWNlKCAwLCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCApICsga2V5ICsgdGhpcy5kYXRhLnNsaWNlKCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG5cclxuICAgIGlmICggdGhpcy5jaGVja091dE9mUmFuZ2VOdW1iZXIoIG5ld0RhdGEgKSApIHtcclxuICAgICAgdGhpcy5kYXRhID0gbmV3RGF0YTtcclxuICAgICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQrKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ID09PSB0aGlzLmRhdGEubGVuZ3RoICYmXHJcbiAgICAgICggdGhpcy5kYXRhLmxlbmd0aCA9PT0gMiB8fCAoIHRoaXMuZGF0YS5sZW5ndGggPT09IDEgJiYgcGFyc2VJbnQoIHRoaXMuZGF0YSApID4gMiApIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLm1ha2VIb3VyRnVsbCgpO1xyXG4gICAgICB0aGlzLmRhdGEgKz0gJzonO1xyXG4gICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrU3BlY2lhbEtleXMoIGtleTogYW55LCBzZWxlY3Rpb25TdGFydDogYW55LCBzZWxlY3Rpb25FbmQ6IGFueSApOiAnc3RvcCcgfCAnY29udGludWUnIHwgJ3RhYicgfCAnYXJyb3cnIHtcclxuICAgIGlmICggc2VsZWN0aW9uU3RhcnQgIT09IHNlbGVjdGlvbkVuZCAmJiBrZXkgIT09ICdBcnJvd0xlZnQnICYmIGtleSAhPT0gJ0Fycm93UmlnaHQnICkge1xyXG4gICAgICBpZiAoICEoIHRoaXMuZGF0YS5zbGljZSggc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCApLmluY2x1ZGVzKCAnOicgKSAmJiBzZWxlY3Rpb25FbmQgIT09IHRoaXMuZGF0YS5sZW5ndGggKSApIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuc2xpY2UoIDAsIHNlbGVjdGlvblN0YXJ0ICkgKyB0aGlzLmRhdGEuc2xpY2UoIHNlbGVjdGlvbkVuZCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIHNlbGVjdGlvblN0YXJ0ID09PSBzZWxlY3Rpb25FbmQgJiYga2V5ID09PSAnQmFja3NwYWNlJyApIHtcclxuICAgICAgaWYgKCB0aGlzLmRhdGEubGVuZ3RoID4gMCApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmRhdGFbIHNlbGVjdGlvblN0YXJ0IC0gMSBdICE9PSAnOicgfHxcclxuICAgICAgICAgICggdGhpcy5kYXRhWyBzZWxlY3Rpb25TdGFydCAtIDEgXSA9PT0gJzonICYmIHNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLmRhdGEubGVuZ3RoIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5zbGljZSggMCwgc2VsZWN0aW9uU3RhcnQgLSAxICkgKyB0aGlzLmRhdGEuc2xpY2UoIHNlbGVjdGlvbkVuZCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG4gICAgICAgICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQtLTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAnc3RvcCc7XHJcbiAgICB9XHJcbiAgICBpZiAoIGtleSA9PT0gJ1RhYicgfHwga2V5ID09PSAnICcgfHwga2V5ID09PSAnOicgKSB7XHJcbiAgICAgIGlmICggIXRoaXMuZGF0YS5pbmNsdWRlcyggJzonICkgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDAgKSB7XHJcbiAgICAgICAgdGhpcy5tYWtlSG91ckZ1bGwoKTtcclxuICAgICAgICB0aGlzLmRhdGEgKz0gJzonO1xyXG4gICAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcblxyXG4gICAgICAgIHJldHVybiAnc3RvcCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCBrZXkgPT09ICdUYWInICkge1xyXG4gICAgICAgIHJldHVybiAndGFiJztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuICdzdG9wJztcclxuICAgIH1cclxuICAgIGlmICgga2V5ID09PSAnQXJyb3dSaWdodCcgKSB7XHJcbiAgICAgIGlmICggdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQgPCB0aGlzLmRhdGEubGVuZ3RoICkge1xyXG4gICAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAnYXJyb3cnO1xyXG4gICAgfVxyXG4gICAgaWYgKCBrZXkgPT09ICdBcnJvd0xlZnQnICkge1xyXG4gICAgICBpZiAoIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ID4gMCApIHtcclxuICAgICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydC0tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gJ2Fycm93JztcclxuICAgIH1cclxuICAgIGlmICgga2V5ID09PSAnQXJyb3dEb3duJyAmJiAhdGhpcy5mb2N1c2VkRmxhZyApIHtcclxuICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICdjb250aW51ZSc7XHJcbiAgfVxyXG5cclxuICBjaGVja1VuVXNlZEtleXMoIGtleTogc3RyaW5nICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgciA9IG5ldyBSZWdFeHAoICdbMC05XScgKTtcclxuXHJcbiAgICByZXR1cm4gIXIudGVzdCgga2V5ICk7XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldFBvc2l0aW9uKCBlbGVtOiBhbnkgKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgIGlmICggZWxlbSAhPT0gbnVsbCApIHtcclxuICAgICAgICBpZiAoIGVsZW0uY3JlYXRlVGV4dFJhbmdlICkge1xyXG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBlbGVtLmNyZWF0ZVRleHRSYW5nZSgpO1xyXG4gICAgICAgICAgcmFuZ2UubW92ZSggJ2NoYXJhY3RlcicsIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ICk7XHJcbiAgICAgICAgICByYW5nZS5zZWxlY3QoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCBlbGVtLnNlbGVjdGlvblN0YXJ0ICkge1xyXG4gICAgICAgICAgICBlbGVtLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIGVsZW0uc2V0U2VsZWN0aW9uUmFuZ2UoIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0LCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxlbS5mb2N1cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tPdXRPZlJhbmdlTnVtYmVyKCB0aW1lOiBhbnkgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBob3VyID0gcGFyc2VJbnQoIHRpbWUuc3BsaXQoICc6JyApWyAwIF0sIDEwICk7XHJcbiAgICBsZXQgbWludXRlID0gLTE7XHJcbiAgICBpZiAoIHRpbWUuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgKSB7XHJcbiAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KCB0aW1lLnNwbGl0KCAnOicgKVsgMSBdLCAxMCApO1xyXG4gICAgfVxyXG4gICAgaWYgKCBob3VyIDwgMjQgJiYgdGltZS5zcGxpdCggJzonIClbIDAgXS5sZW5ndGggPCAzICYmIG1pbnV0ZSA8IDYwICkge1xyXG4gICAgICBpZiAoIHRpbWUuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgJiYgdGltZS5zcGxpdCggJzonIClbIDEgXS5sZW5ndGggPiAyICkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbWFrZUhvdXJGdWxsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaG91clBhcnQgPSB0aGlzLmRhdGEuc3BsaXQoICc6JyApWyAwIF07XHJcbiAgICBjb25zdCBtaW51dGVQYXJ0ID0gdGhpcy5kYXRhLnNwbGl0KCAnOicgKS5sZW5ndGggPiAxID8gdGhpcy5kYXRhLnNwbGl0KCAnOicgKVsgMSBdIDogJyc7XHJcbiAgICBpZiAoIGhvdXJQYXJ0Lmxlbmd0aCA9PT0gMSApIHtcclxuICAgICAgdGhpcy5kYXRhID0gJzAnICsgaG91clBhcnQgKyAoIG1pbnV0ZVBhcnQgPyAnOicgKyBtaW51dGVQYXJ0IDogbWludXRlUGFydCApO1xyXG4gICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFrZU1pbnV0ZUZ1bGwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBob3VyUGFydCA9IHRoaXMuZGF0YS5zcGxpdCggJzonIClbIDAgXTtcclxuICAgIGNvbnN0IG1pbnV0ZVBhcnQgPSB0aGlzLmRhdGEuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgPyB0aGlzLmRhdGEuc3BsaXQoICc6JyApWyAxIF0gOiAnJztcclxuICAgIGlmICggbWludXRlUGFydC5sZW5ndGggPT09IDAgKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGhvdXJQYXJ0ICsgJzowMCc7XHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoIG1pbnV0ZVBhcnQubGVuZ3RoID09PSAxICkge1xyXG4gICAgICB0aGlzLmRhdGEgPSBob3VyUGFydCArICc6JyArIG1pbnV0ZVBhcnQgKyAnMCc7XHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaXhUaW1lVG9OZWFyZXN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCB0aGlzLmRhdGEubGVuZ3RoID4gMCApIHtcclxuICAgICAgdGhpcy5tYWtlSG91ckZ1bGwoKTtcclxuICAgICAgdGhpcy5tYWtlTWludXRlRnVsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBuby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgcHVibGljIG9uQ2hhbmdlRm4gPSAoIF86IGFueSApOiB2b2lkID0+IHsgfTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgcHVibGljIG9uVG91Y2hlZEZuID0gKCk6IHZvaWQgPT4geyB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZSggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCBmbjogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoIGlzRGlzYWJsZWQ6IGJvb2xlYW4gKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKCBvYmo6IGFueSApOiB2b2lkIHtcclxuICAgIGlmICggb2JqICkge1xyXG4gICAgICBvYmogPSBvYmoudG9TdHJpbmcoKTtcclxuICAgICAgbGV0IHRlbXAgPSAnJztcclxuICAgICAgaWYgKCBvYmouc3BsaXQoICc6JyApLmxlbmd0aCA+PSAyICkge1xyXG4gICAgICAgIHRlbXAgPSBvYmouc3BsaXQoICc6JyApWyAwIF0gKyAnOicgKyBvYmouc3BsaXQoICc6JyApWyAxIF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fZGF0YSA9IHRlbXA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kYXRhID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuZGF0YSApO1xyXG4gIH1cclxuXHJcbiAgc2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FsY0xpc3RQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5mb2N1c2VkRmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSggdmFsID0gbnVsbCApOiB2b2lkIHtcclxuICAgIGlmICggdmFsICkge1xyXG4gICAgICB0aGlzLmRhdGEgPSB2YWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpeFRpbWVUb05lYXJlc3QoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXNlZEZsYWcgPSBmYWxzZTtcclxuICAgIHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGltZUlucHV0V3JhcHBlclwiIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkIH1cIj5cclxuICA8YXBwLWVsZW1lbnQtd3JhcHBlclxyXG4gICAgW2RhdGFdPVwiZ2V0RGF0YSgpXCJcclxuICAgIFtzaG93Q2xvc2VJY29uXT1cInNob3dDbG9zZUljb25cIlxyXG4gICAgW2ZvY3VzZWRGbGFnXT1cImZvY3VzZWRGbGFnXCJcclxuICAgIChjbGVhcik9XCJjbGVhcklucHV0KClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lSW5wdXRGaWVsZFdyYXBwZXJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXRcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIChmb2N1cyk9XCJzaG93KClcIlxyXG4gICAgICAgIChjbGljayk9XCJzaG93KClcIlxyXG4gICAgICAgIChrZXlkb3duKT1cImlucHV0S2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXN1ZmZpeFwiICpuZ0lmPVwidHlwZSAhPT0gJ251bWJlcidcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtaWNvblwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxlY2Ficy10aW1lLWxpc3QtcGFuZWxcclxuICAgICAgICBbdHlwZWRWYWx1ZV09XCJkYXRhXCJcclxuICAgICAgICAqbmdJZj1cImZvY3VzZWRGbGFnXCJcclxuICAgICAgICBbc2hvd0RheVN0YXJ0XT1cInNob3dEYXlTdGFydFwiXHJcbiAgICAgICAgW3Nob3dEYXlFbmRdPVwic2hvd0RheUVuZFwiXHJcbiAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tdGltZS1saXN0XCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxyXG4gICAgICAgIFtsaXN0UG9zaXRpb25dPVwibGlzdFBvc2l0aW9uXCJcclxuICAgICAgICAoY2xvc2VNZSk9XCJjbG9zZSgkZXZlbnQpXCJcclxuICAgICAgPjwvZWNhYnMtdGltZS1saXN0LXBhbmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG48L2Rpdj5cclxuIl19
@@ -1,31 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class FormTimePickerService {
5
- constructor() {
6
- this.config = {
7
- dayEnd: 'Day End',
8
- dayStart: 'Day Start',
9
- iconClass: '',
10
- };
11
- this.closeSub = new Subject();
12
- }
13
- setConfig(c) {
14
- this.config = Object.assign(this.config, c);
15
- }
16
- getConfig() {
17
- return this.config;
18
- }
19
- close() {
20
- this.closeSub.next(true);
21
- }
22
- }
23
- FormTimePickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormTimePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
- FormTimePickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormTimePickerService, providedIn: 'root' });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormTimePickerService, decorators: [{
26
- type: Injectable,
27
- args: [{
28
- providedIn: 'root',
29
- }]
30
- }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGltZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRpbWVwaWNrZXIvZWNhYnMtdGltZXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNL0IsTUFBTSxPQUFPLHFCQUFxQjtJQUhsQztRQUlFLFdBQU0sR0FBeUI7WUFDN0IsTUFBTSxFQUFFLFNBQVM7WUFDakIsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBRUssYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7S0FhMUM7SUFYQyxTQUFTLENBQUMsQ0FBdUI7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOztrSEFuQlUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1UaW1lUGlja2VyQ29uZmlnIH0gZnJvbSAnLi9jb25maWcubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1UaW1lUGlja2VyU2VydmljZSB7XHJcbiAgY29uZmlnOiBGb3JtVGltZVBpY2tlckNvbmZpZyA9IHtcclxuICAgIGRheUVuZDogJ0RheSBFbmQnLFxyXG4gICAgZGF5U3RhcnQ6ICdEYXkgU3RhcnQnLFxyXG4gICAgaWNvbkNsYXNzOiAnJyxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgY2xvc2VTdWIgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBzZXRDb25maWcoYzogRm9ybVRpbWVQaWNrZXJDb25maWcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgYyk7XHJcbiAgfVxyXG5cclxuICBnZXRDb25maWcoKTogRm9ybVRpbWVQaWNrZXJDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlU3ViLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class EcabsComponentsService {
4
- constructor() {
5
- this.config = {
6
- errorMessages: [
7
- { type: 'required', message: '[label] is required' },
8
- { type: 'minlength', message: '[label] should be atleast [requiredLength] character' },
9
- { type: 'maxLength', message: '[label] should be maximum [requiredLength] character' },
10
- { type: 'min', message: '[label] should be minmum [min]' },
11
- { type: 'max', message: '[label] should be maximum [max]' },
12
- { type: 'minValue', message: '[label] should be minmum [requiredMin]' },
13
- { type: 'maxValue', message: '[label] should be maximum [requiredMax]' },
14
- ],
15
- };
16
- }
17
- setConfig(c) {
18
- this.config.errorMessages = c.errorMessages;
19
- }
20
- getConfig() {
21
- return this.config;
22
- }
23
- }
24
- EcabsComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- EcabsComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsComponentsService, providedIn: 'root' });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsComponentsService, decorators: [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root',
30
- }]
31
- }], ctorParameters: function () { return []; } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBWWpDO1FBWEEsV0FBTSxHQUEwQjtZQUM5QixhQUFhLEVBQUU7Z0JBQ2IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtnQkFDcEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxzREFBc0QsRUFBRTtnQkFDdEYsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxzREFBc0QsRUFBRTtnQkFDdEYsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRTtnQkFDMUQsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRTtnQkFDM0QsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRTtnQkFDdkUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRTthQUN6RTtTQUNGLENBQUM7SUFDYSxDQUFDO0lBQ2hCLFNBQVMsQ0FBQyxDQUF3QjtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7O21IQWxCVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNDb21wb25lbnRzU2VydmljZSB7XHJcbiAgY29uZmlnOiBFY2Fic0NvbXBvbmVudHNDb25maWcgPSB7XHJcbiAgICBlcnJvck1lc3NhZ2VzOiBbXHJcbiAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ1tsYWJlbF0gaXMgcmVxdWlyZWQnIH0sXHJcbiAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdbbGFiZWxdIHNob3VsZCBiZSBhdGxlYXN0IFtyZXF1aXJlZExlbmd0aF0gY2hhcmFjdGVyJyB9LFxyXG4gICAgICB7IHR5cGU6ICdtYXhMZW5ndGgnLCBtZXNzYWdlOiAnW2xhYmVsXSBzaG91bGQgYmUgbWF4aW11bSBbcmVxdWlyZWRMZW5ndGhdIGNoYXJhY3RlcicgfSxcclxuICAgICAgeyB0eXBlOiAnbWluJywgbWVzc2FnZTogJ1tsYWJlbF0gc2hvdWxkIGJlIG1pbm11bSBbbWluXScgfSxcclxuICAgICAgeyB0eXBlOiAnbWF4JywgbWVzc2FnZTogJ1tsYWJlbF0gc2hvdWxkIGJlIG1heGltdW0gW21heF0nIH0sXHJcbiAgICAgIHsgdHlwZTogJ21pblZhbHVlJywgbWVzc2FnZTogJ1tsYWJlbF0gc2hvdWxkIGJlIG1pbm11bSBbcmVxdWlyZWRNaW5dJyB9LFxyXG4gICAgICB7IHR5cGU6ICdtYXhWYWx1ZScsIG1lc3NhZ2U6ICdbbGFiZWxdIHNob3VsZCBiZSBtYXhpbXVtIFtyZXF1aXJlZE1heF0nIH0sXHJcbiAgICBdLFxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIHNldENvbmZpZyhjOiBFY2Fic0NvbXBvbmVudHNDb25maWcpIHtcclxuICAgIHRoaXMuY29uZmlnLmVycm9yTWVzc2FnZXMgPSBjLmVycm9yTWVzc2FnZXM7XHJcbiAgfVxyXG4gIGdldENvbmZpZygpOiBFY2Fic0NvbXBvbmVudHNDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFY2Fic0NvbXBvbmVudHNDb25maWcge1xyXG4gIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==