@zeedhi/common 3.0.6 → 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 (525) hide show
  1. package/coverage/clover.xml +5676 -0
  2. package/coverage/coverage-final.json +147 -0
  3. package/coverage/lcov-report/base.css +224 -0
  4. package/coverage/lcov-report/block-navigation.js +87 -0
  5. package/coverage/lcov-report/favicon.png +0 -0
  6. package/coverage/lcov-report/index.html +1331 -0
  7. package/coverage/lcov-report/prettify.css +1 -0
  8. package/coverage/lcov-report/prettify.js +2 -0
  9. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  10. package/coverage/lcov-report/sorter.js +210 -0
  11. package/coverage/lcov-report/src/components/index.html +116 -0
  12. package/coverage/lcov-report/src/components/index.ts.html +730 -0
  13. package/coverage/lcov-report/src/components/tek-grid/columns-searcher.ts.html +151 -0
  14. package/coverage/lcov-report/src/components/tek-grid/dynamic-filter-datasource-factory.ts.html +145 -0
  15. package/coverage/lcov-report/src/components/tek-grid/filter-helper.ts.html +145 -0
  16. package/coverage/lcov-report/src/components/tek-grid/grid-filter-button.ts.html +1351 -0
  17. package/coverage/lcov-report/src/components/tek-grid/grouped-data-manager.ts.html +1429 -0
  18. package/coverage/lcov-report/src/components/tek-grid/grouped-data-selector.ts.html +205 -0
  19. package/coverage/lcov-report/src/components/tek-grid/grouped-view-navigator.ts.html +340 -0
  20. package/coverage/lcov-report/src/components/tek-grid/index.html +326 -0
  21. package/coverage/lcov-report/src/components/tek-grid/index.ts.html +139 -0
  22. package/coverage/lcov-report/src/components/tek-grid/interfaces.ts.html +1072 -0
  23. package/coverage/lcov-report/src/components/tek-grid/keymap-grouped.ts.html +148 -0
  24. package/coverage/lcov-report/src/components/tek-grid/layout-options.ts.html +829 -0
  25. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.html +161 -0
  26. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.ts.html +94 -0
  27. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/interfaces.ts.html +193 -0
  28. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts.html +1027 -0
  29. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts.html +757 -0
  30. package/coverage/lcov-report/src/components/tek-grid/tek-grid-column.ts.html +664 -0
  31. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/index.html +131 -0
  32. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts.html +169 -0
  33. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts.html +196 -0
  34. package/coverage/lcov-report/src/components/tek-grid/tek-grid-controller.ts.html +505 -0
  35. package/coverage/lcov-report/src/components/tek-grid/tek-grid-events.ts.html +400 -0
  36. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts.html +163 -0
  37. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.html +146 -0
  38. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts.html +94 -0
  39. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts.html +340 -0
  40. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.html +131 -0
  41. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.ts.html +91 -0
  42. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts.html +1186 -0
  43. package/coverage/lcov-report/src/components/tek-grid/tek-grid.ts.html +3451 -0
  44. package/coverage/lcov-report/src/components/zd-alert/alert.ts.html +502 -0
  45. package/coverage/lcov-report/src/components/zd-alert/index.html +116 -0
  46. package/coverage/lcov-report/src/components/zd-badge/badge.ts.html +226 -0
  47. package/coverage/lcov-report/src/components/zd-badge/index.html +116 -0
  48. package/coverage/lcov-report/src/components/zd-breadcrumbs/breadcrumbs.ts.html +226 -0
  49. package/coverage/lcov-report/src/components/zd-breadcrumbs/index.html +116 -0
  50. package/coverage/lcov-report/src/components/zd-button/button.ts.html +706 -0
  51. package/coverage/lcov-report/src/components/zd-button/index.html +116 -0
  52. package/coverage/lcov-report/src/components/zd-button-group/button-group.ts.html +412 -0
  53. package/coverage/lcov-report/src/components/zd-button-group/index.html +116 -0
  54. package/coverage/lcov-report/src/components/zd-card/card.ts.html +748 -0
  55. package/coverage/lcov-report/src/components/zd-card/index.html +116 -0
  56. package/coverage/lcov-report/src/components/zd-carousel/carousel.ts.html +949 -0
  57. package/coverage/lcov-report/src/components/zd-carousel/index.html +116 -0
  58. package/coverage/lcov-report/src/components/zd-checkbox/checkbox.ts.html +148 -0
  59. package/coverage/lcov-report/src/components/zd-checkbox/index.html +116 -0
  60. package/coverage/lcov-report/src/components/zd-checkbox-multiple/checkbox-multiple.ts.html +313 -0
  61. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +116 -0
  62. package/coverage/lcov-report/src/components/zd-chip/chip.ts.html +352 -0
  63. package/coverage/lcov-report/src/components/zd-chip/index.html +116 -0
  64. package/coverage/lcov-report/src/components/zd-code-editor/code-editor.ts.html +1045 -0
  65. package/coverage/lcov-report/src/components/zd-code-editor/index.html +116 -0
  66. package/coverage/lcov-report/src/components/zd-code-viewer/code-viewer.ts.html +682 -0
  67. package/coverage/lcov-report/src/components/zd-code-viewer/index.html +116 -0
  68. package/coverage/lcov-report/src/components/zd-col/col.ts.html +250 -0
  69. package/coverage/lcov-report/src/components/zd-col/index.html +116 -0
  70. package/coverage/lcov-report/src/components/zd-collapse-card/collapse-card.ts.html +343 -0
  71. package/coverage/lcov-report/src/components/zd-collapse-card/index.html +116 -0
  72. package/coverage/lcov-report/src/components/zd-component/child-not-found.ts.html +109 -0
  73. package/coverage/lcov-report/src/components/zd-component/component-render.ts.html +160 -0
  74. package/coverage/lcov-report/src/components/zd-component/component.ts.html +1084 -0
  75. package/coverage/lcov-report/src/components/zd-component/index.html +146 -0
  76. package/coverage/lcov-report/src/components/zd-container/container.ts.html +289 -0
  77. package/coverage/lcov-report/src/components/zd-container/index.html +116 -0
  78. package/coverage/lcov-report/src/components/zd-currency/currency.ts.html +259 -0
  79. package/coverage/lcov-report/src/components/zd-currency/index.html +116 -0
  80. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +1441 -0
  81. package/coverage/lcov-report/src/components/zd-date-input/index.html +131 -0
  82. package/coverage/lcov-report/src/components/zd-date-input/utils.ts.html +136 -0
  83. package/coverage/lcov-report/src/components/zd-date-range/date-range.ts.html +1873 -0
  84. package/coverage/lcov-report/src/components/zd-date-range/index.html +131 -0
  85. package/coverage/lcov-report/src/components/zd-date-range/utils.ts.html +178 -0
  86. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +541 -0
  87. package/coverage/lcov-report/src/components/zd-dialog/index.html +116 -0
  88. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +178 -0
  89. package/coverage/lcov-report/src/components/zd-divider/index.html +116 -0
  90. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +460 -0
  91. package/coverage/lcov-report/src/components/zd-dropdown/index.html +116 -0
  92. package/coverage/lcov-report/src/components/zd-field-group/field-group.ts.html +325 -0
  93. package/coverage/lcov-report/src/components/zd-field-group/index.html +116 -0
  94. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +451 -0
  95. package/coverage/lcov-report/src/components/zd-footer/index.html +116 -0
  96. package/coverage/lcov-report/src/components/zd-form/form.ts.html +1075 -0
  97. package/coverage/lcov-report/src/components/zd-form/index.html +116 -0
  98. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +763 -0
  99. package/coverage/lcov-report/src/components/zd-frame/index.html +116 -0
  100. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +169 -0
  101. package/coverage/lcov-report/src/components/zd-frame-page/index.html +116 -0
  102. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +304 -0
  103. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +532 -0
  104. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +709 -0
  105. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +244 -0
  106. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +1042 -0
  107. package/coverage/lcov-report/src/components/zd-grid/index.html +266 -0
  108. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +118 -0
  109. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +274 -0
  110. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +241 -0
  111. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +313 -0
  112. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +427 -0
  113. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +175 -0
  114. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +826 -0
  115. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +1570 -0
  116. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +146 -0
  117. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +91 -0
  118. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +109 -0
  119. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +109 -0
  120. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +130 -0
  121. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +139 -0
  122. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +430 -0
  123. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +1477 -0
  124. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +221 -0
  125. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +109 -0
  126. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +139 -0
  127. package/coverage/lcov-report/src/components/zd-header/header.ts.html +502 -0
  128. package/coverage/lcov-report/src/components/zd-header/index.html +116 -0
  129. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +325 -0
  130. package/coverage/lcov-report/src/components/zd-icon/index.html +116 -0
  131. package/coverage/lcov-report/src/components/zd-image/image.ts.html +424 -0
  132. package/coverage/lcov-report/src/components/zd-image/index.html +116 -0
  133. package/coverage/lcov-report/src/components/zd-increment/increment.ts.html +436 -0
  134. package/coverage/lcov-report/src/components/zd-increment/index.html +116 -0
  135. package/coverage/lcov-report/src/components/zd-input/index.html +131 -0
  136. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +130 -0
  137. package/coverage/lcov-report/src/components/zd-input/input.ts.html +1345 -0
  138. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +109 -0
  139. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +823 -0
  140. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +523 -0
  141. package/coverage/lcov-report/src/components/zd-iterable/index.html +281 -0
  142. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +136 -0
  143. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +313 -0
  144. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +166 -0
  145. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +244 -0
  146. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +106 -0
  147. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +421 -0
  148. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +208 -0
  149. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +934 -0
  150. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +343 -0
  151. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +116 -0
  152. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +592 -0
  153. package/coverage/lcov-report/src/components/zd-layout/index.html +116 -0
  154. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +145 -0
  155. package/coverage/lcov-report/src/components/zd-list/index.html +161 -0
  156. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +109 -0
  157. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +241 -0
  158. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +298 -0
  159. package/coverage/lcov-report/src/components/zd-list/list.ts.html +460 -0
  160. package/coverage/lcov-report/src/components/zd-loading/index.html +116 -0
  161. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +217 -0
  162. package/coverage/lcov-report/src/components/zd-login/index.html +131 -0
  163. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +421 -0
  164. package/coverage/lcov-report/src/components/zd-login/login.ts.html +340 -0
  165. package/coverage/lcov-report/src/components/zd-main/index.html +116 -0
  166. package/coverage/lcov-report/src/components/zd-main/main.ts.html +133 -0
  167. package/coverage/lcov-report/src/components/zd-master-detail/detail-not-found.ts.html +118 -0
  168. package/coverage/lcov-report/src/components/zd-master-detail/index.html +146 -0
  169. package/coverage/lcov-report/src/components/zd-master-detail/master-detail.ts.html +331 -0
  170. package/coverage/lcov-report/src/components/zd-master-detail/master-not-found.ts.html +118 -0
  171. package/coverage/lcov-report/src/components/zd-menu/index.html +176 -0
  172. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +241 -0
  173. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +400 -0
  174. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +337 -0
  175. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +106 -0
  176. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +1384 -0
  177. package/coverage/lcov-report/src/components/zd-modal/index.html +131 -0
  178. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +220 -0
  179. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +355 -0
  180. package/coverage/lcov-report/src/components/zd-month/index.html +116 -0
  181. package/coverage/lcov-report/src/components/zd-month/month.ts.html +352 -0
  182. package/coverage/lcov-report/src/components/zd-number-input/index.html +116 -0
  183. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +532 -0
  184. package/coverage/lcov-report/src/components/zd-password/index.html +116 -0
  185. package/coverage/lcov-report/src/components/zd-password/password.ts.html +220 -0
  186. package/coverage/lcov-report/src/components/zd-progress/index.html +116 -0
  187. package/coverage/lcov-report/src/components/zd-progress/progress.ts.html +262 -0
  188. package/coverage/lcov-report/src/components/zd-radio/index.html +116 -0
  189. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +289 -0
  190. package/coverage/lcov-report/src/components/zd-row/index.html +116 -0
  191. package/coverage/lcov-report/src/components/zd-row/row.ts.html +256 -0
  192. package/coverage/lcov-report/src/components/zd-select/index.html +116 -0
  193. package/coverage/lcov-report/src/components/zd-select/select.ts.html +2089 -0
  194. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +116 -0
  195. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +1549 -0
  196. package/coverage/lcov-report/src/components/zd-svg-map/index.html +116 -0
  197. package/coverage/lcov-report/src/components/zd-svg-map/svg-map.ts.html +475 -0
  198. package/coverage/lcov-report/src/components/zd-switch/index.html +116 -0
  199. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +163 -0
  200. package/coverage/lcov-report/src/components/zd-table/index.html +116 -0
  201. package/coverage/lcov-report/src/components/zd-table/table.ts.html +280 -0
  202. package/coverage/lcov-report/src/components/zd-tabs/index.html +146 -0
  203. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +127 -0
  204. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +370 -0
  205. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +586 -0
  206. package/coverage/lcov-report/src/components/zd-tag/index.html +116 -0
  207. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +142 -0
  208. package/coverage/lcov-report/src/components/zd-text/index.html +116 -0
  209. package/coverage/lcov-report/src/components/zd-text/text.ts.html +136 -0
  210. package/coverage/lcov-report/src/components/zd-text-input/index.html +116 -0
  211. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +778 -0
  212. package/coverage/lcov-report/src/components/zd-textarea/index.html +116 -0
  213. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +418 -0
  214. package/coverage/lcov-report/src/components/zd-time/index.html +131 -0
  215. package/coverage/lcov-report/src/components/zd-time/time-format-selector.ts.html +157 -0
  216. package/coverage/lcov-report/src/components/zd-time/time.ts.html +1687 -0
  217. package/coverage/lcov-report/src/components/zd-toggleable/index.html +116 -0
  218. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +196 -0
  219. package/coverage/lcov-report/src/components/zd-tooltip/index.html +116 -0
  220. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +340 -0
  221. package/coverage/lcov-report/src/components/zd-tree/index.html +116 -0
  222. package/coverage/lcov-report/src/components/zd-tree/tree.ts.html +1849 -0
  223. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +191 -0
  224. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +103 -0
  225. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +202 -0
  226. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +154 -0
  227. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +235 -0
  228. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +448 -0
  229. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +1390 -0
  230. package/coverage/lcov-report/src/error/delete-rows.ts.html +124 -0
  231. package/coverage/lcov-report/src/error/index.html +161 -0
  232. package/coverage/lcov-report/src/error/index.ts.html +94 -0
  233. package/coverage/lcov-report/src/error/non-initialized.ts.html +118 -0
  234. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +130 -0
  235. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +109 -0
  236. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +109 -0
  237. package/coverage/lcov-report/src/index.html +116 -0
  238. package/coverage/lcov-report/src/index.ts.html +145 -0
  239. package/coverage/lcov-report/src/services/index.html +116 -0
  240. package/coverage/lcov-report/src/services/index.ts.html +97 -0
  241. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +205 -0
  242. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +220 -0
  243. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +316 -0
  244. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +172 -0
  245. package/coverage/lcov-report/src/services/zd-alert/index.html +176 -0
  246. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +100 -0
  247. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +205 -0
  248. package/coverage/lcov-report/src/services/zd-dialog/index.html +116 -0
  249. package/coverage/lcov-report/src/services/zd-loading/index.html +116 -0
  250. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +157 -0
  251. package/coverage/lcov-report/src/services/zd-modal/index.html +116 -0
  252. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +298 -0
  253. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +202 -0
  254. package/coverage/lcov-report/src/utils/data-value-out/index.html +131 -0
  255. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +91 -0
  256. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +241 -0
  257. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +131 -0
  258. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +91 -0
  259. package/coverage/lcov-report/src/utils/date-utils/date-utils.ts.html +166 -0
  260. package/coverage/lcov-report/src/utils/date-utils/index.html +116 -0
  261. package/coverage/lcov-report/src/utils/icons/icons.ts.html +547 -0
  262. package/coverage/lcov-report/src/utils/icons/index.html +116 -0
  263. package/coverage/lcov-report/src/utils/index.html +116 -0
  264. package/coverage/lcov-report/src/utils/index.ts.html +106 -0
  265. package/coverage/lcov-report/src/utils/is-filled-object/index.html +116 -0
  266. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +100 -0
  267. package/coverage/lcov-report/src/utils/is-nil.ts.html +94 -0
  268. package/coverage/lcov-report/src/utils/omit/index.html +116 -0
  269. package/coverage/lcov-report/src/utils/omit/omit.ts.html +124 -0
  270. package/coverage/lcov-report/src/utils/theme/index.html +116 -0
  271. package/coverage/lcov-report/src/utils/theme/theme.ts.html +679 -0
  272. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +131 -0
  273. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +91 -0
  274. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +1645 -0
  275. package/coverage/lcov-report/src/utils/unique-by/index.html +116 -0
  276. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +130 -0
  277. package/coverage/lcov-report/tests/unit/__helpers__/component-event-helper.ts.html +106 -0
  278. package/coverage/lcov-report/tests/unit/__helpers__/flush-promises-helper.ts.html +94 -0
  279. package/coverage/lcov-report/tests/unit/__helpers__/index.html +146 -0
  280. package/coverage/lcov-report/tests/unit/__helpers__/mock-http-get-helper.ts.html +172 -0
  281. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +166 -0
  282. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +116 -0
  283. package/coverage/lcov.info +10070 -0
  284. package/dist/style.css +1 -1
  285. package/dist/zd-common.d.mts +7826 -0
  286. package/dist/zd-common.iife.min.js +11 -0
  287. package/dist/zd-common.mjs +12318 -0
  288. package/package.json +16 -12
  289. package/src/components/zd-date-input/date-input.ts +40 -147
  290. package/src/components/zd-date-input/utils.ts +17 -0
  291. package/src/components/zd-date-range/date-range.ts +86 -210
  292. package/src/components/zd-date-range/utils.ts +31 -0
  293. package/src/components/zd-frame/frame.ts +2 -2
  294. package/src/components/zd-grid-editable/data-editor-with-add.ts +1 -1
  295. package/src/components/zd-grid-editable/data-editor.ts +2 -2
  296. package/src/components/zd-month/month.ts +19 -91
  297. package/src/styles/_display.scss +3 -1
  298. package/src/styles/_elevation.scss +2 -1
  299. package/src/styles/_functions.scss +14 -11
  300. package/src/styles/_utilities.scss +67 -62
  301. package/src/styles/_variables.scss +17 -16
  302. package/src/styles/index.scss +5 -5
  303. package/src/utils/date-utils/date-utils.ts +9 -0
  304. package/src/utils/tree-data-structure/tree-data-structure.ts +1 -1
  305. package/tests/unit/components/zd-date-input/date-input.spec.ts +36 -281
  306. package/tests/unit/components/zd-date-range/date-range.spec.ts +372 -475
  307. package/tests/unit/components/zd-grid/grid-column.spec.ts +1 -1
  308. package/tests/unit/components/zd-month/month.spec.ts +7 -334
  309. package/tests/unit/components/zd-select/select.spec.ts +1 -2
  310. package/tsdown.config.ts +74 -0
  311. package/dist/types/components/index.d.ts +0 -151
  312. package/dist/types/components/zd-alert/alert.d.ts +0 -94
  313. package/dist/types/components/zd-alert/interfaces.d.ts +0 -18
  314. package/dist/types/components/zd-badge/badge.d.ts +0 -28
  315. package/dist/types/components/zd-badge/interfaces.d.ts +0 -10
  316. package/dist/types/components/zd-breadcrumbs/breadcrumbs.d.ts +0 -32
  317. package/dist/types/components/zd-breadcrumbs/interfaces.d.ts +0 -24
  318. package/dist/types/components/zd-button/button.d.ts +0 -89
  319. package/dist/types/components/zd-button/interfaces.d.ts +0 -48
  320. package/dist/types/components/zd-button-group/button-group.d.ts +0 -67
  321. package/dist/types/components/zd-button-group/interfaces.d.ts +0 -25
  322. package/dist/types/components/zd-card/card.d.ts +0 -152
  323. package/dist/types/components/zd-card/interfaces.d.ts +0 -40
  324. package/dist/types/components/zd-carousel/carousel.d.ts +0 -163
  325. package/dist/types/components/zd-carousel/interfaces.d.ts +0 -49
  326. package/dist/types/components/zd-checkbox/checkbox.d.ts +0 -12
  327. package/dist/types/components/zd-checkbox/interfaces.d.ts +0 -5
  328. package/dist/types/components/zd-checkbox-multiple/checkbox-multiple.d.ts +0 -39
  329. package/dist/types/components/zd-checkbox-multiple/interfaces.d.ts +0 -13
  330. package/dist/types/components/zd-chip/chip.d.ts +0 -60
  331. package/dist/types/components/zd-chip/interfaces.d.ts +0 -18
  332. package/dist/types/components/zd-code-viewer/code-viewer.d.ts +0 -86
  333. package/dist/types/components/zd-code-viewer/interfaces.d.ts +0 -13
  334. package/dist/types/components/zd-col/col.d.ts +0 -33
  335. package/dist/types/components/zd-col/interfaces.d.ts +0 -15
  336. package/dist/types/components/zd-collapse-card/collapse-card.d.ts +0 -56
  337. package/dist/types/components/zd-collapse-card/interfaces.d.ts +0 -14
  338. package/dist/types/components/zd-component/child-not-found.d.ts +0 -6
  339. package/dist/types/components/zd-component/component-render.d.ts +0 -16
  340. package/dist/types/components/zd-component/component.d.ts +0 -120
  341. package/dist/types/components/zd-component/interfaces.d.ts +0 -74
  342. package/dist/types/components/zd-container/container.d.ts +0 -45
  343. package/dist/types/components/zd-container/interfaces.d.ts +0 -12
  344. package/dist/types/components/zd-currency/currency.d.ts +0 -12
  345. package/dist/types/components/zd-currency/interfaces.d.ts +0 -6
  346. package/dist/types/components/zd-date-input/date-input.d.ts +0 -152
  347. package/dist/types/components/zd-date-input/interfaces.d.ts +0 -27
  348. package/dist/types/components/zd-date-range/date-range.d.ts +0 -160
  349. package/dist/types/components/zd-date-range/interfaces.d.ts +0 -18
  350. package/dist/types/components/zd-dialog/dialog.d.ts +0 -76
  351. package/dist/types/components/zd-dialog/interfaces.d.ts +0 -13
  352. package/dist/types/components/zd-divider/divider.d.ts +0 -20
  353. package/dist/types/components/zd-divider/interfaces.d.ts +0 -8
  354. package/dist/types/components/zd-dropdown/dropdown.d.ts +0 -81
  355. package/dist/types/components/zd-dropdown/interfaces.d.ts +0 -23
  356. package/dist/types/components/zd-footer/footer.d.ts +0 -80
  357. package/dist/types/components/zd-footer/interfaces.d.ts +0 -26
  358. package/dist/types/components/zd-form/form.d.ts +0 -174
  359. package/dist/types/components/zd-form/interfaces.d.ts +0 -36
  360. package/dist/types/components/zd-frame/frame.d.ts +0 -81
  361. package/dist/types/components/zd-frame/interfaces.d.ts +0 -23
  362. package/dist/types/components/zd-frame-page/frame-page.d.ts +0 -14
  363. package/dist/types/components/zd-frame-page/interfaces.d.ts +0 -4
  364. package/dist/types/components/zd-grid/data-navigator.d.ts +0 -12
  365. package/dist/types/components/zd-grid/data-selector.d.ts +0 -25
  366. package/dist/types/components/zd-grid/grid-column.d.ts +0 -47
  367. package/dist/types/components/zd-grid/grid-events.d.ts +0 -26
  368. package/dist/types/components/zd-grid/grid.d.ts +0 -85
  369. package/dist/types/components/zd-grid/index.d.ts +0 -11
  370. package/dist/types/components/zd-grid/interfaces.d.ts +0 -148
  371. package/dist/types/components/zd-grid/iterable-table.d.ts +0 -28
  372. package/dist/types/components/zd-grid/keymap-merger.d.ts +0 -26
  373. package/dist/types/components/zd-grid/keymap-navigation.d.ts +0 -6
  374. package/dist/types/components/zd-grid/table-action-builder.d.ts +0 -19
  375. package/dist/types/components/zd-grid/view-navigator.d.ts +0 -10
  376. package/dist/types/components/zd-grid-editable/data-editor-with-add.d.ts +0 -35
  377. package/dist/types/components/zd-grid-editable/data-editor.d.ts +0 -64
  378. package/dist/types/components/zd-grid-editable/errors/index.d.ts +0 -2
  379. package/dist/types/components/zd-grid-editable/errors/not-editing.d.ts +0 -6
  380. package/dist/types/components/zd-grid-editable/errors/row-not-found.d.ts +0 -6
  381. package/dist/types/components/zd-grid-editable/grid-column-editable.d.ts +0 -9
  382. package/dist/types/components/zd-grid-editable/grid-editable-controller.d.ts +0 -8
  383. package/dist/types/components/zd-grid-editable/grid-editable-events.d.ts +0 -32
  384. package/dist/types/components/zd-grid-editable/grid-editable.d.ts +0 -124
  385. package/dist/types/components/zd-grid-editable/index.d.ts +0 -8
  386. package/dist/types/components/zd-grid-editable/interfaces.d.ts +0 -66
  387. package/dist/types/components/zd-grid-editable/keymap-editing.d.ts +0 -7
  388. package/dist/types/components/zd-header/header.d.ts +0 -94
  389. package/dist/types/components/zd-header/interfaces.d.ts +0 -29
  390. package/dist/types/components/zd-icon/icon.d.ts +0 -55
  391. package/dist/types/components/zd-icon/interfaces.d.ts +0 -13
  392. package/dist/types/components/zd-image/image.d.ts +0 -73
  393. package/dist/types/components/zd-image/interfaces.d.ts +0 -17
  394. package/dist/types/components/zd-increment/increment.d.ts +0 -56
  395. package/dist/types/components/zd-increment/interfaces.d.ts +0 -9
  396. package/dist/types/components/zd-input/input-factory.d.ts +0 -6
  397. package/dist/types/components/zd-input/input.d.ts +0 -223
  398. package/dist/types/components/zd-input/interfaces.d.ts +0 -38
  399. package/dist/types/components/zd-iterable/column-not-found.d.ts +0 -6
  400. package/dist/types/components/zd-iterable/column.d.ts +0 -78
  401. package/dist/types/components/zd-iterable/conditions-manager.d.ts +0 -49
  402. package/dist/types/components/zd-iterable/interfaces.d.ts +0 -103
  403. package/dist/types/components/zd-iterable/iterable-columns-button-controller.d.ts +0 -9
  404. package/dist/types/components/zd-iterable/iterable-columns-button.d.ts +0 -35
  405. package/dist/types/components/zd-iterable/iterable-controller.d.ts +0 -8
  406. package/dist/types/components/zd-iterable/iterable-page-component.d.ts +0 -27
  407. package/dist/types/components/zd-iterable/iterable-page-info.d.ts +0 -7
  408. package/dist/types/components/zd-iterable/iterable-page-size.d.ts +0 -62
  409. package/dist/types/components/zd-iterable/iterable-pagination.d.ts +0 -28
  410. package/dist/types/components/zd-iterable/iterable.d.ts +0 -86
  411. package/dist/types/components/zd-iterable/search.d.ts +0 -31
  412. package/dist/types/components/zd-iterable-component-render/interfaces.d.ts +0 -34
  413. package/dist/types/components/zd-iterable-component-render/iterable-component-render.d.ts +0 -84
  414. package/dist/types/components/zd-layout/interfaces.d.ts +0 -7
  415. package/dist/types/components/zd-layout/layout.d.ts +0 -9
  416. package/dist/types/components/zd-list/interfaces.d.ts +0 -44
  417. package/dist/types/components/zd-list/item-not-found.d.ts +0 -6
  418. package/dist/types/components/zd-list/list-group.d.ts +0 -30
  419. package/dist/types/components/zd-list/list-item.d.ts +0 -46
  420. package/dist/types/components/zd-list/list.d.ts +0 -81
  421. package/dist/types/components/zd-loading/interfaces.d.ts +0 -7
  422. package/dist/types/components/zd-loading/loading.d.ts +0 -21
  423. package/dist/types/components/zd-login/interfaces.d.ts +0 -25
  424. package/dist/types/components/zd-login/login-button.d.ts +0 -50
  425. package/dist/types/components/zd-login/login.d.ts +0 -54
  426. package/dist/types/components/zd-main/interfaces.d.ts +0 -5
  427. package/dist/types/components/zd-main/main.d.ts +0 -7
  428. package/dist/types/components/zd-master-detail/detail-not-found.d.ts +0 -7
  429. package/dist/types/components/zd-master-detail/interfaces.d.ts +0 -10
  430. package/dist/types/components/zd-master-detail/master-detail.d.ts +0 -18
  431. package/dist/types/components/zd-master-detail/master-not-found.d.ts +0 -7
  432. package/dist/types/components/zd-menu/interfaces.d.ts +0 -68
  433. package/dist/types/components/zd-menu/menu-button.d.ts +0 -29
  434. package/dist/types/components/zd-menu/menu-group.d.ts +0 -61
  435. package/dist/types/components/zd-menu/menu-link.d.ts +0 -50
  436. package/dist/types/components/zd-menu/menu-separator.d.ts +0 -7
  437. package/dist/types/components/zd-menu/menu.d.ts +0 -199
  438. package/dist/types/components/zd-modal/interfaces.d.ts +0 -35
  439. package/dist/types/components/zd-modal/modal-close-button.d.ts +0 -28
  440. package/dist/types/components/zd-modal/modal.d.ts +0 -53
  441. package/dist/types/components/zd-month/interfaces.d.ts +0 -6
  442. package/dist/types/components/zd-month/month.d.ts +0 -33
  443. package/dist/types/components/zd-number-input/interfaces.d.ts +0 -8
  444. package/dist/types/components/zd-number-input/number-input.d.ts +0 -43
  445. package/dist/types/components/zd-password/interfaces.d.ts +0 -6
  446. package/dist/types/components/zd-password/password.d.ts +0 -17
  447. package/dist/types/components/zd-progress/interfaces.d.ts +0 -10
  448. package/dist/types/components/zd-progress/progress.d.ts +0 -41
  449. package/dist/types/components/zd-radio/interfaces.d.ts +0 -11
  450. package/dist/types/components/zd-radio/radio.d.ts +0 -35
  451. package/dist/types/components/zd-row/interfaces.d.ts +0 -13
  452. package/dist/types/components/zd-row/row.d.ts +0 -39
  453. package/dist/types/components/zd-select/interfaces.d.ts +0 -24
  454. package/dist/types/components/zd-select/select.d.ts +0 -238
  455. package/dist/types/components/zd-select-multiple/interfaces.d.ts +0 -18
  456. package/dist/types/components/zd-select-multiple/select-multiple.d.ts +0 -113
  457. package/dist/types/components/zd-svg-map/interfaces.d.ts +0 -26
  458. package/dist/types/components/zd-svg-map/svg-map.d.ts +0 -35
  459. package/dist/types/components/zd-switch/interfaces.d.ts +0 -7
  460. package/dist/types/components/zd-switch/switch.d.ts +0 -16
  461. package/dist/types/components/zd-table/interfaces.d.ts +0 -25
  462. package/dist/types/components/zd-table/table.d.ts +0 -42
  463. package/dist/types/components/zd-tabs/interfaces.d.ts +0 -40
  464. package/dist/types/components/zd-tabs/tab-not-found.d.ts +0 -11
  465. package/dist/types/components/zd-tabs/tab.d.ts +0 -57
  466. package/dist/types/components/zd-tabs/tabs.d.ts +0 -86
  467. package/dist/types/components/zd-tag/interfaces.d.ts +0 -7
  468. package/dist/types/components/zd-tag/tag.d.ts +0 -13
  469. package/dist/types/components/zd-text/interfaces.d.ts +0 -9
  470. package/dist/types/components/zd-text/text.d.ts +0 -8
  471. package/dist/types/components/zd-text-input/interfaces.d.ts +0 -23
  472. package/dist/types/components/zd-text-input/text-input.d.ts +0 -91
  473. package/dist/types/components/zd-textarea/interfaces.d.ts +0 -21
  474. package/dist/types/components/zd-textarea/textarea.d.ts +0 -71
  475. package/dist/types/components/zd-time/interfaces.d.ts +0 -22
  476. package/dist/types/components/zd-time/time-format-selector.d.ts +0 -8
  477. package/dist/types/components/zd-time/time.d.ts +0 -149
  478. package/dist/types/components/zd-toggleable/interfaces.d.ts +0 -6
  479. package/dist/types/components/zd-toggleable/toggleable.d.ts +0 -21
  480. package/dist/types/components/zd-tooltip/interfaces.d.ts +0 -18
  481. package/dist/types/components/zd-tooltip/tooltip.d.ts +0 -57
  482. package/dist/types/components/zd-tree/interfaces.d.ts +0 -107
  483. package/dist/types/components/zd-tree/tree.d.ts +0 -161
  484. package/dist/types/components/zd-tree-grid/index.d.ts +0 -6
  485. package/dist/types/components/zd-tree-grid/interfaces.d.ts +0 -35
  486. package/dist/types/components/zd-tree-grid/iterable-tree.d.ts +0 -10
  487. package/dist/types/components/zd-tree-grid/keymap-tree.d.ts +0 -7
  488. package/dist/types/components/zd-tree-grid/tree-data-navigator.d.ts +0 -10
  489. package/dist/types/components/zd-tree-grid/tree-data-selector.d.ts +0 -18
  490. package/dist/types/components/zd-tree-grid/tree-grid.d.ts +0 -119
  491. package/dist/types/error/delete-rows.d.ts +0 -7
  492. package/dist/types/error/index.d.ts +0 -3
  493. package/dist/types/error/non-initialized.d.ts +0 -7
  494. package/dist/types/error/zeedhi-error.d.ts +0 -6
  495. package/dist/types/index.d.ts +0 -6
  496. package/dist/types/services/index.d.ts +0 -4
  497. package/dist/types/services/zd-alert/alert-queue.d.ts +0 -13
  498. package/dist/types/services/zd-alert/alert-replace.d.ts +0 -18
  499. package/dist/types/services/zd-alert/alert-service.d.ts +0 -45
  500. package/dist/types/services/zd-alert/alert-stack.d.ts +0 -9
  501. package/dist/types/services/zd-alert/index.d.ts +0 -5
  502. package/dist/types/services/zd-alert/interfaces.d.ts +0 -6
  503. package/dist/types/services/zd-dialog/dialog-service.d.ts +0 -24
  504. package/dist/types/services/zd-loading/loading-service.d.ts +0 -17
  505. package/dist/types/services/zd-modal/modal-service.d.ts +0 -39
  506. package/dist/types/utils/data-value-out/data-value-out.d.ts +0 -5
  507. package/dist/types/utils/data-value-out/index.d.ts +0 -2
  508. package/dist/types/utils/data-value-out/interfaces.d.ts +0 -8
  509. package/dist/types/utils/datasource-searcher/datasource-searcher.d.ts +0 -6
  510. package/dist/types/utils/datasource-searcher/index.d.ts +0 -2
  511. package/dist/types/utils/datasource-searcher/interfaces.d.ts +0 -5
  512. package/dist/types/utils/date-utils/date-utils.d.ts +0 -1
  513. package/dist/types/utils/icons/icons.d.ts +0 -24
  514. package/dist/types/utils/index.d.ts +0 -7
  515. package/dist/types/utils/omit/omit.d.ts +0 -11
  516. package/dist/types/utils/theme/theme.d.ts +0 -34
  517. package/dist/types/utils/tree-data-structure/index.d.ts +0 -2
  518. package/dist/types/utils/tree-data-structure/interfaces.d.ts +0 -30
  519. package/dist/types/utils/tree-data-structure/tree-data-structure.d.ts +0 -155
  520. package/dist/types/utils/unique-by/unique-by.d.ts +0 -3
  521. package/dist/zd-common.js +0 -13184
  522. package/dist/zd-common.min.js +0 -13184
  523. package/rollup.config.js +0 -27
  524. package/rollup.scss.config.js +0 -14
  525. package/tsconfig.build.json +0 -7
