ecabs-components 1.0.19 → 1.0.20

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 (364) hide show
  1. package/esm2022/ecabs-components.mjs +5 -0
  2. package/esm2022/lib/base/consts/date-mask.consts.mjs +57 -0
  3. package/esm2022/lib/base/directives/date-mask.directive.mjs +67 -0
  4. package/esm2022/lib/base/directives/date-mask.directive.module.mjs +22 -0
  5. package/esm2022/lib/base/directives/digits-only.directive.mjs +133 -0
  6. package/esm2022/lib/base/directives/digits-only.directive.module.mjs +22 -0
  7. package/esm2022/lib/base/directives/number-border.directive.mjs +58 -0
  8. package/esm2022/lib/base/directives/number-border.directive.module.mjs +22 -0
  9. package/esm2022/lib/base/element-base.mjs +105 -0
  10. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +56 -0
  11. package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +52 -0
  12. package/esm2022/lib/base/hint/hint.component.mjs +21 -0
  13. package/esm2022/lib/base/hint/hint.module.mjs +20 -0
  14. package/esm2022/lib/base/validation/validation.component.mjs +75 -0
  15. package/esm2022/lib/base/validation/validation.module.mjs +20 -0
  16. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +17 -0
  17. package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +20 -0
  18. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +67 -0
  19. package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +21 -0
  20. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +94 -0
  21. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +36 -0
  22. package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +15 -0
  23. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +89 -0
  24. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +48 -0
  25. package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +15 -0
  26. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +186 -0
  27. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +64 -0
  28. 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
  29. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +199 -0
  30. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +65 -0
  31. package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +48 -0
  32. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +50 -0
  33. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +20 -0
  34. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +47 -0
  35. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +20 -0
  36. package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +22 -0
  37. package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +19 -0
  38. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +85 -0
  39. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +24 -0
  40. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +83 -0
  41. package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +23 -0
  42. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +90 -0
  43. package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +22 -0
  44. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +64 -0
  45. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +39 -0
  46. package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +22 -0
  47. package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +19 -0
  48. package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +14 -0
  49. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +28 -0
  50. package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +19 -0
  51. package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +111 -0
  52. package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +22 -0
  53. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +53 -0
  54. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +22 -0
  55. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +68 -0
  56. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +32 -0
  57. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +316 -0
  58. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
  59. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +19 -0
  60. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +24 -0
  61. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +48 -0
  62. package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +33 -0
  63. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +65 -0
  64. package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +20 -0
  65. package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +144 -0
  66. package/esm2022/lib/ecabs-timepicker/config.model.mjs +2 -0
  67. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +322 -0
  68. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +20 -0
  69. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +29 -0
  70. package/esm2022/lib/models/bread-crumb.mjs +2 -0
  71. package/esm2022/lib/models/timepicker.models.mjs +2 -0
  72. package/esm2022/lib/services/ecabs-components.service.mjs +31 -0
  73. package/esm2022/public-api.mjs +55 -0
  74. package/fesm2022/ecabs-components.mjs +3481 -0
  75. package/fesm2022/ecabs-components.mjs.map +1 -0
  76. package/index.d.ts +5 -0
  77. package/lib/base/consts/date-mask.consts.d.ts +7 -0
  78. package/lib/base/directives/date-mask.directive.d.ts +16 -0
  79. package/lib/base/directives/date-mask.directive.module.d.ts +8 -0
  80. package/lib/base/directives/digits-only.directive.d.ts +26 -0
  81. package/lib/base/directives/digits-only.directive.module.d.ts +8 -0
  82. package/lib/base/directives/number-border.directive.d.ts +13 -0
  83. package/lib/base/directives/number-border.directive.module.d.ts +8 -0
  84. package/lib/base/element-base.d.ts +28 -0
  85. package/lib/base/element-wrapper/element-wrapper.component.d.ts +19 -0
  86. package/lib/base/element-wrapper/element-wrapper.module.d.ts +16 -0
  87. package/lib/base/hint/hint.component.d.ts +8 -0
  88. package/lib/base/hint/hint.module.d.ts +10 -0
  89. package/lib/base/validation/validation.component.d.ts +24 -0
  90. package/lib/base/validation/validation.module.d.ts +10 -0
  91. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +7 -0
  92. package/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.d.ts +10 -0
  93. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +21 -0
  94. package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +11 -0
  95. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +29 -0
  96. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +12 -0
  97. package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +6 -0
  98. package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +29 -0
  99. package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +15 -0
  100. package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +6 -0
  101. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +51 -0
  102. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +19 -0
  103. package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +6 -0
  104. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +58 -0
  105. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +20 -0
  106. package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +15 -0
  107. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +31 -0
  108. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +11 -0
  109. package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +28 -0
  110. package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +11 -0
  111. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +12 -0
  112. package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.d.ts +9 -0
  113. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +28 -0
  114. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +14 -0
  115. package/lib/ecabs-increment/ecabs-increment.component.d.ts +26 -0
  116. package/lib/ecabs-increment/ecabs-increment.module.d.ts +13 -0
  117. package/lib/ecabs-input/ecabs-input.component.d.ts +27 -0
  118. package/lib/ecabs-input/ecabs-input.module.d.ts +12 -0
  119. package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +20 -0
  120. package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +12 -0
  121. package/lib/ecabs-loading/ecabs-loading.component.d.ts +8 -0
  122. package/lib/ecabs-loading/ecabs-loading.module.d.ts +9 -0
  123. package/lib/ecabs-loading/spinner/spinner.component.d.ts +6 -0
  124. package/lib/ecabs-note/ecabs-note.component.d.ts +7 -0
  125. package/lib/ecabs-note/ecabs-note.module.d.ts +9 -0
  126. package/lib/ecabs-phone/ecabs-phone.component.d.ts +33 -0
  127. package/lib/ecabs-phone/ecabs-phone.module.d.ts +12 -0
  128. package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +19 -0
  129. package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +12 -0
  130. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +24 -0
  131. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +11 -0
  132. package/lib/ecabs-select/ecabs-select.component.d.ts +71 -0
  133. package/lib/ecabs-select/ecabs-select.module.d.ts +15 -0
  134. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +8 -0
  135. package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.d.ts +9 -0
  136. package/lib/ecabs-table/ecabs-table.component.d.ts +18 -0
  137. package/lib/ecabs-table/ecabs-table.module.d.ts +12 -0
  138. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +20 -0
  139. package/lib/ecabs-textarea/ecabs-textarea.module.d.ts +10 -0
  140. package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +40 -0
  141. package/lib/ecabs-timepicker/config.model.d.ts +5 -0
  142. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +53 -0
  143. package/lib/ecabs-timepicker/ecabs-timepicker.module.d.ts +10 -0
  144. package/lib/ecabs-timepicker/ecabs-timepicker.service.d.ts +12 -0
  145. package/lib/models/bread-crumb.d.ts +5 -0
  146. package/{src/lib/models/timepicker.models.ts → lib/models/timepicker.models.d.ts} +3 -4
  147. package/lib/services/ecabs-components.service.d.ts +16 -0
  148. package/package.json +33 -25
  149. package/karma.conf.js +0 -44
  150. package/ng-package.json +0 -7
  151. package/src/assets/images/nothing-here.svg +0 -22
  152. package/src/lib/base/consts/date-mask.consts.ts +0 -70
  153. package/src/lib/base/directives/date-mask.directive.module.ts +0 -14
  154. package/src/lib/base/directives/date-mask.directive.ts +0 -58
  155. package/src/lib/base/directives/digits-only.directive.module.ts +0 -15
  156. package/src/lib/base/directives/digits-only.directive.ts +0 -129
  157. package/src/lib/base/directives/number-border.directive.module.ts +0 -14
  158. package/src/lib/base/directives/number-border.directive.ts +0 -57
  159. package/src/lib/base/element-base.ts +0 -72
  160. package/src/lib/base/element-wrapper/element-wrapper.component.html +0 -30
  161. package/src/lib/base/element-wrapper/element-wrapper.component.ts +0 -33
  162. package/src/lib/base/element-wrapper/element-wrapper.module.ts +0 -30
  163. package/src/lib/base/hint/hint.component.html +0 -1
  164. package/src/lib/base/hint/hint.component.scss +0 -0
  165. package/src/lib/base/hint/hint.component.ts +0 -12
  166. package/src/lib/base/hint/hint.module.ts +0 -13
  167. package/src/lib/base/validation/validation.component.html +0 -8
  168. package/src/lib/base/validation/validation.component.scss +0 -0
  169. package/src/lib/base/validation/validation.component.ts +0 -84
  170. package/src/lib/base/validation/validation.module.ts +0 -13
  171. package/src/lib/consts/tenant.consts.ts +0 -8
  172. package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.html +0 -11
  173. package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.scss +0 -0
  174. package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.spec.ts +0 -24
  175. package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.ts +0 -12
  176. package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.ts +0 -12
  177. package/src/lib/ecabs-buttons/ecabs-buttons.component.html +0 -18
  178. package/src/lib/ecabs-buttons/ecabs-buttons.component.scss +0 -3
  179. package/src/lib/ecabs-buttons/ecabs-buttons.component.ts +0 -55
  180. package/src/lib/ecabs-buttons/ecabs-buttons.module.ts +0 -14
  181. package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.html +0 -27
  182. package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.scss +0 -15
  183. package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.ts +0 -81
  184. package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.ts +0 -21
  185. package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.html +0 -4
  186. package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.scss +0 -0
  187. package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.spec.ts +0 -23
  188. package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.ts +0 -11
  189. package/src/lib/ecabs-date-picker/ecabs-date-picker.component.html +0 -31
  190. package/src/lib/ecabs-date-picker/ecabs-date-picker.component.scss +0 -23
  191. package/src/lib/ecabs-date-picker/ecabs-date-picker.component.spec.ts +0 -24
  192. package/src/lib/ecabs-date-picker/ecabs-date-picker.component.ts +0 -72
  193. package/src/lib/ecabs-date-picker/ecabs-date-picker.module.ts +0 -29
  194. package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.html +0 -4
  195. package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.scss +0 -0
  196. package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.spec.ts +0 -23
  197. package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.ts +0 -11
  198. package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.html +0 -31
  199. package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.scss +0 -36
  200. package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.spec.ts +0 -23
  201. package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.ts +0 -113
  202. package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.ts +0 -50
  203. package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.html +0 -4
  204. package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.scss +0 -14
  205. package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.ts +0 -11
  206. package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.html +0 -87
  207. package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.scss +0 -82
  208. package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.spec.ts +0 -23
  209. package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.ts +0 -185
  210. package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.ts +0 -38
  211. package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.html +0 -4
  212. package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.scss +0 -5
  213. package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.spec.ts +0 -23
  214. package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.ts +0 -10
  215. package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.html +0 -116
  216. package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.scss +0 -43
  217. package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.spec.ts +0 -24
  218. package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.ts +0 -206
  219. package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.ts +0 -39
  220. package/src/lib/ecabs-date-time-range-picker/time-range.directive.ts +0 -38
  221. package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.html +0 -32
  222. package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.scss +0 -24
  223. package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.ts +0 -57
  224. package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.ts +0 -13
  225. package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.html +0 -27
  226. package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.scss +0 -25
  227. package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.spec.ts +0 -38
  228. package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.ts +0 -49
  229. package/src/lib/ecabs-dialog-message/ecabs-dialog-message.module.ts +0 -13
  230. package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.html +0 -9
  231. package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.scss +0 -0
  232. package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.spec.ts +0 -34
  233. package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.ts +0 -22
  234. package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.ts +0 -11
  235. package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.html +0 -33
  236. package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.scss +0 -79
  237. package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.spec.ts +0 -26
  238. package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.ts +0 -77
  239. package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.ts +0 -17
  240. package/src/lib/ecabs-increment/ecabs-increment.component.html +0 -18
  241. package/src/lib/ecabs-increment/ecabs-increment.component.scss +0 -33
  242. package/src/lib/ecabs-increment/ecabs-increment.component.ts +0 -74
  243. package/src/lib/ecabs-increment/ecabs-increment.module.ts +0 -15
  244. package/src/lib/ecabs-input/ecabs-input.component.html +0 -26
  245. package/src/lib/ecabs-input/ecabs-input.component.ts +0 -85
  246. package/src/lib/ecabs-input/ecabs-input.module.ts +0 -14
  247. package/src/lib/ecabs-language-selector/ecabs-language-selector.component.html +0 -17
  248. package/src/lib/ecabs-language-selector/ecabs-language-selector.component.scss +0 -26
  249. package/src/lib/ecabs-language-selector/ecabs-language-selector.component.ts +0 -63
  250. package/src/lib/ecabs-language-selector/ecabs-language-selector.module.ts +0 -22
  251. package/src/lib/ecabs-loading/ecabs-loading.component.html +0 -7
  252. package/src/lib/ecabs-loading/ecabs-loading.component.spec.ts +0 -24
  253. package/src/lib/ecabs-loading/ecabs-loading.component.ts +0 -11
  254. package/src/lib/ecabs-loading/ecabs-loading.module.ts +0 -11
  255. package/src/lib/ecabs-loading/spinner/spinner.component.html +0 -5
  256. package/src/lib/ecabs-loading/spinner/spinner.component.scss +0 -61
  257. package/src/lib/ecabs-loading/spinner/spinner.component.spec.ts +0 -24
  258. package/src/lib/ecabs-loading/spinner/spinner.component.ts +0 -11
  259. package/src/lib/ecabs-note/ecabs-note.component.html +0 -10
  260. package/src/lib/ecabs-note/ecabs-note.component.scss +0 -29
  261. package/src/lib/ecabs-note/ecabs-note.component.ts +0 -27
  262. package/src/lib/ecabs-note/ecabs-note.module.ts +0 -11
  263. package/src/lib/ecabs-phone/ecabs-phone.component.html +0 -17
  264. package/src/lib/ecabs-phone/ecabs-phone.component.ts +0 -108
  265. package/src/lib/ecabs-phone/ecabs-phone.module.ts +0 -15
  266. package/src/lib/ecabs-picker-header/ecabs-picker-header.component.html +0 -12
  267. package/src/lib/ecabs-picker-header/ecabs-picker-header.component.scss +0 -16
  268. package/src/lib/ecabs-picker-header/ecabs-picker-header.component.ts +0 -61
  269. package/src/lib/ecabs-picker-header/ecabs-picker-header.module.ts +0 -15
  270. package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.html +0 -13
  271. package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.scss +0 -16
  272. package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.ts +0 -60
  273. package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.ts +0 -18
  274. package/src/lib/ecabs-select/ecabs-select.component.html +0 -45
  275. package/src/lib/ecabs-select/ecabs-select.component.ts +0 -346
  276. package/src/lib/ecabs-select/ecabs-select.module.ts +0 -37
  277. package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.html +0 -7
  278. package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.scss +0 -11
  279. package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.spec.ts +0 -34
  280. package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.ts +0 -14
  281. package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.ts +0 -14
  282. package/src/lib/ecabs-table/ecabs-table.component.html +0 -26
  283. package/src/lib/ecabs-table/ecabs-table.component.scss +0 -6
  284. package/src/lib/ecabs-table/ecabs-table.component.spec.ts +0 -24
  285. package/src/lib/ecabs-table/ecabs-table.component.ts +0 -42
  286. package/src/lib/ecabs-table/ecabs-table.module.ts +0 -19
  287. package/src/lib/ecabs-textarea/ecabs-textarea.component.html +0 -13
  288. package/src/lib/ecabs-textarea/ecabs-textarea.component.ts +0 -61
  289. package/src/lib/ecabs-textarea/ecabs-textarea.module.ts +0 -12
  290. package/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.html +0 -16
  291. package/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.ts +0 -126
  292. package/src/lib/ecabs-timepicker/config.model.ts +0 -5
  293. package/src/lib/ecabs-timepicker/ecabs-timepicker.component.html +0 -36
  294. package/src/lib/ecabs-timepicker/ecabs-timepicker.component.scss +0 -5
  295. package/src/lib/ecabs-timepicker/ecabs-timepicker.component.ts +0 -330
  296. package/src/lib/ecabs-timepicker/ecabs-timepicker.module.ts +0 -12
  297. package/src/lib/ecabs-timepicker/ecabs-timepicker.service.ts +0 -28
  298. package/src/lib/models/bread-crumb.ts +0 -5
  299. package/src/lib/services/ecabs-components.service.ts +0 -33
  300. package/src/test.ts +0 -27
  301. package/tailwind.config.js +0 -31
  302. package/tsconfig.lib.json +0 -15
  303. package/tsconfig.lib.prod.json +0 -10
  304. package/tsconfig.spec.json +0 -17
  305. /package/{src/public-api.ts → public-api.d.ts} +0 -0
  306. /package/{src/styles → styles}/material/_theme.scss +0 -0
  307. /package/{src/styles → styles}/material/overrides/_autocomplete.scss +0 -0
  308. /package/{src/styles → styles}/material/overrides/_button.scss +0 -0
  309. /package/{src/styles → styles}/material/overrides/_card.scss +0 -0
  310. /package/{src/styles → styles}/material/overrides/_chip.scss +0 -0
  311. /package/{src/styles → styles}/material/overrides/_datepicker.scss +0 -0
  312. /package/{src/styles → styles}/material/overrides/_dialog.scss +0 -0
  313. /package/{src/styles → styles}/material/overrides/_divider.scss +0 -0
  314. /package/{src/styles → styles}/material/overrides/_expansion.scss +0 -0
  315. /package/{src/styles → styles}/material/overrides/_form.scss +0 -0
  316. /package/{src/styles → styles}/material/overrides/_icon.scss +0 -0
  317. /package/{src/styles → styles}/material/overrides/_menu.scss +0 -0
  318. /package/{src/styles → styles}/material/overrides/_paginator.scss +0 -0
  319. /package/{src/styles → styles}/material/overrides/_phone.scss +0 -0
  320. /package/{src/styles → styles}/material/overrides/_select.scss +0 -0
  321. /package/{src/styles → styles}/material/overrides/_tab.scss +0 -0
  322. /package/{src/styles → styles}/material/overrides/_table.scss +0 -0
  323. /package/{src/styles → styles}/material/overrides/_toaster.scss +0 -0
  324. /package/{src/styles → styles}/material/overrides/_toggle.scss +0 -0
  325. /package/{src/styles → styles}/material/overrides/_toolbar.scss +0 -0
  326. /package/{src/styles → styles}/material/overrides/_tooltip.scss +0 -0
  327. /package/{src/styles → styles}/material/overrides/index.scss +0 -0
  328. /package/{src/styles → styles}/scss/base/_heading.scss +0 -0
  329. /package/{src/styles → styles}/scss/base/_normalize.scss +0 -0
  330. /package/{src/styles → styles}/scss/base/index.scss +0 -0
  331. /package/{src/styles → styles}/scss/modules/_autocomplete.scss +0 -0
  332. /package/{src/styles → styles}/scss/modules/_button.scss +0 -0
  333. /package/{src/styles → styles}/scss/modules/_card.scss +0 -0
  334. /package/{src/styles → styles}/scss/modules/_chip.scss +0 -0
  335. /package/{src/styles → styles}/scss/modules/_datepicker.scss +0 -0
  336. /package/{src/styles → styles}/scss/modules/_dialog.scss +0 -0
  337. /package/{src/styles → styles}/scss/modules/_divider.scss +0 -0
  338. /package/{src/styles → styles}/scss/modules/_form.scss +0 -0
  339. /package/{src/styles → styles}/scss/modules/_icon.scss +0 -0
  340. /package/{src/styles → styles}/scss/modules/_img.scss +0 -0
  341. /package/{src/styles → styles}/scss/modules/_legend.scss +0 -0
  342. /package/{src/styles → styles}/scss/modules/_list.scss +0 -0
  343. /package/{src/styles → styles}/scss/modules/_map.scss +0 -0
  344. /package/{src/styles → styles}/scss/modules/_percentage.scss +0 -0
  345. /package/{src/styles → styles}/scss/modules/_phone.scss +0 -0
  346. /package/{src/styles → styles}/scss/modules/_select.scss +0 -0
  347. /package/{src/styles → styles}/scss/modules/_statuses.scss +0 -0
  348. /package/{src/styles → styles}/scss/modules/_tab.scss +0 -0
  349. /package/{src/styles → styles}/scss/modules/_table.scss +0 -0
  350. /package/{src/styles → styles}/scss/modules/_timepicker.scss +0 -0
  351. /package/{src/styles → styles}/scss/modules/_toaster.scss +0 -0
  352. /package/{src/styles → styles}/scss/modules/_tooltip.scss +0 -0
  353. /package/{src/styles → styles}/scss/modules/drag-drop.scss +0 -0
  354. /package/{src/styles → styles}/scss/modules/index.scss +0 -0
  355. /package/{src/styles → styles}/scss/utilities/_colors.scss +0 -0
  356. /package/{src/styles → styles}/scss/utilities/_fonts.scss +0 -0
  357. /package/{src/styles → styles}/scss/utilities/_functions.scss +0 -0
  358. /package/{src/styles → styles}/scss/utilities/_helpers.scss +0 -0
  359. /package/{src/styles → styles}/scss/utilities/_mixins.scss +0 -0
  360. /package/{src/styles → styles}/scss/utilities/_palettes.scss +0 -0
  361. /package/{src/styles → styles}/scss/utilities/_variables.scss +0 -0
  362. /package/{src/styles → styles}/scss/utilities/index.scss +0 -0
  363. /package/{src/styles → styles}/styles.scss +0 -0
  364. /package/{src/styles → styles}/tailwind/index.scss +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2VjYWJzLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,57 @@
