@zeedhi/common 3.0.5 → 3.0.7

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 (528) hide show
  1. package/coverage/clover.xml +1404 -1469
  2. package/coverage/coverage-final.json +146 -143
  3. package/coverage/lcov-report/index.html +44 -29
  4. package/coverage/lcov-report/src/components/index.html +1 -1
  5. package/coverage/lcov-report/src/components/index.ts.html +152 -152
  6. package/coverage/lcov-report/src/components/tek-grid/columns-searcher.ts.html +151 -0
  7. package/coverage/lcov-report/src/components/tek-grid/dynamic-filter-datasource-factory.ts.html +145 -0
  8. package/coverage/lcov-report/src/components/tek-grid/filter-helper.ts.html +145 -0
  9. package/coverage/lcov-report/src/components/tek-grid/grid-filter-button.ts.html +1351 -0
  10. package/coverage/lcov-report/src/components/tek-grid/grouped-data-manager.ts.html +1429 -0
  11. package/coverage/lcov-report/src/components/tek-grid/grouped-data-selector.ts.html +205 -0
  12. package/coverage/lcov-report/src/components/tek-grid/grouped-view-navigator.ts.html +340 -0
  13. package/coverage/lcov-report/src/components/tek-grid/index.html +326 -0
  14. package/coverage/lcov-report/src/components/tek-grid/index.ts.html +139 -0
  15. package/coverage/lcov-report/src/components/tek-grid/interfaces.ts.html +1072 -0
  16. package/coverage/lcov-report/src/components/tek-grid/keymap-grouped.ts.html +148 -0
  17. package/coverage/lcov-report/src/components/tek-grid/layout-options.ts.html +829 -0
  18. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.html +161 -0
  19. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.ts.html +94 -0
  20. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/interfaces.ts.html +193 -0
  21. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts.html +1027 -0
  22. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts.html +757 -0
  23. package/coverage/lcov-report/src/components/tek-grid/tek-grid-column.ts.html +664 -0
  24. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/index.html +131 -0
  25. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts.html +169 -0
  26. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts.html +196 -0
  27. package/coverage/lcov-report/src/components/tek-grid/tek-grid-controller.ts.html +505 -0
  28. package/coverage/lcov-report/src/components/tek-grid/tek-grid-events.ts.html +400 -0
  29. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts.html +163 -0
  30. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.html +146 -0
  31. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts.html +94 -0
  32. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts.html +340 -0
  33. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.html +131 -0
  34. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.ts.html +91 -0
  35. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts.html +1186 -0
  36. package/coverage/lcov-report/src/components/tek-grid/tek-grid.ts.html +3451 -0
  37. package/coverage/lcov-report/src/components/zd-alert/alert.ts.html +3 -3
  38. package/coverage/lcov-report/src/components/zd-alert/index.html +1 -1
  39. package/coverage/lcov-report/src/components/zd-badge/badge.ts.html +3 -3
  40. package/coverage/lcov-report/src/components/zd-badge/index.html +1 -1
  41. package/coverage/lcov-report/src/components/zd-breadcrumbs/breadcrumbs.ts.html +3 -3
  42. package/coverage/lcov-report/src/components/zd-breadcrumbs/index.html +1 -1
  43. package/coverage/lcov-report/src/components/zd-button/button.ts.html +3 -3
  44. package/coverage/lcov-report/src/components/zd-button/index.html +1 -1
  45. package/coverage/lcov-report/src/components/zd-button-group/button-group.ts.html +3 -3
  46. package/coverage/lcov-report/src/components/zd-button-group/index.html +1 -1
  47. package/coverage/lcov-report/src/components/zd-card/card.ts.html +3 -3
  48. package/coverage/lcov-report/src/components/zd-card/index.html +1 -1
  49. package/coverage/lcov-report/src/components/zd-carousel/carousel.ts.html +3 -3
  50. package/coverage/lcov-report/src/components/zd-carousel/index.html +1 -1
  51. package/coverage/lcov-report/src/components/zd-checkbox/checkbox.ts.html +5 -5
  52. package/coverage/lcov-report/src/components/zd-checkbox/index.html +1 -1
  53. package/coverage/lcov-report/src/components/zd-checkbox-multiple/checkbox-multiple.ts.html +6 -6
  54. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +1 -1
  55. package/coverage/lcov-report/src/components/zd-chip/chip.ts.html +3 -3
  56. package/coverage/lcov-report/src/components/zd-chip/index.html +1 -1
  57. package/coverage/lcov-report/src/components/zd-code-editor/code-editor.ts.html +1045 -0
  58. package/coverage/lcov-report/src/components/zd-code-editor/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 +3 -3
  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 +57 -57
  68. package/coverage/lcov-report/src/components/zd-component/index.html +1 -1
  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 +9 -9
  72. package/coverage/lcov-report/src/components/zd-currency/index.html +1 -1
  73. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +160 -517
  74. package/coverage/lcov-report/src/components/zd-date-input/index.html +24 -9
  75. package/coverage/lcov-report/src/components/zd-date-input/utils.ts.html +136 -0
  76. package/coverage/lcov-report/src/components/zd-date-range/date-range.ts.html +289 -583
  77. package/coverage/lcov-report/src/components/zd-date-range/index.html +24 -9
  78. package/coverage/lcov-report/src/components/zd-date-range/utils.ts.html +178 -0
  79. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +30 -30
  80. package/coverage/lcov-report/src/components/zd-dialog/index.html +1 -1
  81. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +3 -3
  82. package/coverage/lcov-report/src/components/zd-divider/index.html +1 -1
  83. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +3 -3
  84. package/coverage/lcov-report/src/components/zd-dropdown/index.html +1 -1
  85. package/coverage/lcov-report/src/components/zd-field-group/field-group.ts.html +325 -0
  86. package/coverage/lcov-report/src/components/zd-field-group/index.html +116 -0
  87. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +3 -3
  88. package/coverage/lcov-report/src/components/zd-footer/index.html +1 -1
  89. package/coverage/lcov-report/src/components/zd-form/form.ts.html +3 -3
  90. package/coverage/lcov-report/src/components/zd-form/index.html +1 -1
  91. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +7 -7
  92. package/coverage/lcov-report/src/components/zd-frame/index.html +1 -1
  93. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +4 -4
  94. package/coverage/lcov-report/src/components/zd-frame-page/index.html +1 -1
  95. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +2 -2
  96. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +2 -2
  97. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +10 -10
  98. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +2 -2
  99. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +13 -13
  100. package/coverage/lcov-report/src/components/zd-grid/index.html +1 -1
  101. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +12 -12
  102. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +3 -3
  103. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +3 -3
  104. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +2 -2
  105. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +4 -4
  106. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +2 -2
  107. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +6 -6
  108. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +7 -7
  109. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +1 -1
  110. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +3 -3
  111. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +2 -2
  112. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +2 -2
  113. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +3 -3
  114. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +2 -2
  115. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +2 -2
  116. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +9 -9
  117. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +1 -1
  118. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +9 -9
  119. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +2 -2
  120. package/coverage/lcov-report/src/components/zd-header/header.ts.html +3 -3
  121. package/coverage/lcov-report/src/components/zd-header/index.html +1 -1
  122. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +3 -3
  123. package/coverage/lcov-report/src/components/zd-icon/index.html +1 -1
  124. package/coverage/lcov-report/src/components/zd-image/image.ts.html +3 -3
  125. package/coverage/lcov-report/src/components/zd-image/index.html +1 -1
  126. package/coverage/lcov-report/src/components/zd-increment/increment.ts.html +5 -5
  127. package/coverage/lcov-report/src/components/zd-increment/index.html +1 -1
  128. package/coverage/lcov-report/src/components/zd-input/index.html +1 -1
  129. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +4 -4
  130. package/coverage/lcov-report/src/components/zd-input/input.ts.html +46 -46
  131. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +2 -2
  132. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +86 -86
  133. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +4 -4
  134. package/coverage/lcov-report/src/components/zd-iterable/index.html +20 -20
  135. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +2 -2
  136. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +6 -6
  137. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +2 -2
  138. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +5 -5
  139. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +3 -3
  140. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +5 -5
  141. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +3 -3
  142. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +131 -17
  143. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +8 -8
  144. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +1 -1
  145. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +5 -5
  146. package/coverage/lcov-report/src/components/zd-layout/index.html +1 -1
  147. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +3 -3
  148. package/coverage/lcov-report/src/components/zd-list/index.html +1 -1
  149. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +2 -2
  150. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +4 -4
  151. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +3 -3
  152. package/coverage/lcov-report/src/components/zd-list/list.ts.html +4 -4
  153. package/coverage/lcov-report/src/components/zd-loading/index.html +1 -1
  154. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +3 -3
  155. package/coverage/lcov-report/src/components/zd-login/index.html +1 -1
  156. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +4 -4
  157. package/coverage/lcov-report/src/components/zd-login/login.ts.html +3 -3
  158. package/coverage/lcov-report/src/components/zd-main/index.html +1 -1
  159. package/coverage/lcov-report/src/components/zd-main/main.ts.html +3 -3
  160. package/coverage/lcov-report/src/components/zd-master-detail/detail-not-found.ts.html +3 -3
  161. package/coverage/lcov-report/src/components/zd-master-detail/index.html +1 -1
  162. package/coverage/lcov-report/src/components/zd-master-detail/master-detail.ts.html +6 -6
  163. package/coverage/lcov-report/src/components/zd-master-detail/master-not-found.ts.html +3 -3
  164. package/coverage/lcov-report/src/components/zd-menu/index.html +1 -1
  165. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +4 -4
  166. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +3 -3
  167. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +3 -3
  168. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +3 -3
  169. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +4 -4
  170. package/coverage/lcov-report/src/components/zd-modal/index.html +1 -1
  171. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +4 -4
  172. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +5 -5
  173. package/coverage/lcov-report/src/components/zd-month/index.html +9 -9
  174. package/coverage/lcov-report/src/components/zd-month/month.ts.html +43 -259
  175. package/coverage/lcov-report/src/components/zd-number-input/index.html +1 -1
  176. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +9 -9
  177. package/coverage/lcov-report/src/components/zd-password/index.html +1 -1
  178. package/coverage/lcov-report/src/components/zd-password/password.ts.html +7 -7
  179. package/coverage/lcov-report/src/components/zd-progress/index.html +1 -1
  180. package/coverage/lcov-report/src/components/zd-progress/progress.ts.html +3 -3
  181. package/coverage/lcov-report/src/components/zd-radio/index.html +1 -1
  182. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +6 -6
  183. package/coverage/lcov-report/src/components/zd-row/index.html +1 -1
  184. package/coverage/lcov-report/src/components/zd-row/row.ts.html +3 -3
  185. package/coverage/lcov-report/src/components/zd-select/index.html +1 -1
  186. package/coverage/lcov-report/src/components/zd-select/select.ts.html +9 -9
  187. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +1 -1
  188. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +5 -5
  189. package/coverage/lcov-report/src/components/zd-svg-map/index.html +1 -1
  190. package/coverage/lcov-report/src/components/zd-svg-map/svg-map.ts.html +4 -4
  191. package/coverage/lcov-report/src/components/zd-switch/index.html +1 -1
  192. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +5 -5
  193. package/coverage/lcov-report/src/components/zd-table/index.html +1 -1
  194. package/coverage/lcov-report/src/components/zd-table/table.ts.html +4 -4
  195. package/coverage/lcov-report/src/components/zd-tabs/index.html +1 -1
  196. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +2 -2
  197. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +3 -3
  198. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +5 -5
  199. package/coverage/lcov-report/src/components/zd-tag/index.html +1 -1
  200. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +3 -3
  201. package/coverage/lcov-report/src/components/zd-text/index.html +1 -1
  202. package/coverage/lcov-report/src/components/zd-text/text.ts.html +3 -3
  203. package/coverage/lcov-report/src/components/zd-text-input/index.html +1 -1
  204. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +20 -20
  205. package/coverage/lcov-report/src/components/zd-textarea/index.html +1 -1
  206. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +5 -5
  207. package/coverage/lcov-report/src/components/zd-time/index.html +1 -1
  208. package/coverage/lcov-report/src/components/zd-time/time-format-selector.ts.html +2 -2
  209. package/coverage/lcov-report/src/components/zd-time/time.ts.html +10 -10
  210. package/coverage/lcov-report/src/components/zd-toggleable/index.html +1 -1
  211. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +3 -3
  212. package/coverage/lcov-report/src/components/zd-tooltip/index.html +1 -1
  213. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +3 -3
  214. package/coverage/lcov-report/src/components/zd-tree/index.html +1 -1
  215. package/coverage/lcov-report/src/components/zd-tree/tree.ts.html +7 -7
  216. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +1 -1
  217. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +7 -7
  218. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +2 -2
  219. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +2 -2
  220. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +3 -3
  221. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +3 -3
  222. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +11 -11
  223. package/coverage/lcov-report/src/error/delete-rows.ts.html +3 -3
  224. package/coverage/lcov-report/src/error/index.html +1 -1
  225. package/coverage/lcov-report/src/error/index.ts.html +4 -4
  226. package/coverage/lcov-report/src/error/non-initialized.ts.html +3 -3
  227. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +130 -0
  228. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +109 -0
  229. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +2 -2
  230. package/coverage/lcov-report/src/index.html +1 -1
  231. package/coverage/lcov-report/src/index.ts.html +9 -9
  232. package/coverage/lcov-report/src/services/index.html +1 -1
  233. package/coverage/lcov-report/src/services/index.ts.html +5 -5
  234. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +3 -3
  235. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +3 -3
  236. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +5 -5
  237. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +3 -3
  238. package/coverage/lcov-report/src/services/zd-alert/index.html +1 -1
  239. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +6 -6
  240. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +4 -4
  241. package/coverage/lcov-report/src/services/zd-dialog/index.html +1 -1
  242. package/coverage/lcov-report/src/services/zd-loading/index.html +1 -1
  243. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +2 -2
  244. package/coverage/lcov-report/src/services/zd-modal/index.html +1 -1
  245. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +5 -5
  246. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +3 -3
  247. package/coverage/lcov-report/src/utils/data-value-out/index.html +1 -1
  248. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +3 -3
  249. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +3 -3
  250. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +1 -1
  251. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +3 -3
  252. package/coverage/lcov-report/src/utils/date-utils/date-utils.ts.html +166 -0
  253. package/coverage/lcov-report/src/utils/date-utils/index.html +116 -0
  254. package/coverage/lcov-report/src/utils/icons/icons.ts.html +6 -6
  255. package/coverage/lcov-report/src/utils/icons/index.html +1 -1
  256. package/coverage/lcov-report/src/utils/index.html +1 -1
  257. package/coverage/lcov-report/src/utils/index.ts.html +8 -8
  258. package/coverage/lcov-report/src/utils/is-filled-object/index.html +116 -0
  259. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +100 -0
  260. package/coverage/lcov-report/src/utils/is-nil.ts.html +94 -0
  261. package/coverage/lcov-report/src/utils/omit/index.html +1 -1
  262. package/coverage/lcov-report/src/utils/omit/omit.ts.html +2 -2
  263. package/coverage/lcov-report/src/utils/theme/index.html +1 -1
  264. package/coverage/lcov-report/src/utils/theme/theme.ts.html +4 -4
  265. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +1 -1
  266. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +3 -3
  267. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +2 -2
  268. package/coverage/lcov-report/src/utils/unique-by/index.html +1 -1
  269. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +3 -3
  270. package/coverage/lcov-report/tests/unit/__helpers__/component-event-helper.ts.html +106 -0
  271. package/coverage/lcov-report/tests/unit/__helpers__/flush-promises-helper.ts.html +94 -0
  272. package/coverage/lcov-report/tests/unit/__helpers__/index.html +146 -0
  273. package/coverage/lcov-report/tests/unit/__helpers__/mock-http-get-helper.ts.html +172 -0
  274. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +1 -1
  275. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +1 -1
  276. package/coverage/lcov.info +1764 -1900
  277. package/dist/style.css +1 -1
  278. package/dist/zd-common.d.mts +7826 -0
  279. package/dist/zd-common.iife.min.js +11 -0
  280. package/dist/zd-common.mjs +12318 -0
  281. package/environments.json +6 -0
  282. package/jest.config.cjs +1 -0
  283. package/package.json +19 -12
  284. package/src/components/zd-date-input/date-input.ts +49 -168
  285. package/src/components/zd-date-input/utils.ts +17 -0
  286. package/src/components/zd-date-range/date-range.ts +111 -212
  287. package/src/components/zd-date-range/utils.ts +31 -0
  288. package/src/components/zd-frame/frame.ts +2 -2
  289. package/src/components/zd-grid-editable/data-editor-with-add.ts +1 -1
  290. package/src/components/zd-grid-editable/data-editor.ts +2 -2
  291. package/src/components/zd-iterable/iterable.ts +41 -3
  292. package/src/components/zd-month/month.ts +19 -91
  293. package/src/styles/_display.scss +3 -1
  294. package/src/styles/_elevation.scss +2 -1
  295. package/src/styles/_functions.scss +14 -11
  296. package/src/styles/_utilities.scss +67 -62
  297. package/src/styles/_variables.scss +17 -16
  298. package/src/styles/index.scss +5 -5
  299. package/src/utils/date-utils/date-utils.ts +27 -0
  300. package/src/utils/tree-data-structure/tree-data-structure.ts +1 -1
  301. package/tests/unit/components/zd-component/component.spec.ts +3 -2
  302. package/tests/unit/components/zd-date-input/date-input.spec.ts +36 -281
  303. package/tests/unit/components/zd-date-range/date-range.spec.ts +456 -393
  304. package/tests/unit/components/zd-grid/grid-column.spec.ts +1 -1
  305. package/tests/unit/components/zd-grid/grid.spec.ts +48 -35
  306. package/tests/unit/components/zd-grid-editable/data-editor.spec.ts +1 -1
  307. package/tests/unit/components/zd-grid-editable/grid-editable.spec.ts +1 -1
  308. package/tests/unit/components/zd-iterable/column.spec.ts +42 -0
  309. package/tests/unit/components/zd-month/month.spec.ts +7 -334
  310. package/tests/unit/components/zd-select/select.spec.ts +1 -2
  311. package/tests/unit/utils/mock-console.ts +18 -0
  312. package/tsdown.config.ts +74 -0
  313. package/.package.json +0 -45
  314. package/dist/types/components/index.d.ts +0 -151
  315. package/dist/types/components/zd-alert/alert.d.ts +0 -94
  316. package/dist/types/components/zd-alert/interfaces.d.ts +0 -18
  317. package/dist/types/components/zd-badge/badge.d.ts +0 -28
  318. package/dist/types/components/zd-badge/interfaces.d.ts +0 -10
  319. package/dist/types/components/zd-breadcrumbs/breadcrumbs.d.ts +0 -32
  320. package/dist/types/components/zd-breadcrumbs/interfaces.d.ts +0 -24
  321. package/dist/types/components/zd-button/button.d.ts +0 -89
  322. package/dist/types/components/zd-button/interfaces.d.ts +0 -48
  323. package/dist/types/components/zd-button-group/button-group.d.ts +0 -67
  324. package/dist/types/components/zd-button-group/interfaces.d.ts +0 -25
  325. package/dist/types/components/zd-card/card.d.ts +0 -152
  326. package/dist/types/components/zd-card/interfaces.d.ts +0 -40
  327. package/dist/types/components/zd-carousel/carousel.d.ts +0 -163
  328. package/dist/types/components/zd-carousel/interfaces.d.ts +0 -49
  329. package/dist/types/components/zd-checkbox/checkbox.d.ts +0 -12
  330. package/dist/types/components/zd-checkbox/interfaces.d.ts +0 -5
  331. package/dist/types/components/zd-checkbox-multiple/checkbox-multiple.d.ts +0 -39
  332. package/dist/types/components/zd-checkbox-multiple/interfaces.d.ts +0 -13
  333. package/dist/types/components/zd-chip/chip.d.ts +0 -60
  334. package/dist/types/components/zd-chip/interfaces.d.ts +0 -18
  335. package/dist/types/components/zd-code-viewer/code-viewer.d.ts +0 -86
  336. package/dist/types/components/zd-code-viewer/interfaces.d.ts +0 -13
  337. package/dist/types/components/zd-col/col.d.ts +0 -33
  338. package/dist/types/components/zd-col/interfaces.d.ts +0 -15
  339. package/dist/types/components/zd-collapse-card/collapse-card.d.ts +0 -56
  340. package/dist/types/components/zd-collapse-card/interfaces.d.ts +0 -14
  341. package/dist/types/components/zd-component/child-not-found.d.ts +0 -6
  342. package/dist/types/components/zd-component/component-render.d.ts +0 -16
  343. package/dist/types/components/zd-component/component.d.ts +0 -120
  344. package/dist/types/components/zd-component/interfaces.d.ts +0 -74
  345. package/dist/types/components/zd-container/container.d.ts +0 -45
  346. package/dist/types/components/zd-container/interfaces.d.ts +0 -12
  347. package/dist/types/components/zd-currency/currency.d.ts +0 -12
  348. package/dist/types/components/zd-currency/interfaces.d.ts +0 -6
  349. package/dist/types/components/zd-date-input/date-input.d.ts +0 -152
  350. package/dist/types/components/zd-date-input/interfaces.d.ts +0 -27
  351. package/dist/types/components/zd-date-range/date-range.d.ts +0 -158
  352. package/dist/types/components/zd-date-range/interfaces.d.ts +0 -18
  353. package/dist/types/components/zd-dialog/dialog.d.ts +0 -76
  354. package/dist/types/components/zd-dialog/interfaces.d.ts +0 -13
  355. package/dist/types/components/zd-divider/divider.d.ts +0 -20
  356. package/dist/types/components/zd-divider/interfaces.d.ts +0 -8
  357. package/dist/types/components/zd-dropdown/dropdown.d.ts +0 -81
  358. package/dist/types/components/zd-dropdown/interfaces.d.ts +0 -23
  359. package/dist/types/components/zd-footer/footer.d.ts +0 -80
  360. package/dist/types/components/zd-footer/interfaces.d.ts +0 -26
  361. package/dist/types/components/zd-form/form.d.ts +0 -174
  362. package/dist/types/components/zd-form/interfaces.d.ts +0 -36
  363. package/dist/types/components/zd-frame/frame.d.ts +0 -81
  364. package/dist/types/components/zd-frame/interfaces.d.ts +0 -23
  365. package/dist/types/components/zd-frame-page/frame-page.d.ts +0 -14
  366. package/dist/types/components/zd-frame-page/interfaces.d.ts +0 -4
  367. package/dist/types/components/zd-grid/data-navigator.d.ts +0 -12
  368. package/dist/types/components/zd-grid/data-selector.d.ts +0 -25
  369. package/dist/types/components/zd-grid/grid-column.d.ts +0 -47
  370. package/dist/types/components/zd-grid/grid-events.d.ts +0 -26
  371. package/dist/types/components/zd-grid/grid.d.ts +0 -85
  372. package/dist/types/components/zd-grid/index.d.ts +0 -11
  373. package/dist/types/components/zd-grid/interfaces.d.ts +0 -148
  374. package/dist/types/components/zd-grid/iterable-table.d.ts +0 -28
  375. package/dist/types/components/zd-grid/keymap-merger.d.ts +0 -26
  376. package/dist/types/components/zd-grid/keymap-navigation.d.ts +0 -6
  377. package/dist/types/components/zd-grid/table-action-builder.d.ts +0 -19
  378. package/dist/types/components/zd-grid/view-navigator.d.ts +0 -10
  379. package/dist/types/components/zd-grid-editable/data-editor-with-add.d.ts +0 -35
  380. package/dist/types/components/zd-grid-editable/data-editor.d.ts +0 -64
  381. package/dist/types/components/zd-grid-editable/errors/index.d.ts +0 -2
  382. package/dist/types/components/zd-grid-editable/errors/not-editing.d.ts +0 -6
  383. package/dist/types/components/zd-grid-editable/errors/row-not-found.d.ts +0 -6
  384. package/dist/types/components/zd-grid-editable/grid-column-editable.d.ts +0 -9
  385. package/dist/types/components/zd-grid-editable/grid-editable-controller.d.ts +0 -8
  386. package/dist/types/components/zd-grid-editable/grid-editable-events.d.ts +0 -32
  387. package/dist/types/components/zd-grid-editable/grid-editable.d.ts +0 -124
  388. package/dist/types/components/zd-grid-editable/index.d.ts +0 -8
  389. package/dist/types/components/zd-grid-editable/interfaces.d.ts +0 -66
  390. package/dist/types/components/zd-grid-editable/keymap-editing.d.ts +0 -7
  391. package/dist/types/components/zd-header/header.d.ts +0 -94
  392. package/dist/types/components/zd-header/interfaces.d.ts +0 -29
  393. package/dist/types/components/zd-icon/icon.d.ts +0 -55
  394. package/dist/types/components/zd-icon/interfaces.d.ts +0 -13
  395. package/dist/types/components/zd-image/image.d.ts +0 -73
  396. package/dist/types/components/zd-image/interfaces.d.ts +0 -17
  397. package/dist/types/components/zd-increment/increment.d.ts +0 -56
  398. package/dist/types/components/zd-increment/interfaces.d.ts +0 -9
  399. package/dist/types/components/zd-input/input-factory.d.ts +0 -6
  400. package/dist/types/components/zd-input/input.d.ts +0 -223
  401. package/dist/types/components/zd-input/interfaces.d.ts +0 -38
  402. package/dist/types/components/zd-iterable/column-not-found.d.ts +0 -6
  403. package/dist/types/components/zd-iterable/column.d.ts +0 -78
  404. package/dist/types/components/zd-iterable/conditions-manager.d.ts +0 -49
  405. package/dist/types/components/zd-iterable/interfaces.d.ts +0 -103
  406. package/dist/types/components/zd-iterable/iterable-columns-button-controller.d.ts +0 -9
  407. package/dist/types/components/zd-iterable/iterable-columns-button.d.ts +0 -35
  408. package/dist/types/components/zd-iterable/iterable-controller.d.ts +0 -8
  409. package/dist/types/components/zd-iterable/iterable-page-component.d.ts +0 -27
  410. package/dist/types/components/zd-iterable/iterable-page-info.d.ts +0 -7
  411. package/dist/types/components/zd-iterable/iterable-page-size.d.ts +0 -62
  412. package/dist/types/components/zd-iterable/iterable-pagination.d.ts +0 -28
  413. package/dist/types/components/zd-iterable/iterable.d.ts +0 -77
  414. package/dist/types/components/zd-iterable/search.d.ts +0 -31
  415. package/dist/types/components/zd-iterable-component-render/interfaces.d.ts +0 -34
  416. package/dist/types/components/zd-iterable-component-render/iterable-component-render.d.ts +0 -84
  417. package/dist/types/components/zd-layout/interfaces.d.ts +0 -7
  418. package/dist/types/components/zd-layout/layout.d.ts +0 -9
  419. package/dist/types/components/zd-list/interfaces.d.ts +0 -44
  420. package/dist/types/components/zd-list/item-not-found.d.ts +0 -6
  421. package/dist/types/components/zd-list/list-group.d.ts +0 -30
  422. package/dist/types/components/zd-list/list-item.d.ts +0 -46
  423. package/dist/types/components/zd-list/list.d.ts +0 -81
  424. package/dist/types/components/zd-loading/interfaces.d.ts +0 -7
  425. package/dist/types/components/zd-loading/loading.d.ts +0 -21
  426. package/dist/types/components/zd-login/interfaces.d.ts +0 -25
  427. package/dist/types/components/zd-login/login-button.d.ts +0 -50
  428. package/dist/types/components/zd-login/login.d.ts +0 -54
  429. package/dist/types/components/zd-main/interfaces.d.ts +0 -5
  430. package/dist/types/components/zd-main/main.d.ts +0 -7
  431. package/dist/types/components/zd-master-detail/detail-not-found.d.ts +0 -7
  432. package/dist/types/components/zd-master-detail/interfaces.d.ts +0 -10
  433. package/dist/types/components/zd-master-detail/master-detail.d.ts +0 -18
  434. package/dist/types/components/zd-master-detail/master-not-found.d.ts +0 -7
  435. package/dist/types/components/zd-menu/interfaces.d.ts +0 -68
  436. package/dist/types/components/zd-menu/menu-button.d.ts +0 -29
  437. package/dist/types/components/zd-menu/menu-group.d.ts +0 -61
  438. package/dist/types/components/zd-menu/menu-link.d.ts +0 -50
  439. package/dist/types/components/zd-menu/menu-separator.d.ts +0 -7
  440. package/dist/types/components/zd-menu/menu.d.ts +0 -199
  441. package/dist/types/components/zd-modal/interfaces.d.ts +0 -35
  442. package/dist/types/components/zd-modal/modal-close-button.d.ts +0 -28
  443. package/dist/types/components/zd-modal/modal.d.ts +0 -53
  444. package/dist/types/components/zd-month/interfaces.d.ts +0 -6
  445. package/dist/types/components/zd-month/month.d.ts +0 -33
  446. package/dist/types/components/zd-number-input/interfaces.d.ts +0 -8
  447. package/dist/types/components/zd-number-input/number-input.d.ts +0 -43
  448. package/dist/types/components/zd-password/interfaces.d.ts +0 -6
  449. package/dist/types/components/zd-password/password.d.ts +0 -17
  450. package/dist/types/components/zd-progress/interfaces.d.ts +0 -10
  451. package/dist/types/components/zd-progress/progress.d.ts +0 -41
  452. package/dist/types/components/zd-radio/interfaces.d.ts +0 -11
  453. package/dist/types/components/zd-radio/radio.d.ts +0 -35
  454. package/dist/types/components/zd-row/interfaces.d.ts +0 -13
  455. package/dist/types/components/zd-row/row.d.ts +0 -39
  456. package/dist/types/components/zd-select/interfaces.d.ts +0 -24
  457. package/dist/types/components/zd-select/select.d.ts +0 -238
  458. package/dist/types/components/zd-select-multiple/interfaces.d.ts +0 -18
  459. package/dist/types/components/zd-select-multiple/select-multiple.d.ts +0 -113
  460. package/dist/types/components/zd-svg-map/interfaces.d.ts +0 -26
  461. package/dist/types/components/zd-svg-map/svg-map.d.ts +0 -35
  462. package/dist/types/components/zd-switch/interfaces.d.ts +0 -7
  463. package/dist/types/components/zd-switch/switch.d.ts +0 -16
  464. package/dist/types/components/zd-table/interfaces.d.ts +0 -25
  465. package/dist/types/components/zd-table/table.d.ts +0 -42
  466. package/dist/types/components/zd-tabs/interfaces.d.ts +0 -40
  467. package/dist/types/components/zd-tabs/tab-not-found.d.ts +0 -11
  468. package/dist/types/components/zd-tabs/tab.d.ts +0 -57
  469. package/dist/types/components/zd-tabs/tabs.d.ts +0 -86
  470. package/dist/types/components/zd-tag/interfaces.d.ts +0 -7
  471. package/dist/types/components/zd-tag/tag.d.ts +0 -13
  472. package/dist/types/components/zd-text/interfaces.d.ts +0 -9
  473. package/dist/types/components/zd-text/text.d.ts +0 -8
  474. package/dist/types/components/zd-text-input/interfaces.d.ts +0 -23
  475. package/dist/types/components/zd-text-input/text-input.d.ts +0 -91
  476. package/dist/types/components/zd-textarea/interfaces.d.ts +0 -21
  477. package/dist/types/components/zd-textarea/textarea.d.ts +0 -71
  478. package/dist/types/components/zd-time/interfaces.d.ts +0 -22
  479. package/dist/types/components/zd-time/time-format-selector.d.ts +0 -8
  480. package/dist/types/components/zd-time/time.d.ts +0 -149
  481. package/dist/types/components/zd-toggleable/interfaces.d.ts +0 -6
  482. package/dist/types/components/zd-toggleable/toggleable.d.ts +0 -21
  483. package/dist/types/components/zd-tooltip/interfaces.d.ts +0 -18
  484. package/dist/types/components/zd-tooltip/tooltip.d.ts +0 -57
  485. package/dist/types/components/zd-tree/interfaces.d.ts +0 -107
  486. package/dist/types/components/zd-tree/tree.d.ts +0 -161
  487. package/dist/types/components/zd-tree-grid/index.d.ts +0 -6
  488. package/dist/types/components/zd-tree-grid/interfaces.d.ts +0 -35
  489. package/dist/types/components/zd-tree-grid/iterable-tree.d.ts +0 -10
  490. package/dist/types/components/zd-tree-grid/keymap-tree.d.ts +0 -7
  491. package/dist/types/components/zd-tree-grid/tree-data-navigator.d.ts +0 -10
  492. package/dist/types/components/zd-tree-grid/tree-data-selector.d.ts +0 -18
  493. package/dist/types/components/zd-tree-grid/tree-grid.d.ts +0 -119
  494. package/dist/types/error/delete-rows.d.ts +0 -7
  495. package/dist/types/error/index.d.ts +0 -3
  496. package/dist/types/error/non-initialized.d.ts +0 -7
  497. package/dist/types/error/zeedhi-error.d.ts +0 -6
  498. package/dist/types/index.d.ts +0 -6
  499. package/dist/types/services/index.d.ts +0 -4
  500. package/dist/types/services/zd-alert/alert-queue.d.ts +0 -13
  501. package/dist/types/services/zd-alert/alert-replace.d.ts +0 -18
  502. package/dist/types/services/zd-alert/alert-service.d.ts +0 -45
  503. package/dist/types/services/zd-alert/alert-stack.d.ts +0 -9
  504. package/dist/types/services/zd-alert/index.d.ts +0 -5
  505. package/dist/types/services/zd-alert/interfaces.d.ts +0 -6
  506. package/dist/types/services/zd-dialog/dialog-service.d.ts +0 -24
  507. package/dist/types/services/zd-loading/loading-service.d.ts +0 -17
  508. package/dist/types/services/zd-modal/modal-service.d.ts +0 -39
  509. package/dist/types/utils/data-value-out/data-value-out.d.ts +0 -5
  510. package/dist/types/utils/data-value-out/index.d.ts +0 -2
  511. package/dist/types/utils/data-value-out/interfaces.d.ts +0 -8
  512. package/dist/types/utils/datasource-searcher/datasource-searcher.d.ts +0 -6
  513. package/dist/types/utils/datasource-searcher/index.d.ts +0 -2
  514. package/dist/types/utils/datasource-searcher/interfaces.d.ts +0 -5
  515. package/dist/types/utils/icons/icons.d.ts +0 -24
  516. package/dist/types/utils/index.d.ts +0 -7
  517. package/dist/types/utils/omit/omit.d.ts +0 -11
  518. package/dist/types/utils/theme/theme.d.ts +0 -34
  519. package/dist/types/utils/tree-data-structure/index.d.ts +0 -2
  520. package/dist/types/utils/tree-data-structure/interfaces.d.ts +0 -30
  521. package/dist/types/utils/tree-data-structure/tree-data-structure.d.ts +0 -155
  522. package/dist/types/utils/unique-by/unique-by.d.ts +0 -3
  523. package/dist/zd-common.js +0 -13133
  524. package/dist/zd-common.min.js +0 -13133
  525. package/rollup.config.js +0 -27
  526. package/rollup.scss.config.js +0 -14
  527. package/tests/unit/utils/is-filled-object.spec.ts +0 -33
  528. package/tsconfig.build.json +0 -7