@@ -2,8 +2,9 @@ import { FormatterParserProvider, I18n, init } from '@zeedhi/core';
2
2
  import times from 'lodash.times';
3
3
  import { DateRange } from '../../../../src';
4
4
  import dayjs from 'dayjs';
5
- import utc from 'dayjs/plugin/utc';
5
+ import { mockI18n } from '../../__helpers__/mock-i18n';
6
6
 
7
+ mockI18n();
7
8
  jest.useFakeTimers();
8
9
 
9
10
  describe('DateRange', () => {
@@ -175,6 +176,7 @@ describe('DateRange', () => {
175
176
  displayFormat: 'MMMM DD, YYYY',
176
177
  inputFormat: 'DD MM YYYY',
177
178
  });
179
+ instance.focus(new Event('focus'), {});
178
180
  // set value directly
179
181
  instance.value = ['10/12/2020', '11/12/2020']; // DD/MM/YYYY
180
182
  expect(instance.value).toStrictEqual(['10/12/2020', '11/12/2020']);
@@ -207,69 +209,6 @@ describe('DateRange', () => {
207
209
  expect(instance.value).toStrictEqual(['8/12/2020', '10/12/2020']);
208
210
  });
209
211
 
210
- it('when initial mask and complex displayFormat, should behave the same when setting via value/displayValue', () => {
211
- const instance = new DateRange({
212
- name: 'date',
213
- component: 'Date',
214
- dateFormat: 'DD/MM/YYYY',
215
- displayFormat: 'MMMM DD, YYYY',
216
- mask: '## ## ####',
217
- });
218
- instance.value = ['08/12/2020', '09/12/2020']; // DD/MM/YYYY
219
- expect(instance.value).toStrictEqual(['08/12/2020', '09/12/2020']);
220
- expect(instance.displayValue).toBe('08 12 2020 ~ 09 12 2020');
221
-
222
- instance.displayValue = '09 12 2020 ~ 10 12 2020'; // DD MM YYYY
223
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
224
- expect(instance.displayValue).toBe('09 12 2020 ~ 10 12 2020');
225
-
226
- instance.blur(new Event('blur'), {});
227
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
228
- expect(instance.displayValue).toBe('December 09, 2020 ~ December 10, 2020');
229
- });
230
-
231
- it('when initial mask is defined and simple displayFormat, should use displayFormat as mask fallback', () => {
232
- const instance = new DateRange({
233
- name: 'date',
234
- component: 'Date',
235
- dateFormat: 'DD/MM/YYYY',
236
- displayFormat: 'MM/DD/YYYY',
237
- mask: '## ## ####',
238
- });
239
- instance.value = ['08/12/2020', '09/12/2020']; // DD/MM/YYYY
240
- expect(instance.value).toStrictEqual(['08/12/2020', '09/12/2020']);
241
- expect(instance.displayValue).toBe('12 08 2020 ~ 12 09 2020');
242
-
243
- instance.displayValue = '12 09 2020 ~ 12 10 2020'; // DD MM YYYY
244
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
245
- expect(instance.displayValue).toBe('12 09 2020 ~ 12 10 2020');
246
-
247
- instance.blur(new Event('blur'), {});
248
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
249
- expect(instance.displayValue).toBe('12/09/2020 ~ 12/10/2020');
250
- });
251
-
252
- it('should display value with no delimiters', () => {
253
- const instance = new DateRange({
254
- name: 'date',
255
- component: 'Date',
256
- dateFormat: 'DD/MM/YYYY',
257
- displayFormat: 'MMDDYYYY',
258
- mask: '## ## ####',
259
- });
260
- instance.value = ['08/12/2020', '09/12/2020']; // DD/MM/YYYY
261
- expect(instance.value).toStrictEqual(['08/12/2020', '09/12/2020']);
262
- expect(instance.displayValue).toBe('12 08 2020 ~ 12 09 2020');
263
-
264
- instance.displayValue = '12 09 2020 ~ 12 10 2020'; // DD MM YYYY
265
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
266
- expect(instance.displayValue).toBe('12 09 2020 ~ 12 10 2020');
267
-
268
- instance.blur(new Event('blur'), {});
269
- expect(instance.value).toStrictEqual(['09/12/2020', '10/12/2020']);
270
- expect(instance.displayValue).toBe('12092020 ~ 12102020');
271
- });
272
-
273
212
  it('should use inputFormat on focus and use displayFormat on blur', () => {
274
213
  const instance = new DateRange({
275
214
  name: 'date',
@@ -278,6 +217,7 @@ describe('DateRange', () => {
278
217
  displayFormat: 'MMMM DD, YYYY',
279
218
  inputFormat: 'MM/DD/YYYY',
280
219
  });
220
+ instance.focus(new Event('focus'), {});
281
221
  // set value directly
282
222
  instance.value = ['10/12/2020', '11/12/2020']; // DD/MM/YYYY
283
223
  expect(instance.value).toStrictEqual(['10/12/2020', '11/12/2020']);
@@ -304,6 +244,7 @@ describe('DateRange', () => {
304
244
  displayFormat: 'MMMM DD, YYYY',
305
245
  inputFormat: 'MM/DD/YYYY',
306
246
  });
247
+ instance.focus(new Event('focus'), {});
307
248
  instance.value = ['08/12/2020', '09/12/2020']; // DD/MM/YYYY
308
249
  expect(instance.value).toStrictEqual(['08/12/2020', '09/12/2020']);
309
250
  expect(instance.displayValue).toBe('12/08/2020 ~ 12/09/2020');
@@ -609,97 +550,184 @@ describe('DateRange', () => {
609
550
  expect(eventFn).toHaveBeenCalled();
610
551
  expect(instance.value).toStrictEqual([]);
611
552
  });
553
+ });
612
554
 
613
- it('should remove date mask if initial mask is set and value is valid', () => {
555
+ describe('focus()', () => {
556
+ it('should call super.focus', () => {
614
557
  const eventFn = jest.fn();
615
558
  const instance = new DateRange({
616
559
  name: 'date',
617
560
  component: 'ZdDateRange',
618
- mask: '## ## ####',
561
+ events: {
562
+ focus: eventFn,
563
+ },
619
564
  });
620
565
 
621
- instance.value = ['12 21 2020', '12 22 2020'];
622
- expect(eventFn).not.toHaveBeenCalled();
623
-
624
- instance.events = {
625
- blur: eventFn,
626
- };
627
- instance.blur(new Event('blur'), {});
628
-
566
+ const event = new Event('focus');
567
+ instance.focus(event, {});
629
568
  expect(eventFn).toHaveBeenCalled();
630
- expect(instance.mask).toBe<string>('## ## #### ~ ## ## ####');
631
569
  });
632
- });
633
570
 
634
- describe('focus()', () => {
635
- it('if initial mask and value is set, should assign initialMask to mask', () => {
636
- const eventFn = jest.fn();
571
+ it('should not update displayValue when inputFormat is not set', () => {
637
572
  const instance = new DateRange({
638
573
  name: 'date',
639
574
  component: 'ZdDateRange',
640
- mask: '## ## ####',
575
+ dateFormat: 'MM-DD-YYYY',
576
+ displayFormat: 'DD/MM/YYYY',
577
+ // No inputFormat
641
578
  });
642
579
 
643
- instance.mask = '';
644
- instance.setDateValue('02-28-2020');
580
+ instance.value = ['01-15-2020'];
581
+ const originalDisplayValue = instance.displayValue;
645
582
 
646
- expect(eventFn).not.toHaveBeenCalled();
583
+ instance.focus(new Event('focus'), {});
584
+
585
+ // Display value should not change since inputFormat is not set
586
+ expect(instance.displayValue).toBe(originalDisplayValue);
587
+ });
588
+
589
+ it('should not update displayValue when value is not set', () => {
590
+ const instance = new DateRange({
591
+ name: 'date',
592
+ component: 'ZdDateRange',
593
+ dateFormat: 'MM-DD-YYYY',
594
+ displayFormat: 'DD/MM/YYYY',
595
+ inputFormat: 'YYYY-MM-DD',
596
+ });
597
+
598
+ // No value set
599
+ instance.value = [];
600
+ const originalDisplayValue = instance.displayValue;
647
601
 
648
- instance.events = {
649
- focus: eventFn,
650
- };
651
602
  instance.focus(new Event('focus'), {});
603
+
604
+ // Display value should not change since value is not set
605
+ expect(instance.displayValue).toBe(originalDisplayValue);
606
+ });
652
607
 
653
- jest.runAllTimers();
608
+ it('should not update displayValue when first date is invalid', () => {
609
+ const instance = new DateRange({
610
+ name: 'date',
611
+ component: 'ZdDateRange',
612
+ dateFormat: 'MM-DD-YYYY',
613
+ displayFormat: 'DD/MM/YYYY',
614
+ inputFormat: 'YYYY-MM-DD',
615
+ });
654
616
 
655
- expect(eventFn).toHaveBeenCalled();
617
+ // Set invalid first date
618
+ instance.value = ['invalid-date'];
619
+ const originalDisplayValue = instance.displayValue;
656
620
 
657
- expect(instance.mask).toBe('## ## #### ~ ## ## ####');
621
+ instance.focus(new Event('focus'), {});
622
+
623
+ // Display value should not change since first date is invalid
624
+ expect(instance.displayValue).toBe(originalDisplayValue);
658
625
  });
659
626
 
660
- it('should change displayValue', () => {
627
+ it('should not update displayValue when second date is invalid', () => {
661
628
  const instance = new DateRange({
662
629
  name: 'date',
663
630
  component: 'ZdDateRange',
664
- mask: '## ## ####',
631
+ dateFormat: 'MM-DD-YYYY',
632
+ displayFormat: 'DD/MM/YYYY',
633
+ inputFormat: 'YYYY-MM-DD',
665
634
  });
666
635
 
667
- instance.value = [];
636
+ // Set valid first date but invalid second date
637
+ instance.value = ['01-15-2020', 'invalid-date'];
638
+ const originalDisplayValue = instance.displayValue;
639
+
668
640
  instance.focus(new Event('focus'), {});
669
- jest.runAllTimers();
670
- expect(instance.displayValue).toBe('');
641
+
642
+ // Display value should not change since second date is invalid
643
+ expect(instance.displayValue).toBe(originalDisplayValue);
644
+ });
645
+
646
+ it('should update displayValue with only first date when second date is not present', () => {
647
+ const instance = new DateRange({
648
+ name: 'date',
649
+ component: 'ZdDateRange',
650
+ dateFormat: 'MM-DD-YYYY',
651
+ displayFormat: 'DD/MM/YYYY',
652
+ inputFormat: 'YYYY-MM-DD',
653
+ });
654
+
655
+ instance.value = ['01-15-2020'];
671
656
 
672
- instance.value = ['01-01-2022'];
673
657
  instance.focus(new Event('focus'), {});
674
- jest.runAllTimers();
675
- expect(instance.displayValue).toBe('01-01-2022');
658
+
659
+ // Display value should be formatted with inputFormat (only first date)
660
+ expect(instance.displayValue).toBe('2020-01-15');
661
+ });
662
+
663
+ it('should update displayValue with both dates when both are present', () => {
664
+ const instance = new DateRange({
665
+ name: 'date',
666
+ component: 'ZdDateRange',
667
+ dateFormat: 'MM-DD-YYYY',
668
+ displayFormat: 'DD/MM/YYYY',
669
+ inputFormat: 'YYYY-MM-DD',
670
+ });
671
+
672
+ instance.value = ['01-15-2020', '01-20-2020'];
676
673
 
677
- instance.value = ['01-01-2022', '02-02-2022'];
678
674
  instance.focus(new Event('focus'), {});
679
- jest.runAllTimers();
680
- expect(instance.displayValue).toBe('01-01-2022 ~ 02-02-2022');
675
+
676
+ // Display value should be formatted with inputFormat (both dates)
677
+ expect(instance.displayValue).toBe('2020-01-15 ~ 2020-01-20');
681
678
  });
682
679
 
683
- it('if initial mask or value is not set, should not assign initialMask to mask', () => {
684
- const eventFn = jest.fn();
680
+ it('should use displayFormat as fallback when inputFormat is set but format is needed', () => {
685
681
  const instance = new DateRange({
686
682
  name: 'date',
687
683
  component: 'ZdDateRange',
684
+ dateFormat: 'MM-DD-YYYY',
688
685
  displayFormat: 'DD/MM/YYYY',
686
+ inputFormat: 'YYYY-MM-DD',
689
687
  });
690
688
 
691
- instance.setDateValue('21-12-2020');
689
+ instance.value = ['01-15-2020', '01-20-2020'];
692
690
 
693
- expect(eventFn).not.toHaveBeenCalled();
691
+ instance.focus(new Event('focus'), {});
692
+
693
+ // The format used should be inputFormat (since it's set)
694
+ expect(instance.displayValue).toBe('2020-01-15 ~ 2020-01-20');
695
+ });
696
+
697
+ it('should handle empty second value in array', () => {
698
+ const instance = new DateRange({
699
+ name: 'date',
700
+ component: 'ZdDateRange',
701
+ dateFormat: 'MM-DD-YYYY',
702
+ displayFormat: 'DD/MM/YYYY',
703
+ inputFormat: 'YYYY-MM-DD',
704
+ });
705
+
706
+ // First date is set, second is empty string
707
+ instance.value = ['01-15-2020', ''];
694
708
 
695
- instance.events = {
696
- focus: eventFn,
697
- };
698
709
  instance.focus(new Event('focus'), {});
710
+
711
+ // Display value should show only first date
712
+ expect(instance.displayValue).toBe('2020-01-15');
713
+ });
699
714
 
700
- expect(eventFn).toHaveBeenCalled();
701
- expect(instance.updateMask()).toBe<string>('##/##/#### ~ ##/##/####');
702
- expect(instance.mask).toBe<string>('##/##/#### ~ ##/##/####');
715
+ it('should preserve splitter character when updating displayValue', () => {
716
+ const instance = new DateRange({
717
+ name: 'date',
718
+ component: 'ZdDateRange',
719
+ dateFormat: 'MM-DD-YYYY',
720
+ displayFormat: 'DD/MM/YYYY',
721
+ inputFormat: 'YYYY-MM-DD',
722
+ splitter: ' <-> ',
723
+ });
724
+
725
+ instance.value = ['01-15-2020', '01-20-2020'];
726
+
727
+ instance.focus(new Event('focus'), {});
728
+
729
+ // Display value should use custom splitter
730
+ expect(instance.displayValue).toBe('2020-01-15 <-> 2020-01-20');
703
731
  });
704
732
  });
705
733
 
@@ -721,9 +749,12 @@ describe('DateRange', () => {
721
749
  });
722
750
 
723
751
  describe('FormatterParserProvider', () => {
752
+ const formatterFn = FormatterParserProvider.getFormatter('ZdDateRange');
753
+ const parserFn = FormatterParserProvider.getParser('ZdDateRange');
754
+
724
755
  it('should return formatter function', () => {
725
- const formatterFn = FormatterParserProvider.getFormatter('ZdDateRange');
726
756
  expect(formatterFn).toBeInstanceOf(Function);
757
+ expect(parserFn).toBeInstanceOf(Function);
727
758
  });
728
759
 
729
760
  it('should format date', () => {
@@ -748,66 +779,12 @@ describe('DateRange', () => {
748
779
  expect(formatted).toBe('20/12');
749
780
  });
750
781
 
751
- it('when value is valid and mask is set, should get masked value', () => {
752
- const formatterFn = FormatterParserProvider.getFormatter('ZdDateRange');
753
-
754
- const formatted = formatterFn(['20/12/2020'], {
755
- dateFormat: 'DD/MM/YYYY',
756
- displayFormat: 'YYYY-MM-DD',
757
- mask: '##/##/#### ~ ##/##/####',
758
- initialMask: '##/##/#### ~ ##/##/####',
759
- unitMask: '##/##/####',
760
- splitter: ' ~ ',
761
- });
762
-
763
- expect(formatted).toBe('20/12/2020');
764
- });
765
-
766
782
  it('should return parser function', () => {
767
783
  const parserFn = FormatterParserProvider.getParser('ZdDateRange');
768
784
  expect(parserFn).toBeInstanceOf(Function);
769
785
  });
770
786
 
771
- it('when formatted value is masked, should remove mask and parse using displayFormat mask', () => {
772
- const instance = new DateRange({
773
- name: 'datePicker',
774
- component: 'ZdDateRange',
775
- dateFormat: 'DD/MM/YYYY',
776
- displayFormat: 'YYYY-MM-DD',
777
- mask: '####/##/##',
778
- });
779
- const parsed = instance.parser('2019/12/20');
780
-
781
- expect(parsed).toStrictEqual(['20/12/2019']);
782
- });
783
-
784
- it('when formatted value is masked and can\'t be masked using displayFmt mask, should parse using dateFmt mask', () => {
785
- const instance = new DateRange({
786
- name: 'datePicker',
787
- component: 'ZdDateRange',
788
- dateFormat: 'DD/MM/YYYY',
789
- displayFormat: 'YYYY MMMM, Do',
790
- mask: '##-##-####',
791
- });
792
- const parsed = instance.parser('20-12-2019');
793
-
794
- expect(parsed).toStrictEqual(['20/12/2019']);
795
- });
796
-
797
- it('when formatted value is masked and can\'t use neither displayFmt or dateFmt mask, should not parse', () => {
798
- const parserFn = FormatterParserProvider.getParser('ZdDateRange');
799
-
800
- const parsed = parserFn('20-12-2019', {
801
- dateFormat: 'Do/MM/YYYY',
802
- displayFormat: 'YYYY MMMM, Do',
803
- mask: '##-##-####',
804
- });
805
-
806
- expect(parsed).toStrictEqual(['20-12-2019']);
807
- });
808
-
809
787
  it('should parse date', () => {
810
- const parserFn = FormatterParserProvider.getParser('ZdDateRange');
811
788
  expect(parserFn('12-20-2019')).toStrictEqual(['12-20-2019']);
812
789
  expect(parserFn('20-12-2019')).toStrictEqual(['20-12-2019']);
813
790
  expect(parserFn('aaa')).toStrictEqual(['aaa']);
@@ -820,6 +797,15 @@ describe('DateRange', () => {
820
797
  dateFormat: 'DD/MM/YYYY',
821
798
  displayFormat: 'YYYY-MM-DD',
822
799
  })).toStrictEqual(['20/12/2019']);
800
+ expect(parserFn('06-06-2019 ~ ')).toStrictEqual(['06-06-2019']);
801
+ });
802
+
803
+ it('when value is not following inputFormat, should not parse it', () => {
804
+ expect(parserFn('December 06, 2020', { inputFormat: 'DD MM YYYY', isFocused: true })).toEqual(['December 06, 2020'])
805
+ });
806
+
807
+ it('when value is invalid, should not parse it', () => {
808
+ expect(parserFn('99 99 9999', { inputFormat: 'DD MM YYYY', isFocused: true })).toEqual(['99 99 9999'])
823
809
  });
824
810
  });
825
811
 
@@ -870,98 +856,8 @@ describe('DateRange', () => {
870
856
  });
871
857
  });
872
858
 
873
- describe('updateMask', () => {
874
- it('should not change mask when initial mask is empty string', () => {
875
- const date = new DateRange({
876
- name: 'date',
877
- component: 'ZdDateRange',
878
- mask: '',
879
- });
880
-
881
- expect(date.mask).toEqual('');
882
- expect(date.updateMask()).toEqual('');
883
- });
884
-
885
- it('when no mask is set, should get mask based on displayFormat', () => {
886
- const date = new DateRange({
887
- name: 'date',
888
- component: 'ZdDateRange',
889
- displayFormat: 'DD MM YYYY',
890
- });
891
-
892
- expect(date.updateMask()).toBe('## ## #### ~ ## ## ####');
893
- expect(date.mask).toBe('## ## #### ~ ## ## ####');
894
- });
895
-
896
- it('when initial mask is undefined but mask is set, should get mask based on displayFormat', () => {
897
- const date = new DateRange({
898
- name: 'date',
899
- component: 'ZdDateRange',
900
- displayFormat: 'DD MM YYYY',
901
- });
902
-
903
- date.mask = '#';
904
-
905
- expect(date.updateMask()).toBe('## ## #### ~ ## ## ####');
906
- expect(date.mask).toBe('## ## #### ~ ## ## ####');
907
- });
908
-
909
- it('when initial mask is set, should not get mask based on displayFormat', () => {
910
- const date = new DateRange({
911
- name: 'date',
912
- component: 'ZdDateRange',
913
- mask: '##-##-####',
914
- displayFormat: 'DD MM YYYY',
915
- });
916
-
917
- expect(date.updateMask()).toBe('##-##-#### ~ ##-##-####');
918
- expect(date.mask).toBe('##-##-#### ~ ##-##-####');
919
- });
920
-
921
- it('when initial mask is set and value is valid, should not remove masks', () => {
922
- const date = new DateRange({
923
- name: 'date',
924
- component: 'ZdDateRange',
925
- dateFormat: 'DD/MM/YYYY',
926
- mask: '##-##-####',
927
- displayFormat: 'DD MM YYYY',
928
- });
929
-
930
- expect(date.updateMask()).toBe('##-##-#### ~ ##-##-####');
931
- expect(date.mask).toBe('##-##-#### ~ ##-##-####');
932
-
933
- date.value = ['17/11/2020'];
934
-
935
- expect(date.updateMask()).toBe('##-##-#### ~ ##-##-####');
936
- expect(date.mask).toBe('##-##-#### ~ ##-##-####');
937
- });
938
-
939
- it('when initial mask is set and value is set but invalid, should not change mask', () => {
940
- const date = new DateRange({
941
- name: 'date',
942
- component: 'ZdDateRange',
943
- dateFormat: 'DD/MM/YYYY',
944
- mask: '##-##-####',
945
- displayFormat: 'DD MM YYYY',
946
- });
947
-
948
- expect(date.updateMask()).toBe('##-##-#### ~ ##-##-####');
949
- expect(date.mask).toBe('##-##-#### ~ ##-##-####');
950
-
951
- date.value = ['17/11'];
952
-
953
- expect(date.updateMask()).toBe('##-##-#### ~ ##-##-####');
954
- expect(date.mask).toBe('##-##-#### ~ ##-##-####');
955
- });
956
- });
957
-
958
859
  describe('updateHelperHint', () => {
959
- beforeEach(() => {
960
- I18n.init({});
961
- });
962
-
963
860
  it('should update hint for CURRENT_WEEK', () => {
964
- I18n.instance.language = 'pt-BR'; // simula português
965
861
  const instance = new DateRange({
966
862
  name: 'date',
967
863
  component: 'ZdDateRange',
@@ -970,7 +866,7 @@ describe('DateRange', () => {
970
866
  });
971
867
 
972
868
  instance.updateHelperHint('CURRENT_WEEK');
973
- expect(instance.hint).toBe('Semana Atual');
869
+ expect(instance.hint).toBe('DATE_HELPERVALUE_CURRENT_WEEK');
974
870
  expect(instance.persistentHint).toBeTruthy();
975
871
 
976
872
  instance.change();
@@ -979,7 +875,6 @@ describe('DateRange', () => {
979
875
  });
980
876
 
981
877
  it('should update hint for CURRENT_MONTH', () => {
982
- I18n.instance.language = 'pt-BR'; // simula português
983
878
  const instance = new DateRange({
984
879
  name: 'date',
985
880
  component: 'ZdDateRange',
@@ -988,7 +883,7 @@ describe('DateRange', () => {
988
883
  });
989
884
 
990
885
  instance.updateHelperHint('CURRENT_MONTH');
991
- expect(instance.hint).toBe('Mês Atual');
886
+ expect(instance.hint).toBe('DATE_HELPERVALUE_CURRENT_MONTH');
992
887
  expect(instance.persistentHint).toBeTruthy();
993
888
  });
994
889
 
@@ -1006,286 +901,288 @@ describe('DateRange', () => {
1006
901
  });
1007
902
  });
1008
903
 
1009
- describe('getMaskValue', () => {
1010
- it('should return mask', () => {
1011
- const instance = new DateRange({
1012
- name: 'datePicker',
1013
- component: 'ZdDateRange',
1014
- dateFormat: 'DD/MM/YYYY',
1015
- displayFormat: 'YYYY-MM-DD',
1016
- mask: '####/##/##',
1017
- });
904
+ describe('DateRange Tests', () => {
905
+ let dateInput: DateRange;
1018
906
 
1019
- const maskValue = instance.getMaskValue();
1020
- expect(maskValue.length).toBe(23);
1021
- expect(maskValue[0]).toEqual(/\d/);
907
+ beforeEach(() => {
908
+ dateInput = new DateRange({ name: 'date', component: 'DateInput' });
909
+ });
1022
910
 
1023
- instance.mask = () => '##/##/## ~ ##/##/##';
1024
- const maskValue2 = instance.getMaskValue();
1025
- expect(maskValue2.length).toBe(19);
1026
- expect(maskValue2[0]).toEqual('#');
911
+ describe('setNativeDate', () => {
912
+ it('should handle one date', () => {
913
+ const testDate = new Date(2025, 0, 15);
914
+ dateInput.dateFormat = 'YYYY-MM-DD';
915
+ dateInput.displayFormat = 'DD/MM/YYYY';
916
+ dateInput.setNativeDate([testDate]);
1027
917
 
1028
- instance.value = ['01/01/2022', '02/02/2022'];
1029
- const maskValue21 = instance.getMaskValue();
1030
- expect(maskValue21.length).toBe(19);
1031
- expect(maskValue21[0]).toEqual('#');
918
+ expect(dateInput.value).toEqual(['2025-01-15']);
919
+ expect(dateInput.displayValue).toBe('15/01/2025');
920
+ });
1032
921
 
1033
- instance.mask = '';
1034
- const maskValue3 = instance.getMaskValue();
1035
- expect(maskValue3.length).toBe(0);
922
+ it('should handle two dates', () => {
923
+ const start = new Date(2025, 0, 1);
924
+ const end = new Date(2025, 0, 5);
925
+ dateInput.dateFormat = 'YYYY-MM-DD';
926
+ dateInput.displayFormat = 'DD/MM/YYYY';
927
+ dateInput.setNativeDate([start, end]);
1036
928
 
1037
- instance.mask = [/\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/, ' ~ ', /\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/];
1038
- const maskValue4 = instance.getMaskValue();
1039
- expect(maskValue4.length).toBe(17);
1040
- });
1041
- });
929
+ expect(dateInput.value).toEqual(['2025-01-01', '2025-01-05']);
930
+ expect(dateInput.displayValue).toBe('01/01/2025 ~ 05/01/2025');
931
+ });
1042
932
 
1043
- describe('DateRange Tests', () => {
1044
- let dateInput: DateRange;
933
+ it('should handle more than two dates, using extremities', () => {
934
+ const start = new Date(2025, 0, 1);
935
+ const middle = new Date(2025, 0, 3);
936
+ const end = new Date(2025, 0, 5);
937
+ dateInput.dateFormat = 'YYYY-MM-DD';
938
+ dateInput.displayFormat = 'DD/MM/YYYY';
939
+ dateInput.setNativeDate([start, middle, end]);
1045
940
 
1046
- beforeEach(() => {
1047
- dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1048
- });
941
+ expect(dateInput.value).toEqual(['2025-01-01', '2025-01-05']);
942
+ });
1049
943
 
1050
- describe('setNativeDate', () => {
1051
- it('should handle one date', () => {
1052
- const testDate = new Date(2025, 0, 15);
1053
- dateInput.dateFormat = 'YYYY-MM-DD';
1054
- dateInput.displayFormat = 'DD/MM/YYYY';
1055
- dateInput.setNativeDate([testDate]);
944
+ it('should handle an empty array', () => {
945
+ dateInput.value = ['2024-12-31'];
946
+ dateInput.setNativeDate([]);
947
+ expect(dateInput.value).toEqual([]);
948
+ });
1056
949
 
1057
- expect(dateInput.value).toEqual(['2025-01-15']);
1058
- expect(dateInput.displayValue).toBe('15/01/2025');
1059
- });
950
+ it('should handle a single date without an end date', () => {
951
+ const start = new Date(2025, 0, 1);
952
+ dateInput.dateFormat = 'YYYY-MM-DD';
953
+ dateInput.displayFormat = 'DD/MM/YYYY';
954
+ dateInput.allowedDates = (date) => date === '2025-01-01';
1060
955
 
1061
- it('should handle two dates', () => {
1062
- const start = new Date(2025, 0, 1);
1063
- const end = new Date(2025, 0, 5);
1064
- dateInput.dateFormat = 'YYYY-MM-DD';
1065
- dateInput.displayFormat = 'DD/MM/YYYY';
1066
- dateInput.setNativeDate([start, end]);
956
+ dateInput.setNativeDate([start]);
1067
957
 
1068
- expect(dateInput.value).toEqual(['2025-01-01', '2025-01-05']);
1069
- expect(dateInput.displayValue).toBe('01/01/2025 ~ 05/01/2025');
1070
- });
958
+ expect(dateInput.value).toEqual(['2025-01-01']);
959
+ });
1071
960
 
1072
- it('should handle more than two dates, using extremities', () => {
1073
- const start = new Date(2025, 0, 1);
1074
- const middle = new Date(2025, 0, 3);
1075
- const end = new Date(2025, 0, 5);
1076
- dateInput.dateFormat = 'YYYY-MM-DD';
1077
- dateInput.displayFormat = 'DD/MM/YYYY';
1078
- dateInput.setNativeDate([start, middle, end]);
961
+ it('should not set date if any date in range is not allowed', () => {
962
+ const start = new Date(2025, 0, 1);
963
+ const end = new Date(2025, 0, 5);
964
+ dateInput.dateFormat = 'YYYY-MM-DD';
965
+ dateInput.displayFormat = 'DD/MM/YYYY';
966
+ dateInput.allowedDates = (date) => date !== '2025-01-03';
1079
967
 
1080
- expect(dateInput.value).toEqual(['2025-01-01', '2025-01-05']);
1081
- });
968
+ dateInput.value = ['2024-12-31'];
969
+ dateInput.setNativeDate([start, end]);
1082
970
 
1083
- it('should handle an empty array', () => {
1084
- dateInput.value = ['2024-12-31'];
1085
- dateInput.setNativeDate([]);
1086
- expect(dateInput.value).toEqual([]);
1087
- });
971
+ // Value should not change
972
+ expect(dateInput.value).toEqual(['2024-12-31']);
973
+ });
1088
974
 
1089
- it('should handle a single date without an end date', () => {
1090
- const start = new Date(2025, 0, 1);
1091
- dateInput.dateFormat = 'YYYY-MM-DD';
1092
- dateInput.displayFormat = 'DD/MM/YYYY';
1093
- dateInput.allowedDates = (date) => date === '2025-01-01';
975
+ it('should handle null or undefined dates to cover fallback', () => {
976
+ dateInput.value = ['2025-01-01'];
1094
977
 
1095
- dateInput.setNativeDate([start]);
978
+ // Test with null to cover `(dates || [])`
979
+ dateInput.setNativeDate(null as any);
980
+ expect(dateInput.value).toEqual([]);
1096
981
 
1097
- expect(dateInput.value).toEqual(['2025-01-01']);
982
+ // Reset and test with undefined
983
+ dateInput.value = ['2025-01-01'];
984
+ dateInput.setNativeDate(undefined as any);
985
+ expect(dateInput.value).toEqual([]);
986
+ });
1098
987
  });
1099
988
 
1100
- it('should not set date if any date in range is not allowed', () => {
1101
- const start = new Date(2025, 0, 1);
1102
- const end = new Date(2025, 0, 5);
1103
- dateInput.dateFormat = 'YYYY-MM-DD';
1104
- dateInput.displayFormat = 'DD/MM/YYYY';
1105
- dateInput.allowedDates = (date) => date !== '2025-01-03';
989
+ describe('getNativeDate', () => {
990
+ it('should return Date objects array for set value', () => {
991
+ const testDate = new Date(2025, 4, 22);
992
+ dateInput.dateFormat = 'YYYY-MM-DD';
993
+ dateInput.setNativeDate([testDate]);
1106
994
 
1107
- dateInput.value = ['2024-12-31'];
1108
- dateInput.setNativeDate([start, end]);
995
+ const nativeDates = dateInput.getNativeDate();
996
+ expect(nativeDates[0]).toEqual(testDate);
997
+ });
1109
998
 
1110
- // Value should not change
1111
- expect(dateInput.value).toEqual(['2024-12-31']);
999
+ it('should return empty array when no value is set', () => {
1000
+ dateInput.value = '';
1001
+ const nativeDates = dateInput.getNativeDate();
1002
+ expect(nativeDates).toEqual([]);
1003
+ });
1112
1004
  });
1113
1005
 
1114
- it('should handle null or undefined dates to cover fallback', () => {
1115
- dateInput.value = ['2025-01-01'];
1006
+ describe('getAllowedDates', () => {
1007
+ it('should return true if allowedDates is not set', () => {
1008
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1009
+ expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1010
+ });
1116
1011
 
1117
- // Test with null to cover `(dates || [])`
1118
- dateInput.setNativeDate(null as any);
1119
- expect(dateInput.value).toEqual([]);
1012
+ it('should return false if allowedDates is an empty array', () => {
1013
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange', allowedDates: [] });
1014
+ expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(false);
1015
+ });
1120
1016
 
1121
- // Reset and test with undefined
1122
- dateInput.value = ['2025-01-01'];
1123
- dateInput.setNativeDate(undefined as any);
1124
- expect(dateInput.value).toEqual([]);
1017
+ it('should return true for allowed date with function', () => {
1018
+ const instance = new DateRange({
1019
+ name: 'date',
1020
+ component: 'ZdDateRange',
1021
+ dateFormat: 'YYYY-MM-DD',
1022
+ allowedDates: (date) => date === '2025-01-01',
1023
+ });
1024
+ expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1025
+ expect(instance.getAllowedDates(new Date(2025, 0, 2))).toBe(false);
1026
+ });
1027
+
1028
+ it('should return true for allowed date with array', () => {
1029
+ const instance = new DateRange({
1030
+ name: 'date',
1031
+ component: 'ZdDateRange',
1032
+ dateFormat: 'YYYY-MM-DD',
1033
+ allowedDates: ['2025-01-01'],
1034
+ });
1035
+ expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1036
+ expect(instance.getAllowedDates(new Date(2025, 0, 2))).toBe(false);
1037
+ });
1125
1038
  });
1126
1039
  });
1127
1040
 
1128
- describe('getNativeDate', () => {
1129
- it('should return Date objects array for set value', () => {
1130
- const testDate = new Date(2025, 4, 22);
1131
- dateInput.dateFormat = 'YYYY-MM-DD';
1132
- dateInput.setNativeDate([testDate]);
1041
+ describe('DateRange edge cases', () => {
1042
+ let dateInput: DateRange;
1133
1043
 
1134
- const nativeDates = dateInput.getNativeDate();
1135
- expect(nativeDates[0]).toEqual(testDate);
1044
+ beforeEach(() => {
1045
+ dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1136
1046
  });
1137
1047
 
1138
- it('should return empty array when no value is set', () => {
1139
- dateInput.value = '';
1140
- const nativeDates = dateInput.getNativeDate();
1141
- expect(nativeDates).toEqual([]);
1048
+ it('should handle empty array and set value to empty', () => {
1049
+ dateInput.setNativeDate([]);
1050
+ expect(dateInput.value).toEqual([]);
1142
1051
  });
1143
1052
  });
1144
1053
 
1145
- describe('getAllowedDates', () => {
1146
- it('should return true if allowedDates is not set', () => {
1147
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1148
- expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1149
- });
1054
+ describe('DateRange getExtremities coverage', () => {
1055
+ it('should cover empty array case in getExtremities by setting value', () => {
1056
+ const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1057
+ dateInput.value = ['2025-01-01']; // Define um valor inicial
1150
1058
 
1151
- it('should return false if allowedDates is an empty array', () => {
1152
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange', allowedDates: [] });
1153
- expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(false);
1154
- });
1059
+ // Atribuir um array vazio ao 'value' aciona o setter,
1060
+ // que indiretamente causa a chamada de 'getExtremities' com um array vazio.
1061
+ dateInput.value = [];
1155
1062
 
1156
- it('should return true for allowed date with function', () => {
1157
- const instance = new DateRange({
1158
- name: 'date',
1159
- component: 'ZdDateRange',
1160
- dateFormat: 'YYYY-MM-DD',
1161
- allowedDates: (date) => date === '2025-01-01',
1162
- });
1163
- expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1164
- expect(instance.getAllowedDates(new Date(2025, 0, 2))).toBe(false);
1063
+ expect(dateInput.value).toEqual([]);
1165
1064
  });
1065
+ });
1166
1066
 
1167
- it('should return true for allowed date with array', () => {
1168
- const instance = new DateRange({
1067
+ describe('DateRange map format line 494 coverage', () => {
1068
+ it('should format dates and handle nulls internally', () => {
1069
+ const dateInput = new DateRange({
1169
1070
  name: 'date',
1170
- component: 'ZdDateRange',
1071
+ component: 'DateInput',
1171
1072
  dateFormat: 'YYYY-MM-DD',
1172
- allowedDates: ['2025-01-01'],
1173
1073
  });
1174
- expect(instance.getAllowedDates(new Date(2025, 0, 1))).toBe(true);
1175
- expect(instance.getAllowedDates(new Date(2025, 0, 2))).toBe(false);
1176
- });
1177
- });
1178
- });
1179
1074
 
1180
- describe('DateRange edge cases', () => {
1181
- let dateInput: DateRange;
1182
-
1183
- beforeEach(() => {
1184
- dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1185
- });
1186
-
1187
- it('should handle empty array and set value to empty', () => {
1188
- dateInput.setNativeDate([]);
1189
- expect(dateInput.value).toEqual([]);
1190
- });
1191
- });
1192
-
1193
- dayjs.extend(utc);
1075
+ const start = new Date(2025, 0, 1);
1076
+ const end = new Date(2025, 0, 5);
1194
1077
 
1195
- describe('DateRange getExtremities coverage', () => {
1196
- it('should cover empty array case in getExtremities by setting value', () => {
1197
- const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1198
- dateInput.value = ['2025-01-01']; // Define um valor inicial
1078
+ // Simula dateObject interno com null no meio
1079
+ (dateInput as any).dateObject = [dayjs(start), null, dayjs(end)];
1199
1080
 
1200
- // Atribuir um array vazio ao 'value' aciona o setter,
1201
- // que indiretamente causa a chamada de 'getExtremities' com um array vazio.
1202
- dateInput.value = [];
1081
+ const formatted = (dateInput as any).dateObject.map(
1082
+ (obj: any) => obj?.format('YYYY-MM-DD') || ''
1083
+ );
1203
1084
 
1204
- expect(dateInput.value).toEqual([]);
1085
+ expect(formatted).toEqual([
1086
+ dayjs(start).format('YYYY-MM-DD'),
1087
+ '',
1088
+ dayjs(end).format('YYYY-MM-DD'),
1089
+ ]);
1090
+ });
1205
1091
  });
1206
- });
1207
1092
 
1208
- describe('DateRange map format line 494 coverage', () => {
1209
- it('should format dates and handle nulls internally', () => {
1210
- const dateInput = new DateRange({
1211
- name: 'date',
1212
- component: 'DateInput',
1213
- dateFormat: 'YYYY-MM-DD',
1093
+ describe('DateRange.getNativeDate', () => {
1094
+ it('should return formatted dates for valid dayjs objects', () => {
1095
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1096
+ const dayjsArray = [dayjs('2025-01-01'), dayjs('2025-01-05')];
1097
+ (instance as any).dateObject = dayjsArray;
1098
+ const nativeDates = dayjsArray.map((date) => date.toDate());
1099
+ expect(instance.getNativeDate()).toEqual(nativeDates);
1214
1100
  });
1215
1101
 
1216
- const start = new Date(2025, 0, 1);
1217
- const end = new Date(2025, 0, 5);
1218
-
1219
- // Simula dateObject interno com null no meio
1220
- (dateInput as any).dateObject = [dayjs(start), null, dayjs(end)];
1102
+ it('should skip null values', () => {
1103
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1104
+ const dayjsArray = [dayjs('2025-01-01'), null, dayjs('2025-01-05')];
1105
+ (instance as any).dateObject = dayjsArray;
1106
+ const nativeDates = dayjsArray.filter((date) => (date !== null)).map((date) => date!.toDate());
1107
+ expect(instance.getNativeDate()).toEqual(nativeDates);
1108
+ });
1221
1109
 
1222
- const formatted = (dateInput as any).dateObject.map(
1223
- (obj: any) => obj?.format('YYYY-MM-DD') || ''
1224
- );
1110
+ it('should return empty array if all values are null', () => {
1111
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1112
+ (instance as any).dateObject = [null, null];
1113
+ expect(instance.getNativeDate()).toEqual([]);
1114
+ });
1225
1115
 
1226
- expect(formatted).toEqual([
1227
- dayjs(start).format('YYYY-MM-DD'),
1228
- '',
1229
- dayjs(end).format('YYYY-MM-DD'),
1230
- ]);
1116
+ it('should return empty array if dateObject is empty', () => {
1117
+ const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1118
+ (instance as any).dateObject = [];
1119
+ expect(instance.getNativeDate()).toEqual([]);
1120
+ });
1231
1121
  });
1232
- });
1233
1122
 
1234
- describe('DateRange.getNativeDate', () => {
1235
- it('should return formatted dates for valid dayjs objects', () => {
1236
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1237
- const dayjsArray = [dayjs('2025-01-01'), dayjs('2025-01-05')];
1238
- (instance as any).dateObject = dayjsArray;
1239
- const nativeDates = dayjsArray.map((date) => date.toDate());
1240
- expect(instance.getNativeDate()).toEqual(nativeDates);
1241
- });
1123
+ describe('DateRange value setter edge cases', () => {
1124
+ it('should handle null and undefined values correctly', () => {
1125
+ const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1126
+ dateInput.value = ['2025-01-01'];
1242
1127
 
1243
- it('should skip null values', () => {
1244
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1245
- const dayjsArray = [dayjs('2025-01-01'), null, dayjs('2025-01-05')];
1246
- (instance as any).dateObject = dayjsArray;
1247
- const nativeDates = dayjsArray.filter((date) => (date !== null)).map((date) => date.toDate());
1248
- expect(instance.getNativeDate()).toEqual(nativeDates);
1249
- });
1128
+ dateInput.value = null;
1129
+ expect(dateInput.value).toEqual([]);
1250
1130
 
1251
- it('should return empty array if all values are null', () => {
1252
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1253
- (instance as any).dateObject = [null, null];
1254
- expect(instance.getNativeDate()).toEqual([]);
1131
+ dateInput.value = undefined;
1132
+ expect(dateInput.value).toEqual([]);
1133
+ });
1255
1134
  });
1256
1135
 
1257
- it('should return empty array if dateObject is empty', () => {
1258
- const instance = new DateRange({ name: 'date', component: 'ZdDateRange' });
1259
- (instance as any).dateObject = [];
1260
- expect(instance.getNativeDate()).toEqual([]);
1136
+ describe('DateRange getExtremities coverage', () => {
1137
+ it('should cover empty array case in getExtremities by setting value to empty array', () => {
1138
+ const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1139
+ // Define um valor inicial para garantir que a mudança seja detectada
1140
+ dateInput.value = ['2025-01-01'];
1141
+
1142
+ // Atribui um array vazio diretamente ao 'value'.
1143
+ // Isso aciona o setter que define 'dateObject' como [], cobrindo o caso de borda em 'getExtremities'.
1144
+ dateInput.value = [];
1145
+
1146
+ expect(dateInput.value).toEqual([]);
1147
+ });
1261
1148
  });
1262
- });
1263
1149
 
1264
- describe('DateRange value setter edge cases', () => {
1265
- it('should handle null and undefined values correctly', () => {
1266
- const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1267
- dateInput.value = ['2025-01-01'];
1150
+ describe('getMask()', () => {
1151
+ let dateRangeInstance!: DateRange;
1268
1152
 
1269
- dateInput.value = null;
1270
- expect(dateInput.value).toEqual([]);
1153
+ beforeEach(() => {
1154
+ dateRangeInstance = new DateRange({
1155
+ name: 'date-range',
1156
+ component: 'DateRange',
1157
+ });
1158
+ });
1271
1159
 
1272
- dateInput.value = undefined;
1273
- expect(dateInput.value).toEqual([]);
1274
- });
1275
- });
1160
+ it('should return an empty string if isFocused is false, regardless of format properties', () => {
1161
+ dateRangeInstance.isFocused = false;
1162
+ dateRangeInstance.inputFormat = 'YYYY-MM-DD';
1163
+ dateRangeInstance.displayFormat = 'DD/MM/YYYY';
1164
+ expect(dateRangeInstance.getMask()).toBe('');
1165
+ });
1276
1166
 
1277
- describe('DateRange getExtremities coverage', () => {
1278
- it('should cover empty array case in getExtremities by setting value to empty array', () => {
1279
- const dateInput = new DateRange({ name: 'date', component: 'DateInput' });
1280
- // Define um valor inicial para garantir que a mudança seja detectada
1281
- dateInput.value = ['2025-01-01'];
1167
+ it('when isFocused is true, should return masked inputFormat if inputFormat is a non-empty string', () => {
1168
+ dateRangeInstance.isFocused = true;
1169
+ dateRangeInstance.inputFormat = 'YYYY-MM-DD';
1170
+ dateRangeInstance.displayFormat = 'MM/DD/YY'; // This should be ignored
1171
+ expect(dateRangeInstance.getMask()).toBe('####-##-## ~ ####-##-##');
1172
+ });
1282
1173
 
1283
- // Atribui um array vazio diretamente ao 'value'.
1284
- // Isso aciona o setter que define 'dateObject' como [], cobrindo o caso de borda em 'getExtremities'.
1285
- dateInput.value = [];
1174
+ it('when isFocused is true, should return masked displayFormat if inputFormat is undefined and displayFormat is a non-empty string', () => {
1175
+ dateRangeInstance.isFocused = true;
1176
+ dateRangeInstance.inputFormat = undefined;
1177
+ dateRangeInstance.displayFormat = 'DD.MM.YYYY';
1178
+ expect(dateRangeInstance.getMask()).toBe('##.##.#### ~ ##.##.####');
1179
+ });
1286
1180
 
1287
- expect(dateInput.value).toEqual([]);
1181
+ it('when isFocused is true, should return an empty string if both inputFormat and displayFormat are undefined', () => {
1182
+ dateRangeInstance.isFocused = true;
1183
+ dateRangeInstance.inputFormat = undefined;
1184
+ dateRangeInstance.displayFormat = '';
1185
+ expect(dateRangeInstance.getMask()).toBe('');
1186
+ });
1288
1187
  });
1289
1188
  });
1290
-
1291
- });