1
+ const maxValueMonth = [31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
2
+ const formatOrder = ['yyyy', 'yy', 'mm', 'dd', 'HH', 'MM', 'SS'];
3
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
4
+ export function createAutoCorrectedDatePipe(dateFormat = 'dd mm yyyy', { minYear = 1, maxYear = 9999 } = {}) {
5
+ const dateFormatArray = dateFormat
6
+ .split(/[^dmyHMS]+/)
7
+ .sort((a, b) => formatOrder.indexOf(a) - formatOrder.indexOf(b));
8
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
9
+ return function (conformedValue) {
10
+ const indexesOfPipedChars = [];
11
+ const maxValue = { dd: 31, mm: 12, yy: 99, yyyy: maxYear, HH: 23, MM: 59, SS: 59 };
12
+ const minValue = { dd: 1, mm: 1, yy: 0, yyyy: minYear, HH: 0, MM: 0, SS: 0 };
13
+ const conformedValueArr = conformedValue.split('');
14
+ // Check first digit
15
+ dateFormatArray.forEach((format) => {
16
+ const position = dateFormat.indexOf(format);
17
+ const maxFirstDigit = parseInt(maxValue[format].toString().substr(0, 1), 10);
18
+ if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {
19
+ conformedValueArr[position + 1] = conformedValueArr[position];
20
+ conformedValueArr[position] = 0;
21
+ indexesOfPipedChars.push(position);
22
+ }
23
+ });
24
+ // Check for invalid date
25
+ let month = 0;
26
+ const isInvalid = dateFormatArray.some((format) => {
27
+ const position = dateFormat.indexOf(format);
28
+ const length = format.length;
29
+ const textValue = conformedValue.substr(position, length).replace(/\D/g, '');
30
+ const value = parseInt(textValue, 10);
31
+ if (format === 'mm') {
32
+ // tslint:disable-next-line: strict-boolean-expressions
33
+ month = value || 0;
34
+ }
35
+ const maxValueForFormat = format === 'dd' ? maxValueMonth[month] : maxValue[format];
36
+ if (format === 'yyyy' && (minYear !== 1 || maxYear !== 9999)) {
37
+ const scopedMaxValue = parseInt(maxValue[format].toString().substring(0, textValue.length), 10);
38
+ const scopedMinValue = parseInt(minValue[format].toString().substring(0, textValue.length), 10);
39
+ return value < scopedMinValue || value > scopedMaxValue;
40
+ }
41
+ if (format === 'HH' || format === 'MM') {
42
+ const scopedMaxValue = parseInt(maxValue[format].toString().substring(0, textValue.length), 10);
43
+ const scopedMinValue = parseInt(minValue[format].toString().substring(0, textValue.length), 10);
44
+ return value < scopedMinValue || value > scopedMaxValue;
45
+ }
46
+ return value > maxValueForFormat || (textValue.length === length && value < minValue[format]);
47
+ });
48
+ if (isInvalid) {
49
+ return false;
50
+ }
51
+ return {
52
+ value: conformedValueArr.join(''),
53
+ indexesOfPipedChars,
54
+ };
55
+ };
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmNvbnN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2NvbnN0cy9kYXRlLW1hc2suY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0UsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRSw0RUFBNEU7QUFDNUUsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFVBQVUsR0FBRyxZQUFZLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ3pHLE1BQU0sZUFBZSxHQUFHLFVBQVU7U0FDL0IsS0FBSyxDQUFDLFlBQVksQ0FBQztTQUNuQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRSw0RUFBNEU7SUFDNUUsT0FBTyxVQUFVLGNBQWM7UUFDN0IsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FB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RUFBRTtnQkFDdEMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEcsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFaEcsT0FBTyxLQUFLLEdBQUcsY0FBYyxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUM7YUFDekQ7WUFFRCxPQUFPLEtBQUssR0FBRyxpQkFBaUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxtQkFBbUI7U0FDcEIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtYXhWYWx1ZU1vbnRoID0gWzMxLCAzMSwgMjksIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTtcclxuY29uc3QgZm9ybWF0T3JkZXIgPSBbJ3l5eXknLCAneXknLCAnbW0nLCAnZGQnLCAnSEgnLCAnTU0nLCAnU1MnXTtcclxuXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGVcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZShkYXRlRm9ybWF0ID0gJ2RkIG1tIHl5eXknLCB7IG1pblllYXIgPSAxLCBtYXhZZWFyID0gOTk5OSB9ID0ge30pIHtcclxuICBjb25zdCBkYXRlRm9ybWF0QXJyYXkgPSBkYXRlRm9ybWF0XHJcbiAgICAuc3BsaXQoL1teZG15SE1TXSsvKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IGZvcm1hdE9yZGVyLmluZGV4T2YoYSkgLSBmb3JtYXRPcmRlci5pbmRleE9mKGIpKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZVxyXG4gIHJldHVybiBmdW5jdGlvbiAoY29uZm9ybWVkVmFsdWUpIHtcclxuICAgIGNvbnN0IGluZGV4ZXNPZlBpcGVkQ2hhcnMgPSBbXTtcclxuICAgIGNvbnN0IG1heFZhbHVlID0geyBkZDogMzEsIG1tOiAxMiwgeXk6IDk5LCB5eXl5OiBtYXhZZWFyLCBISDogMjMsIE1NOiA1OSwgU1M6IDU5IH07XHJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IHsgZGQ6IDEsIG1tOiAxLCB5eTogMCwgeXl5eTogbWluWWVhciwgSEg6IDAsIE1NOiAwLCBTUzogMCB9O1xyXG4gICAgY29uc3QgY29uZm9ybWVkVmFsdWVBcnIgPSBjb25mb3JtZWRWYWx1ZS5zcGxpdCgnJyk7XHJcblxyXG4gICAgLy8gQ2hlY2sgZmlyc3QgZGlnaXRcclxuICAgIGRhdGVGb3JtYXRBcnJheS5mb3JFYWNoKChmb3JtYXQpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBkYXRlRm9ybWF0LmluZGV4T2YoZm9ybWF0KTtcclxuICAgICAgY29uc3QgbWF4Rmlyc3REaWdpdCA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHIoMCwgMSksIDEwKTtcclxuXHJcbiAgICAgIGlmIChwYXJzZUludChjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbl0sIDEwKSA+IG1heEZpcnN0RGlnaXQpIHtcclxuICAgICAgICBjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbiArIDFdID0gY29uZm9ybWVkVmFsdWVBcnJbcG9zaXRpb25dO1xyXG4gICAgICAgIGNvbmZvcm1lZFZhbHVlQXJyW3Bvc2l0aW9uXSA9IDA7XHJcbiAgICAgICAgaW5kZXhlc09mUGlwZWRDaGFycy5wdXNoKHBvc2l0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgZGF0ZVxyXG4gICAgbGV0IG1vbnRoID0gMDtcclxuICAgIGNvbnN0IGlzSW52YWxpZCA9IGRhdGVGb3JtYXRBcnJheS5zb21lKChmb3JtYXQpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBkYXRlRm9ybWF0LmluZGV4T2YoZm9ybWF0KTtcclxuICAgICAgY29uc3QgbGVuZ3RoID0gZm9ybWF0Lmxlbmd0aDtcclxuICAgICAgY29uc3QgdGV4dFZhbHVlID0gY29uZm9ybWVkVmFsdWUuc3Vic3RyKHBvc2l0aW9uLCBsZW5ndGgpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQodGV4dFZhbHVlLCAxMCk7XHJcblxyXG4gICAgICBpZiAoZm9ybWF0ID09PSAnbW0nKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBzdHJpY3QtYm9vbGVhbi1leHByZXNzaW9uc1xyXG4gICAgICAgIG1vbnRoID0gdmFsdWUgfHwgMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbWF4VmFsdWVGb3JGb3JtYXQgPSBmb3JtYXQgPT09ICdkZCcgPyBtYXhWYWx1ZU1vbnRoW21vbnRoXSA6IG1heFZhbHVlW2Zvcm1hdF07XHJcblxyXG4gICAgICBpZiAoZm9ybWF0ID09PSAneXl5eScgJiYgKG1pblllYXIgIT09IDEgfHwgbWF4WWVhciAhPT0gOTk5OSkpIHtcclxuICAgICAgICBjb25zdCBzY29wZWRNYXhWYWx1ZSA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuICAgICAgICBjb25zdCBzY29wZWRNaW5WYWx1ZSA9IHBhcnNlSW50KG1pblZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgc2NvcGVkTWluVmFsdWUgfHwgdmFsdWUgPiBzY29wZWRNYXhWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1hdCA9PT0gJ0hIJyB8fCBmb3JtYXQgPT09ICdNTScpIHtcclxuICAgICAgICBjb25zdCBzY29wZWRNYXhWYWx1ZSA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuICAgICAgICBjb25zdCBzY29wZWRNaW5WYWx1ZSA9IHBhcnNlSW50KG1pblZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgc2NvcGVkTWluVmFsdWUgfHwgdmFsdWUgPiBzY29wZWRNYXhWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlID4gbWF4VmFsdWVGb3JGb3JtYXQgfHwgKHRleHRWYWx1ZS5sZW5ndGggPT09IGxlbmd0aCAmJiB2YWx1ZSA8IG1pblZhbHVlW2Zvcm1hdF0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGlzSW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IGNvbmZvcm1lZFZhbHVlQXJyLmpvaW4oJycpLFxyXG4gICAgICBpbmRleGVzT2ZQaXBlZENoYXJzLFxyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';
3
+ import { createAutoCorrectedDatePipe } from '../consts/date-mask.consts';
4
+ import * as i0 from "@angular/core";
5
+ export class MaskDateDirective {
6
+ element;
7
+ isDateTimeMask = false;
8
+ considerSeconds = false;
9
+ maskedInputController;
10
+ mask = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/]; // dd/mm/yyyy
11
+ maskDateTime = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/, ',', ' ', /\d/, /\d/, ':', /\d/, /\d/]; // dd/mm/yyyy, hh:mm
12
+ maskDateTimeWithSeconds = [
13
+ /\d/,
14
+ /\d/,
15
+ '/',
16
+ /\d/,
17
+ /\d/,
18
+ '/',
19
+ /\d/,
20
+ /\d/,
21
+ /\d/,
22
+ /\d/,
23
+ ',',
24
+ ' ',
25
+ /\d/,
26
+ /\d/,
27
+ ':',
28
+ /\d/,
29
+ /\d/,
30
+ ':',
31
+ /\d/,
32
+ /\d/,
33
+ ]; // dd/mm/yyyy, hh:mm:ss
34
+ constructor(element) {
35
+ this.element = element;
36
+ }
37
+ ngOnInit() {
38
+ this.maskedInputController = textMask.maskInput({
39
+ inputElement: this.element.nativeElement,
40
+ guide: true,
41
+ showMask: false,
42
+ pipe: this.isDateTimeMask
43
+ ? this.considerSeconds
44
+ ? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')
45
+ : createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')
46
+ : createAutoCorrectedDatePipe('dd/mm/yyyy'),
47
+ keepCharPositions: true,
48
+ mask: this.isDateTimeMask ? (this.considerSeconds ? this.maskDateTimeWithSeconds : this.maskDateTime) : this.mask,
49
+ });
50
+ }
51
+ ngOnDestroy() {
52
+ this.maskedInputController.destroy();
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
55
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: MaskDateDirective, selector: "[appMaskDate]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds" }, ngImport: i0 });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{
60
+ selector: '[appMaskDate]',
61
+ }]
62
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isDateTimeMask: [{
63
+ type: Input
64
+ }], considerSeconds: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxLQUFLLFFBQVEsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLGlCQUFpQjtJQThCQztJQTdCcEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWpDLHFCQUFxQixDQUFDO0lBQ3RCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUNoRixZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDdEksdUJBQXVCLEdBQUc7UUFDeEIsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLEdBQUc7UUFDSCxHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7S0FDTCxDQUFDLENBQUMsdUJBQXVCO0lBRTFCLFlBQTZCLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBRyxDQUFDO0lBRXBELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZTtvQkFDcEIsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixDQUFDO29CQUNyRCxDQUFDLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BELENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUM7WUFDN0MsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7U0FDbEgsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0FqRFUsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHRleHRNYXNrIGZyb20gJ3ZhbmlsbGEtdGV4dC1tYXNrL2Rpc3QvdmFuaWxsYVRleHRNYXNrJztcclxuaW1wb3J0IHsgY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlIH0gZnJvbSAnLi4vY29uc3RzL2RhdGUtbWFzay5jb25zdHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwTWFza0RhdGVdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hc2tEYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGlzRGF0ZVRpbWVNYXNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29uc2lkZXJTZWNvbmRzID0gZmFsc2U7XHJcblxyXG4gIG1hc2tlZElucHV0Q29udHJvbGxlcjtcclxuICBtYXNrID0gWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dOyAvLyBkZC9tbS95eXl5XHJcbiAgbWFza0RhdGVUaW1lID0gWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC8sICcsJywgJyAnLCAvXFxkLywgL1xcZC8sICc6JywgL1xcZC8sIC9cXGQvXTsgLy8gZGQvbW0veXl5eSwgaGg6bW1cclxuICBtYXNrRGF0ZVRpbWVXaXRoU2Vjb25kcyA9IFtcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnLycsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgJy8nLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnLCcsXHJcbiAgICAnICcsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgJzonLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgICc6JyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgXTsgLy8gZGQvbW0veXl5eSwgaGg6bW06c3NcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFza2VkSW5wdXRDb250cm9sbGVyID0gdGV4dE1hc2subWFza0lucHV0KHtcclxuICAgICAgaW5wdXRFbGVtZW50OiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgIHNob3dNYXNrOiBmYWxzZSxcclxuICAgICAgcGlwZTogdGhpcy5pc0RhdGVUaW1lTWFza1xyXG4gICAgICAgID8gdGhpcy5jb25zaWRlclNlY29uZHNcclxuICAgICAgICAgID8gY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdkZC9tbS95eXl5LCBISDpNTTpTUycpXHJcbiAgICAgICAgICA6IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSgnZGQvbW0veXl5eSwgSEg6TU0nKVxyXG4gICAgICAgIDogY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdkZC9tbS95eXl5JyksXHJcbiAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICBtYXNrOiB0aGlzLmlzRGF0ZVRpbWVNYXNrID8gKHRoaXMuY29uc2lkZXJTZWNvbmRzID8gdGhpcy5tYXNrRGF0ZVRpbWVXaXRoU2Vjb25kcyA6IHRoaXMubWFza0RhdGVUaW1lKSA6IHRoaXMubWFzayxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hc2tlZElucHV0Q29udHJvbGxlci5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MaskDateDirective } from './date-mask.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class MaskDateDirectiveModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, declarations: [MaskDateDirective], imports: [CommonModule], exports: [MaskDateDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [
15
+ MaskDateDirective,
16
+ ],
17
+ exports: [
18
+ MaskDateDirective,
19
+ ],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQVd4RCxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7eUdBQXZCLHVCQUF1QixpQkFOaEMsaUJBQWlCLGFBRlIsWUFBWSxhQUtyQixpQkFBaUI7eUdBR1IsdUJBQXVCLFlBUnZCLFlBQVk7OzRGQVFaLHVCQUF1QjtrQkFUbkMsUUFBUTttQkFBRTtvQkFDVCxPQUFPLEVBQUUsQ0FBRSxZQUFZLENBQUU7b0JBQ3pCLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hc2tEYXRlRGlyZWN0aXZlfSBmcm9tICcuL2RhdGUtbWFzay5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKCB7XHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE1hc2tEYXRlRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWFza0RhdGVEaXJlY3RpdmUsXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBNYXNrRGF0ZURpcmVjdGl2ZU1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,133 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DigitsOnlyDirective {
4
+ el;
5
+ digitsOnly = false;
6
+ allowHyphen = false;
7
+ decimal = false;
8
+ decimalSeparator = '.';
9
+ unit = 0;
10
+ inputElement;
11
+ minus = '-';
12
+ minusCounter = 0;
13
+ regex;
14
+ decimalCounter = 0;
15
+ navigationKeys = [
16
+ 'Backspace',
17
+ 'Delete',
18
+ 'Tab',
19
+ 'Escape',
20
+ 'Enter',
21
+ 'Home',
22
+ 'End',
23
+ 'ArrowLeft',
24
+ 'ArrowRight',
25
+ 'Clear',
26
+ 'Copy',
27
+ 'Paste',
28
+ ];
29
+ constructor(el) {
30
+ this.el = el;
31
+ this.inputElement = el.nativeElement;
32
+ }
33
+ onKeyDown(e) {
34
+ if (this.digitsOnly) {
35
+ if (this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.
36
+ (e.key === 'a' && e.ctrlKey) || // Allow: Ctrl+A
37
+ (e.key === 'c' && e.ctrlKey) || // Allow: Ctrl+C
38
+ (e.key === 'v' && e.ctrlKey) || // Allow: Ctrl+V
39
+ (e.key === 'x' && e.ctrlKey) || // Allow: Ctrl+X
40
+ (e.key === 'a' && e.metaKey) || // Allow: Cmd+A (Mac)
41
+ (e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)
42
+ (e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)
43
+ (e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)
44
+ (this.decimal && e.key === this.decimalSeparator && this.decimalCounter < 1) || // Allow: only one decimal point
45
+ (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus
46
+ ) {
47
+ return;
48
+ }
49
+ // Ensure that it is a number and stop the keypress
50
+ if (e.key === ' ' || !this.regex.test(e.key)) {
51
+ e.preventDefault();
52
+ }
53
+ }
54
+ }
55
+ onKeyUp() {
56
+ if (this.digitsOnly) {
57
+ if (!this.decimal) {
58
+ return;
59
+ }
60
+ this.decimalCounter = this.el.nativeElement.value.split(this.decimalSeparator).length - 1;
61
+ this.minusCounter = this.el.nativeElement.value.split(this.minus).length - 1;
62
+ if (isNaN(+this.inputElement.value)) {
63
+ this.inputElement.value = this.sanitizeInput(this.inputElement.value);
64
+ }
65
+ }
66
+ }
67
+ onPaste(event) {
68
+ if (this.digitsOnly) {
69
+ const pastedInput = event.clipboardData?.getData('text/plain');
70
+ this.pasteData(pastedInput);
71
+ event.preventDefault();
72
+ }
73
+ }
74
+ ngOnInit() {
75
+ this.regex = new RegExp(this.allowHyphen ? '^[\\d -]+$' : '\\d');
76
+ }
77
+ pasteData(pastedContent) {
78
+ const sanitizedContent = isNaN(+pastedContent) ? this.sanitizeInput(pastedContent) : pastedContent;
79
+ const pasted = document.execCommand('insertText', false, sanitizedContent);
80
+ if (!pasted) {
81
+ const { selectionStart: start, selectionEnd: end } = this.inputElement;
82
+ this.inputElement.setRangeText(sanitizedContent, start, end, 'end');
83
+ }
84
+ }
85
+ sanitizeInput(input) {
86
+ let result = '';
87
+ if (this.decimal && this.isValidDecimal(input)) {
88
+ const regex = new RegExp(`^[\d -${this.decimalSeparator}]+$`, 'g');
89
+ result = input.replace(regex, '');
90
+ }
91
+ else {
92
+ result = input.replace(`/${this.regex}/g`, '');
93
+ }
94
+ const maxLength = this.inputElement.maxLength;
95
+ if (maxLength > 0) {
96
+ // the input element has maxLength limit
97
+ const allowedLength = maxLength - this.inputElement.value.length;
98
+ result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
99
+ }
100
+ return result;
101
+ }
102
+ isValidDecimal(inputString) {
103
+ return inputString.split(this.decimalSeparator).length <= 2;
104
+ }
105
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
106
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirective, decorators: [{
109
+ type: Directive,
110
+ args: [{
111
+ selector: '[appDigitsOnly]',
112
+ }]
113
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { digitsOnly: [{
114
+ type: Input
115
+ }], allowHyphen: [{
116
+ type: Input
117
+ }], decimal: [{
118
+ type: Input
119
+ }], decimalSeparator: [{
120
+ type: Input
121
+ }], unit: [{
122
+ type: Input
123
+ }], onKeyDown: [{
124
+ type: HostListener,
125
+ args: ['keydown', ['$event']]
126
+ }], onKeyUp: [{
127
+ type: HostListener,
128
+ args: ['keyup', ['$event']]
129
+ }], onPaste: [{
130
+ type: HostListener,
131
+ args: ['paste', ['$event']]
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUtuRixNQUFNLE9BQU8sbUJBQW1CO0lBZ0NYO0lBOUJuQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxPQUFPLEdBQUksS0FBSyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFJLEdBQUcsQ0FBQztJQUN4QixJQUFJLEdBQUksQ0FBQyxDQUFDO0lBRW5CLFlBQVksQ0FBbUI7SUFDL0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBRVAsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGNBQWMsR0FBRztRQUNoQyxXQUFXO1FBQ1gsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87S0FDUixDQUFDO0lBRUYsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJ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LFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsd0NBQXdDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakUsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7d0dBMUhVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO2lHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNEJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBEaWdpdHNPbmx5XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/ID0gJy4nO1xyXG4gIEBJbnB1dCgpIHVuaXQ/ID0gMDtcclxuXHJcbiAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIG1pbnVzID0gJy0nO1xyXG4gIG1pbnVzQ291bnRlciA9IDA7XHJcbiAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbENvdW50ZXIgPCAxKSB8fCAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMubWludXMgJiYgdGhpcy5taW51c0NvdW50ZXIgPCAxKSAvLyBBbGxvdzogb25seSBvbmUgbWludXNcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgIXRoaXMucmVnZXgudGVzdChlLmtleSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBvbktleVVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCAtIDE7XHJcbiAgICAgIHRoaXMubWludXNDb3VudGVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMubWludXMpLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICBpZiAoaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpIGFzIHN0cmluZztcclxuICAgICAgdGhpcy5wYXN0ZURhdGEocGFzdGVkSW5wdXQpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmFsbG93SHlwaGVuID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzdGVEYXRhKHBhc3RlZENvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IGlzTmFOKCtwYXN0ZWRDb250ZW50KSA/IHRoaXMuc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KSA6IHBhc3RlZENvbnRlbnQ7XHJcbiAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgIGlmICghcGFzdGVkKSB7XHJcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQ6IHN0YXJ0LCBzZWxlY3Rpb25FbmQ6IGVuZCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCBhcyBudW1iZXIsIGVuZCBhcyBudW1iZXIsICdlbmQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeW1xcZCAtJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9XSskYCwgJ2cnKTtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShgLyR7dGhpcy5yZWdleH0vZ2AsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC5tYXhMZW5ndGg7XHJcblxyXG4gICAgaWYgKG1heExlbmd0aCA+IDApIHtcclxuICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxyXG4gICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID0gbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjaW1hbChpbnB1dFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXRTdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZykubGVuZ3RoIDw9IDI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { DigitsOnlyDirective } from './digits-only.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class DigitsOnlyDirectivesModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, declarations: [DigitsOnlyDirective], imports: [CommonModule], exports: [DigitsOnlyDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [
15
+ DigitsOnlyDirective,
16
+ ],
17
+ exports: [
18
+ DigitsOnlyDirective,
19
+ ],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGlnaXRzLW9ubHkuZGlyZWN0aXZlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXOUQsTUFBTSxPQUFPLDBCQUEwQjt3R0FBMUIsMEJBQTBCO3lHQUExQiwwQkFBMEIsaUJBTm5DLG1CQUFtQixhQUZWLFlBQVksYUFLckIsbUJBQW1CO3lHQUdWLDBCQUEwQixZQVIxQixZQUFZOzs0RkFRWiwwQkFBMEI7a0JBVHRDLFFBQVE7bUJBQUU7b0JBQ1QsT0FBTyxFQUFFLENBQUUsWUFBWSxDQUFFO29CQUN6QixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWdpdHNPbmx5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaWdpdHMtb25seS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKCB7XHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERpZ2l0c09ubHlEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEaWdpdHNPbmx5RGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRGlnaXRzT25seURpcmVjdGl2ZXNNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NumberBorderDirective {
4
+ el;
5
+ maxValue;
6
+ minValue;
7
+ inputElement;
8
+ constructor(el) {
9
+ this.el = el;
10
+ this.inputElement = el.nativeElement;
11
+ }
12
+ onKeyUp(e) {
13
+ const value = +e.target.value;
14
+ if (isNaN(value)) {
15
+ this.inputElement.value = this.sanitizeInput(e.target.value);
16
+ return;
17
+ }
18
+ if (this.maxValue) {
19
+ if (value > this.maxValue) {
20
+ this.inputElement.value = this.sanitizeInput(this.maxValue.toString());
21
+ return;
22
+ }
23
+ }
24
+ if (this.minValue && this.minValue !== value) {
25
+ if (value < this.minValue) {
26
+ this.inputElement.value = this.sanitizeInput(this.minValue.toString());
27
+ return;
28
+ }
29
+ }
30
+ }
31
+ sanitizeInput(input) {
32
+ let result = '';
33
+ const regex = new RegExp(`/\d+/g`);
34
+ result = input.replace(regex, '');
35
+ const maxLength = this.inputElement.maxLength;
36
+ if (maxLength > 0) {
37
+ const allowedLength = maxLength - this.inputElement.value.length;
38
+ result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
39
+ }
40
+ return result;
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
43
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NumberBorderDirective, selector: "[appNumberBorder]", inputs: { maxValue: "maxValue", minValue: "minValue" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirective, decorators: [{
46
+ type: Directive,
47
+ args: [{
48
+ selector: '[appNumberBorder]',
49
+ }]
50
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { maxValue: [{
51
+ type: Input
52
+ }], minValue: [{
53
+ type: Input
54
+ }], onKeyUp: [{
55
+ type: HostListener,
56
+ args: ['keyup', ['$event']]
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJvcmRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL251bWJlci1ib3JkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0UsTUFBTSxPQUFPLHFCQUFxQjtJQU1iO0lBTFYsUUFBUSxDQUFTO0lBQ2pCLFFBQVEsQ0FBUztJQUUxQixZQUFZLENBQW1CO0lBRS9CLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBR0QsT0FBTyxDQUFDLENBQUM7UUFDUCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRXZFLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQzVDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUV2RSxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBRTlDLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtZQUNqQixNQUFNLGFBQWEsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pFLE1BQU0sR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3RFO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0FsRFUscUJBQXFCOzRGQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7aUdBRVUsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcE51bWJlckJvcmRlcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyQm9yZGVyRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBtYXhWYWx1ZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG1pblZhbHVlOiBudW1iZXI7XHJcblxyXG4gIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcChlKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9ICtlLnRhcmdldC52YWx1ZTtcclxuXHJcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KGUudGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUgPiB0aGlzLm1heFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLnNhbml0aXplSW5wdXQodGhpcy5tYXhWYWx1ZS50b1N0cmluZygpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWluVmFsdWUgJiYgdGhpcy5taW5WYWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlIDwgdGhpcy5taW5WYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMubWluVmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYW5pdGl6ZUlucHV0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAvXFxkKy9nYCk7XHJcbiAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcblxyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xyXG5cclxuICAgIGlmIChtYXhMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPSBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgIHJlc3VsdCA9IGFsbG93ZWRMZW5ndGggPiAwID8gcmVzdWx0LnN1YnN0cmluZygwLCBhbGxvd2VkTGVuZ3RoKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NumberBorderDirective } from './number-border.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class NumberBorderDirectiveModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, declarations: [NumberBorderDirective], imports: [CommonModule], exports: [NumberBorderDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [
15
+ NumberBorderDirective,
16
+ ],
17
+ exports: [
18
+ NumberBorderDirective,
19
+ ],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJvcmRlci5kaXJlY3RpdmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9udW1iZXItYm9yZGVyLmRpcmVjdGl2ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBV2xFLE1BQU0sT0FBTywyQkFBMkI7d0dBQTNCLDJCQUEyQjt5R0FBM0IsMkJBQTJCLGlCQU5wQyxxQkFBcUIsYUFGWixZQUFZLGFBS3JCLHFCQUFxQjt5R0FHWiwyQkFBMkIsWUFSM0IsWUFBWTs7NEZBUVosMkJBQTJCO2tCQVR2QyxRQUFRO21CQUFFO29CQUNULE9BQU8sRUFBRSxDQUFFLFlBQVksQ0FBRTtvQkFDekIsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOdW1iZXJCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci1ib3JkZXIuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBOdW1iZXJCb3JkZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOdW1iZXJCb3JkZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJCb3JkZXJEaXJlY3RpdmVNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,105 @@
1
+ import { Input, Output, EventEmitter, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export default class ElementBaseComponent {
4
+ type;
5
+ name;
6
+ label;
7
+ placeholder = '';
8
+ validationLabel;
9
+ disabled = false;
10
+ showValidation = true;
11
+ showValidationOnNotTouched = false;
12
+ hideValidationMessage = false;
13
+ iconClass = '';
14
+ loading = false;
15
+ showHint = false;
16
+ maxLength;
17
+ tooltip;
18
+ showAsterisk = true;
19
+ focused = new EventEmitter();
20
+ focusOuted = new EventEmitter();
21
+ control;
22
+ required = false;
23
+ getData() {
24
+ return {
25
+ type: this.type || 'text',
26
+ label: this.label,
27
+ placeholder: this.placeholder,
28
+ validationLabel: this.validationLabel,
29
+ disabled: this.disabled,
30
+ showValidation: this.showValidation,
31
+ showValidationOnNotTouched: this.showValidationOnNotTouched,
32
+ hideValidationMessage: this.hideValidationMessage,
33
+ iconClass: this.iconClass,
34
+ control: this.control,
35
+ loading: this.loading,
36
+ showHint: this.showHint,
37
+ maxLength: this.maxLength,
38
+ tooltip: this.tooltip,
39
+ name: this.name,
40
+ required: this.isRequired(this.control),
41
+ showAsterisk: this.showAsterisk,
42
+ };
43
+ }
44
+ isRequired = (ctrl) => {
45
+ if (ctrl?.validator) {
46
+ const validator = ctrl.validator({});
47
+ if (validator && validator['required']) {
48
+ return true;
49
+ }
50
+ }
51
+ if (ctrl?.['controls']) {
52
+ for (const name in ctrl['controls']) {
53
+ if (ctrl['controls'][name]) {
54
+ if (this.isRequired(ctrl['controls'][name])) {
55
+ return true;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ return false;
61
+ };
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ElementBaseComponent, selector: "ng-component", inputs: { type: "type", name: "name", label: "label", placeholder: "placeholder", validationLabel: "validationLabel", disabled: "disabled", showValidation: "showValidation", showValidationOnNotTouched: "showValidationOnNotTouched", hideValidationMessage: "hideValidationMessage", iconClass: "iconClass", loading: "loading", showHint: "showHint", maxLength: "maxLength", tooltip: "tooltip", showAsterisk: "showAsterisk" }, outputs: { focused: "focused", focusOuted: "focusOuted" }, ngImport: i0, template: '', isInline: true });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementBaseComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ template: '',
69
+ }]
70
+ }], propDecorators: { type: [{
71
+ type: Input
72
+ }], name: [{
73
+ type: Input
74
+ }], label: [{
75
+ type: Input
76
+ }], placeholder: [{
77
+ type: Input
78
+ }], validationLabel: [{
79
+ type: Input
80
+ }], disabled: [{
81
+ type: Input
82
+ }], showValidation: [{
83
+ type: Input
84
+ }], showValidationOnNotTouched: [{
85
+ type: Input
86
+ }], hideValidationMessage: [{
87
+ type: Input
88
+ }], iconClass: [{
89
+ type: Input
90
+ }], loading: [{
91
+ type: Input
92
+ }], showHint: [{
93
+ type: Input
94
+ }], maxLength: [{
95
+ type: Input
96
+ }], tooltip: [{
97
+ type: Input
98
+ }], showAsterisk: [{
99
+ type: Input
100
+ }], focused: [{
101
+ type: Output
102
+ }], focusOuted: [{
103
+ type: Output
104
+ }] } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZWxlbWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQW9CO0lBQzlCLElBQUksQ0FBUztJQUNiLElBQUksQ0FBUztJQUNiLEtBQUssQ0FBUztJQUNkLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsZUFBZSxDQUFTO0lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QiwwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFDbkMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsU0FBUyxDQUFVO0lBQ25CLE9BQU8sQ0FBVTtJQUNqQixZQUFZLEdBQVksSUFBSSxDQUFDO0lBRTVCLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRS9DLE9BQU8sQ0FBc0I7SUFDN0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUUxQixPQUFPO1FBQ0wsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU07WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzNELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDakQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTyxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQVcsRUFBRTtRQUMxQyxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFxQixDQUFDLENBQUM7WUFDeEQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO3dCQUMzQyxPQUFPLElBQUksQ0FBQztxQkFDYjtpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQzt3R0FoRWlCLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHFoQkFGN0IsRUFBRTs7NEZBRU8sb0JBQW9CO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbn0pXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVsZW1lbnRCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0eXBlITpzdHJpbmc7XHJcbiAgQElucHV0KCkgbmFtZSE6c3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsITpzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSB2YWxpZGF0aW9uTGFiZWwhOnN0cmluZztcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbk9uTm90VG91Y2hlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVWYWxpZGF0aW9uTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGljb25DbGFzcyA9ICcnO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93SGludDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBc3RlcmlzazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXREYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0aGlzLnR5cGUgfHwgJ3RleHQnLFxyXG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICAgIHZhbGlkYXRpb25MYWJlbDogdGhpcy52YWxpZGF0aW9uTGFiZWwsXHJcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxyXG4gICAgICBzaG93VmFsaWRhdGlvbjogdGhpcy5zaG93VmFsaWRhdGlvbixcclxuICAgICAgc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQ6IHRoaXMuc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQsXHJcbiAgICAgIGhpZGVWYWxpZGF0aW9uTWVzc2FnZTogdGhpcy5oaWRlVmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIGljb25DbGFzczogdGhpcy5pY29uQ2xhc3MsXHJcbiAgICAgIGNvbnRyb2w6IHRoaXMuY29udHJvbCxcclxuICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxyXG4gICAgICBzaG93SGludDogdGhpcy5zaG93SGludCxcclxuICAgICAgbWF4TGVuZ3RoOiB0aGlzLm1heExlbmd0aCxcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgIHJlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQodGhpcy5jb250cm9sKSxcclxuICAgICAgc2hvd0FzdGVyaXNrOiB0aGlzLnNob3dBc3RlcmlzayxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUmVxdWlyZWQgPSAoY3RybDogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgICBpZiAoY3RybD8udmFsaWRhdG9yKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGN0cmwudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICAgIGlmICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3RybD8uWydjb250cm9scyddKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBjdHJsWydjb250cm9scyddKSB7XHJcbiAgICAgICAgaWYgKGN0cmxbJ2NvbnRyb2xzJ11bbmFtZV0pIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQoY3RybFsnY29udHJvbHMnXVtuYW1lXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH07XHJcbn1cclxuIl19