@zeedhi/common 3.0.0 → 3.0.2

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 (292) hide show
  1. package/coverage/clover.xml +2570 -1531
  2. package/coverage/coverage-final.json +171 -158
  3. package/coverage/lcov-report/block-navigation.js +1 -1
  4. package/coverage/lcov-report/index.html +194 -44
  5. package/coverage/lcov-report/sorter.js +21 -7
  6. package/coverage/lcov-report/src/components/index.html +5 -5
  7. package/coverage/lcov-report/src/components/index.ts.html +244 -142
  8. package/coverage/lcov-report/src/components/tek-grid/columns-searcher.ts.html +2 -2
  9. package/coverage/lcov-report/src/components/tek-grid/dynamic-filter-datasource-factory.ts.html +3 -3
  10. package/coverage/lcov-report/src/components/tek-grid/filter-helper.ts.html +3 -3
  11. package/coverage/lcov-report/src/components/tek-grid/grid-filter-button.ts.html +6 -6
  12. package/coverage/lcov-report/src/components/tek-grid/grouped-data-manager.ts.html +6 -6
  13. package/coverage/lcov-report/src/components/tek-grid/grouped-data-selector.ts.html +3 -3
  14. package/coverage/lcov-report/src/components/tek-grid/grouped-view-navigator.ts.html +3 -3
  15. package/coverage/lcov-report/src/components/tek-grid/index.html +1 -1
  16. package/coverage/lcov-report/src/components/tek-grid/index.ts.html +19 -19
  17. package/coverage/lcov-report/src/components/tek-grid/interfaces.ts.html +3 -3
  18. package/coverage/lcov-report/src/components/tek-grid/keymap-grouped.ts.html +2 -2
  19. package/coverage/lcov-report/src/components/tek-grid/layout-options.ts.html +6 -6
  20. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.html +1 -1
  21. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.ts.html +4 -4
  22. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/interfaces.ts.html +3 -3
  23. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts.html +5 -5
  24. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts.html +5 -5
  25. package/coverage/lcov-report/src/components/tek-grid/tek-grid-column.ts.html +4 -4
  26. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/index.html +1 -1
  27. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts.html +3 -3
  28. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts.html +6 -6
  29. package/coverage/lcov-report/src/components/tek-grid/tek-grid-controller.ts.html +2 -2
  30. package/coverage/lcov-report/src/components/tek-grid/tek-grid-events.ts.html +3 -3
  31. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts.html +2 -2
  32. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.html +1 -1
  33. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts.html +4 -4
  34. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts.html +2 -2
  35. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.html +1 -1
  36. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.ts.html +3 -3
  37. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts.html +5 -5
  38. package/coverage/lcov-report/src/components/tek-grid/tek-grid.ts.html +22 -22
  39. package/coverage/lcov-report/src/components/zd-alert/alert.ts.html +3 -3
  40. package/coverage/lcov-report/src/components/zd-alert/index.html +1 -1
  41. package/coverage/lcov-report/src/components/zd-badge/badge.ts.html +3 -3
  42. package/coverage/lcov-report/src/components/zd-badge/index.html +1 -1
  43. package/coverage/lcov-report/src/components/zd-breadcrumbs/breadcrumbs.ts.html +3 -3
  44. package/coverage/lcov-report/src/components/zd-breadcrumbs/index.html +1 -1
  45. package/coverage/lcov-report/src/components/zd-button/button.ts.html +36 -36
  46. package/coverage/lcov-report/src/components/zd-button/index.html +1 -1
  47. package/coverage/lcov-report/src/components/zd-button-group/button-group.ts.html +113 -131
  48. package/coverage/lcov-report/src/components/zd-button-group/index.html +17 -17
  49. package/coverage/lcov-report/src/components/zd-card/card.ts.html +3 -3
  50. package/coverage/lcov-report/src/components/zd-card/index.html +1 -1
  51. package/coverage/lcov-report/src/components/zd-carousel/carousel.ts.html +3 -3
  52. package/coverage/lcov-report/src/components/zd-carousel/index.html +1 -1
  53. package/coverage/lcov-report/src/components/zd-checkbox/checkbox.ts.html +6 -6
  54. package/coverage/lcov-report/src/components/zd-checkbox/index.html +1 -1
  55. package/coverage/lcov-report/src/components/zd-checkbox-multiple/checkbox-multiple.ts.html +77 -122
  56. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +17 -17
  57. package/coverage/lcov-report/src/components/zd-chip/chip.ts.html +352 -0
  58. package/coverage/lcov-report/src/components/zd-chip/index.html +116 -0
  59. package/coverage/lcov-report/src/components/zd-code-viewer/code-viewer.ts.html +4 -4
  60. package/coverage/lcov-report/src/components/zd-code-viewer/index.html +1 -1
  61. package/coverage/lcov-report/src/components/zd-col/col.ts.html +3 -3
  62. package/coverage/lcov-report/src/components/zd-col/index.html +1 -1
  63. package/coverage/lcov-report/src/components/zd-collapse-card/collapse-card.ts.html +80 -68
  64. package/coverage/lcov-report/src/components/zd-collapse-card/index.html +1 -1
  65. package/coverage/lcov-report/src/components/zd-component/child-not-found.ts.html +2 -2
  66. package/coverage/lcov-report/src/components/zd-component/component-render.ts.html +5 -5
  67. package/coverage/lcov-report/src/components/zd-component/component.ts.html +117 -69
  68. package/coverage/lcov-report/src/components/zd-component/index.html +9 -9
  69. package/coverage/lcov-report/src/components/zd-container/container.ts.html +3 -3
  70. package/coverage/lcov-report/src/components/zd-container/index.html +1 -1
  71. package/coverage/lcov-report/src/components/zd-currency/currency.ts.html +259 -0
  72. package/coverage/lcov-report/src/components/zd-currency/index.html +116 -0
  73. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +113 -98
  74. package/coverage/lcov-report/src/components/zd-date-input/index.html +5 -5
  75. package/coverage/lcov-report/src/components/zd-date-range/date-range.ts.html +2059 -0
  76. package/coverage/lcov-report/src/components/zd-date-range/index.html +116 -0
  77. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +30 -30
  78. package/coverage/lcov-report/src/components/zd-dialog/index.html +1 -1
  79. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +3 -3
  80. package/coverage/lcov-report/src/components/zd-divider/index.html +1 -1
  81. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +3 -3
  82. package/coverage/lcov-report/src/components/zd-dropdown/index.html +1 -1
  83. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +3 -3
  84. package/coverage/lcov-report/src/components/zd-footer/index.html +1 -1
  85. package/coverage/lcov-report/src/components/zd-form/form.ts.html +288 -18
  86. package/coverage/lcov-report/src/components/zd-form/index.html +9 -9
  87. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +8 -8
  88. package/coverage/lcov-report/src/components/zd-frame/index.html +1 -1
  89. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +4 -4
  90. package/coverage/lcov-report/src/components/zd-frame-page/index.html +1 -1
  91. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +3 -3
  92. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +3 -3
  93. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +10 -10
  94. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +4 -4
  95. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +84 -84
  96. package/coverage/lcov-report/src/components/zd-grid/index.html +1 -1
  97. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +12 -12
  98. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +6 -6
  99. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +14 -14
  100. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +3 -3
  101. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +5 -5
  102. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +3 -3
  103. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +6 -6
  104. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +7 -7
  105. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +1 -1
  106. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +3 -3
  107. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +2 -2
  108. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +2 -2
  109. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +3 -3
  110. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +2 -2
  111. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +2 -2
  112. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +9 -9
  113. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +1 -1
  114. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +8 -8
  115. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +2 -2
  116. package/coverage/lcov-report/src/components/zd-header/header.ts.html +3 -3
  117. package/coverage/lcov-report/src/components/zd-header/index.html +1 -1
  118. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +3 -3
  119. package/coverage/lcov-report/src/components/zd-icon/index.html +1 -1
  120. package/coverage/lcov-report/src/components/zd-image/image.ts.html +3 -3
  121. package/coverage/lcov-report/src/components/zd-image/index.html +1 -1
  122. package/coverage/lcov-report/src/components/zd-increment/increment.ts.html +436 -0
  123. package/coverage/lcov-report/src/components/zd-increment/index.html +116 -0
  124. package/coverage/lcov-report/src/components/zd-input/index.html +5 -5
  125. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +4 -4
  126. package/coverage/lcov-report/src/components/zd-input/input.ts.html +73 -61
  127. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +2 -2
  128. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +6 -6
  129. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +9 -9
  130. package/coverage/lcov-report/src/components/zd-iterable/index.html +1 -1
  131. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +2 -2
  132. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +6 -6
  133. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +4 -4
  134. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +5 -5
  135. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +3 -3
  136. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +5 -5
  137. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +3 -3
  138. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +29 -29
  139. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +8 -8
  140. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +1 -1
  141. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +5 -5
  142. package/coverage/lcov-report/src/components/zd-layout/index.html +1 -1
  143. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +3 -3
  144. package/coverage/lcov-report/src/components/zd-list/index.html +1 -1
  145. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +2 -2
  146. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +4 -4
  147. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +3 -3
  148. package/coverage/lcov-report/src/components/zd-list/list.ts.html +4 -4
  149. package/coverage/lcov-report/src/components/zd-loading/index.html +1 -1
  150. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +3 -3
  151. package/coverage/lcov-report/src/components/zd-login/index.html +1 -1
  152. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +4 -4
  153. package/coverage/lcov-report/src/components/zd-login/login.ts.html +3 -3
  154. package/coverage/lcov-report/src/components/zd-main/index.html +1 -1
  155. package/coverage/lcov-report/src/components/zd-main/main.ts.html +3 -3
  156. package/coverage/lcov-report/src/components/zd-master-detail/detail-not-found.ts.html +118 -0
  157. package/coverage/lcov-report/src/components/zd-master-detail/index.html +146 -0
  158. package/coverage/lcov-report/src/components/zd-master-detail/master-detail.ts.html +331 -0
  159. package/coverage/lcov-report/src/components/zd-master-detail/master-not-found.ts.html +118 -0
  160. package/coverage/lcov-report/src/components/zd-menu/index.html +1 -1
  161. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +4 -4
  162. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +3 -3
  163. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +3 -3
  164. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +3 -3
  165. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +4 -4
  166. package/coverage/lcov-report/src/components/zd-modal/index.html +1 -1
  167. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +4 -4
  168. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +5 -5
  169. package/coverage/lcov-report/src/components/zd-month/index.html +116 -0
  170. package/coverage/lcov-report/src/components/zd-month/month.ts.html +568 -0
  171. package/coverage/lcov-report/src/components/zd-number-input/index.html +1 -1
  172. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +27 -27
  173. package/coverage/lcov-report/src/components/zd-password/index.html +1 -1
  174. package/coverage/lcov-report/src/components/zd-password/password.ts.html +7 -7
  175. package/coverage/lcov-report/src/components/zd-progress/index.html +116 -0
  176. package/coverage/lcov-report/src/components/zd-progress/progress.ts.html +262 -0
  177. package/coverage/lcov-report/src/components/zd-radio/index.html +1 -1
  178. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +6 -6
  179. package/coverage/lcov-report/src/components/zd-row/index.html +1 -1
  180. package/coverage/lcov-report/src/components/zd-row/row.ts.html +3 -3
  181. package/coverage/lcov-report/src/components/zd-select/index.html +1 -1
  182. package/coverage/lcov-report/src/components/zd-select/select.ts.html +9 -9
  183. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +1 -1
  184. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +5 -5
  185. package/coverage/lcov-report/src/components/zd-svg-map/index.html +116 -0
  186. package/coverage/lcov-report/src/components/zd-svg-map/svg-map.ts.html +475 -0
  187. package/coverage/lcov-report/src/components/zd-switch/index.html +1 -1
  188. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +5 -5
  189. package/coverage/lcov-report/src/components/zd-table/index.html +1 -1
  190. package/coverage/lcov-report/src/components/zd-table/table.ts.html +4 -4
  191. package/coverage/lcov-report/src/components/zd-tabs/index.html +1 -1
  192. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +2 -2
  193. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +5 -5
  194. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +7 -7
  195. package/coverage/lcov-report/src/components/zd-tag/index.html +1 -1
  196. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +3 -3
  197. package/coverage/lcov-report/src/components/zd-text/index.html +1 -1
  198. package/coverage/lcov-report/src/components/zd-text/text.ts.html +3 -3
  199. package/coverage/lcov-report/src/components/zd-text-input/index.html +1 -1
  200. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +22 -22
  201. package/coverage/lcov-report/src/components/zd-textarea/index.html +1 -1
  202. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +5 -5
  203. package/coverage/lcov-report/src/components/zd-time/index.html +131 -0
  204. package/coverage/lcov-report/src/components/zd-time/time-format-selector.ts.html +157 -0
  205. package/coverage/lcov-report/src/components/zd-time/time.ts.html +1669 -0
  206. package/coverage/lcov-report/src/components/zd-toggleable/index.html +1 -1
  207. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +3 -3
  208. package/coverage/lcov-report/src/components/zd-tooltip/index.html +1 -1
  209. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +3 -3
  210. package/coverage/lcov-report/src/components/zd-tree/index.html +116 -0
  211. package/coverage/lcov-report/src/components/zd-tree/tree.ts.html +1849 -0
  212. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +1 -1
  213. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +7 -7
  214. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +9 -9
  215. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +3 -3
  216. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +5 -5
  217. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +5 -5
  218. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +108 -108
  219. package/coverage/lcov-report/src/error/delete-rows.ts.html +3 -3
  220. package/coverage/lcov-report/src/error/index.html +1 -1
  221. package/coverage/lcov-report/src/error/non-initialized.ts.html +3 -3
  222. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +3 -3
  223. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +2 -2
  224. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +3 -3
  225. package/coverage/lcov-report/src/index.html +1 -1
  226. package/coverage/lcov-report/src/index.ts.html +9 -27
  227. package/coverage/lcov-report/src/services/index.html +1 -1
  228. package/coverage/lcov-report/src/services/index.ts.html +5 -5
  229. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +3 -3
  230. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +3 -3
  231. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +5 -5
  232. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +3 -3
  233. package/coverage/lcov-report/src/services/zd-alert/index.html +1 -1
  234. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +6 -6
  235. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +4 -4
  236. package/coverage/lcov-report/src/services/zd-dialog/index.html +1 -1
  237. package/coverage/lcov-report/src/services/zd-loading/index.html +1 -1
  238. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +2 -2
  239. package/coverage/lcov-report/src/services/zd-modal/index.html +1 -1
  240. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +5 -5
  241. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +3 -3
  242. package/coverage/lcov-report/src/utils/data-value-out/index.html +1 -1
  243. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +3 -3
  244. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +3 -3
  245. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +1 -1
  246. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +3 -3
  247. package/coverage/lcov-report/src/utils/icons/icons.ts.html +6 -6
  248. package/coverage/lcov-report/src/utils/icons/index.html +1 -1
  249. package/coverage/lcov-report/src/utils/index.html +1 -1
  250. package/coverage/lcov-report/src/utils/index.ts.html +11 -11
  251. package/coverage/lcov-report/src/utils/is-filled-object/index.html +1 -1
  252. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +3 -3
  253. package/coverage/lcov-report/src/utils/is-nil.ts.html +2 -2
  254. package/coverage/lcov-report/src/utils/omit/index.html +1 -1
  255. package/coverage/lcov-report/src/utils/omit/omit.ts.html +2 -2
  256. package/coverage/lcov-report/src/utils/theme/index.html +1 -1
  257. package/coverage/lcov-report/src/utils/theme/theme.ts.html +4 -4
  258. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +7 -7
  259. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +3 -3
  260. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +90 -87
  261. package/coverage/lcov-report/src/utils/unique-by/index.html +1 -1
  262. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +3 -3
  263. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +1 -1
  264. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +1 -1
  265. package/coverage/lcov.info +3991 -2050
  266. package/dist/types/components/index.d.ts +2 -0
  267. package/dist/types/components/zd-date-range/date-range.d.ts +152 -0
  268. package/dist/types/components/zd-date-range/interfaces.d.ts +18 -0
  269. package/dist/types/components/zd-form/form.d.ts +15 -0
  270. package/dist/types/components/zd-form/interfaces.d.ts +3 -0
  271. package/dist/types/components/zd-input/input.d.ts +2 -0
  272. package/dist/types/components/zd-input/interfaces.d.ts +2 -0
  273. package/dist/types/components/zd-time/interfaces.d.ts +1 -1
  274. package/dist/types/components/zd-time/time.d.ts +6 -6
  275. package/dist/types/index.d.ts +1 -1
  276. package/dist/zd-common.js +634 -23
  277. package/dist/zd-common.min.js +634 -23
  278. package/package.json +3 -3
  279. package/src/components/index.ts +7 -5
  280. package/src/components/zd-date-range/date-range.ts +658 -0
  281. package/src/components/zd-date-range/interfaces.ts +19 -0
  282. package/src/components/zd-form/form.ts +91 -1
  283. package/src/components/zd-form/interfaces.ts +3 -0
  284. package/src/components/zd-input/input.ts +4 -0
  285. package/src/components/zd-input/interfaces.ts +2 -0
  286. package/src/components/zd-time/interfaces.ts +16 -16
  287. package/src/components/zd-time/time-format-selector.ts +13 -13
  288. package/src/components/zd-time/time.ts +510 -488
  289. package/src/index.ts +1 -8
  290. package/tests/unit/components/zd-date-range/date-range.spec.ts +1125 -0
  291. package/tests/unit/components/zd-form/form.spec.ts +30 -0
  292. package/tests/unit/components/zd-menu/menu-button.spec.ts +1 -1