@@ -1,11 +1,13 @@
1
1
  import { Config, DateHelper, FormatterParserProvider, I18n, Mask, Utils, dayjs } from '@zeedhi/core';
2
- import isUndefined from 'lodash.isundefined';
3
2
  import { IDateRange } from './interfaces';
4
-
3
+ import { isDateAllowed } from '../../utils/date-utils/date-utils';
5
4
  import { InputFactory } from '../zd-input/input-factory';
6
5
  import { TextInput } from '../zd-text-input/text-input';
6
+ import { getDateRangeMask, getMaskAndUnitMask } from './utils';
7
+ import { validateThenFormat } from '../zd-date-input/utils';
7
8
 
8
9
  export class DateRange extends TextInput implements IDateRange {
10
+ public allowedDates?: string[] | ((date: string) => boolean);
9
11
  /**
10
12
  * Input auto complete.
11
13
  */
@@ -103,12 +105,6 @@ export class DateRange extends TextInput implements IDateRange {
103
105
 
104
106
  protected parserFn = FormatterParserProvider.getParser('ZdDateRange');
105
107
 
106
- protected initialMask?: string;
107
-
108
- public unitMask?: string;
109
-
110
- protected isSimpleDisplay!: boolean;
111
-
112
108
  public inputMode?: string | undefined = 'none';
113
109
 
114
110
  /* istanbul ignore next */
@@ -134,6 +130,7 @@ export class DateRange extends TextInput implements IDateRange {
134
130
  } else {
135
131
  this.appendIcon = this.getInitValue('appendIcon', props.appendIcon, 'calendar');
136
132
  }
133
+ this.allowedDates = this.getInitValue('allowedDates', props.allowedDates, this.allowedDates);
137
134
  this.autocomplete = this.getInitValue('autocomplete', props.autocomplete, this.autocomplete);
138
135
  this.dateFormat = this.getInitValue('dateFormat', props.dateFormat, this.dateFormat);
139
136
  this.dateValidation = this.dateValidation.bind(this);
@@ -147,39 +144,16 @@ export class DateRange extends TextInput implements IDateRange {
147
144
  this.showWeek = this.getInitValue('showWeek', props.showWeek, this.showWeek);
148
145
  this.splitter = this.getInitValue('splitter', props.splitter, this.internalSplitter);
149
146
  this.width = this.getInitValue('width', props.width, this.width);
150
- this.mask = this.getInitValue('mask', props.mask, undefined);
151
147
  this.helperOptions = this.getInitValue('helperOptions', props.helperOptions, this.helperOptions);
152
148
  this.helperValue = this.getInitValue('helperValue', props.helperValue, this.helperValue);
153
149
  this.min = this.getInitValue('min', props.min, this.min);
154
150
  this.max = this.getInitValue('max', props.max, this.max);
155
151
  this.rules.push(this.dateValidation);
156
-
157
- this.unitMask = this.mask;
158
- this.initialMask = this.getInitialMask();
159
-
160
- this.isSimpleDisplay = this.isSimpleFormat(this.displayFormat);
161
- const userAppendIconClick = this.events.appendIconClick;
162
- this.events.appendIconClick = ({ event, element, component }) => {
163
- this.iconClick(event!, element!);
164
- if (userAppendIconClick && typeof userAppendIconClick === 'function') {
165
- userAppendIconClick({ event, element, component });
166
- }
167
- };
168
152
  }
169
153
 
170
- private getInitialMask() {
171
- if (isUndefined(this.mask)) {
172
- this.unitMask = this.inputFormat && this.maskFormat(this.inputFormat);
173
- }
174
-
175
- if (!this.unitMask) {
176
- this.mask = this.unitMask;
177
- return this.unitMask;
178
- }
179
-
180
- this.mask = `${this.unitMask}${this.splitter}${this.unitMask}`;
181
-
182
- return this.mask;
154
+ public appendIconClick(event: Event, element: any) {
155
+ this.iconClick(event, element);
156
+ super.appendIconClick(event, element);
183
157
  }
184
158
 
185
159
  public formatter(value: any): string {
@@ -223,7 +197,6 @@ export class DateRange extends TextInput implements IDateRange {
223
197
 
224
198
  const [startDate, endDate] = value;
225
199
  const isStartValid = this.isValidFormatDate(startDate, this.dateFormat);
226
- // if end date is not defined, no need to validate it
227
200
  const isEndValid = !endDate || this.isValidFormatDate(endDate, this.dateFormat);
228
201
  const areDatesValid = isStartValid && isEndValid;
229
202
 
@@ -250,29 +223,6 @@ export class DateRange extends TextInput implements IDateRange {
250
223
  return dates;
251
224
  };
252
225
 
253
- /**
254
- * Assign the updated mask to mask property
255
- */
256
- public updateMask() {
257
- this.isSimpleDisplay = this.isSimpleFormat(this.displayFormat);
258
- this.mask = this.getUpdatedMask();
259
- return this.mask;
260
- }
261
-
262
- /**
263
- * Gets the updated masked, based on displayFormat if the initial mask is undefined
264
- */
265
- protected getUpdatedMask(): string | undefined {
266
- if (isUndefined(this.getInitialMask())) {
267
- return this.maskFormat(`${this.displayFormat}${this.splitter}${this.displayFormat}`);
268
- }
269
- return this.mask;
270
- }
271
-
272
- protected maskFormat(format: string) {
273
- return format.replace(/[A-Za-z]/gi, '#');
274
- }
275
-
276
226
  public setDateValue(displayValue: string) {
277
227
  const lastValue = this.displayValue;
278
228
  const values = this.splitValues(displayValue);
@@ -328,6 +278,10 @@ export class DateRange extends TextInput implements IDateRange {
328
278
  const isValidMax = !maxDate || date.isBefore(maxDate) || date.isSame(maxDate);
329
279
  if (!isValidMax) return false;
330
280
 
281
+ if (!this.getAllowedDates(dayjs(value, format).toDate())) {
282
+ return false;
283
+ }
284
+
331
285
  return true;
332
286
  }
333
287
 
@@ -392,11 +346,10 @@ export class DateRange extends TextInput implements IDateRange {
392
346
  }
393
347
 
394
348
  public blur(event: Event, element: any) {
349
+ super.blur(event, element);
395
350
  if (this.value) {
396
351
  this.value = this.sortDates(this.value);
397
- this.removeDateMask();
398
352
  this.setDateValue(this.formatter(this.value));
399
- super.blur(event, element);
400
353
  }
401
354
  if (!Utils.isMobile()) {
402
355
  this.showDatePicker = false;
@@ -404,41 +357,37 @@ export class DateRange extends TextInput implements IDateRange {
404
357
  }
405
358
 
406
359
  public focus(event: Event, element: any) {
407
- this.addDateMask();
408
360
  super.focus(event, element);
361
+ this.updateDisplayValue();
409
362
  }
410
363
 
411
364
  /**
412
- * Add date mask
365
+ * Update the displayValue. When using `inputFormat`, on focus we
366
+ * must switch to using it as the current format.
413
367
  */
414
- protected addDateMask() {
415
- if (isUndefined(this.getInitialMask()) || !this.value) return;
416
-
417
- setTimeout(() => {
418
- this.mask = this.getInitialMask();
419
- const firstDate = this.value[0]
420
- ? dayjs(this.value[0], this.dateFormat).format(this.inputFormat || this.displayFormat)
421
- : '';
422
- const lastDate = this.value[1]
423
- ? dayjs(this.value[1], this.dateFormat).format(this.inputFormat || this.displayFormat)
424
- : '';
425
- this.internalDisplayValue = `${firstDate}${lastDate ? this.splitter : ''}${lastDate}`;
426
- });
427
- }
368
+ protected updateDisplayValue() {
369
+ if (!this.inputFormat || !this.value) return;
370
+
371
+ let firstDate: dayjs.Dayjs | undefined;
372
+ let lastDate: dayjs.Dayjs | undefined;
373
+ if (this.value[0]) {
374
+ firstDate = dayjs(this.value[0], this.dateFormat, true);
375
+ if (!firstDate.isValid()) return;
376
+ }
377
+ if (this.value[1]) {
378
+ lastDate = dayjs(this.value[1], this.dateFormat, true);
379
+ if (!lastDate.isValid()) return;
380
+ }
428
381
 
429
- /**
430
- * Removes the component mask if value is valid
431
- */
432
- protected removeDateMask() {
433
- if (
434
- isUndefined(this.getInitialMask()) ||
435
- !this.value ||
436
- this.dateError ||
437
- !this.isValidDateArray(this.dateFormat, this.value)
438
- ) {
382
+ const format = this.inputFormat;
383
+
384
+ const firstDateString = firstDate ? firstDate.format(format) : '';
385
+ if (!lastDate) {
386
+ this.internalDisplayValue = firstDateString;
439
387
  return;
440
388
  }
441
- this.mask = '';
389
+ const lastDateString = lastDate.format(format);
390
+ this.internalDisplayValue = `${firstDateString}${this.splitter}${lastDateString}`;
442
391
  }
443
392
 
444
393
  /**
@@ -460,23 +409,6 @@ export class DateRange extends TextInput implements IDateRange {
460
409
  }
461
410
  }
462
411
 
463
- /**
464
- * Checks if a date format is simple.
465
- * Simple date formats are the ones that consists only of 'DD', 'MM' or 'YYYY', and mask delimiters
466
- * @param format The format to be checked
467
- * @returns true if it is simple, false otherwise
468
- */
469
- protected isSimpleFormat(format: string): boolean {
470
- const simpleTokens = ['DD', 'MM', 'YYYY'];
471
-
472
- // remove the simple tokens from the string
473
- const replaced = simpleTokens.reduce((result, token) => result.replace(token, ''), format);
474
-
475
- const chars = replaced.split('');
476
-
477
- return chars.length ? chars.every((char) => Mask.isMaskDelimiter(char)) : true;
478
- }
479
-
480
412
  private previousHint = '';
481
413
 
482
414
  private previousPersistentHint = false;
@@ -515,9 +447,22 @@ export class DateRange extends TextInput implements IDateRange {
515
447
  return [arr[0], arr[arr.length - 1]];
516
448
  }
517
449
 
518
- public setNativeDate(date: Date[]) {
450
+ public setNativeDate(dates: Date[]) {
519
451
  this.dateError = false;
520
- this.dateObject = date.map((obj) => dayjs(obj));
452
+
453
+ const dayjsDates = (dates || []).map((d) => dayjs(d));
454
+ const [start, end] = this.getExtremities(dayjsDates);
455
+
456
+ if (start && end) {
457
+ for (let d = start; d.isBefore(end) || d.isSame(end); d = d.add(1, 'day')) {
458
+ if (!this.getAllowedDates(d.toDate())) {
459
+ this.dateError = true;
460
+ return;
461
+ }
462
+ }
463
+ }
464
+
465
+ this.dateObject = (dates || []).map((obj) => dayjs(obj));
521
466
 
522
467
  const extremityDates = this.getExtremities(this.dateObject);
523
468
  this.value = extremityDates
@@ -531,22 +476,16 @@ export class DateRange extends TextInput implements IDateRange {
531
476
  return this.dateObject.filter((obj): obj is dayjs.Dayjs => obj !== null).map((obj) => obj.toDate());
532
477
  }
533
478
 
534
- public getMaskValue() {
535
- let mask: any = '';
536
-
537
- if (typeof this.mask === 'function') {
538
- mask = this.mask(Mask.getValueWithoutMask(this.value?.[0] || ''));
539
- } else if (typeof this.mask === 'string') {
540
- mask = this.mask.split(this.splitter)[0] || '';
541
- mask = Mask.getMaskArray(mask);
542
- if (Array.isArray(mask) && mask.length > 0) {
543
- mask = mask.concat(this.splitter.split('')).concat(mask);
544
- }
545
- } else if (Array.isArray(this.mask)) {
546
- mask = this.mask;
547
- }
479
+ public getAllowedDates(date: Date) {
480
+ return isDateAllowed(date, this.dateFormat, this.allowedDates);
481
+ }
548
482
 
549
- return mask;
483
+ public getMask() {
484
+ return getDateRangeMask(
485
+ this.inputFormat || this.displayFormat || '',
486
+ this.splitter,
487
+ this.isFocused,
488
+ )
550
489
  }
551
490
  }
552
491
 
@@ -558,56 +497,39 @@ FormatterParserProvider.registerFormatter(
558
497
  dateFormat = Config.dateFormat,
559
498
  displayFormat = Config.displayFormat,
560
499
  inputFormat = Config.dateInputFormat,
561
- initialMask,
562
500
  splitter = ' ~ ',
563
- unitMask = '',
564
- mask = '',
565
- isSimpleDisplay = false,
566
- }: any = {},
501
+ isFocused,
502
+ }: {
503
+ dateFormat?: string;
504
+ displayFormat?: string;
505
+ inputFormat?: string;
506
+ splitter?: string;
507
+ isFocused?: boolean;
508
+ } = {},
567
509
  ) => {
568
510
  if (!value || value.length === 0 || (value.length === 1 && !value[0])) {
569
511
  return '';
570
512
  }
571
- const formattedValue: string[] = [];
572
- value.forEach((date) => {
573
- if (date) {
574
- const isDateValid = dayjs(date, dateFormat, true).isValid();
575
513
 
576
- if (!isDateValid) {
577
- formattedValue.push(date);
578
- return;
579
- }
514
+ const formattedValues = value
515
+ .filter((date) => !!date)
516
+ .map((date) => {
517
+ const isDateValid = dayjs(date, dateFormat, true).isValid();
580
518
 
581
- if (initialMask && mask && unitMask) {
582
- if (inputFormat) {
583
- const formatted = dayjs(date, dateFormat).format(inputFormat);
584
- formattedValue.push(formatted);
585
- return;
586
- }
587
-
588
- let valueToUnmask = date;
589
- if (isSimpleDisplay) {
590
- valueToUnmask = dayjs(date, dateFormat).format(displayFormat);
591
- }
592
-
593
- const unmasked = Mask.getValueWithoutMask(valueToUnmask);
594
- const masked = Mask.getValueWithMask(unmasked, unitMask);
519
+ if (!isDateValid) {
520
+ return date;
521
+ }
595
522
 
596
- formattedValue.push(masked);
597
- return;
598
- }
523
+ const { mask } = getMaskAndUnitMask({ inputFormat, displayFormat, splitter, isFocused });
599
524
 
600
- const formatted = dayjs(date, dateFormat).format(displayFormat);
601
- formattedValue.push(formatted);
525
+ if (!mask || !inputFormat || !isFocused) {
526
+ return dayjs(date, dateFormat).format(displayFormat);
602
527
  }
603
- });
604
528
 
605
- let displayOutput: string = formattedValue[0];
606
- if (formattedValue.length === 2) {
607
- displayOutput += `${splitter}${formattedValue[1]}`;
608
- }
529
+ return dayjs(date, dateFormat).format(inputFormat);
530
+ });
609
531
 
610
- return displayOutput;
532
+ return formattedValues.join(splitter);
611
533
  },
612
534
  );
613
535
 
@@ -620,74 +542,51 @@ FormatterParserProvider.registerParser(
620
542
  displayFormat = Config.displayFormat,
621
543
  inputFormat = Config.dateInputFormat,
622
544
  splitter = ' ~ ',
623
- unitMask = '',
624
- mask = '',
625
- initialMask,
626
- isSimpleDisplay = false,
627
- }: any = {},
545
+ isFocused,
546
+ }: {
547
+ dateFormat?: string;
548
+ displayFormat?: string;
549
+ inputFormat?: string;
550
+ splitter?: string;
551
+ isFocused?: boolean;
552
+ } = {},
628
553
  ) => {
629
554
  if (!value) {
630
555
  return [];
631
556
  }
632
557
 
633
- let splitedValue: string[] = [];
558
+ let splittedValue: string[] = [];
634
559
 
635
560
  if (value.indexOf(splitter) !== -1) {
636
- splitedValue = value.split(splitter);
561
+ splittedValue = value.split(splitter);
637
562
  } else {
638
- splitedValue.push(value);
563
+ splittedValue.push(value);
639
564
  }
640
565
 
641
- const formattedValue: string[] = [];
642
- splitedValue.forEach((date) => {
643
- if (date) {
644
- if (dayjs(date, displayFormat, true).isValid()) {
645
- const parsedDate = dayjs(date, displayFormat).format(dateFormat);
646
- formattedValue.push(parsedDate);
647
- return;
566
+ const { unitMask } = getMaskAndUnitMask({ inputFormat, displayFormat, splitter, isFocused });
567
+ return splittedValue
568
+ .filter((date) => !!date)
569
+ .map((date) => {
570
+ if (!Mask.checkMask(date, unitMask)) return date;
571
+
572
+ // when using inputFormat and focused, should parse according to inputFormat
573
+ if (inputFormat && isFocused) {
574
+ const { valid, newValue } = validateThenFormat(date, inputFormat, dateFormat);
575
+ if (valid) {
576
+ return newValue;
648
577
  }
649
578
 
650
- if (unitMask && mask && Mask.checkMask(date, unitMask)) {
651
- if (inputFormat) {
652
- if (dayjs(date, inputFormat, true).isValid()) {
653
- const parsedDate = dayjs(date, inputFormat).format(dateFormat);
654
- formattedValue.push(parsedDate);
655
- return;
656
- }
657
-
658
- formattedValue.push(date);
659
- return;
660
- }
661
-
662
- const unmasked = Mask.getValueWithoutMask(date);
663
- let masked;
664
-
665
- if (!initialMask || isSimpleDisplay) {
666
- const displayFmtMask = displayFormat.replace(/[A-Za-z]/gi, '#');
667
-
668
- masked = Mask.getValueWithMask(unmasked, displayFmtMask);
669
-
670
- if (dayjs(masked, displayFormat, true).format(displayFormat) === masked) {
671
- const parsedDate = dayjs(masked, displayFormat).format(dateFormat);
672
- formattedValue.push(parsedDate);
673
- return;
674
- }
675
- }
676
-
677
- const dateFmtMask = dateFormat.replace(/[A-Za-z]/gi, '#');
678
-
679
- masked = Mask.getValueWithMask(unmasked, dateFmtMask);
680
-
681
- if (dayjs(masked, dateFormat, true).isValid()) {
682
- formattedValue.push(masked);
683
- return;
684
- }
685
- }
579
+ return date;
580
+ }
686
581
 
687
- formattedValue.push(date);
582
+ // should parse according to displayFormat
583
+ const { valid, newValue } = validateThenFormat(date, displayFormat, dateFormat);
584
+ if (!valid) {
585
+ return date;
688
586
  }
587
+
588
+ return newValue;
689
589
  });
690
- return formattedValue;
691
590
  },
692
591
  );
693
592
 
@@ -0,0 +1,31 @@
1
+ import { toMask } from '../../utils/date-utils/date-utils';
2
+
3
+ export function getDateRangeMask(format: string, splitter: string, focused = true) {
4
+ if (focused && format) {
5
+ return toFullMask(format, splitter);
6
+ }
7
+ return '';
8
+ }
9
+
10
+ function toFullMask(format: string, splitter: string) {
11
+ const partialMask = toMask(format);
12
+
13
+ const fullMask = `${partialMask}${splitter}${partialMask}`;
14
+
15
+ return fullMask;
16
+ }
17
+
18
+ /**
19
+ * Helper to simplify the generation of date range mask and unit mask
20
+ */
21
+ export function getMaskAndUnitMask({ inputFormat, displayFormat, splitter, isFocused }: { inputFormat?: string; displayFormat: string; splitter: string; isFocused?: boolean }) {
22
+ const format = inputFormat || displayFormat;
23
+ const unitMask = isFocused ? toMask(format) : '';
24
+ const mask = getDateRangeMask(
25
+ format,
26
+ splitter,
27
+ isFocused,
28
+ )
29
+
30
+ return { mask, unitMask };
31
+ }
@@ -204,7 +204,7 @@ export class Frame extends ComponentRender implements IFrame {
204
204
  if (!header) return false;
205
205
 
206
206
  const lastFetch = Number(header);
207
- return lastFetch + this.cacheDuration > new Date().getTime();
207
+ return lastFetch + this.cacheDuration > Date.now();
208
208
  }
209
209
 
210
210
  /**
@@ -214,7 +214,7 @@ export class Frame extends ComponentRender implements IFrame {
214
214
  * @param metadata Metadata to be stored
215
215
  */
216
216
  private putCache(cache: Cache, url: string, metadata: IDictionary) {
217
- const time = String(new Date().getTime());
217
+ const time = String(Date.now());
218
218
  const headers = new Headers({
219
219
  [this.headerName]: time,
220
220
  });
@@ -105,7 +105,7 @@ export class DataEditorWithAdd extends DataEditor implements IDataEditorWithAdd
105
105
  row = omit(row, this.NEW_ROW_IDENTIFIER);
106
106
 
107
107
  Object.keys(row).forEach((attr) => {
108
- if (Object.prototype.hasOwnProperty.call(row, `${attr}_original`)) {
108
+ if (Object.hasOwn(row, `${attr}_original`)) {
109
109
  delete row[`${attr}_original`];
110
110
  }
111
111
  });
@@ -45,7 +45,7 @@ export class DataEditor implements IDataEditor {
45
45
  getVisibleValue(row: IDictionary, column: IGridColumnEditable) {
46
46
  const key = this.grid.getRowKey(row);
47
47
  const editedRow = this.editedRows.get(key);
48
- if (editedRow && Object.prototype.hasOwnProperty.call(editedRow, column.name)) {
48
+ if (editedRow && Object.hasOwn(editedRow, column.name)) {
49
49
  return editedRow[column.name];
50
50
  }
51
51
  return row[column.name];
@@ -76,7 +76,7 @@ export class DataEditor implements IDataEditor {
76
76
  if (
77
77
  colValue &&
78
78
  typeof colValue === 'object' &&
79
- Object.prototype.hasOwnProperty.call(colValue, componentProps.dataValue)
79
+ Object.hasOwn(colValue, componentProps.dataValue)
80
80
  ) {
81
81
  const value = (colValue as IDictionary)[componentProps.dataValue];
82
82
  this.pushLookupValue(column, value, componentProps);
@@ -234,9 +234,47 @@ export abstract class Iterable<T extends Column = Column>
234
234
  }
235
235
 
236
236
  protected changeDefaultSlotNames(slot: IComponentRender[]) {
237
- const strMetadata = JSON.stringify(slot);
238
- const newObj = strMetadata.replace(/<<NAME>>/g, this.name);
239
- return JSON.parse(newObj);
237
+ return this.recursiveReplace(slot, /<<NAME>>/g, this.name);
238
+ }
239
+
240
+ /**
241
+ * Recursively replaces a pattern in all string values within an object/array tree
242
+ * @param obj The object or array to process
243
+ * @param pattern The regex pattern to search for
244
+ * @param replacement The replacement string
245
+ * @returns A new object/array with replaced values
246
+ */
247
+ private recursiveReplace(obj: unknown, pattern: RegExp, replacement: string): any {
248
+ // Handle null or undefined
249
+ if (obj === null || obj === undefined) {
250
+ return obj;
251
+ }
252
+
253
+ // Handle string values - perform replacement
254
+ if (typeof obj === 'string') {
255
+ return obj.replace(pattern, replacement);
256
+ }
257
+
258
+ // Handle arrays - recursively process each element
259
+ if (Array.isArray(obj)) {
260
+ return obj.map((item) => this.recursiveReplace(item, pattern, replacement));
261
+ }
262
+
263
+ // Handle objects - recursively process each property value
264
+ if (this.isObject(obj)) {
265
+ const newObj: IDictionary = {};
266
+ for (const key in obj) {
267
+ newObj[key] = this.recursiveReplace(obj[key], pattern, replacement);
268
+ }
269
+ return newObj;
270
+ }
271
+
272
+ // For all other types (functions, numbers, booleans, etc.), return as-is
273
+ return obj;
274
+ }
275
+
276
+ private isObject(value: unknown): value is IDictionary {
277
+ return typeof value === 'object';
240
278
  }
241
279
 
242
280
  public findRow(key: string | number) {