@@ -1,4 +1,6 @@
1
1
  import { Metadata, Utils, DatasourceFactory, AccessorManager, Event, KeyMap, FormatterParserProvider, Validation, Mask, Accessor, Loader, dayjs, Config, I18n, DateHelper, Router, MethodNotAssignedError, Http, Cookie, ViewService, InstanceNotFoundError, MemoryDatasource, URL, RestDatasource, Messages } from '@zeedhi/core';
2
+ import AutoNumeric from '@zeedhi/autonumeric';
3
+ export { default as AutoNumeric } from '@zeedhi/autonumeric';
2
4
  import isUndefined from 'lodash.isundefined';
3
5
  import debounce from 'lodash.debounce';
4
6
  import merge from 'lodash.merge';
@@ -1641,13 +1643,86 @@ class Form extends ComponentRender {
1641
1643
  get childrenProps() {
1642
1644
  return this.children.map(({ grid, ...otherAttrs }) => otherAttrs);
1643
1645
  }
1646
+ /**
1647
+ * Checks if the value matches a col value (1, 2, ... 12) or auto
1648
+ */
1649
+ matchColumn = (value) => (!Number.isNaN(Number(value)) || value === 'auto');
1650
+ breakpoints = ['lg', 'md', 'sm', 'xl', 'xxl'];
1651
+ matchBreakpoint = (value) => (this.breakpoints.includes(value));
1652
+ handleColClass(cssClass) {
1653
+ const dataString = cssClass.replace('zd-col-', '');
1654
+ const splittedData = dataString.split('-');
1655
+ const firstData = splittedData[0];
1656
+ const secondData = splittedData[1];
1657
+ // in this case the class is zd-col-{n} or zd-col-auto
1658
+ if (this.matchColumn(firstData)) {
1659
+ return { key: 'cols', value: firstData };
1660
+ }
1661
+ const matchWithBreakpoints = this.matchBreakpoint(firstData) && this.matchColumn(secondData);
1662
+ if (!matchWithBreakpoints)
1663
+ return null;
1664
+ // in this case the class is zd-col-{breakpoint}-{n} or zd-col-{breakpoint}-auto
1665
+ return { key: firstData, value: secondData };
1666
+ }
1667
+ handleOffsetClass(cssClass) {
1668
+ const dataString = cssClass.replace('zd-offset-', '');
1669
+ const splittedData = dataString.split('-');
1670
+ const firstData = splittedData[0];
1671
+ const secondData = splittedData[1];
1672
+ // in this case the class is zd-offset-{n} or zd-offset-auto
1673
+ if (this.matchColumn(firstData)) {
1674
+ return { key: 'offset', value: firstData };
1675
+ }
1676
+ const matchWithBreakpoints = this.matchBreakpoint(firstData) && this.matchColumn(secondData);
1677
+ if (!matchWithBreakpoints)
1678
+ return null;
1679
+ // in this case the class is zd-offset-{breakpoint}-{n} or zd-offset-{breakpoint}-auto
1680
+ return { key: `offset-${firstData}`, value: secondData };
1681
+ }
1682
+ /**
1683
+ * This method searches in a css class string to find classes related to grid cols \
1684
+ * Parses all of the grid cols classes found to form grid object entries, for example
1685
+ * the following class: 'zd-col-sm-12 zd-col-md-6' will become { sm: '12', md: '6' }
1686
+ */
1687
+ parseGridClasses(classes) {
1688
+ const classesArray = classes.split(' ');
1689
+ const gridObject = {};
1690
+ classesArray.forEach((cssClass) => {
1691
+ if (cssClass.startsWith('zd-col-')) {
1692
+ const result = this.handleColClass(cssClass);
1693
+ if (!result)
1694
+ return;
1695
+ const { key, value } = result;
1696
+ gridObject[key] = value;
1697
+ return;
1698
+ }
1699
+ if (cssClass.startsWith('zd-offset-')) {
1700
+ const result = this.handleOffsetClass(cssClass);
1701
+ if (!result)
1702
+ return;
1703
+ const { key, value } = result;
1704
+ gridObject[key] = value;
1705
+ return;
1706
+ }
1707
+ return;
1708
+ });
1709
+ return gridObject;
1710
+ }
1711
+ getChildGrid(child) {
1712
+ if (child.grid && Object.keys(child.grid).length > 0)
1713
+ return child.grid;
1714
+ if (child.cssClass)
1715
+ return this.parseGridClasses(child.cssClass);
1716
+ return {};
1717
+ }
1644
1718
  /**
1645
1719
  * Grid system for each child.
1646
1720
  */
1647
1721
  get childrenGrid() {
1648
1722
  const childrenGrid = {};
1649
1723
  this.children.forEach((child) => {
1650
- childrenGrid[child.name] = { cols: '3', ...(child.grid || {}) };
1724
+ const grid = this.getChildGrid(child);
1725
+ childrenGrid[child.name] = { cols: '3', ...grid };
1651
1726
  });
1652
1727
  return childrenGrid;
1653
1728
  }
@@ -1814,6 +1889,7 @@ class Input extends ComponentRender {
1814
1889
  internalDisplayValue = '';
1815
1890
  internalValue = null;
1816
1891
  formParent = this.getFormParent();
1892
+ grid = {};
1817
1893
  /* istanbul ignore next */
1818
1894
  /**
1819
1895
  * Creates a new Input.
@@ -1843,6 +1919,7 @@ class Input extends ComponentRender {
1843
1919
  this.storePath = this.getInitValue('storePath', props.storePath, this.storePath);
1844
1920
  this.value = this.getInitValue('value', props.value, this.value);
1845
1921
  this.validations = this.getInitValue('validations', props.validations, this.validations);
1922
+ this.grid = this.getInitValue('grid', props.grid, this.grid);
1846
1923
  this.parseValidations(props.validations || {});
1847
1924
  }
1848
1925
  onCreated() {
@@ -15480,8 +15557,12 @@ class Time extends TextInput {
15480
15557
  }
15481
15558
  return this.mask;
15482
15559
  }
15483
- formatter(value) { return this.formatterFn(value, this); }
15484
- parser(value) { return this.parserFn(value, this); }
15560
+ formatter(value) {
15561
+ return this.formatterFn(value, this);
15562
+ }
15563
+ parser(value) {
15564
+ return this.parserFn(value, this);
15565
+ }
15485
15566
  /**
15486
15567
  * Triggered when date is clicked.
15487
15568
  * @param event
@@ -15490,7 +15571,10 @@ class Time extends TextInput {
15490
15571
  selectTime(time, event, element) {
15491
15572
  if (this.events.onSelectTime && typeof this.events.onSelectTime === 'function') {
15492
15573
  this.events.onSelectTime({
15493
- time, event, element, component: this,
15574
+ time,
15575
+ event,
15576
+ element,
15577
+ component: this,
15494
15578
  });
15495
15579
  }
15496
15580
  }
@@ -15569,11 +15653,11 @@ class Time extends TextInput {
15569
15653
  return null;
15570
15654
  }
15571
15655
  /**
15572
- * Checks if a time format is simple.
15573
- * Simple time formats are the ones that consists only of 'HH', 'mm', 'mm' or 'YYYY', and mask delimiters
15574
- * @param format The format to be checked
15575
- * @returns true if it is simple, false otherwise
15576
- */
15656
+ * Checks if a time format is simple.
15657
+ * Simple time formats are the ones that consists only of 'HH', 'mm', 'mm' or 'YYYY', and mask delimiters
15658
+ * @param format The format to be checked
15659
+ * @returns true if it is simple, false otherwise
15660
+ */
15577
15661
  isSimpleFormat(format) {
15578
15662
  const simpleTokens = ['HH', 'mm', 'ss', 'hh', 'A', 'a', 'p', 'P'];
15579
15663
  // remove the simple tokens from the string
@@ -15588,10 +15672,9 @@ class Time extends TextInput {
15588
15672
  return I18n.translate('VALIDATION_INVALID_TIME');
15589
15673
  }
15590
15674
  timeAllowedValidation() {
15591
- return !this.displayValue
15592
- || (this.isValidTime(this.displayValue, this.displayFormat)
15593
- && this.isTimeAllowed())
15594
- || I18n.translate('VALIDATION_TIME_NOT_ALLOWED');
15675
+ return (!this.displayValue ||
15676
+ (this.isValidTime(this.displayValue, this.displayFormat) && this.isTimeAllowed()) ||
15677
+ I18n.translate('VALIDATION_TIME_NOT_ALLOWED'));
15595
15678
  }
15596
15679
  click(event, element) {
15597
15680
  const clickEvent = event || new MouseEvent('click');
@@ -15622,8 +15705,10 @@ class Time extends TextInput {
15622
15705
  * Removes the component mask if value is valid
15623
15706
  */
15624
15707
  removeTimeMask() {
15625
- if (isUndefined(this.initialMask) || !this.value || this.timeError
15626
- || !this.isValidTime(this.value, this.valueFormat)) {
15708
+ if (isUndefined(this.initialMask) ||
15709
+ !this.value ||
15710
+ this.timeError ||
15711
+ !this.isValidTime(this.value, this.valueFormat)) {
15627
15712
  return;
15628
15713
  }
15629
15714
  this.mask = '';
@@ -15640,9 +15725,11 @@ class Time extends TextInput {
15640
15725
  */
15641
15726
  // private lastInvalid: string = '';
15642
15727
  isTimeAllowed(value = this.value) {
15643
- return this.isSameOrAfterMin(value) && this.isSameOrBeforeMax(value)
15644
- && this.isHourAllowed(value) && this.isMinuteAllowed(value)
15645
- && this.isSecondAllowed(value);
15728
+ return (this.isSameOrAfterMin(value) &&
15729
+ this.isSameOrBeforeMax(value) &&
15730
+ this.isHourAllowed(value) &&
15731
+ this.isMinuteAllowed(value) &&
15732
+ this.isSecondAllowed(value));
15646
15733
  }
15647
15734
  isSameOrAfterMin(value) {
15648
15735
  if (!this.minTime)
@@ -15751,8 +15838,534 @@ FormatterParserProvider.registerParser('ZdTime', (value, { displayFormat = Confi
15751
15838
  });
15752
15839
  InputFactory.register('ZdTime', Time);
15753
15840
 
15754
- // import { VersionService } from '@zeedhi/core';
15755
- const AutoNumeric = require('@zeedhi/autonumeric/dist/autoNumeric');
15841
+ class DateRange extends TextInput {
15842
+ /**
15843
+ * Input auto complete.
15844
+ */
15845
+ autocomplete = false;
15846
+ /**
15847
+ * Defines the date format.
15848
+ */
15849
+ dateFormat = Config.dateFormat;
15850
+ /**
15851
+ * Defines the date format displayed.
15852
+ */
15853
+ displayFormat = Config.displayFormat;
15854
+ /**
15855
+ * Defines the date input format.
15856
+ */
15857
+ inputFormat = Config.dateInputFormat;
15858
+ /**
15859
+ * Shows the date picker.
15860
+ */
15861
+ showDatePicker = false;
15862
+ /**
15863
+ * Sets the first day of the week, starting with 0 for Sunday.
15864
+ */
15865
+ firstDayOfWeek = 0;
15866
+ /**
15867
+ * Forces 100% width.
15868
+ */
15869
+ fullWidth = false;
15870
+ /**
15871
+ * Sets the locale. Accepts a string with a BCP 47 language tag.
15872
+ */
15873
+ locale = I18n.instance.language;
15874
+ /**
15875
+ * Allows changing displayed month with mouse scroll
15876
+ */
15877
+ scrollable = false;
15878
+ /**
15879
+ * Toggles visibility of the week numbers in the body of the calendar.
15880
+ */
15881
+ showWeek = false;
15882
+ /**
15883
+ * Character that will separate the two dates
15884
+ */
15885
+ get splitter() {
15886
+ return I18n.translate(this.internalSplitter);
15887
+ }
15888
+ set splitter(splitter) {
15889
+ this.internalSplitter = splitter;
15890
+ }
15891
+ internalSplitter = ' ~ ';
15892
+ /**
15893
+ * Width of the picker.
15894
+ */
15895
+ width = 248;
15896
+ /**
15897
+ * Helper options.
15898
+ */
15899
+ helperOptions = [];
15900
+ /**
15901
+ * Max value allowed.
15902
+ */
15903
+ max = '';
15904
+ /**
15905
+ * Min value allowed.
15906
+ */
15907
+ min = '';
15908
+ /**
15909
+ * Helper value.
15910
+ */
15911
+ helperValue = '';
15912
+ isoFormat = 'YYYY-MM-DD';
15913
+ dateError = false;
15914
+ formatterFn = FormatterParserProvider.getFormatter('ZdDateRange');
15915
+ parserFn = FormatterParserProvider.getParser('ZdDateRange');
15916
+ initialMask;
15917
+ unitMask;
15918
+ isSimpleDisplay;
15919
+ /* istanbul ignore next */
15920
+ /**
15921
+ * Creates a new Date.
15922
+ * @param props Date properties
15923
+ */
15924
+ constructor(props) {
15925
+ super(props);
15926
+ // Add this logic to resolve template strings
15927
+ if (typeof props.appendIcon === 'string' && props.appendIcon.startsWith('{{') && props.appendIcon.endsWith('}}')) {
15928
+ const match = props.appendIcon.match(/{{(.*?)}}/);
15929
+ if (match) {
15930
+ const path = match[1].trim().split('.');
15931
+ let value = window;
15932
+ for (const key of path) {
15933
+ value = value?.[key];
15934
+ }
15935
+ this.appendIcon = value ?? props.appendIcon;
15936
+ }
15937
+ else {
15938
+ this.appendIcon = props.appendIcon;
15939
+ }
15940
+ }
15941
+ else {
15942
+ this.appendIcon = this.getInitValue('appendIcon', props.appendIcon, 'calendar');
15943
+ }
15944
+ this.autocomplete = this.getInitValue('autocomplete', props.autocomplete, this.autocomplete);
15945
+ this.dateFormat = this.getInitValue('dateFormat', props.dateFormat, this.dateFormat);
15946
+ this.dateValidation = this.dateValidation.bind(this);
15947
+ this.displayFormat = this.getInitValue('displayFormat', props.displayFormat, this.displayFormat);
15948
+ this.inputFormat = this.getInitValue('inputFormat', props.inputFormat, this.inputFormat);
15949
+ this.firstDayOfWeek = this.getInitValue('firstDayOfWeek', props.firstDayOfWeek, this.firstDayOfWeek);
15950
+ this.fullWidth = this.getInitValue('fullWidth', props.fullWidth, this.fullWidth);
15951
+ this.locale = this.getInitValue('locale', props.locale, this.locale);
15952
+ this.scrollable = this.getInitValue('scrollable', props.scrollable, this.scrollable);
15953
+ this.showDatePicker = this.getInitValue('showDatePicker', props.showDatePicker, this.showDatePicker);
15954
+ this.showWeek = this.getInitValue('showWeek', props.showWeek, this.showWeek);
15955
+ this.splitter = this.getInitValue('splitter', props.splitter, this.internalSplitter);
15956
+ this.width = this.getInitValue('width', props.width, this.width);
15957
+ this.mask = this.getInitValue('mask', props.mask, undefined);
15958
+ this.helperOptions = this.getInitValue('helperOptions', props.helperOptions, this.helperOptions);
15959
+ this.helperValue = this.getInitValue('helperValue', props.helperValue, this.helperValue);
15960
+ this.min = this.getInitValue('min', props.min, this.min);
15961
+ this.max = this.getInitValue('max', props.max, this.max);
15962
+ this.rules.push(this.dateValidation);
15963
+ this.unitMask = this.mask;
15964
+ this.initialMask = this.getInitialMask();
15965
+ this.isSimpleDisplay = this.isSimpleFormat(this.displayFormat);
15966
+ const userAppendIconClick = this.events.appendIconClick;
15967
+ this.events.appendIconClick = ({ event, element, component }) => {
15968
+ this.iconClick(event, element);
15969
+ if (userAppendIconClick && typeof userAppendIconClick === 'function') {
15970
+ userAppendIconClick({ event, element, component });
15971
+ }
15972
+ };
15973
+ }
15974
+ getInitialMask() {
15975
+ if (isUndefined(this.mask)) {
15976
+ this.unitMask = this.inputFormat && this.maskFormat(this.inputFormat);
15977
+ }
15978
+ if (!this.unitMask) {
15979
+ this.mask = this.unitMask;
15980
+ return this.unitMask;
15981
+ }
15982
+ this.mask = `${this.unitMask}${this.splitter}${this.unitMask}`;
15983
+ return this.mask;
15984
+ }
15985
+ formatter(value) {
15986
+ return this.formatterFn(value, this);
15987
+ }
15988
+ parser(value) {
15989
+ return this.parserFn(value, this);
15990
+ }
15991
+ get displayValue() {
15992
+ return this.internalDisplayValue;
15993
+ }
15994
+ set displayValue(newValue) {
15995
+ this.dateError = false;
15996
+ this.internalDisplayValue = newValue;
15997
+ if (newValue)
15998
+ this.internalValue = this.parser(newValue);
15999
+ else
16000
+ this.internalValue = [];
16001
+ this.value = this.internalValue; // forces value accessor to be called if necessary
16002
+ }
16003
+ get value() {
16004
+ return this.internalValue;
16005
+ }
16006
+ set value(value) {
16007
+ if (this.internalValue !== value) {
16008
+ this.internalDisplayValue = this.formatter(value);
16009
+ this.internalValue = value;
16010
+ }
16011
+ if (value === null) {
16012
+ this.internalValue = [];
16013
+ }
16014
+ }
16015
+ /**
16016
+ * Assign the updated mask to mask property
16017
+ */
16018
+ updateMask() {
16019
+ this.isSimpleDisplay = this.isSimpleFormat(this.displayFormat);
16020
+ this.mask = this.getUpdatedMask();
16021
+ return this.mask;
16022
+ }
16023
+ /**
16024
+ * Gets the updated masked, based on displayFormat if the initial mask is undefined
16025
+ */
16026
+ getUpdatedMask() {
16027
+ if (isUndefined(this.getInitialMask())) {
16028
+ return this.maskFormat(`${this.displayFormat}${this.splitter}${this.displayFormat}`);
16029
+ }
16030
+ return this.mask;
16031
+ }
16032
+ maskFormat(format) {
16033
+ return format.replace(/[A-Za-z]/gi, '#');
16034
+ }
16035
+ setDateValue(displayValue) {
16036
+ const lastValue = this.displayValue;
16037
+ const values = this.splitValues(displayValue);
16038
+ if (this.isValidDateArray(this.displayFormat, values)) {
16039
+ this.internalDisplayValue = displayValue;
16040
+ this.internalValue = this.parser(displayValue);
16041
+ this.dateError = false;
16042
+ if (lastValue !== this.displayValue)
16043
+ this.change(this.value);
16044
+ }
16045
+ else {
16046
+ if (!displayValue) {
16047
+ this.internalDisplayValue = displayValue;
16048
+ this.internalValue = [];
16049
+ if (lastValue !== this.displayValue)
16050
+ this.change(this.value);
16051
+ }
16052
+ this.dateError = !!displayValue;
16053
+ }
16054
+ this.value = this.internalValue; // forces value accessor to be called if necessary
16055
+ }
16056
+ /**
16057
+ * Faz a validação do array de datas
16058
+ * @param format o formato da data
16059
+ * @param values o array de datas
16060
+ * @returns true se todos os valores forem validados
16061
+ * */
16062
+ isValidDateArray(format, values) {
16063
+ if (!values || values.length < 2)
16064
+ return false;
16065
+ return values.every((value) => this.isValidDate(value, format));
16066
+ }
16067
+ splitValues(value) {
16068
+ let splitedValue = [];
16069
+ if (!value)
16070
+ return splitedValue;
16071
+ if (value.indexOf(this.splitter) !== -1) {
16072
+ splitedValue = value.split(this.splitter);
16073
+ if (splitedValue[1] === '')
16074
+ return [splitedValue[0]];
16075
+ return splitedValue;
16076
+ }
16077
+ return [value];
16078
+ }
16079
+ isValidDate(value, format, strict = true) {
16080
+ const date = dayjs(value, format, strict);
16081
+ const isValidFormat = date.isValid();
16082
+ if (!isValidFormat)
16083
+ return false;
16084
+ const minDate = this.min ? dayjs(this.min, this.dateFormat) : null;
16085
+ const isValidMin = !minDate || date.isAfter(minDate) || date.isSame(minDate);
16086
+ if (!isValidMin)
16087
+ return false;
16088
+ const maxDate = this.max ? dayjs(this.max, this.dateFormat) : null;
16089
+ const isValidMax = !maxDate || date.isBefore(maxDate) || date.isSame(maxDate);
16090
+ if (!isValidMax)
16091
+ return false;
16092
+ return true;
16093
+ }
16094
+ isValidFormatDate(value, format, strict = true) {
16095
+ return dayjs(value, format, strict).isValid();
16096
+ }
16097
+ get isoRangeValue() {
16098
+ return this.formatISODateRangeValue(this.value);
16099
+ }
16100
+ set isoRangeValue(newValue) {
16101
+ const lastValue = this.value;
16102
+ this.dateError = false;
16103
+ this.value = this.parseISODateRangeValue(newValue);
16104
+ if (!Utils.isEqual(lastValue, this.value))
16105
+ this.change(this.value);
16106
+ }
16107
+ formatISODateRangeValue(dates) {
16108
+ let splitedValue;
16109
+ if (Array.isArray(dates))
16110
+ splitedValue = dates;
16111
+ else
16112
+ splitedValue = this.splitValues(dates);
16113
+ const formattedValue = [];
16114
+ splitedValue.forEach((value) => {
16115
+ if (value && this.isValidFormatDate(value, this.dateFormat)) {
16116
+ formattedValue.push(dayjs(value, this.dateFormat, true).format(this.isoFormat));
16117
+ }
16118
+ });
16119
+ return formattedValue;
16120
+ }
16121
+ parseISODateRangeValue(values) {
16122
+ const parsedValue = [];
16123
+ if (values.length) {
16124
+ values.forEach((value) => {
16125
+ if (value && this.isValidFormatDate(value, this.isoFormat)) {
16126
+ parsedValue.push(dayjs(value, this.isoFormat, true).format(this.dateFormat));
16127
+ }
16128
+ });
16129
+ }
16130
+ return this.sortDates(parsedValue);
16131
+ }
16132
+ sortDates(parsedValue) {
16133
+ return parsedValue.sort((a, b) => dayjs(a, this.dateFormat).isAfter(dayjs(b, this.dateFormat)) ? 1 : -1);
16134
+ }
16135
+ dateValidation() {
16136
+ return !this.dateError || I18n.translate('VALIDATION_INVALID_DATE');
16137
+ }
16138
+ click(event, element) {
16139
+ const clickEvent = event || new MouseEvent('click');
16140
+ super.click(clickEvent, element);
16141
+ if (!clickEvent.defaultPrevented) {
16142
+ this.showDatePicker = !this.showDatePicker;
16143
+ }
16144
+ }
16145
+ blur(event, element) {
16146
+ if (this.value) {
16147
+ this.value = this.sortDates(this.value);
16148
+ this.removeDateMask();
16149
+ this.setDateValue(this.formatter(this.value));
16150
+ super.blur(event, element);
16151
+ }
16152
+ if (!Utils.isMobile()) {
16153
+ this.showDatePicker = false;
16154
+ }
16155
+ }
16156
+ focus(event, element) {
16157
+ this.addDateMask();
16158
+ super.focus(event, element);
16159
+ }
16160
+ /**
16161
+ * Add date mask
16162
+ */
16163
+ addDateMask() {
16164
+ if (isUndefined(this.getInitialMask()) || !this.value)
16165
+ return;
16166
+ setTimeout(() => {
16167
+ this.mask = this.getInitialMask();
16168
+ const firstDate = this.value[0]
16169
+ ? dayjs(this.value[0], this.dateFormat).format(this.inputFormat || this.displayFormat)
16170
+ : '';
16171
+ const lastDate = this.value[1]
16172
+ ? dayjs(this.value[1], this.dateFormat).format(this.inputFormat || this.displayFormat)
16173
+ : '';
16174
+ this.internalDisplayValue = `${firstDate}${lastDate ? this.splitter : ''}${lastDate}`;
16175
+ });
16176
+ }
16177
+ /**
16178
+ * Removes the component mask if value is valid
16179
+ */
16180
+ removeDateMask() {
16181
+ if (isUndefined(this.getInitialMask()) ||
16182
+ !this.value ||
16183
+ this.dateError ||
16184
+ !this.isValidDateArray(this.dateFormat, this.value)) {
16185
+ return;
16186
+ }
16187
+ this.mask = '';
16188
+ }
16189
+ /**
16190
+ * Toggle showDatePicker value
16191
+ */
16192
+ togglePicker() {
16193
+ this.showDatePicker = !this.showDatePicker;
16194
+ }
16195
+ /**
16196
+ * Triggered when the appended icon is clicked.
16197
+ * @param event DOM event
16198
+ * @param element Text input
16199
+ */
16200
+ iconClick(event, element) {
16201
+ super.click(event, element);
16202
+ if (!event.defaultPrevented) {
16203
+ this.togglePicker();
16204
+ }
16205
+ }
16206
+ /**
16207
+ * Checks if a date format is simple.
16208
+ * Simple date formats are the ones that consists only of 'DD', 'MM' or 'YYYY', and mask delimiters
16209
+ * @param format The format to be checked
16210
+ * @returns true if it is simple, false otherwise
16211
+ */
16212
+ isSimpleFormat(format) {
16213
+ const simpleTokens = ['DD', 'MM', 'YYYY'];
16214
+ // remove the simple tokens from the string
16215
+ const replaced = simpleTokens.reduce((result, token) => result.replace(token, ''), format);
16216
+ const chars = replaced.split('');
16217
+ return chars.length ? chars.every((char) => Mask.isMaskDelimiter(char)) : true;
16218
+ }
16219
+ previousHint = '';
16220
+ previousPersistentHint = false;
16221
+ updateHelperHint(helperValue) {
16222
+ const previousHelperHint = this.helperValue ? DateHelper.getLabel(this.helperValue) : '';
16223
+ if (!this.hint || previousHelperHint !== this.hint) {
16224
+ this.previousHint = this.hint;
16225
+ this.previousPersistentHint = this.persistentHint;
16226
+ }
16227
+ this.helperValue = helperValue;
16228
+ const label = DateHelper.getLabel(helperValue);
16229
+ if (!helperValue || !label) {
16230
+ this.hint = this.previousHint;
16231
+ this.persistentHint = this.previousPersistentHint;
16232
+ return;
16233
+ }
16234
+ this.hint = label;
16235
+ this.persistentHint = true;
16236
+ }
16237
+ change(event, element) {
16238
+ super.change(event, element);
16239
+ this.updateHelperHint('');
16240
+ }
16241
+ getExtremities(arr) {
16242
+ if (arr.length === 0)
16243
+ return [];
16244
+ if (arr.length === 1)
16245
+ return [arr[0]];
16246
+ return [arr[0], arr[arr.length - 1]];
16247
+ }
16248
+ setNativeDate(date) {
16249
+ this.dateError = false;
16250
+ this.dateObject = date.map((obj) => dayjs(obj));
16251
+ const extremityDates = this.getExtremities(this.dateObject);
16252
+ this.value = extremityDates
16253
+ .filter((obj) => obj !== null)
16254
+ .map((obj) => obj.format(this.dateFormat));
16255
+ }
16256
+ dateObject = [null, null];
16257
+ getNativeDate() {
16258
+ return this.dateObject.filter((obj) => obj !== null).map((obj) => obj.toDate());
16259
+ }
16260
+ getMaskValue() {
16261
+ let mask = '';
16262
+ if (typeof this.mask === 'function') {
16263
+ mask = this.mask(Mask.getValueWithoutMask(this.value?.[0] || ''));
16264
+ }
16265
+ else if (typeof this.mask === 'string') {
16266
+ mask = this.mask.split(this.splitter)[0] || '';
16267
+ mask = Mask.getMaskArray(mask);
16268
+ if (Array.isArray(mask) && mask.length > 0) {
16269
+ mask = mask.concat(this.splitter.split('')).concat(mask);
16270
+ }
16271
+ }
16272
+ else if (Array.isArray(this.mask)) {
16273
+ mask = this.mask;
16274
+ }
16275
+ return mask;
16276
+ }
16277
+ }
16278
+ FormatterParserProvider.registerFormatter('ZdDateRange', (value, { dateFormat = Config.dateFormat, displayFormat = Config.displayFormat, inputFormat = Config.dateInputFormat, initialMask, splitter = ' ~ ', unitMask = '', mask = '', isSimpleDisplay = false, } = {}) => {
16279
+ if (!value || value.length === 0 || (value.length === 1 && !value[0])) {
16280
+ return '';
16281
+ }
16282
+ const formattedValue = [];
16283
+ value.forEach((date) => {
16284
+ if (date) {
16285
+ const isDateValid = dayjs(date, dateFormat, true).isValid();
16286
+ if (!isDateValid) {
16287
+ formattedValue.push(date);
16288
+ return;
16289
+ }
16290
+ if (initialMask && mask && unitMask) {
16291
+ if (inputFormat) {
16292
+ const formatted = dayjs(date, dateFormat).format(inputFormat);
16293
+ formattedValue.push(formatted);
16294
+ return;
16295
+ }
16296
+ let valueToUnmask = date;
16297
+ if (isSimpleDisplay) {
16298
+ valueToUnmask = dayjs(date, dateFormat).format(displayFormat);
16299
+ }
16300
+ const unmasked = Mask.getValueWithoutMask(valueToUnmask);
16301
+ const masked = Mask.getValueWithMask(unmasked, unitMask);
16302
+ formattedValue.push(masked);
16303
+ return;
16304
+ }
16305
+ const formatted = dayjs(date, dateFormat).format(displayFormat);
16306
+ formattedValue.push(formatted);
16307
+ }
16308
+ });
16309
+ let displayOutput = formattedValue[0];
16310
+ if (formattedValue.length === 2) {
16311
+ displayOutput += `${splitter}${formattedValue[1]}`;
16312
+ }
16313
+ return displayOutput;
16314
+ });
16315
+ FormatterParserProvider.registerParser('ZdDateRange', (value, { dateFormat = Config.dateFormat, displayFormat = Config.displayFormat, inputFormat = Config.dateInputFormat, splitter = ' ~ ', unitMask = '', mask = '', initialMask, isSimpleDisplay = false, } = {}) => {
16316
+ if (!value) {
16317
+ return [];
16318
+ }
16319
+ let splitedValue = [];
16320
+ if (value.indexOf(splitter) !== -1) {
16321
+ splitedValue = value.split(splitter);
16322
+ }
16323
+ else {
16324
+ splitedValue.push(value);
16325
+ }
16326
+ const formattedValue = [];
16327
+ splitedValue.forEach((date) => {
16328
+ if (date) {
16329
+ if (dayjs(date, displayFormat, true).isValid()) {
16330
+ const parsedDate = dayjs(date, displayFormat).format(dateFormat);
16331
+ formattedValue.push(parsedDate);
16332
+ return;
16333
+ }
16334
+ if (unitMask && mask && Mask.checkMask(date, unitMask)) {
16335
+ if (inputFormat) {
16336
+ if (dayjs(date, inputFormat, true).isValid()) {
16337
+ const parsedDate = dayjs(date, inputFormat).format(dateFormat);
16338
+ formattedValue.push(parsedDate);
16339
+ return;
16340
+ }
16341
+ formattedValue.push(date);
16342
+ return;
16343
+ }
16344
+ const unmasked = Mask.getValueWithoutMask(date);
16345
+ let masked;
16346
+ if (!initialMask || isSimpleDisplay) {
16347
+ const displayFmtMask = displayFormat.replace(/[A-Za-z]/gi, '#');
16348
+ masked = Mask.getValueWithMask(unmasked, displayFmtMask);
16349
+ if (dayjs(masked, displayFormat, true).format(displayFormat) === masked) {
16350
+ const parsedDate = dayjs(masked, displayFormat).format(dateFormat);
16351
+ formattedValue.push(parsedDate);
16352
+ return;
16353
+ }
16354
+ }
16355
+ const dateFmtMask = dateFormat.replace(/[A-Za-z]/gi, '#');
16356
+ masked = Mask.getValueWithMask(unmasked, dateFmtMask);
16357
+ if (dayjs(masked, dateFormat, true).isValid()) {
16358
+ formattedValue.push(masked);
16359
+ return;
16360
+ }
16361
+ }
16362
+ formattedValue.push(date);
16363
+ }
16364
+ });
16365
+ return formattedValue;
16366
+ });
16367
+ InputFactory.register('ZdDateRange', DateRange);
16368
+
15756
16369
  Icons.addIcons({
15757
16370
  add: 'mdi-plus-box',
15758
16371
  delete: 'mdi-trash-can-outline',
@@ -15763,7 +16376,5 @@ Icons.addIcons({
15763
16376
  updateLayout: 'mdi-square-edit-outline',
15764
16377
  layout: 'mdi-table-star',
15765
16378
  });
15766
- // const packageContent = require('../package.json');
15767
- // VersionService.addPackageVersion(packageContent.name, packageContent.version);
15768
16379
 
15769
- export { Alert, AlertQueue, AlertReplace, AlertService, AlertStack, AutoNumeric, Badge, Breadcrumbs, Button, ButtonGroup, ButtonOption, Card, Carousel, Checkbox, CheckboxMultiple, ChildNotFoundError, Chip, CodeViewer, Col, CollapseCard, Column, ColumnNotFoundError, ColumnsSearcher, Component, ComponentRender, ConditionsManager, Container, Currency, DataEditor, DataEditorWithAdd, DataNavigator, DataSelector, DataValueOutHelper, DatasourceSearcher, DateInput, DetailNotFoundError, Dialog, DialogService, Divider, Dropdown, DynamicFilterDatasourceFactory, DynamicFilterOperations, DynamicFilterRelations, Footer, Form, Frame, FramePage, Grid, GridColumn, GridColumnEditable, GridEditable, GridEditableController, GridEditableEvents, GridEvents, GroupedDataManager, GroupedDataSelector, GroupedViewNavigator, Header, Icon, Icons, Image, Increment, Input, InputFactory, Iterable, IterableColumnsButton, IterableColumnsButtonController, IterableComponentRender, IterablePageComponent, IterablePageInfo, IterablePageSize, IterablePagination, IterableTable, IterableTree, KeyMapGrouped, KeyMapMerger, KeyMapNavigation, KeyMapTree, Layout, List, ListGroup, ListItem, Loading, LoadingService, Login, LoginButton, Main, MasterDetail, MasterNotFoundError, Menu, MenuButton, MenuGroup, MenuLink, MenuSeparator, Modal, ModalCloseButton, ModalService, Month, MultiOption, NumberInput, Password, Progress, Radio, Row, Search, Select, SelectMultiple, SvgMap, Switch, Tab, TabNotFoundError, Table, TableActionBuilder, Tabs, Tag, TekFilterHelper, TekGrid, TekGridColumn, TekGridColumnsButton, TekGridColumnsButtonController, TekGridController, TekGridEvents, TekGridFilterButton, TekGridLayoutOptions, TekGridToolbarProvider, TekMemoryDatasource, TekRestDatasource, Text, TextInput, Textarea, Time, TimeFormatSelector, Toggleable, Tooltip, Tree, TreeDataNavigator, TreeDataSelector, TreeDataStructure, TreeGrid, ViewNavigator, columnAggregationValues, initTheme, isFilledObject, isNil, omit, uniqueBy };
16380
+ export { Alert, AlertQueue, AlertReplace, AlertService, AlertStack, Badge, Breadcrumbs, Button, ButtonGroup, ButtonOption, Card, Carousel, Checkbox, CheckboxMultiple, ChildNotFoundError, Chip, CodeViewer, Col, CollapseCard, Column, ColumnNotFoundError, ColumnsSearcher, Component, ComponentRender, ConditionsManager, Container, Currency, DataEditor, DataEditorWithAdd, DataNavigator, DataSelector, DataValueOutHelper, DatasourceSearcher, DateInput, DateRange, DetailNotFoundError, Dialog, DialogService, Divider, Dropdown, DynamicFilterDatasourceFactory, DynamicFilterOperations, DynamicFilterRelations, Footer, Form, Frame, FramePage, Grid, GridColumn, GridColumnEditable, GridEditable, GridEditableController, GridEditableEvents, GridEvents, GroupedDataManager, GroupedDataSelector, GroupedViewNavigator, Header, Icon, Icons, Image, Increment, Input, InputFactory, Iterable, IterableColumnsButton, IterableColumnsButtonController, IterableComponentRender, IterablePageComponent, IterablePageInfo, IterablePageSize, IterablePagination, IterableTable, IterableTree, KeyMapGrouped, KeyMapMerger, KeyMapNavigation, KeyMapTree, Layout, List, ListGroup, ListItem, Loading, LoadingService, Login, LoginButton, Main, MasterDetail, MasterNotFoundError, Menu, MenuButton, MenuGroup, MenuLink, MenuSeparator, Modal, ModalCloseButton, ModalService, Month, MultiOption, NumberInput, Password, Progress, Radio, Row, Search, Select, SelectMultiple, SvgMap, Switch, Tab, TabNotFoundError, Table, TableActionBuilder, Tabs, Tag, TekFilterHelper, TekGrid, TekGridColumn, TekGridColumnsButton, TekGridColumnsButtonController, TekGridController, TekGridEvents, TekGridFilterButton, TekGridLayoutOptions, TekGridToolbarProvider, TekMemoryDatasource, TekRestDatasource, Text, TextInput, Textarea, Time, TimeFormatSelector, Toggleable, Tooltip, Tree, TreeDataNavigator, TreeDataSelector, TreeDataStructure, TreeGrid, ViewNavigator, columnAggregationValues, initTheme, isFilledObject, isNil, omit, uniqueBy };