@zeedhi/common 1.111.1 → 3.0.0

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 (1104) hide show
  1. package/coverage/clover.xml +5996 -0
  2. package/coverage/coverage-final.json +160 -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 +1256 -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 +196 -0
  11. package/coverage/lcov-report/src/components/index.html +116 -0
  12. package/coverage/lcov-report/src/components/index.ts.html +634 -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 +430 -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 +358 -0
  61. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +116 -0
  62. package/coverage/lcov-report/src/components/zd-code-editor/code-editor.ts.html +1045 -0
  63. package/coverage/lcov-report/src/components/zd-code-editor/index.html +116 -0
  64. package/coverage/lcov-report/src/components/zd-code-viewer/code-viewer.ts.html +682 -0
  65. package/coverage/lcov-report/src/components/zd-code-viewer/index.html +116 -0
  66. package/coverage/lcov-report/src/components/zd-col/col.ts.html +250 -0
  67. package/coverage/lcov-report/src/components/zd-col/index.html +116 -0
  68. package/coverage/lcov-report/src/components/zd-collapse-card/collapse-card.ts.html +331 -0
  69. package/coverage/lcov-report/src/components/zd-collapse-card/index.html +116 -0
  70. package/coverage/lcov-report/src/components/zd-component/child-not-found.ts.html +109 -0
  71. package/coverage/lcov-report/src/components/zd-component/component-render.ts.html +160 -0
  72. package/coverage/lcov-report/src/components/zd-component/component.ts.html +1036 -0
  73. package/coverage/lcov-report/src/components/zd-component/index.html +146 -0
  74. package/coverage/lcov-report/src/components/zd-container/container.ts.html +289 -0
  75. package/coverage/lcov-report/src/components/zd-container/index.html +116 -0
  76. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +1765 -0
  77. package/coverage/lcov-report/src/components/zd-date-input/index.html +116 -0
  78. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +541 -0
  79. package/coverage/lcov-report/src/components/zd-dialog/index.html +116 -0
  80. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +178 -0
  81. package/coverage/lcov-report/src/components/zd-divider/index.html +116 -0
  82. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +460 -0
  83. package/coverage/lcov-report/src/components/zd-dropdown/index.html +116 -0
  84. package/coverage/lcov-report/src/components/zd-field-group/field-group.ts.html +325 -0
  85. package/coverage/lcov-report/src/components/zd-field-group/index.html +116 -0
  86. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +451 -0
  87. package/coverage/lcov-report/src/components/zd-footer/index.html +116 -0
  88. package/coverage/lcov-report/src/components/zd-form/form.ts.html +805 -0
  89. package/coverage/lcov-report/src/components/zd-form/index.html +116 -0
  90. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +763 -0
  91. package/coverage/lcov-report/src/components/zd-frame/index.html +116 -0
  92. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +169 -0
  93. package/coverage/lcov-report/src/components/zd-frame-page/index.html +116 -0
  94. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +304 -0
  95. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +532 -0
  96. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +709 -0
  97. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +244 -0
  98. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +1042 -0
  99. package/coverage/lcov-report/src/components/zd-grid/index.html +266 -0
  100. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +118 -0
  101. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +274 -0
  102. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +241 -0
  103. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +313 -0
  104. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +427 -0
  105. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +175 -0
  106. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +826 -0
  107. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +1570 -0
  108. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +146 -0
  109. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +91 -0
  110. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +109 -0
  111. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +109 -0
  112. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +130 -0
  113. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +139 -0
  114. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +430 -0
  115. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +1477 -0
  116. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +221 -0
  117. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +106 -0
  118. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +139 -0
  119. package/coverage/lcov-report/src/components/zd-header/header.ts.html +502 -0
  120. package/coverage/lcov-report/src/components/zd-header/index.html +116 -0
  121. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +325 -0
  122. package/coverage/lcov-report/src/components/zd-icon/index.html +116 -0
  123. package/coverage/lcov-report/src/components/zd-image/image.ts.html +424 -0
  124. package/coverage/lcov-report/src/components/zd-image/index.html +116 -0
  125. package/coverage/lcov-report/src/components/zd-input/index.html +131 -0
  126. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +130 -0
  127. package/coverage/lcov-report/src/components/zd-input/input.ts.html +1333 -0
  128. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +109 -0
  129. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +823 -0
  130. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +523 -0
  131. package/coverage/lcov-report/src/components/zd-iterable/index.html +281 -0
  132. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +136 -0
  133. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +313 -0
  134. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +166 -0
  135. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +244 -0
  136. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +106 -0
  137. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +421 -0
  138. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +208 -0
  139. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +820 -0
  140. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +343 -0
  141. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +116 -0
  142. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +592 -0
  143. package/coverage/lcov-report/src/components/zd-layout/index.html +116 -0
  144. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +145 -0
  145. package/coverage/lcov-report/src/components/zd-list/index.html +161 -0
  146. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +109 -0
  147. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +241 -0
  148. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +298 -0
  149. package/coverage/lcov-report/src/components/zd-list/list.ts.html +460 -0
  150. package/coverage/lcov-report/src/components/zd-loading/index.html +116 -0
  151. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +217 -0
  152. package/coverage/lcov-report/src/components/zd-login/index.html +131 -0
  153. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +421 -0
  154. package/coverage/lcov-report/src/components/zd-login/login.ts.html +340 -0
  155. package/coverage/lcov-report/src/components/zd-main/index.html +116 -0
  156. package/coverage/lcov-report/src/components/zd-main/main.ts.html +133 -0
  157. package/coverage/lcov-report/src/components/zd-menu/index.html +176 -0
  158. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +241 -0
  159. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +400 -0
  160. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +337 -0
  161. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +106 -0
  162. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +1384 -0
  163. package/coverage/lcov-report/src/components/zd-modal/index.html +131 -0
  164. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +220 -0
  165. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +355 -0
  166. package/coverage/lcov-report/src/components/zd-number-input/index.html +116 -0
  167. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +532 -0
  168. package/coverage/lcov-report/src/components/zd-password/index.html +116 -0
  169. package/coverage/lcov-report/src/components/zd-password/password.ts.html +220 -0
  170. package/coverage/lcov-report/src/components/zd-radio/index.html +116 -0
  171. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +289 -0
  172. package/coverage/lcov-report/src/components/zd-row/index.html +116 -0
  173. package/coverage/lcov-report/src/components/zd-row/row.ts.html +256 -0
  174. package/coverage/lcov-report/src/components/zd-select/index.html +116 -0
  175. package/coverage/lcov-report/src/components/zd-select/select.ts.html +2089 -0
  176. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +116 -0
  177. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +1549 -0
  178. package/coverage/lcov-report/src/components/zd-switch/index.html +116 -0
  179. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +163 -0
  180. package/coverage/lcov-report/src/components/zd-table/index.html +116 -0
  181. package/coverage/lcov-report/src/components/zd-table/table.ts.html +280 -0
  182. package/coverage/lcov-report/src/components/zd-tabs/index.html +146 -0
  183. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +127 -0
  184. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +370 -0
  185. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +586 -0
  186. package/coverage/lcov-report/src/components/zd-tag/index.html +116 -0
  187. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +142 -0
  188. package/coverage/lcov-report/src/components/zd-text/index.html +116 -0
  189. package/coverage/lcov-report/src/components/zd-text/text.ts.html +136 -0
  190. package/coverage/lcov-report/src/components/zd-text-input/index.html +116 -0
  191. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +769 -0
  192. package/coverage/lcov-report/src/components/zd-textarea/index.html +116 -0
  193. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +418 -0
  194. package/coverage/lcov-report/src/components/zd-toggleable/index.html +116 -0
  195. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +196 -0
  196. package/coverage/lcov-report/src/components/zd-tooltip/index.html +116 -0
  197. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +340 -0
  198. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +191 -0
  199. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +103 -0
  200. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +202 -0
  201. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +154 -0
  202. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +235 -0
  203. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +448 -0
  204. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +1390 -0
  205. package/coverage/lcov-report/src/error/delete-rows.ts.html +124 -0
  206. package/coverage/lcov-report/src/error/index.html +176 -0
  207. package/coverage/lcov-report/src/error/non-initialized.ts.html +118 -0
  208. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +130 -0
  209. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +109 -0
  210. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +109 -0
  211. package/coverage/lcov-report/src/index.html +116 -0
  212. package/coverage/lcov-report/src/index.ts.html +163 -0
  213. package/coverage/lcov-report/src/services/index.html +116 -0
  214. package/coverage/lcov-report/src/services/index.ts.html +97 -0
  215. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +205 -0
  216. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +220 -0
  217. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +316 -0
  218. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +172 -0
  219. package/coverage/lcov-report/src/services/zd-alert/index.html +176 -0
  220. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +100 -0
  221. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +205 -0
  222. package/coverage/lcov-report/src/services/zd-dialog/index.html +116 -0
  223. package/coverage/lcov-report/src/services/zd-loading/index.html +116 -0
  224. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +157 -0
  225. package/coverage/lcov-report/src/services/zd-modal/index.html +116 -0
  226. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +298 -0
  227. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +202 -0
  228. package/coverage/lcov-report/src/utils/data-value-out/index.html +131 -0
  229. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +91 -0
  230. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +241 -0
  231. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +131 -0
  232. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +91 -0
  233. package/coverage/lcov-report/src/utils/icons/icons.ts.html +547 -0
  234. package/coverage/lcov-report/src/utils/icons/index.html +116 -0
  235. package/coverage/lcov-report/src/utils/index.html +131 -0
  236. package/coverage/lcov-report/src/utils/index.ts.html +115 -0
  237. package/coverage/lcov-report/src/utils/is-filled-object/index.html +116 -0
  238. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +100 -0
  239. package/coverage/lcov-report/src/utils/is-nil.ts.html +94 -0
  240. package/coverage/lcov-report/src/utils/omit/index.html +116 -0
  241. package/coverage/lcov-report/src/utils/omit/omit.ts.html +124 -0
  242. package/coverage/lcov-report/src/utils/theme/index.html +116 -0
  243. package/coverage/lcov-report/src/utils/theme/theme.ts.html +679 -0
  244. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +131 -0
  245. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +91 -0
  246. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +1642 -0
  247. package/coverage/lcov-report/src/utils/unique-by/index.html +116 -0
  248. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +130 -0
  249. package/coverage/lcov-report/tests/unit/__helpers__/component-event-helper.ts.html +106 -0
  250. package/coverage/lcov-report/tests/unit/__helpers__/flush-promises-helper.ts.html +94 -0
  251. package/coverage/lcov-report/tests/unit/__helpers__/index.html +146 -0
  252. package/coverage/lcov-report/tests/unit/__helpers__/mock-http-get-helper.ts.html +172 -0
  253. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +166 -0
  254. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +116 -0
  255. package/coverage/lcov.info +10874 -0
  256. package/dist/style.css +1 -1
  257. package/dist/types/components/index.d.ts +150 -0
  258. package/dist/types/components/tek-breadcrumb-header/breadcrumb-header.d.ts +14 -0
  259. package/dist/types/components/tek-breadcrumb-header/interfaces.d.ts +7 -0
  260. package/dist/types/components/tek-grid/columns-searcher.d.ts +5 -0
  261. package/dist/types/components/tek-grid/dynamic-filter-datasource-factory.d.ts +6 -0
  262. package/dist/types/components/tek-grid/filter-helper.d.ts +7 -0
  263. package/dist/types/components/tek-grid/grid-filter-button.d.ts +27 -0
  264. package/dist/types/components/tek-grid/grouped-data-manager.d.ts +82 -0
  265. package/dist/types/components/tek-grid/grouped-data-selector.d.ts +7 -0
  266. package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +14 -0
  267. package/dist/types/components/tek-grid/index.d.ts +18 -0
  268. package/dist/types/components/tek-grid/interfaces.d.ts +259 -0
  269. package/dist/types/components/tek-grid/keymap-grouped.d.ts +7 -0
  270. package/dist/types/components/tek-grid/layout-options.d.ts +39 -0
  271. package/dist/types/components/tek-grid/tek-datasource/index.d.ts +3 -0
  272. package/dist/types/components/tek-grid/tek-datasource/interfaces.d.ts +16 -0
  273. package/dist/types/components/tek-grid/tek-datasource/tek-memory-datasource.d.ts +93 -0
  274. package/dist/types/components/tek-grid/tek-datasource/tek-rest-datasource.d.ts +95 -0
  275. package/dist/types/components/tek-grid/tek-grid-column.d.ts +42 -0
  276. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.d.ts +8 -0
  277. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.d.ts +12 -0
  278. package/dist/types/components/tek-grid/tek-grid-controller.d.ts +31 -0
  279. package/dist/types/components/tek-grid/tek-grid-events.d.ts +31 -0
  280. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.d.ts +17 -0
  281. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/index.d.ts +3 -0
  282. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.d.ts +5 -0
  283. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.d.ts +12 -0
  284. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/index.d.ts +2 -0
  285. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +23 -0
  286. package/dist/types/components/tek-grid/tek-grid.d.ts +220 -0
  287. package/dist/types/components/zd-alert/alert.d.ts +94 -0
  288. package/dist/types/components/zd-alert/interfaces.d.ts +18 -0
  289. package/dist/types/components/zd-badge/badge.d.ts +28 -0
  290. package/dist/types/components/zd-badge/interfaces.d.ts +10 -0
  291. package/dist/types/components/zd-breadcrumbs/breadcrumbs.d.ts +32 -0
  292. package/dist/types/components/zd-breadcrumbs/interfaces.d.ts +24 -0
  293. package/dist/types/components/zd-button/button.d.ts +89 -0
  294. package/dist/types/components/zd-button/interfaces.d.ts +48 -0
  295. package/dist/types/components/zd-button-group/button-group.d.ts +67 -0
  296. package/dist/types/components/zd-button-group/interfaces.d.ts +25 -0
  297. package/dist/types/components/zd-card/card.d.ts +152 -0
  298. package/dist/types/components/zd-card/interfaces.d.ts +40 -0
  299. package/dist/types/components/zd-carousel/carousel.d.ts +163 -0
  300. package/dist/types/components/zd-carousel/interfaces.d.ts +49 -0
  301. package/dist/types/components/zd-checkbox/checkbox.d.ts +12 -0
  302. package/dist/types/components/zd-checkbox/interfaces.d.ts +5 -0
  303. package/dist/types/components/zd-checkbox-multiple/checkbox-multiple.d.ts +39 -0
  304. package/dist/types/components/zd-checkbox-multiple/interfaces.d.ts +13 -0
  305. package/dist/types/components/zd-chip/chip.d.ts +60 -0
  306. package/dist/types/components/zd-chip/interfaces.d.ts +18 -0
  307. package/dist/types/components/zd-code-viewer/code-viewer.d.ts +86 -0
  308. package/dist/types/components/zd-code-viewer/interfaces.d.ts +13 -0
  309. package/dist/types/components/zd-col/col.d.ts +33 -0
  310. package/dist/types/components/zd-col/interfaces.d.ts +15 -0
  311. package/dist/types/components/zd-collapse-card/collapse-card.d.ts +56 -0
  312. package/dist/types/components/zd-collapse-card/interfaces.d.ts +14 -0
  313. package/dist/types/components/zd-component/child-not-found.d.ts +6 -0
  314. package/dist/types/components/zd-component/component-render.d.ts +16 -0
  315. package/dist/types/components/zd-component/component.d.ts +120 -0
  316. package/dist/types/components/zd-component/interfaces.d.ts +74 -0
  317. package/dist/types/components/zd-container/container.d.ts +45 -0
  318. package/dist/types/components/zd-container/interfaces.d.ts +12 -0
  319. package/dist/types/components/zd-currency/currency.d.ts +12 -0
  320. package/dist/types/components/zd-currency/interfaces.d.ts +6 -0
  321. package/dist/types/components/zd-date-input/date-input.d.ts +151 -0
  322. package/dist/types/components/zd-date-input/interfaces.d.ts +27 -0
  323. package/dist/types/components/zd-dialog/dialog.d.ts +76 -0
  324. package/dist/types/components/zd-dialog/interfaces.d.ts +13 -0
  325. package/dist/types/components/zd-divider/divider.d.ts +20 -0
  326. package/dist/types/components/zd-divider/interfaces.d.ts +8 -0
  327. package/dist/types/components/zd-dropdown/dropdown.d.ts +81 -0
  328. package/dist/types/components/zd-dropdown/interfaces.d.ts +23 -0
  329. package/dist/types/components/zd-field-group/field-group.d.ts +53 -0
  330. package/dist/types/components/zd-field-group/interfaces.d.ts +16 -0
  331. package/dist/types/components/zd-footer/footer.d.ts +80 -0
  332. package/dist/types/components/zd-footer/interfaces.d.ts +26 -0
  333. package/dist/types/components/zd-form/form.d.ts +159 -0
  334. package/dist/types/components/zd-form/interfaces.d.ts +33 -0
  335. package/dist/types/components/zd-frame/frame.d.ts +81 -0
  336. package/dist/types/components/zd-frame/interfaces.d.ts +23 -0
  337. package/dist/types/components/zd-frame-page/frame-page.d.ts +14 -0
  338. package/dist/types/components/zd-frame-page/interfaces.d.ts +4 -0
  339. package/dist/types/components/zd-grid/data-navigator.d.ts +12 -0
  340. package/dist/types/components/zd-grid/data-selector.d.ts +25 -0
  341. package/dist/types/components/zd-grid/grid-column.d.ts +47 -0
  342. package/dist/types/components/zd-grid/grid-events.d.ts +26 -0
  343. package/dist/types/components/zd-grid/grid.d.ts +85 -0
  344. package/dist/types/components/zd-grid/index.d.ts +11 -0
  345. package/dist/types/components/zd-grid/interfaces.d.ts +148 -0
  346. package/dist/types/components/zd-grid/iterable-table.d.ts +28 -0
  347. package/dist/types/components/zd-grid/keymap-merger.d.ts +26 -0
  348. package/dist/types/components/zd-grid/keymap-navigation.d.ts +6 -0
  349. package/dist/types/components/zd-grid/table-action-builder.d.ts +19 -0
  350. package/dist/types/components/zd-grid/view-navigator.d.ts +10 -0
  351. package/dist/types/components/zd-grid-editable/data-editor-with-add.d.ts +35 -0
  352. package/dist/types/components/zd-grid-editable/data-editor.d.ts +64 -0
  353. package/dist/types/components/zd-grid-editable/errors/index.d.ts +2 -0
  354. package/dist/types/components/zd-grid-editable/errors/not-editing.d.ts +6 -0
  355. package/dist/types/components/zd-grid-editable/errors/row-not-found.d.ts +6 -0
  356. package/dist/types/components/zd-grid-editable/grid-column-editable.d.ts +9 -0
  357. package/dist/types/components/zd-grid-editable/grid-editable-controller.d.ts +8 -0
  358. package/dist/types/components/zd-grid-editable/grid-editable-events.d.ts +32 -0
  359. package/dist/types/components/zd-grid-editable/grid-editable.d.ts +124 -0
  360. package/dist/types/components/zd-grid-editable/index.d.ts +7 -0
  361. package/dist/types/components/zd-grid-editable/interfaces.d.ts +66 -0
  362. package/dist/types/components/zd-grid-editable/keymap-editing.d.ts +7 -0
  363. package/dist/types/components/zd-header/header.d.ts +94 -0
  364. package/dist/types/components/zd-header/interfaces.d.ts +29 -0
  365. package/dist/types/components/zd-icon/icon.d.ts +55 -0
  366. package/dist/types/components/zd-icon/interfaces.d.ts +13 -0
  367. package/dist/types/components/zd-image/image.d.ts +73 -0
  368. package/dist/types/components/zd-image/interfaces.d.ts +17 -0
  369. package/dist/types/components/zd-increment/increment.d.ts +56 -0
  370. package/dist/types/components/zd-increment/interfaces.d.ts +9 -0
  371. package/dist/types/components/zd-input/input-factory.d.ts +6 -0
  372. package/dist/types/components/zd-input/input.d.ts +221 -0
  373. package/dist/types/components/zd-input/interfaces.d.ts +36 -0
  374. package/dist/types/components/zd-iterable/column-not-found.d.ts +6 -0
  375. package/dist/types/components/zd-iterable/column.d.ts +78 -0
  376. package/dist/types/components/zd-iterable/conditions-manager.d.ts +49 -0
  377. package/dist/types/components/zd-iterable/interfaces.d.ts +103 -0
  378. package/dist/types/components/zd-iterable/iterable-columns-button-controller.d.ts +9 -0
  379. package/dist/types/components/zd-iterable/iterable-columns-button.d.ts +35 -0
  380. package/dist/types/components/zd-iterable/iterable-controller.d.ts +8 -0
  381. package/dist/types/components/zd-iterable/iterable-page-component.d.ts +27 -0
  382. package/dist/types/components/zd-iterable/iterable-page-info.d.ts +7 -0
  383. package/dist/types/components/zd-iterable/iterable-page-size.d.ts +62 -0
  384. package/dist/types/components/zd-iterable/iterable-pagination.d.ts +28 -0
  385. package/dist/types/components/zd-iterable/iterable.d.ts +77 -0
  386. package/dist/types/components/zd-iterable/search.d.ts +31 -0
  387. package/dist/types/components/zd-iterable-component-render/interfaces.d.ts +34 -0
  388. package/dist/types/components/zd-iterable-component-render/iterable-component-render.d.ts +84 -0
  389. package/dist/types/components/zd-layout/interfaces.d.ts +7 -0
  390. package/dist/types/components/zd-layout/layout.d.ts +9 -0
  391. package/dist/types/components/zd-list/interfaces.d.ts +44 -0
  392. package/dist/types/components/zd-list/item-not-found.d.ts +6 -0
  393. package/dist/types/components/zd-list/list-group.d.ts +30 -0
  394. package/dist/types/components/zd-list/list-item.d.ts +46 -0
  395. package/dist/types/components/zd-list/list.d.ts +81 -0
  396. package/dist/types/components/zd-loading/interfaces.d.ts +7 -0
  397. package/dist/types/components/zd-loading/loading.d.ts +21 -0
  398. package/dist/types/components/zd-login/interfaces.d.ts +25 -0
  399. package/dist/types/components/zd-login/login-button.d.ts +50 -0
  400. package/dist/types/components/zd-login/login.d.ts +54 -0
  401. package/dist/types/components/zd-main/interfaces.d.ts +5 -0
  402. package/dist/types/components/zd-main/main.d.ts +7 -0
  403. package/dist/types/components/zd-master-detail/detail-not-found.d.ts +7 -0
  404. package/dist/types/components/zd-master-detail/interfaces.d.ts +10 -0
  405. package/dist/types/components/zd-master-detail/master-detail.d.ts +18 -0
  406. package/dist/types/components/zd-master-detail/master-not-found.d.ts +7 -0
  407. package/dist/types/components/zd-menu/interfaces.d.ts +68 -0
  408. package/dist/types/components/zd-menu/menu-button.d.ts +29 -0
  409. package/dist/types/components/zd-menu/menu-group.d.ts +61 -0
  410. package/dist/types/components/zd-menu/menu-link.d.ts +50 -0
  411. package/dist/types/components/zd-menu/menu-separator.d.ts +7 -0
  412. package/dist/types/components/zd-menu/menu.d.ts +199 -0
  413. package/dist/types/components/zd-modal/interfaces.d.ts +35 -0
  414. package/dist/types/components/zd-modal/modal-close-button.d.ts +28 -0
  415. package/dist/types/components/zd-modal/modal.d.ts +53 -0
  416. package/dist/types/components/zd-month/interfaces.d.ts +6 -0
  417. package/dist/types/components/zd-month/month.d.ts +33 -0
  418. package/dist/types/components/zd-number/interfaces.d.ts +8 -0
  419. package/dist/types/components/zd-number/number.d.ts +43 -0
  420. package/dist/types/components/zd-number-input/interfaces.d.ts +8 -0
  421. package/dist/types/components/zd-number-input/number-input.d.ts +43 -0
  422. package/dist/types/components/zd-password/interfaces.d.ts +6 -0
  423. package/dist/types/components/zd-password/password.d.ts +17 -0
  424. package/dist/types/components/zd-progress/interfaces.d.ts +10 -0
  425. package/dist/types/components/zd-progress/progress.d.ts +41 -0
  426. package/dist/types/components/zd-radio/interfaces.d.ts +11 -0
  427. package/dist/types/components/zd-radio/radio.d.ts +35 -0
  428. package/dist/types/components/zd-row/interfaces.d.ts +13 -0
  429. package/dist/types/components/zd-row/row.d.ts +39 -0
  430. package/dist/types/components/zd-select/interfaces.d.ts +24 -0
  431. package/dist/types/components/zd-select/select.d.ts +238 -0
  432. package/dist/types/components/zd-select-multiple/interfaces.d.ts +18 -0
  433. package/dist/types/components/zd-select-multiple/select-multiple.d.ts +113 -0
  434. package/dist/types/components/zd-svg-map/interfaces.d.ts +26 -0
  435. package/dist/types/components/zd-svg-map/svg-map.d.ts +35 -0
  436. package/dist/types/components/zd-switch/interfaces.d.ts +7 -0
  437. package/dist/types/components/zd-switch/switch.d.ts +16 -0
  438. package/dist/types/components/zd-table/interfaces.d.ts +25 -0
  439. package/dist/types/components/zd-table/table.d.ts +42 -0
  440. package/dist/types/components/zd-tabs/interfaces.d.ts +40 -0
  441. package/dist/types/components/zd-tabs/tab-not-found.d.ts +11 -0
  442. package/dist/types/components/zd-tabs/tab.d.ts +57 -0
  443. package/dist/types/components/zd-tabs/tabs.d.ts +86 -0
  444. package/dist/types/components/zd-tag/interfaces.d.ts +7 -0
  445. package/dist/types/components/zd-tag/tag.d.ts +13 -0
  446. package/dist/types/components/zd-text/interfaces.d.ts +9 -0
  447. package/dist/types/components/zd-text/text.d.ts +8 -0
  448. package/dist/types/components/zd-text-input/interfaces.d.ts +22 -0
  449. package/dist/types/components/zd-text-input/text-input.d.ts +90 -0
  450. package/dist/types/components/zd-textarea/interfaces.d.ts +21 -0
  451. package/dist/types/components/zd-textarea/textarea.d.ts +71 -0
  452. package/dist/types/components/zd-time/interfaces.d.ts +22 -0
  453. package/dist/types/components/zd-time/time-format-selector.d.ts +8 -0
  454. package/dist/types/components/zd-time/time.d.ts +148 -0
  455. package/dist/types/components/zd-toggleable/interfaces.d.ts +6 -0
  456. package/dist/types/components/zd-toggleable/toggleable.d.ts +21 -0
  457. package/dist/types/components/zd-tooltip/interfaces.d.ts +18 -0
  458. package/dist/types/components/zd-tooltip/tooltip.d.ts +57 -0
  459. package/dist/types/components/zd-tree/interfaces.d.ts +107 -0
  460. package/dist/types/components/zd-tree/tree.d.ts +161 -0
  461. package/dist/types/components/zd-tree-grid/index.d.ts +6 -0
  462. package/dist/types/components/zd-tree-grid/interfaces.d.ts +35 -0
  463. package/dist/types/components/zd-tree-grid/iterable-tree.d.ts +10 -0
  464. package/dist/types/components/zd-tree-grid/keymap-tree.d.ts +7 -0
  465. package/dist/types/components/zd-tree-grid/tree-data-navigator.d.ts +10 -0
  466. package/dist/types/components/zd-tree-grid/tree-data-selector.d.ts +18 -0
  467. package/dist/types/components/zd-tree-grid/tree-grid.d.ts +119 -0
  468. package/dist/types/error/delete-rows.d.ts +7 -0
  469. package/dist/types/error/index.d.ts +2 -0
  470. package/dist/types/error/non-initialized.d.ts +7 -0
  471. package/dist/types/error/tek-grid-delete-rows.d.ts +7 -0
  472. package/dist/types/error/teknisa-common-error.d.ts +6 -0
  473. package/dist/types/error/zeedhi-error.d.ts +6 -0
  474. package/dist/types/index.d.ts +5 -0
  475. package/dist/types/services/index.d.ts +4 -0
  476. package/dist/types/services/zd-alert/alert-queue.d.ts +13 -0
  477. package/dist/types/services/zd-alert/alert-replace.d.ts +18 -0
  478. package/dist/types/services/zd-alert/alert-service.d.ts +45 -0
  479. package/dist/types/services/zd-alert/alert-stack.d.ts +9 -0
  480. package/dist/types/services/zd-alert/index.d.ts +5 -0
  481. package/dist/types/services/zd-alert/interfaces.d.ts +6 -0
  482. package/dist/types/services/zd-dialog/dialog-service.d.ts +24 -0
  483. package/dist/types/services/zd-loading/loading-service.d.ts +17 -0
  484. package/dist/types/services/zd-modal/modal-service.d.ts +39 -0
  485. package/dist/types/utils/config/config.d.ts +7 -0
  486. package/dist/types/utils/data-value-out/data-value-out.d.ts +5 -0
  487. package/dist/types/utils/data-value-out/index.d.ts +2 -0
  488. package/dist/types/utils/data-value-out/interfaces.d.ts +8 -0
  489. package/dist/types/utils/datasource-searcher/datasource-searcher.d.ts +6 -0
  490. package/dist/types/utils/datasource-searcher/index.d.ts +2 -0
  491. package/dist/types/utils/datasource-searcher/interfaces.d.ts +5 -0
  492. package/dist/types/utils/icons/icons.d.ts +24 -0
  493. package/dist/types/utils/index.d.ts +10 -0
  494. package/dist/types/utils/is-filled-object/is-filled-object.d.ts +2 -0
  495. package/dist/types/utils/is-nil.d.ts +1 -0
  496. package/dist/types/utils/omit/omit.d.ts +11 -0
  497. package/dist/types/utils/theme/theme.d.ts +34 -0
  498. package/dist/types/utils/tree-data-structure/index.d.ts +2 -0
  499. package/dist/types/utils/tree-data-structure/interfaces.d.ts +30 -0
  500. package/dist/types/utils/tree-data-structure/tree-data-structure.d.ts +155 -0
  501. package/dist/types/utils/unique-by/unique-by.d.ts +3 -0
  502. package/dist/zd-common.js +15769 -0
  503. package/dist/zd-common.min.js +15769 -0
  504. package/jest.config.cjs +10 -0
  505. package/package.json +27 -28
  506. package/rollup.config.js +27 -0
  507. package/rollup.scss.config.js +10 -10
  508. package/src/components/index.ts +215 -0
  509. package/src/components/tek-grid/columns-searcher.ts +22 -0
  510. package/src/components/tek-grid/dynamic-filter-datasource-factory.ts +20 -0
  511. package/src/components/tek-grid/filter-helper.ts +20 -0
  512. package/src/components/tek-grid/grid-filter-button.ts +422 -0
  513. package/src/components/tek-grid/grouped-data-manager.ts +448 -0
  514. package/src/components/tek-grid/grouped-data-selector.ts +40 -0
  515. package/src/components/tek-grid/grouped-view-navigator.ts +85 -0
  516. package/src/components/tek-grid/index.ts +18 -0
  517. package/src/components/tek-grid/interfaces.ts +329 -0
  518. package/src/components/tek-grid/keymap-grouped.ts +21 -0
  519. package/src/components/tek-grid/layout-options.ts +248 -0
  520. package/src/components/tek-grid/tek-datasource/index.ts +3 -0
  521. package/src/components/tek-grid/tek-datasource/interfaces.ts +36 -0
  522. package/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts +314 -0
  523. package/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts +224 -0
  524. package/src/components/tek-grid/tek-grid-column.ts +193 -0
  525. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts +28 -0
  526. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts +37 -0
  527. package/src/components/tek-grid/tek-grid-controller.ts +140 -0
  528. package/src/components/tek-grid/tek-grid-events.ts +105 -0
  529. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts +26 -0
  530. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts +3 -0
  531. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.ts +6 -0
  532. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts +85 -0
  533. package/src/components/tek-grid/tek-grid-toolbar-provider/index.ts +2 -0
  534. package/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts +367 -0
  535. package/src/components/tek-grid/tek-grid.ts +1122 -0
  536. package/src/components/zd-alert/alert.ts +139 -0
  537. package/src/components/zd-alert/interfaces.ts +19 -0
  538. package/src/components/zd-badge/badge.ts +47 -0
  539. package/src/components/zd-badge/interfaces.ts +12 -0
  540. package/src/components/zd-breadcrumbs/breadcrumbs.ts +47 -0
  541. package/src/components/zd-breadcrumbs/interfaces.ts +27 -0
  542. package/src/components/zd-button/button.ts +207 -0
  543. package/src/components/zd-button/interfaces.ts +51 -0
  544. package/src/components/zd-button-group/button-group.ts +109 -0
  545. package/src/components/zd-button-group/interfaces.ts +27 -0
  546. package/src/components/zd-card/card.ts +221 -0
  547. package/src/components/zd-card/interfaces.ts +63 -0
  548. package/src/components/zd-carousel/carousel.ts +288 -0
  549. package/src/components/zd-carousel/interfaces.ts +53 -0
  550. package/src/components/zd-checkbox/checkbox.ts +21 -0
  551. package/src/components/zd-checkbox/interfaces.ts +7 -0
  552. package/src/components/zd-checkbox-multiple/checkbox-multiple.ts +76 -0
  553. package/src/components/zd-checkbox-multiple/interfaces.ts +15 -0
  554. package/src/components/zd-chip/chip.ts +89 -0
  555. package/src/components/zd-chip/interfaces.ts +20 -0
  556. package/src/components/zd-code-viewer/code-viewer.ts +199 -0
  557. package/src/components/zd-code-viewer/interfaces.ts +14 -0
  558. package/src/components/zd-col/col.ts +55 -0
  559. package/src/components/zd-col/interfaces.ts +17 -0
  560. package/src/components/zd-collapse-card/collapse-card.ts +86 -0
  561. package/src/components/zd-collapse-card/interfaces.ts +15 -0
  562. package/src/components/zd-component/child-not-found.ts +8 -0
  563. package/src/components/zd-component/component-render.ts +25 -0
  564. package/src/components/zd-component/component.ts +333 -0
  565. package/src/components/zd-component/interfaces.ts +79 -0
  566. package/src/components/zd-container/container.ts +68 -0
  567. package/src/components/zd-container/interfaces.ts +13 -0
  568. package/src/components/zd-currency/currency.ts +58 -0
  569. package/src/components/zd-currency/interfaces.ts +7 -0
  570. package/src/components/zd-date-input/date-input.ts +565 -0
  571. package/src/components/zd-date-input/interfaces.ts +30 -0
  572. package/src/components/zd-dialog/dialog.ts +152 -0
  573. package/src/components/zd-dialog/interfaces.ts +14 -0
  574. package/src/components/zd-divider/divider.ts +31 -0
  575. package/src/components/zd-divider/interfaces.ts +10 -0
  576. package/src/components/zd-dropdown/dropdown.ts +125 -0
  577. package/src/components/zd-dropdown/interfaces.ts +25 -0
  578. package/src/components/zd-footer/footer.ts +122 -0
  579. package/src/components/zd-footer/interfaces.ts +28 -0
  580. package/src/components/zd-form/form.ts +240 -0
  581. package/src/components/zd-form/interfaces.ts +38 -0
  582. package/src/components/zd-frame/frame.ts +226 -0
  583. package/src/components/zd-frame/interfaces.ts +26 -0
  584. package/src/components/zd-frame-page/frame-page.ts +28 -0
  585. package/src/components/zd-frame-page/interfaces.ts +5 -0
  586. package/src/components/zd-grid/data-navigator.ts +73 -0
  587. package/src/components/zd-grid/data-selector.ts +149 -0
  588. package/src/components/zd-grid/grid-column.ts +208 -0
  589. package/src/components/zd-grid/grid-events.ts +53 -0
  590. package/src/components/zd-grid/grid.ts +319 -0
  591. package/src/components/zd-grid/index.ts +11 -0
  592. package/src/components/zd-grid/interfaces.ts +159 -0
  593. package/src/components/zd-grid/iterable-table.ts +63 -0
  594. package/src/components/zd-grid/keymap-merger.ts +52 -0
  595. package/src/components/zd-grid/keymap-navigation.ts +76 -0
  596. package/src/components/zd-grid/table-action-builder.ts +114 -0
  597. package/src/components/zd-grid/view-navigator.ts +30 -0
  598. package/src/components/zd-grid-editable/data-editor-with-add.ts +247 -0
  599. package/src/components/zd-grid-editable/data-editor.ts +495 -0
  600. package/src/components/zd-grid-editable/errors/index.ts +2 -0
  601. package/src/components/zd-grid-editable/errors/not-editing.ts +8 -0
  602. package/src/components/zd-grid-editable/errors/row-not-found.ts +8 -0
  603. package/src/components/zd-grid-editable/grid-column-editable.ts +15 -0
  604. package/src/components/zd-grid-editable/grid-editable-controller.ts +18 -0
  605. package/src/components/zd-grid-editable/grid-editable-events.ts +115 -0
  606. package/src/components/zd-grid-editable/grid-editable.ts +464 -0
  607. package/src/components/zd-grid-editable/index.ts +7 -0
  608. package/src/components/zd-grid-editable/interfaces.ts +66 -0
  609. package/src/components/zd-grid-editable/keymap-editing.ts +18 -0
  610. package/src/components/zd-header/header.ts +139 -0
  611. package/src/components/zd-header/interfaces.ts +32 -0
  612. package/src/components/zd-icon/icon.ts +80 -0
  613. package/src/components/zd-icon/interfaces.ts +14 -0
  614. package/src/components/zd-image/image.ts +113 -0
  615. package/src/components/zd-image/interfaces.ts +19 -0
  616. package/src/components/zd-increment/increment.ts +117 -0
  617. package/src/components/zd-increment/interfaces.ts +11 -0
  618. package/src/components/zd-input/input-factory.ts +15 -0
  619. package/src/components/zd-input/input.ts +416 -0
  620. package/src/components/zd-input/interfaces.ts +38 -0
  621. package/src/components/zd-iterable/column-not-found.ts +8 -0
  622. package/src/components/zd-iterable/column.ts +246 -0
  623. package/src/components/zd-iterable/conditions-manager.ts +146 -0
  624. package/src/components/zd-iterable/interfaces.ts +117 -0
  625. package/src/components/zd-iterable/iterable-columns-button-controller.ts +17 -0
  626. package/src/components/zd-iterable/iterable-columns-button.ts +76 -0
  627. package/src/components/zd-iterable/iterable-controller.ts +27 -0
  628. package/src/components/zd-iterable/iterable-page-component.ts +53 -0
  629. package/src/components/zd-iterable/iterable-page-info.ts +7 -0
  630. package/src/components/zd-iterable/iterable-page-size.ts +112 -0
  631. package/src/components/zd-iterable/iterable-pagination.ts +41 -0
  632. package/src/components/zd-iterable/iterable.ts +245 -0
  633. package/src/components/zd-iterable/search.ts +86 -0
  634. package/src/components/zd-iterable-component-render/interfaces.ts +36 -0
  635. package/src/components/zd-iterable-component-render/iterable-component-render.ts +169 -0
  636. package/src/components/zd-layout/interfaces.ts +8 -0
  637. package/src/components/zd-layout/layout.ts +20 -0
  638. package/src/components/zd-list/interfaces.ts +47 -0
  639. package/src/components/zd-list/item-not-found.ts +8 -0
  640. package/src/components/zd-list/list-group.ts +52 -0
  641. package/src/components/zd-list/list-item.ts +71 -0
  642. package/src/components/zd-list/list.ts +125 -0
  643. package/src/components/zd-loading/interfaces.ts +9 -0
  644. package/src/components/zd-loading/loading.ts +44 -0
  645. package/src/components/zd-login/interfaces.ts +28 -0
  646. package/src/components/zd-login/login-button.ts +112 -0
  647. package/src/components/zd-login/login.ts +85 -0
  648. package/src/components/zd-main/interfaces.ts +6 -0
  649. package/src/components/zd-main/main.ts +16 -0
  650. package/src/components/zd-master-detail/detail-not-found.ts +11 -0
  651. package/src/components/zd-master-detail/interfaces.ts +11 -0
  652. package/src/components/zd-master-detail/master-detail.ts +82 -0
  653. package/src/components/zd-master-detail/master-not-found.ts +11 -0
  654. package/src/components/zd-menu/interfaces.ts +76 -0
  655. package/src/components/zd-menu/menu-button.ts +52 -0
  656. package/src/components/zd-menu/menu-group.ts +105 -0
  657. package/src/components/zd-menu/menu-link.ts +84 -0
  658. package/src/components/zd-menu/menu-separator.ts +7 -0
  659. package/src/components/zd-menu/menu.ts +433 -0
  660. package/src/components/zd-modal/interfaces.ts +39 -0
  661. package/src/components/zd-modal/modal-close-button.ts +45 -0
  662. package/src/components/zd-modal/modal.ts +90 -0
  663. package/src/components/zd-month/interfaces.ts +7 -0
  664. package/src/components/zd-month/month.ts +161 -0
  665. package/src/components/zd-number-input/interfaces.ts +10 -0
  666. package/src/components/zd-number-input/number-input.ts +149 -0
  667. package/src/components/zd-password/interfaces.ts +7 -0
  668. package/src/components/zd-password/password.ts +45 -0
  669. package/src/components/zd-progress/interfaces.ts +11 -0
  670. package/src/components/zd-progress/progress.ts +59 -0
  671. package/src/components/zd-radio/interfaces.ts +13 -0
  672. package/src/components/zd-radio/radio.ts +68 -0
  673. package/src/components/zd-row/interfaces.ts +15 -0
  674. package/src/components/zd-row/row.ts +57 -0
  675. package/src/components/zd-select/interfaces.ts +25 -0
  676. package/src/components/zd-select/select.ts +668 -0
  677. package/src/components/zd-select-multiple/interfaces.ts +21 -0
  678. package/src/components/zd-select-multiple/select-multiple.ts +488 -0
  679. package/src/components/zd-svg-map/interfaces.ts +30 -0
  680. package/src/components/zd-svg-map/svg-map.ts +130 -0
  681. package/src/components/zd-switch/interfaces.ts +9 -0
  682. package/src/components/zd-switch/switch.ts +26 -0
  683. package/src/components/zd-table/interfaces.ts +29 -0
  684. package/src/components/zd-table/table.ts +65 -0
  685. package/src/components/zd-tabs/interfaces.ts +49 -0
  686. package/src/components/zd-tabs/tab-not-found.ts +14 -0
  687. package/src/components/zd-tabs/tab.ts +95 -0
  688. package/src/components/zd-tabs/tabs.ts +167 -0
  689. package/src/components/zd-tag/interfaces.ts +9 -0
  690. package/src/components/zd-tag/tag.ts +19 -0
  691. package/src/components/zd-text/interfaces.ts +11 -0
  692. package/src/components/zd-text/text.ts +17 -0
  693. package/src/components/zd-text-input/interfaces.ts +25 -0
  694. package/src/components/zd-text-input/text-input.ts +228 -0
  695. package/src/components/zd-textarea/interfaces.ts +23 -0
  696. package/src/components/zd-textarea/textarea.ts +111 -0
  697. package/src/components/zd-time/interfaces.ts +24 -0
  698. package/src/components/zd-time/time-format-selector.ts +24 -0
  699. package/src/components/zd-time/time.ts +506 -0
  700. package/src/components/zd-toggleable/interfaces.ts +8 -0
  701. package/src/components/zd-toggleable/toggleable.ts +37 -0
  702. package/src/components/zd-tooltip/interfaces.ts +20 -0
  703. package/src/components/zd-tooltip/tooltip.ts +85 -0
  704. package/src/components/zd-tree/interfaces.ts +111 -0
  705. package/src/components/zd-tree/tree.ts +588 -0
  706. package/src/components/zd-tree-grid/index.ts +6 -0
  707. package/src/components/zd-tree-grid/interfaces.ts +39 -0
  708. package/src/components/zd-tree-grid/iterable-tree.ts +39 -0
  709. package/src/components/zd-tree-grid/keymap-tree.ts +23 -0
  710. package/src/components/zd-tree-grid/tree-data-navigator.ts +50 -0
  711. package/src/components/zd-tree-grid/tree-data-selector.ts +121 -0
  712. package/src/components/zd-tree-grid/tree-grid.ts +435 -0
  713. package/src/error/delete-rows.ts +13 -0
  714. package/src/error/index.ts +2 -0
  715. package/src/error/non-initialized.ts +11 -0
  716. package/src/error/tek-grid-delete-rows.ts +15 -0
  717. package/src/error/teknisa-common-error.ts +8 -0
  718. package/src/error/zeedhi-error.ts +8 -0
  719. package/src/index.ts +26 -0
  720. package/src/services/index.ts +4 -0
  721. package/src/services/zd-alert/alert-queue.ts +40 -0
  722. package/src/services/zd-alert/alert-replace.ts +45 -0
  723. package/src/services/zd-alert/alert-service.ts +77 -0
  724. package/src/services/zd-alert/alert-stack.ts +29 -0
  725. package/src/services/zd-alert/index.ts +5 -0
  726. package/src/services/zd-alert/interfaces.ts +7 -0
  727. package/src/services/zd-dialog/dialog-service.ts +40 -0
  728. package/src/services/zd-loading/loading-service.ts +24 -0
  729. package/src/services/zd-modal/modal-service.ts +71 -0
  730. package/src/styles/_display.scss +38 -0
  731. package/src/styles/_elevation.scss +129 -0
  732. package/src/styles/_functions.scss +57 -0
  733. package/src/styles/_text.scss +46 -0
  734. package/src/styles/_utilities.scss +515 -0
  735. package/src/styles/_variables.scss +70 -0
  736. package/src/styles/index.scss +5 -0
  737. package/src/utils/config/config.ts +8 -0
  738. package/src/utils/data-value-out/data-value-out.ts +39 -0
  739. package/src/utils/data-value-out/index.ts +2 -0
  740. package/src/utils/data-value-out/interfaces.ts +9 -0
  741. package/src/utils/datasource-searcher/datasource-searcher.ts +52 -0
  742. package/src/utils/datasource-searcher/index.ts +2 -0
  743. package/src/utils/datasource-searcher/interfaces.ts +12 -0
  744. package/src/utils/icons/icons.ts +154 -0
  745. package/src/utils/index.ts +10 -0
  746. package/src/utils/is-filled-object/is-filled-object.ts +5 -0
  747. package/src/utils/is-nil.ts +3 -0
  748. package/src/utils/omit/omit.ts +13 -0
  749. package/src/utils/theme/theme.ts +198 -0
  750. package/src/utils/tree-data-structure/index.ts +2 -0
  751. package/src/utils/tree-data-structure/interfaces.ts +32 -0
  752. package/src/utils/tree-data-structure/tree-data-structure.ts +520 -0
  753. package/src/utils/unique-by/unique-by.ts +15 -0
  754. package/tests/unit/__helpers__/component-event-helper.ts +9 -0
  755. package/tests/unit/__helpers__/create-component.ts +8 -0
  756. package/tests/unit/__helpers__/find-component.ts +18 -0
  757. package/tests/unit/__helpers__/flush-promises-helper.ts +3 -0
  758. package/tests/unit/__helpers__/get-child-helper.ts +27 -0
  759. package/tests/unit/__helpers__/index.ts +10 -0
  760. package/tests/unit/__helpers__/mock-http-get-helper.spec.ts +55 -0
  761. package/tests/unit/__helpers__/mock-http-get-helper.ts +29 -0
  762. package/tests/unit/__helpers__/mock-i18n.ts +13 -0
  763. package/tests/unit/__helpers__/mock-loader-get-instance.ts +6 -0
  764. package/tests/unit/__helpers__/mock-loader-value-accessor.ts +7 -0
  765. package/tests/unit/__helpers__/spy-on-all-methods.ts +46 -0
  766. package/tests/unit/components/tek-grid/button-option.spec.ts +49 -0
  767. package/tests/unit/components/tek-grid/columns-searcher.spec.ts +112 -0
  768. package/tests/unit/components/tek-grid/dynamic-filter-datasource-factory.spec.ts +90 -0
  769. package/tests/unit/components/tek-grid/filter-helper.spec.ts +52 -0
  770. package/tests/unit/components/tek-grid/grid-filter-button.spec.ts +842 -0
  771. package/tests/unit/components/tek-grid/grouped-data-manager.spec.ts +593 -0
  772. package/tests/unit/components/tek-grid/grouped-data-selector.spec.ts +136 -0
  773. package/tests/unit/components/tek-grid/grouped-view-navigator.spec.ts +244 -0
  774. package/tests/unit/components/tek-grid/keymap-grouped.spec.ts +20 -0
  775. package/tests/unit/components/tek-grid/layout-options.spec.ts +1020 -0
  776. package/tests/unit/components/tek-grid/multi-option.spec.ts +139 -0
  777. package/tests/unit/components/tek-grid/tek-grid-column.spec.ts +312 -0
  778. package/tests/unit/components/tek-grid/tek-grid-columns-button.spec.ts +228 -0
  779. package/tests/unit/components/tek-grid/tek-grid-controller.spec.ts +253 -0
  780. package/tests/unit/components/tek-grid/tek-grid-events.spec.ts +186 -0
  781. package/tests/unit/components/tek-grid/tek-grid-toolbar-provider.spec.ts +34 -0
  782. package/tests/unit/components/tek-grid/tek-grid.spec.ts +895 -0
  783. package/tests/unit/components/tek-grid/tek-memory-datasource.spec.ts +482 -0
  784. package/tests/unit/components/tek-grid/tek-rest-datasource.spec.ts +422 -0
  785. package/tests/unit/components/zd-alert/alert.spec.ts +62 -0
  786. package/tests/unit/components/zd-badge/badge.spec.ts +36 -0
  787. package/tests/unit/components/zd-breadcrumbs/breadcrumbs.spec.ts +39 -0
  788. package/tests/unit/components/zd-button/button.spec.ts +79 -0
  789. package/tests/unit/components/zd-button-group/button-group.spec.ts +95 -0
  790. package/tests/unit/components/zd-card/card.spec.ts +82 -0
  791. package/tests/unit/components/zd-carousel/carousel.spec.ts +304 -0
  792. package/tests/unit/components/zd-checkbox/checkbox.spec.ts +26 -0
  793. package/tests/unit/components/zd-checkbox-multiple/checkbox-multiple.spec.ts +107 -0
  794. package/tests/unit/components/zd-chip/chip.spec.ts +53 -0
  795. package/tests/unit/components/zd-code-viewer/code-viewer.spec.ts +247 -0
  796. package/tests/unit/components/zd-col/col.spec.ts +46 -0
  797. package/tests/unit/components/zd-collapse-card/collapse-card.spec.ts +84 -0
  798. package/tests/unit/components/zd-component/ComponentMock.ts +27 -0
  799. package/tests/unit/components/zd-component/child-not-found.spec.ts +10 -0
  800. package/tests/unit/components/zd-component/component-render.spec.ts +10 -0
  801. package/tests/unit/components/zd-component/component.spec.ts +554 -0
  802. package/tests/unit/components/zd-container/container.spec.ts +43 -0
  803. package/tests/unit/components/zd-currency/currency.spec.ts +110 -0
  804. package/tests/unit/components/zd-date-input/date-input.spec.ts +1111 -0
  805. package/tests/unit/components/zd-dialog/dialog.spec.ts +145 -0
  806. package/tests/unit/components/zd-divider/divider.spec.ts +31 -0
  807. package/tests/unit/components/zd-dropdown/dropdown.spec.ts +68 -0
  808. package/tests/unit/components/zd-footer/footer.spec.ts +69 -0
  809. package/tests/unit/components/zd-form/form.spec.ts +251 -0
  810. package/tests/unit/components/zd-frame/frame.spec.ts +381 -0
  811. package/tests/unit/components/zd-frame-page/frame-page.spec.ts +58 -0
  812. package/tests/unit/components/zd-grid/grid-column.spec.ts +251 -0
  813. package/tests/unit/components/zd-grid/grid.spec.ts +1638 -0
  814. package/tests/unit/components/zd-grid-editable/data-editor-with-add.spec.ts +118 -0
  815. package/tests/unit/components/zd-grid-editable/data-editor.spec.ts +621 -0
  816. package/tests/unit/components/zd-grid-editable/grid-editable-controller.spec.ts +53 -0
  817. package/tests/unit/components/zd-grid-editable/grid-editable.spec.ts +2733 -0
  818. package/tests/unit/components/zd-header/header.spec.ts +67 -0
  819. package/tests/unit/components/zd-icon/icon.spec.ts +55 -0
  820. package/tests/unit/components/zd-image/image.spec.ts +63 -0
  821. package/tests/unit/components/zd-increment/increment.spec.ts +75 -0
  822. package/tests/unit/components/zd-input/input-factory.spec.ts +19 -0
  823. package/tests/unit/components/zd-input/input.spec.ts +340 -0
  824. package/tests/unit/components/zd-iterable/column-not-found.spec.ts +10 -0
  825. package/tests/unit/components/zd-iterable/column.spec.ts +301 -0
  826. package/tests/unit/components/zd-iterable/conditions-manager.spec.ts +123 -0
  827. package/tests/unit/components/zd-iterable/iterable-columns-button-controller.spec.ts +54 -0
  828. package/tests/unit/components/zd-iterable/iterable-columns-button.spec.ts +134 -0
  829. package/tests/unit/components/zd-iterable/iterable-page-component.spec.ts +92 -0
  830. package/tests/unit/components/zd-iterable/iterable-page-info.spec.ts +19 -0
  831. package/tests/unit/components/zd-iterable/iterable-page-size.spec.ts +123 -0
  832. package/tests/unit/components/zd-iterable/iterable-pagination.spec.ts +42 -0
  833. package/tests/unit/components/zd-iterable/search.spec.ts +168 -0
  834. package/tests/unit/components/zd-iterable-component-render/iterable-component-render.spec.ts +216 -0
  835. package/tests/unit/components/zd-layout/layout.spec.ts +28 -0
  836. package/tests/unit/components/zd-list/list-group.spec.ts +96 -0
  837. package/tests/unit/components/zd-list/list-item.spec.ts +51 -0
  838. package/tests/unit/components/zd-list/list.spec.ts +107 -0
  839. package/tests/unit/components/zd-loading/loading.spec.ts +72 -0
  840. package/tests/unit/components/zd-login/login-button.spec.ts +305 -0
  841. package/tests/unit/components/zd-login/login.spec.ts +52 -0
  842. package/tests/unit/components/zd-main/main.spec.ts +22 -0
  843. package/tests/unit/components/zd-master-detail/detail-not-found.spec.ts +11 -0
  844. package/tests/unit/components/zd-master-detail/master-detail.spec.ts +213 -0
  845. package/tests/unit/components/zd-master-detail/master-not-found.spec.ts +10 -0
  846. package/tests/unit/components/zd-menu/menu-button.spec.ts +85 -0
  847. package/tests/unit/components/zd-menu/menu-group.spec.ts +130 -0
  848. package/tests/unit/components/zd-menu/menu-link.spec.ts +120 -0
  849. package/tests/unit/components/zd-menu/menu-separator.spec.ts +14 -0
  850. package/tests/unit/components/zd-menu/menu.spec.ts +286 -0
  851. package/tests/unit/components/zd-modal/modal.spec.ts +169 -0
  852. package/tests/unit/components/zd-month/month.spec.ts +450 -0
  853. package/tests/unit/components/zd-number/number.spec.ts +276 -0
  854. package/tests/unit/components/zd-password/password.spec.ts +76 -0
  855. package/tests/unit/components/zd-progress/progress.spec.ts +43 -0
  856. package/tests/unit/components/zd-radio/radio.spec.ts +75 -0
  857. package/tests/unit/components/zd-row/row.spec.ts +40 -0
  858. package/tests/unit/components/zd-select/select.spec.ts +1316 -0
  859. package/tests/unit/components/zd-select-multiple/select-multiple.spec.ts +1994 -0
  860. package/tests/unit/components/zd-svg-map/svg-map.spec.ts +212 -0
  861. package/tests/unit/components/zd-switch/switch.spec.ts +28 -0
  862. package/tests/unit/components/zd-table/table.spec.ts +53 -0
  863. package/tests/unit/components/zd-tabs/tab-not-found.spec.ts +10 -0
  864. package/tests/unit/components/zd-tabs/tab.spec.ts +21 -0
  865. package/tests/unit/components/zd-tabs/tabs.spec.ts +171 -0
  866. package/tests/unit/components/zd-tag/tag.spec.ts +10 -0
  867. package/tests/unit/components/zd-text/text.spec.ts +24 -0
  868. package/tests/unit/components/zd-text-input/text-input.spec.ts +362 -0
  869. package/tests/unit/components/zd-textarea/textarea.spec.ts +86 -0
  870. package/tests/unit/components/zd-time/time.spec.ts +1036 -0
  871. package/tests/unit/components/zd-toggleable/toggleable.spec.ts +46 -0
  872. package/tests/unit/components/zd-tooltip/tooltip.spec.ts +51 -0
  873. package/tests/unit/components/zd-tree/tree.spec.ts +905 -0
  874. package/tests/unit/components/zd-tree-grid/tree-grid.spec.ts +893 -0
  875. package/tests/unit/services/alert-queue.spec.ts +44 -0
  876. package/tests/unit/services/alert-replace.spec.ts +19 -0
  877. package/tests/unit/services/alert-service.spec.ts +65 -0
  878. package/tests/unit/services/alert-stack.spec.ts +45 -0
  879. package/tests/unit/utils/data-value-out.spec.ts +105 -0
  880. package/tests/unit/utils/datasource-searcher.spec.ts +61 -0
  881. package/tests/unit/utils/icons.spec.ts +258 -0
  882. package/tests/unit/utils/is-filled-object.spec.ts +33 -0
  883. package/tests/unit/utils/theme.spec.ts +197 -0
  884. package/tests/unit/utils/tree-data-structure.spec.ts +404 -0
  885. package/tests/unit/utils/unique-by.spec.ts +56 -0
  886. package/tsconfig.build.json +7 -0
  887. package/tsconfig.json +3 -0
  888. package/LICENSE +0 -24
  889. package/README.md +0 -9
  890. package/dist/zd-common.esm.js +0 -16042
  891. package/dist/zd-common.umd.js +0 -16164
  892. package/tsconfig.eslint.json +0 -9
  893. package/types/components/index.d.ts +0 -161
  894. package/types/components/zd-alert/alert.d.ts +0 -101
  895. package/types/components/zd-alert/interfaces.d.ts +0 -18
  896. package/types/components/zd-apex-chart/apex-chart.d.ts +0 -257
  897. package/types/components/zd-apex-chart/interfaces.d.ts +0 -51
  898. package/types/components/zd-badge/badge.d.ts +0 -28
  899. package/types/components/zd-badge/interfaces.d.ts +0 -10
  900. package/types/components/zd-breadcrumbs/breadcrumbs.d.ts +0 -32
  901. package/types/components/zd-breadcrumbs/interfaces.d.ts +0 -23
  902. package/types/components/zd-button/button.d.ts +0 -122
  903. package/types/components/zd-button/interfaces.d.ts +0 -33
  904. package/types/components/zd-button-group/button-group.d.ts +0 -75
  905. package/types/components/zd-button-group/interfaces.d.ts +0 -24
  906. package/types/components/zd-card/card.d.ts +0 -110
  907. package/types/components/zd-card/interfaces.d.ts +0 -30
  908. package/types/components/zd-carousel/carousel.d.ts +0 -181
  909. package/types/components/zd-carousel/interfaces.d.ts +0 -45
  910. package/types/components/zd-checkbox/checkbox.d.ts +0 -12
  911. package/types/components/zd-checkbox/interfaces.d.ts +0 -6
  912. package/types/components/zd-checkbox-multiple/checkbox-multiple.d.ts +0 -42
  913. package/types/components/zd-checkbox-multiple/interfaces.d.ts +0 -13
  914. package/types/components/zd-chip/chip.d.ts +0 -64
  915. package/types/components/zd-chip/interfaces.d.ts +0 -19
  916. package/types/components/zd-code-editor/code-editor.d.ts +0 -90
  917. package/types/components/zd-code-editor/interfaces.d.ts +0 -14
  918. package/types/components/zd-col/col.d.ts +0 -37
  919. package/types/components/zd-col/interfaces.d.ts +0 -16
  920. package/types/components/zd-collapse-card/collapse-card.d.ts +0 -56
  921. package/types/components/zd-collapse-card/interfaces.d.ts +0 -14
  922. package/types/components/zd-component/child-not-found.d.ts +0 -6
  923. package/types/components/zd-component/component-render.d.ts +0 -16
  924. package/types/components/zd-component/component.d.ts +0 -178
  925. package/types/components/zd-component/interfaces.d.ts +0 -46
  926. package/types/components/zd-container/container.d.ts +0 -51
  927. package/types/components/zd-container/interfaces.d.ts +0 -12
  928. package/types/components/zd-currency/currency.d.ts +0 -12
  929. package/types/components/zd-currency/interfaces.d.ts +0 -6
  930. package/types/components/zd-dashboard/dashboard.d.ts +0 -122
  931. package/types/components/zd-dashboard/interfaces.d.ts +0 -37
  932. package/types/components/zd-date/date-range.d.ts +0 -152
  933. package/types/components/zd-date/date.d.ts +0 -155
  934. package/types/components/zd-date/interfaces.d.ts +0 -31
  935. package/types/components/zd-dialog/dialog.d.ts +0 -76
  936. package/types/components/zd-dialog/interfaces.d.ts +0 -13
  937. package/types/components/zd-divider/divider.d.ts +0 -20
  938. package/types/components/zd-divider/interfaces.d.ts +0 -8
  939. package/types/components/zd-dropdown/dropdown.d.ts +0 -85
  940. package/types/components/zd-dropdown/interfaces.d.ts +0 -24
  941. package/types/components/zd-file-input/file-input.d.ts +0 -101
  942. package/types/components/zd-file-input/interfaces.d.ts +0 -20
  943. package/types/components/zd-footer/footer.d.ts +0 -81
  944. package/types/components/zd-footer/interfaces.d.ts +0 -26
  945. package/types/components/zd-form/form.d.ts +0 -153
  946. package/types/components/zd-form/interfaces.d.ts +0 -34
  947. package/types/components/zd-frame/frame.d.ts +0 -90
  948. package/types/components/zd-frame/interfaces.d.ts +0 -25
  949. package/types/components/zd-frame-page/frame-page.d.ts +0 -14
  950. package/types/components/zd-frame-page/interfaces.d.ts +0 -4
  951. package/types/components/zd-grid/errors/delete-rows.d.ts +0 -6
  952. package/types/components/zd-grid/errors/not-editing.d.ts +0 -6
  953. package/types/components/zd-grid/errors/row-not-found.d.ts +0 -6
  954. package/types/components/zd-grid/grid-column-editable.d.ts +0 -13
  955. package/types/components/zd-grid/grid-column.d.ts +0 -46
  956. package/types/components/zd-grid/grid-editable-controller.d.ts +0 -8
  957. package/types/components/zd-grid/grid-editable.d.ts +0 -272
  958. package/types/components/zd-grid/grid.d.ts +0 -260
  959. package/types/components/zd-grid/interfaces.d.ts +0 -75
  960. package/types/components/zd-header/header.d.ts +0 -93
  961. package/types/components/zd-header/interfaces.d.ts +0 -31
  962. package/types/components/zd-icon/icon.d.ts +0 -55
  963. package/types/components/zd-icon/interfaces.d.ts +0 -13
  964. package/types/components/zd-image/image.d.ts +0 -85
  965. package/types/components/zd-image/interfaces.d.ts +0 -22
  966. package/types/components/zd-increment/increment.d.ts +0 -53
  967. package/types/components/zd-increment/interfaces.d.ts +0 -9
  968. package/types/components/zd-input/input-factory.d.ts +0 -6
  969. package/types/components/zd-input/input.d.ts +0 -223
  970. package/types/components/zd-input/interfaces.d.ts +0 -39
  971. package/types/components/zd-iterable/column-not-found.d.ts +0 -6
  972. package/types/components/zd-iterable/column.d.ts +0 -97
  973. package/types/components/zd-iterable/interfaces.d.ts +0 -72
  974. package/types/components/zd-iterable/iterable-columns-button-controller.d.ts +0 -9
  975. package/types/components/zd-iterable/iterable-columns-button.d.ts +0 -34
  976. package/types/components/zd-iterable/iterable-controller.d.ts +0 -12
  977. package/types/components/zd-iterable/iterable-page-component.d.ts +0 -27
  978. package/types/components/zd-iterable/iterable-page-info.d.ts +0 -7
  979. package/types/components/zd-iterable/iterable-page-size.d.ts +0 -62
  980. package/types/components/zd-iterable/iterable-pagination.d.ts +0 -28
  981. package/types/components/zd-iterable/iterable.d.ts +0 -102
  982. package/types/components/zd-iterable/search.d.ts +0 -25
  983. package/types/components/zd-iterable-component-render/interfaces.d.ts +0 -19
  984. package/types/components/zd-iterable-component-render/iterable-component-render.d.ts +0 -83
  985. package/types/components/zd-list/interfaces.d.ts +0 -45
  986. package/types/components/zd-list/item-not-found.d.ts +0 -6
  987. package/types/components/zd-list/list-group.d.ts +0 -30
  988. package/types/components/zd-list/list-item.d.ts +0 -49
  989. package/types/components/zd-list/list.d.ts +0 -85
  990. package/types/components/zd-loading/interfaces.d.ts +0 -6
  991. package/types/components/zd-loading/loading.d.ts +0 -20
  992. package/types/components/zd-login/interfaces.d.ts +0 -25
  993. package/types/components/zd-login/login-button.d.ts +0 -50
  994. package/types/components/zd-login/login.d.ts +0 -54
  995. package/types/components/zd-master-detail/detail-not-found.d.ts +0 -6
  996. package/types/components/zd-master-detail/interfaces.d.ts +0 -10
  997. package/types/components/zd-master-detail/master-detail.d.ts +0 -43
  998. package/types/components/zd-master-detail/master-not-found.d.ts +0 -6
  999. package/types/components/zd-menu/interfaces.d.ts +0 -68
  1000. package/types/components/zd-menu/menu-button.d.ts +0 -28
  1001. package/types/components/zd-menu/menu-group.d.ts +0 -61
  1002. package/types/components/zd-menu/menu-link.d.ts +0 -50
  1003. package/types/components/zd-menu/menu-separator.d.ts +0 -7
  1004. package/types/components/zd-menu/menu.d.ts +0 -198
  1005. package/types/components/zd-modal/interfaces.d.ts +0 -37
  1006. package/types/components/zd-modal/modal-close-button.d.ts +0 -28
  1007. package/types/components/zd-modal/modal.d.ts +0 -61
  1008. package/types/components/zd-month/interfaces.d.ts +0 -6
  1009. package/types/components/zd-month/month.d.ts +0 -31
  1010. package/types/components/zd-number/interfaces.d.ts +0 -8
  1011. package/types/components/zd-number/number.d.ts +0 -60
  1012. package/types/components/zd-password/interfaces.d.ts +0 -6
  1013. package/types/components/zd-password/password.d.ts +0 -21
  1014. package/types/components/zd-progress/interfaces.d.ts +0 -12
  1015. package/types/components/zd-progress/progress.d.ts +0 -41
  1016. package/types/components/zd-radio/interfaces.d.ts +0 -11
  1017. package/types/components/zd-radio/radio.d.ts +0 -34
  1018. package/types/components/zd-range-slider/interfaces.d.ts +0 -34
  1019. package/types/components/zd-range-slider/range-slider.d.ts +0 -69
  1020. package/types/components/zd-row/interfaces.d.ts +0 -14
  1021. package/types/components/zd-row/row.d.ts +0 -43
  1022. package/types/components/zd-select/interfaces.d.ts +0 -29
  1023. package/types/components/zd-select/select.d.ts +0 -248
  1024. package/types/components/zd-select-multiple/interfaces.d.ts +0 -19
  1025. package/types/components/zd-select-multiple/select-multiple.d.ts +0 -116
  1026. package/types/components/zd-select-tree/interfaces.d.ts +0 -55
  1027. package/types/components/zd-select-tree/select-tree.d.ts +0 -181
  1028. package/types/components/zd-select-tree-multiple/interfaces.d.ts +0 -29
  1029. package/types/components/zd-select-tree-multiple/select-tree-multiple.d.ts +0 -87
  1030. package/types/components/zd-selectable-list/interfaces.d.ts +0 -15
  1031. package/types/components/zd-selectable-list/selectable-list.d.ts +0 -63
  1032. package/types/components/zd-speed-dial/interfaces.d.ts +0 -13
  1033. package/types/components/zd-speed-dial/speed-dial.d.ts +0 -47
  1034. package/types/components/zd-steppers/interfaces.d.ts +0 -23
  1035. package/types/components/zd-steppers/steppers.d.ts +0 -40
  1036. package/types/components/zd-svg-map/interfaces.d.ts +0 -26
  1037. package/types/components/zd-svg-map/svg-map.d.ts +0 -91
  1038. package/types/components/zd-switch/interfaces.d.ts +0 -7
  1039. package/types/components/zd-switch/switch.d.ts +0 -16
  1040. package/types/components/zd-table/interfaces.d.ts +0 -18
  1041. package/types/components/zd-table/table.d.ts +0 -43
  1042. package/types/components/zd-tabs/interfaces.d.ts +0 -26
  1043. package/types/components/zd-tabs/tab-not-found.d.ts +0 -11
  1044. package/types/components/zd-tabs/tab.d.ts +0 -15
  1045. package/types/components/zd-tabs/tabs.d.ts +0 -66
  1046. package/types/components/zd-tag/interfaces.d.ts +0 -7
  1047. package/types/components/zd-tag/tag.d.ts +0 -13
  1048. package/types/components/zd-text/interfaces.d.ts +0 -15
  1049. package/types/components/zd-text/text.d.ts +0 -16
  1050. package/types/components/zd-text-input/interfaces.d.ts +0 -23
  1051. package/types/components/zd-text-input/text-input.d.ts +0 -97
  1052. package/types/components/zd-textarea/interfaces.d.ts +0 -22
  1053. package/types/components/zd-textarea/textarea.d.ts +0 -75
  1054. package/types/components/zd-time/interfaces.d.ts +0 -23
  1055. package/types/components/zd-time/time-format-selector.d.ts +0 -8
  1056. package/types/components/zd-time/time.d.ts +0 -147
  1057. package/types/components/zd-toggleable/interfaces.d.ts +0 -6
  1058. package/types/components/zd-toggleable/toggleable.d.ts +0 -21
  1059. package/types/components/zd-tooltip/interfaces.d.ts +0 -19
  1060. package/types/components/zd-tooltip/tooltip.d.ts +0 -61
  1061. package/types/components/zd-tree/interfaces.d.ts +0 -78
  1062. package/types/components/zd-tree/tree.d.ts +0 -159
  1063. package/types/components/zd-tree-grid/interfaces.d.ts +0 -21
  1064. package/types/components/zd-tree-grid/tree-grid-editable.d.ts +0 -205
  1065. package/types/components/zd-tree-grid/tree-grid.d.ts +0 -111
  1066. package/types/formatters/column-zdselect.d.ts +0 -1
  1067. package/types/formatters/column-zdselectmultiple.d.ts +0 -1
  1068. package/types/formatters/index.d.ts +0 -2
  1069. package/types/index.d.ts +0 -6
  1070. package/types/services/index.d.ts +0 -4
  1071. package/types/services/zd-alert/alert-queue.d.ts +0 -13
  1072. package/types/services/zd-alert/alert-replace.d.ts +0 -5
  1073. package/types/services/zd-alert/alert-service.d.ts +0 -34
  1074. package/types/services/zd-alert/alert-stack.d.ts +0 -9
  1075. package/types/services/zd-alert/interfaces.d.ts +0 -6
  1076. package/types/services/zd-dialog/dialog-service.d.ts +0 -24
  1077. package/types/services/zd-json-cache/json-cache-service.d.ts +0 -12
  1078. package/types/services/zd-loading/loading-service.d.ts +0 -23
  1079. package/types/services/zd-modal/modal-service.d.ts +0 -39
  1080. package/types/utils/data-value-out/data-value-out.d.ts +0 -5
  1081. package/types/utils/data-value-out/index.d.ts +0 -2
  1082. package/types/utils/data-value-out/interfaces.d.ts +0 -8
  1083. package/types/utils/icons/icons.d.ts +0 -24
  1084. package/types/utils/index.d.ts +0 -6
  1085. package/types/utils/report/dataset-formatters/grouped-pdf-formatter.d.ts +0 -47
  1086. package/types/utils/report/dataset-formatters/index.d.ts +0 -1
  1087. package/types/utils/report/errors/empty-data-error.d.ts +0 -6
  1088. package/types/utils/report/index.d.ts +0 -10
  1089. package/types/utils/report/interfaces.d.ts +0 -15
  1090. package/types/utils/report/report-type/base-report.d.ts +0 -17
  1091. package/types/utils/report/report-type/csv-report.d.ts +0 -9
  1092. package/types/utils/report/report-type/index.d.ts +0 -5
  1093. package/types/utils/report/report-type/interfaces.d.ts +0 -79
  1094. package/types/utils/report/report-type/pdf-report.d.ts +0 -16
  1095. package/types/utils/report/report-type/report-column-transformer.d.ts +0 -9
  1096. package/types/utils/report/report-type/xls-report.d.ts +0 -10
  1097. package/types/utils/report/report-type/xls2-report.d.ts +0 -17
  1098. package/types/utils/report/report-type/xls3-report.d.ts +0 -17
  1099. package/types/utils/report/report.d.ts +0 -18
  1100. package/types/utils/themes/themes.d.ts +0 -71
  1101. package/types/utils/tree-data-structure/index.d.ts +0 -2
  1102. package/types/utils/tree-data-structure/interfaces.d.ts +0 -9
  1103. package/types/utils/tree-data-structure/tree-data-structure.d.ts +0 -152
  1104. package/types/utils/watch-url/watch-url.d.ts +0 -59
@@ -0,0 +1,1316 @@
1
+ import { DatasourceFactory, FormatterParserProvider, Loader, MemoryDatasource } from "@zeedhi/core";
2
+ import { ISelect, Select } from "../../../../src";
3
+ import { flushPromises } from "../../__helpers__/flush-promises-helper";
4
+ import { mockGetUsingData } from "../../__helpers__/mock-http-get-helper";
5
+ import { setBlur, setFocus } from "../../__helpers__/component-event-helper";
6
+ import { IDictionary } from "packages/core/dist/types";
7
+
8
+ jest.mock('lodash.debounce', () => jest.fn((fn) => fn));
9
+
10
+ /**
11
+ * Creates a new select instance with predefined props
12
+ * also calls onCreated
13
+ */
14
+ const instantiateDefaultSelect = (props: Partial<ISelect> = {}) => {
15
+ const instance = new Select({
16
+ name: 'select',
17
+ component: 'ZdSelect',
18
+ dataText: 'text',
19
+ dataValue: 'value',
20
+ datasource: {
21
+ data: [{ text: 'default', value: '1' }],
22
+ },
23
+ ...props,
24
+ });
25
+ instance.onCreated();
26
+ instance.onMounted({});
27
+
28
+ return instance;
29
+ };
30
+
31
+ describe('Select', () => {
32
+ describe('constructor()', () => {
33
+ it('should create new select with default values', () => {
34
+ const instance = new Select({ name: 'select', component: 'ZdSelect' });
35
+ expect(instance.datasource).toBeInstanceOf(MemoryDatasource);
36
+ expect(instance.dataText).toBe('');
37
+ expect(instance.dataValue).toBe('');
38
+ expect(instance.dataDisabled).toBe('disabled');
39
+ expect(instance.returnObject).toBeFalsy();
40
+ expect(instance.autocomplete).toBeTruthy();
41
+ expect(instance.autoSelection).toBeTruthy();
42
+ expect(instance.preventLoadOnFocus).toBeTruthy();
43
+ expect(instance.menuMaxHeight).toBe(304);
44
+ expect(instance.menuMaxWidth).toBe('auto');
45
+ expect(instance.itemAfterSlot).toEqual([]);
46
+ expect(instance.itemBeforeSlot).toEqual([]);
47
+ expect(instance.disabledItems).toEqual([]);
48
+ expect(instance.manualMode).toBeFalsy();
49
+ expect(instance.searchParam).toBe('SEARCH');
50
+ expect(instance.dataValueOut).toEqual([]);
51
+ expect(instance.dataValueOutFormName).toBe('');
52
+ });
53
+
54
+ it('should create new select replacing default values', () => {
55
+ const instance = new Select({
56
+ name: 'select',
57
+ component: 'ZdSelect',
58
+ datasource: { data: [] },
59
+ dataText: 'text',
60
+ dataValue: 'value',
61
+ dataTextDiscrete: 'text',
62
+ dataDisabled: 'prop',
63
+ returnObject: true,
64
+ autocomplete: false,
65
+ autoSelection: false,
66
+ preventLoadOnFocus: true,
67
+ menuMaxHeight: 200,
68
+ menuMaxWidth: 200,
69
+ disabledItems: [1, 3],
70
+ itemAfterSlot: [{ name: 'after_item', component: 'ZdText', text: 'Item After' }],
71
+ itemBeforeSlot: [{ name: 'before_item', component: 'ZdText', text: 'Item Before' }],
72
+ manualMode: true,
73
+ searchParam: 'FILTER',
74
+ dataValueOut: [
75
+ {
76
+ column: 'TEST',
77
+ columnOnForm: 'TEST',
78
+ },
79
+ ],
80
+ dataValueOutFormName: 'formTest',
81
+ disabled: true,
82
+ });
83
+ expect(instance.datasource).toBeInstanceOf(MemoryDatasource);
84
+ expect(instance.dataText).toEqual(['text']);
85
+ expect(instance.dataTextDiscrete).toEqual(['text']);
86
+ expect(instance.dataValue).toBe('value');
87
+ expect(instance.dataDisabled).toBe('prop');
88
+ expect(instance.returnObject).toBeTruthy();
89
+ expect(instance.autocomplete).toBeFalsy();
90
+ expect(instance.autoSelection).toBeFalsy();
91
+ expect(instance.preventLoadOnFocus).toBeTruthy();
92
+ expect(instance.menuMaxHeight).toBe(200);
93
+ expect(instance.menuMaxWidth).toBe(200);
94
+ expect(instance.disabledItems).toEqual([1, 3]);
95
+ expect(instance.itemAfterSlot).toEqual([
96
+ { name: 'after_item', component: 'ZdText', text: 'Item After' },
97
+ ]);
98
+ expect(instance.itemBeforeSlot).toEqual([
99
+ { name: 'before_item', component: 'ZdText', text: 'Item Before' },
100
+ ]);
101
+ expect(instance.manualMode).toBeTruthy();
102
+ expect(instance.searchParam).toBe('FILTER');
103
+ expect(instance.dataValueOut).toEqual([
104
+ {
105
+ column: 'TEST',
106
+ columnOnForm: 'TEST',
107
+ },
108
+ ]);
109
+ expect(instance.dataValueOutFormName).toBe('formTest');
110
+ expect(instance.disabled).toBeTruthy();
111
+ });
112
+
113
+ it('should prevent load on focus with not lazy load datasource', async () => {
114
+ const instance = new Select({
115
+ name: 'select',
116
+ component: 'ZdSelect',
117
+ dataText: 'text',
118
+ dataValue: 'value',
119
+ datasource: {
120
+ data: [{ text: 'default', value: '1' }],
121
+ lazyLoad: false,
122
+ },
123
+ });
124
+ await flushPromises();
125
+ expect(instance.preventLoadOnFocus).toBeTruthy();
126
+ });
127
+ });
128
+
129
+ describe('setDefaultValue()', () => {
130
+ it('should set default value', async () => {
131
+ const instance = instantiateDefaultSelect({
132
+ value: '1',
133
+ });
134
+ await flushPromises();
135
+ expect(instance.value).toBe('1');
136
+ });
137
+
138
+ it('should set default value with simple select', async () => {
139
+ const instance = new Select({
140
+ name: 'select',
141
+ component: 'ZdSelect',
142
+ value: 'first',
143
+ datasource: {
144
+ type: 'simple',
145
+ items: ['first', 'second'],
146
+ },
147
+ });
148
+ instance.onCreated();
149
+ instance.onMounted({});
150
+ await flushPromises();
151
+ expect(instance.value).toBe('first');
152
+ });
153
+
154
+ it('should set no value if value not found in datasource.data', async () => {
155
+ const instance = instantiateDefaultSelect({
156
+ value: '2',
157
+ });
158
+ await flushPromises();
159
+ expect(instance.value).toBeNull();
160
+ });
161
+ });
162
+
163
+ describe('value', () => {
164
+ it('should call setValue when setting value', async () => {
165
+ const instance = instantiateDefaultSelect();
166
+ const spy = jest.spyOn(instance, 'setValue');
167
+
168
+ instance.value = '1';
169
+
170
+ expect(spy).toHaveBeenCalledTimes(1);
171
+ });
172
+
173
+ it('should not call setValue when setting same value', async () => {
174
+ const instance = instantiateDefaultSelect({ value: '1' });
175
+ await flushPromises();
176
+ const spy = jest.spyOn(instance, 'setValue');
177
+
178
+ instance.value = '1';
179
+
180
+ expect(spy).toHaveBeenCalledTimes(0);
181
+ spy.mockClear();
182
+ });
183
+ });
184
+
185
+ describe('setValue()', () => {
186
+ it('should set and get datasource current row', async () => {
187
+ const instance = instantiateDefaultSelect();
188
+
189
+ await instance.setValue('1');
190
+
191
+ expect(instance.datasource.currentRow).toEqual({ text: 'default', value: '1' });
192
+ expect(instance.value).toBe('1');
193
+
194
+ await instance.setValue(null);
195
+
196
+ expect(instance.datasource.currentRow).toBeNull();
197
+ expect(instance.value).toBeNull();
198
+ });
199
+
200
+ it('should set and get datasource current row using object', async () => {
201
+ const instance = instantiateDefaultSelect({ returnObject: true });
202
+
203
+ await instance.setValue({ text: 'default', value: '1' });
204
+
205
+ expect(instance.datasource.currentRow).toEqual({ text: 'default', value: '1' });
206
+ expect(instance.value).toEqual({ text: 'default', value: '1' });
207
+ });
208
+
209
+ it('should set in a returnObject select using normal value', async () => {
210
+ const instance = instantiateDefaultSelect({ returnObject: true });
211
+
212
+ await instance.setValue('1');
213
+
214
+ expect(instance.datasource.currentRow).toEqual({ text: 'default', value: '1' });
215
+ expect(instance.value).toEqual({ text: 'default', value: '1' });
216
+ });
217
+
218
+ it('while value is being searched in another page, should set datasource loading', async () => {
219
+ const data = [
220
+ { text: 'default', value: '1' },
221
+ { text: 'default 2', value: '2' },
222
+ ];
223
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
224
+
225
+ expect(instance.datasource.loading).toBeFalsy();
226
+
227
+ const promise = instance.setValue('2');
228
+ expect(instance.datasource.loading).toBeTruthy();
229
+ await promise;
230
+
231
+ expect(instance.datasource.loading).toBeFalsy();
232
+ });
233
+
234
+ it('when searchParam is SEARCH and setting a value that is not in datasource, should factory a datasource with search',
235
+ async () => {
236
+ const spyGet = mockGetUsingData([
237
+ { value: '1' }, { value: '2' }, { value: '3' },
238
+ ]);
239
+ const instance = instantiateDefaultSelect({ dataText: 'value', dataValue: 'value', searchParam: 'SEARCH', datasource: {
240
+ type: 'rest',
241
+ uniqueKey: 'value',
242
+ route: 'employees',
243
+ }});
244
+ const spyFactory = jest.spyOn(DatasourceFactory, 'factory');
245
+
246
+ await instance.setValue(4);
247
+
248
+ expect(spyFactory).toHaveBeenCalledWith(expect.objectContaining({
249
+ searchIn: ['value'],
250
+ search: '4',
251
+ }));
252
+
253
+ spyFactory.mockClear();
254
+ spyGet.mockClear();
255
+ });
256
+
257
+ it('when searchParam is FILTER and setting a value that is not in datasource, should factory a datasource with filter',
258
+ async () => {
259
+ const spyGet = mockGetUsingData([
260
+ { value: '1' }, { value: '2' }, { value: '3' },
261
+ ]);
262
+ const instance = instantiateDefaultSelect({ dataText: 'value', dataValue: 'value', searchParam: 'FILTER', datasource: {
263
+ type: 'rest',
264
+ uniqueKey: 'value',
265
+ route: 'employees',
266
+ }});
267
+ const spyFactory = jest.spyOn(DatasourceFactory, 'factory');
268
+
269
+ await instance.setValue(4);
270
+
271
+ expect(spyFactory).toHaveBeenCalledWith(expect.objectContaining({
272
+ filter: {
273
+ value: 4,
274
+ },
275
+ }));
276
+
277
+ spyFactory.mockClear();
278
+ spyGet.mockClear();
279
+ });
280
+
281
+ it('when searchParam is DYNAMIC_FILTER and set a value not in datasource, should factory datasource with dynamicFilter',
282
+ async () => {
283
+ const spyGet = mockGetUsingData([
284
+ { value: '1' }, { value: '2' }, { value: '3' },
285
+ ]);
286
+ const instance = instantiateDefaultSelect({ dataText: 'value', dataValue: 'value', searchParam: 'DYNAMIC_FILTER', datasource: {
287
+ type: 'rest',
288
+ uniqueKey: 'value',
289
+ route: 'employees',
290
+ }});
291
+ const spyFactory = jest.spyOn(DatasourceFactory, 'factory');
292
+
293
+ await instance.setValue('4');
294
+
295
+ expect(spyFactory).toHaveBeenCalledWith(expect.objectContaining({
296
+ dynamicFilter: {
297
+ value: [
298
+ { operation: 'EQUALS', relation: 'OR', value: '4' },
299
+ ],
300
+ },
301
+ }));
302
+
303
+ spyFactory.mockClear();
304
+ spyGet.mockClear();
305
+ });
306
+
307
+ it('when in manualMode, then it should not request data from another page', async () => {
308
+ const data = [
309
+ { text: 'First', value: '1' },
310
+ { text: 'Second', value: '2' },
311
+ ];
312
+ const instance = instantiateDefaultSelect({ manualMode: true, searchParam: 'DYNAMIC_FILTER', value: '1',
313
+ datasource: {
314
+ data,
315
+ limit: 1,
316
+ }});
317
+ await flushPromises();
318
+
319
+ await instance.setValue('2');
320
+
321
+ expect(instance.datasource.data).toEqual([data[0]]);
322
+ expect(instance.value).toBeNull();
323
+ });
324
+
325
+ it('should request value from another page using dynamic datasource properties', async () => {
326
+ const data = [
327
+ { text: 'default 1', value: '1' },
328
+ { text: 'default 2', value: '2' },
329
+ { text: 'default 3', value: '3' },
330
+ ];
331
+ const instance = instantiateDefaultSelect({ value: '1', datasource: {
332
+ data,
333
+ limit: 1,
334
+ lazyLoad: true,
335
+ }});
336
+
337
+ instance.datasource.filter = { text: '2' };
338
+ setFocus(instance);
339
+ await flushPromises();
340
+
341
+ expect(instance.datasource.data).toEqual([data[1]]);
342
+
343
+ await instance.setValue('3');
344
+
345
+ expect(instance.datasource.data).toEqual([data[1]]);
346
+ expect(instance.value).toBeNull();
347
+ });
348
+ });
349
+
350
+ describe('formatter()', () => {
351
+ const mockLoaderDynamicMask = () => {
352
+ return jest.spyOn(Loader, 'getInstance').mockImplementation(() => {
353
+ return {
354
+ getDynamicMask: (value: string) => {
355
+ return value.length <= 11 ? '###.###.###-##' : '##.###.###/####-##';
356
+ }
357
+ };
358
+ });
359
+ };
360
+
361
+ it('should get formatted value', async () => {
362
+ const instance = instantiateDefaultSelect();
363
+
364
+ expect(instance.formatter(undefined)).toBeNull();
365
+ expect(instance.formatter('1')).toBe('1');
366
+ expect(instance.formatter({ text: 'default', value: '1' })).toBe('default');
367
+ expect(instance.formatter({ value: '1' })).toBe('');
368
+ });
369
+
370
+ it('should get formatted value with dataTextDiscrete', async () => {
371
+ const instance = new Select({
372
+ name: 'select',
373
+ component: 'ZdSelect',
374
+ dataTextDiscrete: ['value', 'text'],
375
+ dataText: 'text',
376
+ dataValue: 'value',
377
+ datasource: {
378
+ data: [{ text: 'default', value: '1' }],
379
+ },
380
+ });
381
+ const formatterProps = { dataText: instance.dataTextDiscrete, dataTextSeparator: instance.dataTextSeparator };
382
+ instance.search = '1';
383
+ expect(instance.formatter(instance.search)).toBe('1');
384
+ expect(instance.formatter(undefined)).toBeNull();
385
+ expect(instance.formatter('1')).toBe('1');
386
+ expect(instance.formatter({ text: 'default', value: '1' }, formatterProps)).toBe('1 | default');
387
+ expect(instance.formatter({ text: 'default', value: '1' })).toBe('default');
388
+ });
389
+
390
+ it('should get formatted value using multiple dataText values', async () => {
391
+ const instance = new Select({
392
+ name: 'select',
393
+ component: 'ZdSelect',
394
+ dataText: ['value', 'text', 'code'],
395
+ dataValue: 'value',
396
+ datasource: {
397
+ data: [{ text: 'default', value: '1' }],
398
+ },
399
+ });
400
+ expect(instance.formatter(undefined)).toBeNull();
401
+ expect(instance.formatter('1')).toBe('1');
402
+ expect(instance.formatter({ text: 'default', value: '1' })).toBe('1 | default');
403
+ });
404
+
405
+ it('should get formatted value using dataText with mask', async () => {
406
+ const instance = new Select({
407
+ name: 'select',
408
+ component: 'ZdSelect',
409
+ dataText: ['value', { name: 'text', mask: 'a.a.a' }],
410
+ dataValue: 'value',
411
+ datasource: {
412
+ data: [{ text: 'default', value: '1' }],
413
+ },
414
+ });
415
+ expect(instance.formatter({ text: 'default', value: '1' })).toBe('1 | d.e.f');
416
+ });
417
+
418
+ it('should get formatted value using dataText with dynamic mask', async () => {
419
+ const instance = new Select({
420
+ name: 'select',
421
+ component: 'ZdSelect',
422
+ dataText: [
423
+ { name: 'cpf_cnpj', mask: (value: string) => (value.length <= 11 ? '###.###.###-##' : '##.###.###/####-##') },
424
+ 'name',
425
+ ],
426
+ dataValue: 'value',
427
+ datasource: {
428
+ data: [
429
+ { name: 'person', cpf_cnpj: '11111111111' },
430
+ { name: 'company', cpf_cnpj: '22222222222222' },
431
+ ],
432
+ },
433
+ });
434
+ expect(instance.formatter({ name: 'person', cpf_cnpj: '11111111111' })).toBe('111.111.111-11 | person');
435
+ expect(instance.formatter({ name: 'company', cpf_cnpj: '22222222222222' })).toBe('22.222.222/2222-22 | company');
436
+ });
437
+
438
+ it('should get formatted value using dataText with dynamic mask and accessors', async () => {
439
+ const spy = mockLoaderDynamicMask();
440
+
441
+ const instance = new Select({
442
+ name: 'select',
443
+ component: 'ZdSelect',
444
+ dataText: [
445
+ { name: 'cpf_cnpj', mask: '{{AppController.getDynamicMask}}' },
446
+ 'name',
447
+ ],
448
+ dataValue: 'value',
449
+ datasource: {
450
+ data: [
451
+ { name: 'person', cpf_cnpj: '11111111111' },
452
+ { name: 'company', cpf_cnpj: '22222222222222' },
453
+ ],
454
+ },
455
+ });
456
+
457
+ expect(instance.formatter({ name: 'person', cpf_cnpj: '11111111111' })).toBe('111.111.111-11 | person');
458
+ expect(instance.formatter({ name: 'company', cpf_cnpj: '22222222222222' })).toBe('22.222.222/2222-22 | company');
459
+
460
+ spy.mockReset();
461
+ });
462
+
463
+ it('should use default dataTextSeparator when it isnt defined', async () => {
464
+ const formatterFn = FormatterParserProvider.getFormatter('ZdSelect');
465
+ const value = { text: 'default', value: '1' };
466
+
467
+ expect(formatterFn(value, { dataText: ['value', 'text'] })).toBe('1 | default');
468
+ });
469
+
470
+ it('should transform dataText to array if its string', async () => {
471
+ const formatterFn = FormatterParserProvider.getFormatter('ZdSelect');
472
+ const value = { text: 'default', value: '1' };
473
+
474
+ expect(formatterFn(value, { dataText: 'text' })).toBe('default');
475
+ });
476
+ });
477
+
478
+ describe('search', () => {
479
+ it('should not update datasource if component does not have focus', async () => {
480
+ const instance = instantiateDefaultSelect();
481
+ const spy = jest.spyOn(instance.datasource, 'get');
482
+
483
+ instance.search = '2';
484
+ await flushPromises();
485
+
486
+ expect(instance.datasource.search).toBe('');
487
+ expect(instance.search).toBe('2');
488
+ expect(spy).not.toHaveBeenCalled();
489
+
490
+ setFocus(instance);
491
+ await flushPromises();
492
+
493
+ expect(instance.datasource.search).toBe('2');
494
+ expect(spy).toHaveBeenCalled();
495
+
496
+ setBlur(instance);
497
+
498
+ expect(instance.datasource.search).toBe('');
499
+
500
+ spy.mockClear();
501
+ });
502
+
503
+ it('should update datasource search', async () => {
504
+ const instance = instantiateDefaultSelect();
505
+ const spy = jest.spyOn(instance.datasource, 'get');
506
+
507
+ setFocus(instance);
508
+
509
+ instance.search = '2';
510
+ await flushPromises();
511
+
512
+ expect(instance.datasource.search).toBe('2');
513
+ expect(instance.search).toBe('2');
514
+ expect(spy).toHaveBeenCalled();
515
+
516
+ instance.search = '2';
517
+ await flushPromises();
518
+
519
+ expect(spy).toHaveBeenCalledTimes(1);
520
+
521
+ spy.mockClear();
522
+ });
523
+
524
+ it('when in manualMode, then search should not use cache', async () => {
525
+ const instance = instantiateDefaultSelect({
526
+ manualMode: true,
527
+ value: '1',
528
+ datasource: {
529
+ search: 'def',
530
+ data: [{ text: 'default', value: '1' }],
531
+ },
532
+ });
533
+
534
+ setFocus(instance);
535
+ await flushPromises();
536
+
537
+ const spy = jest.spyOn(instance, 'updateSearch');
538
+
539
+ // on search
540
+ instance.search = '2';
541
+ await flushPromises();
542
+
543
+ expect(spy).toHaveBeenCalledTimes(1);
544
+
545
+ // on empty search
546
+ instance.search = '';
547
+ await flushPromises();
548
+
549
+ expect(spy).toHaveBeenCalledTimes(2);
550
+ });
551
+
552
+ it('should clear datasource search when select search is changed to empty', async () => {
553
+ const instance = instantiateDefaultSelect({ value: '1' });
554
+ const spy = jest.spyOn(instance.datasource, 'get');
555
+
556
+ setFocus(instance);
557
+ instance.search = '2';
558
+
559
+ expect(instance.search).toBe('2');
560
+ expect(instance.datasource.search).toBe('2');
561
+ expect(spy).toHaveBeenCalledTimes(2);
562
+
563
+ instance.search = '';
564
+ expect(instance.search).toBe('');
565
+ expect(instance.datasource.search).toBe('');
566
+ expect(spy).toHaveBeenCalledTimes(2);
567
+ spy.mockClear();
568
+ });
569
+
570
+ it('should clear pushedValue when select search is changed to empty', async () => {
571
+ const data = [
572
+ { text: 'default 1', value: '1' },
573
+ { text: 'default 2', value: '2' },
574
+ { text: 'default 3', value: '3' },
575
+ ];
576
+ const instance = instantiateDefaultSelect({
577
+ autocomplete: true,
578
+ datasource: {
579
+ limit: 1,
580
+ data,
581
+ },
582
+ });
583
+ const spy = jest.spyOn(instance.datasource, 'get');
584
+
585
+ expect(instance.datasource.data).toEqual([data[0]]);
586
+
587
+ setFocus(instance);
588
+ // pushedValue
589
+ instance.search = 'default 3';
590
+ await instance.setValue('3');
591
+ setBlur(instance);
592
+ expect(instance.pushedValue).toEqual(data[2]);
593
+ expect(instance.items).toEqual([data[2], data[0]]);
594
+
595
+ setFocus(instance);
596
+ instance.search = '';
597
+ expect(instance.search).toBe('');
598
+ expect(instance.pushedValue).toBeNull();
599
+ expect(instance.items).toEqual([data[0]]);
600
+
601
+ spy.mockClear();
602
+ });
603
+
604
+ it('should not call doSearch if search value is same of selected value', async () => {
605
+ const instance = instantiateDefaultSelect();
606
+ const spy = jest.spyOn(instance, 'updateSearch');
607
+
608
+ setFocus(instance);
609
+ await instance.setValue('1');
610
+
611
+ instance.search = 'default';
612
+ expect(spy).toHaveBeenCalledTimes(1);
613
+
614
+ spy.mockClear();
615
+ });
616
+
617
+ it('should not call doSearch if search value is same of selected value using dataTextDiscrete', async () => {
618
+ const instance = instantiateDefaultSelect({
619
+ dataText: ['value', 'text'],
620
+ dataTextDiscrete: ['text'],
621
+ });
622
+ const spy = jest.spyOn(instance, 'updateSearch');
623
+
624
+ setFocus(instance);
625
+ await instance.setValue('1');
626
+
627
+ instance.search = 'default';
628
+ expect(spy).toHaveBeenCalledTimes(1);
629
+
630
+ instance.search = '1 | default';
631
+ expect(spy).toHaveBeenCalledTimes(1);
632
+ spy.mockClear();
633
+ });
634
+ });
635
+
636
+ describe('events', () => {
637
+ it('should call events', async () => {
638
+ let changeValue = '';
639
+ let inputValue = '';
640
+ const changeFn = jest.fn((args: any) => { changeValue = args.value; });
641
+ const inputFn = jest.fn((args: any) => { inputValue = args.value; });
642
+ const instance = instantiateDefaultSelect();
643
+
644
+ expect(() => { instance.selectChange(null); }).not.toThrow();
645
+ expect(() => { instance.selectInput(null); }).not.toThrow();
646
+ expect(changeFn).not.toHaveBeenCalled();
647
+ expect(inputFn).not.toHaveBeenCalled();
648
+
649
+ instance.events = {
650
+ change: changeFn,
651
+ input: inputFn,
652
+ };
653
+ instance.selectChange({ value: 'value' });
654
+ instance.selectInput('1');
655
+ await flushPromises();
656
+
657
+ expect(changeFn).toHaveBeenCalled();
658
+ expect(changeValue).toBe('value');
659
+ expect(inputFn).toHaveBeenCalled();
660
+ expect(inputValue).toBe('1');
661
+
662
+ instance.selectChange(undefined);
663
+ await flushPromises();
664
+
665
+ expect(changeValue).toBeNull();
666
+ });
667
+
668
+ it('should call datasource get on focus event when preventLoadOnFocus is false', async () => {
669
+ const instance = instantiateDefaultSelect({ preventLoadOnFocus: false, });
670
+
671
+ const spy = jest.spyOn(instance.datasource, 'get');
672
+
673
+ await flushPromises();
674
+ setFocus(instance);
675
+ expect(spy).toHaveBeenCalled();
676
+ spy.mockClear();
677
+ });
678
+
679
+ it('should not call datasource get on focus event when preventLoadOnFocus is true', async () => {
680
+ const instance = instantiateDefaultSelect();
681
+
682
+ const spy = jest.spyOn(instance.datasource, 'get');
683
+
684
+ await flushPromises();
685
+ setFocus(instance);
686
+ expect(spy).not.toHaveBeenCalled();
687
+ spy.mockClear();
688
+ });
689
+
690
+ it('should not call datasource get on focus event when preventLoadOnFocus is set outside the constructor', async () => {
691
+ const instance = instantiateDefaultSelect();
692
+ instance.preventLoadOnFocus = true;
693
+
694
+ const spy = jest.spyOn(instance.datasource, 'get');
695
+
696
+ setFocus(instance);
697
+ expect(spy).not.toHaveBeenCalled();
698
+ spy.mockClear();
699
+ });
700
+
701
+ it('should call datasource get and focus event', async () => {
702
+ let focused = false;
703
+ const instance = instantiateDefaultSelect({ preventLoadOnFocus: false, events: {
704
+ focus: () => { focused = true; },
705
+ }, });
706
+
707
+ const spy = jest.spyOn(instance.datasource, 'get');
708
+
709
+ await flushPromises();
710
+ setFocus(instance);
711
+ expect(focused).toBeTruthy();
712
+ expect(spy).toHaveBeenCalled();
713
+ spy.mockClear();
714
+ });
715
+
716
+ it('focus should cache the current datasource', async () => {
717
+ const data = [
718
+ { text: 'First 1', value: '1' },
719
+ { text: 'Second 2', value: '2' },
720
+ { text: 'Third 3', value: '3' },
721
+ ];
722
+
723
+ const instance = instantiateDefaultSelect({ autocomplete: true, datasource: {
724
+ data,
725
+ } });
726
+
727
+ await instance.datasource.setFilter({ text: '1' });
728
+ expect(instance.datasource.data).toEqual([data[0]]);
729
+ setFocus(instance);
730
+ expect(instance.datasource.data).toEqual([data[0]]);
731
+ setBlur(instance);
732
+ expect(instance.datasource.data).toEqual([data[0]]);
733
+
734
+ await instance.datasource.setFilter({ text: '2' });
735
+ expect(instance.datasource.data).toEqual([data[1]]);
736
+ setFocus(instance);
737
+ expect(instance.datasource.data).toEqual([data[1]]);
738
+ setBlur(instance);
739
+ expect(instance.datasource.data).toEqual([data[1]]);
740
+
741
+ const newData = [
742
+ { text: 'Third 4', value: '4' },
743
+ { text: 'Third 5', value: '5' },
744
+ ];
745
+ instance.datasource.data = newData;
746
+
747
+ expect(instance.datasource.data).toEqual(newData);
748
+ setFocus(instance);
749
+ expect(instance.datasource.data).toEqual(newData);
750
+ setBlur(instance);
751
+ expect(instance.datasource.data).toEqual(newData);
752
+ });
753
+
754
+ it('when in manualMode, then focus should not cache values', async () => {
755
+ const data = [
756
+ { text: 'First 1', value: '1' },
757
+ { text: 'Second 2', value: '2' },
758
+ { text: 'Third 3', value: '3' },
759
+ ];
760
+ const instance = instantiateDefaultSelect({ autocomplete: true, manualMode: true, datasource: { data }});
761
+ await flushPromises();
762
+
763
+ expect(instance.datasource.data).toEqual(data);
764
+
765
+ setFocus(instance);
766
+ await instance.updateSearch('First');
767
+ setBlur(instance);
768
+
769
+ expect(instance.datasource.data).toEqual([data[0]]);
770
+ });
771
+
772
+ it('should call change event when select has default value and it changes to null', async () => {
773
+ const instance = instantiateDefaultSelect({ value: '1', events: { change: () => {} }});
774
+
775
+ const spy = jest.spyOn(instance.events as any, 'change');
776
+
777
+ await flushPromises();
778
+
779
+ expect(spy).toHaveBeenCalledTimes(0);
780
+
781
+ await instance.setValue(null, true);
782
+ expect(spy).toHaveBeenCalledTimes(1);
783
+ spy.mockClear();
784
+ });
785
+
786
+ it('when inputting the same value twice, should call input event only once', () => {
787
+ const spy = jest.fn();
788
+ const instance = instantiateDefaultSelect({ events: { input: spy }});
789
+
790
+ instance.selectInput('1');
791
+ instance.selectInput('1');
792
+
793
+ expect(spy).toHaveBeenCalledTimes(1);
794
+ });
795
+ });
796
+
797
+ describe('updateData()', () => {
798
+ it('should update datasource data', async () => {
799
+ const instance = instantiateDefaultSelect();
800
+
801
+ expect(instance.datasource.data).toEqual([{ text: 'default', value: '1' }]);
802
+ await instance.updateData([{ text: 'default2', value: '2' }]);
803
+ expect(instance.datasource.data).toEqual([{ text: 'default2', value: '2' }]);
804
+ });
805
+
806
+ it('should update data even if simple datasource', async () => {
807
+ const instance = instantiateDefaultSelect({ datasource: { type: 'simple', items: ['1', '2', '3']} });
808
+
809
+ expect(instance.datasource.data).toEqual([{ value: '1' }, { value: '2' }, { value: '3' }]);
810
+ await instance.updateData([{ value: '4' }]);
811
+ expect(instance.datasource.data).toEqual([{ value: '4' }]);
812
+ });
813
+
814
+ it('should update data even if using rest datasource', async () => {
815
+ const spy = mockGetUsingData([
816
+ { value: '1' }, { value: '2' }, { value: '3' },
817
+ { value: '4' }, { value: '5' }, { value: '6' },
818
+ ]);
819
+
820
+ const instance = instantiateDefaultSelect({ dataText: 'value', dataValue: 'value', datasource: { type: 'rest', route: '/zeedhi', lazyLoad: false }})
821
+
822
+ await instance.datasource.get();
823
+ expect(instance.datasource.data.length).toBe(6);
824
+ await instance.updateData([{ value: '4' }]);
825
+ expect(instance.datasource.data.length).toBe(1);
826
+ spy.mockClear();
827
+ });
828
+ });
829
+
830
+ describe('updateItems()', () => {
831
+ it('should update datasource items', async () => {
832
+ const instance = instantiateDefaultSelect({ datasource: { type: 'simple', items: ['1', '2', '3']} });
833
+
834
+ expect(instance.datasource.data).toEqual([{ value: '1' }, { value: '2' }, { value: '3' }]);
835
+ await instance.updateItems(['4']);
836
+ expect(instance.datasource.data).toEqual([{ value: '4' }]);
837
+ });
838
+
839
+ it('should update data even if not simple datasource', async () => {
840
+ const instance = instantiateDefaultSelect();
841
+
842
+ expect(instance.datasource.data).toEqual([{ text: 'default', value: '1' }]);
843
+ await instance.updateItems(['2']);
844
+ expect(instance.datasource.data).toEqual([{ value: '2' }]);
845
+ });
846
+ });
847
+
848
+ describe('loadMore()', () => {
849
+ it('should load more data', async () => {
850
+ const data = [
851
+ { text: 'default1', value: '1' },
852
+ { text: 'default2', value: '2' },
853
+ { text: 'default3', value: '3' },
854
+ { text: 'default4', value: '4' },
855
+ ];
856
+ const instance = instantiateDefaultSelect({ datasource: { limit: 2, data }});
857
+
858
+ expect(instance.datasource.limit).toBe(2);
859
+ expect(instance.showLoadMore()).toBeTruthy();
860
+
861
+ await instance.loadMore();
862
+
863
+ expect(instance.datasource.limit).toBe(4);
864
+ expect(instance.showLoadMore()).toBeFalsy();
865
+ });
866
+
867
+ it('should not cache if searching', async () => {
868
+ const data = [
869
+ { text: 'default1', value: '1' },
870
+ { text: 'default2', value: '2' },
871
+ { text: 'default3', value: '3' },
872
+ { text: 'default4', value: '4' },
873
+ { text: 'default5', value: '5' },
874
+ ];
875
+
876
+ const instance = instantiateDefaultSelect({ value: '5', datasource: { limit: 2, data }});
877
+
878
+ setFocus(instance);
879
+ await flushPromises();
880
+ instance.search = 'def';
881
+ await flushPromises();
882
+ expect(instance.datasource.limit).toBe(2);
883
+ expect(instance.showLoadMore()).toBeTruthy();
884
+ expect(instance.datasource.data.length).toBe(2);
885
+
886
+ await instance.loadMore();
887
+
888
+ expect(instance.datasource.limit).toBe(4);
889
+ expect(instance.showLoadMore()).toBeTruthy();
890
+ expect(instance.datasource.data.length).toBe(4);
891
+
892
+ setBlur(instance);
893
+ expect(instance.datasource.data.length).toBe(2);
894
+ });
895
+
896
+ it('when select has pushedValue, should remove loadMore after all items are loaded', async () => {
897
+ const data = [
898
+ { value: '1', text: 'First' },
899
+ { value: '2', text: 'Second' },
900
+ { value: '3', text: 'Third' },
901
+ ];
902
+ const instance = instantiateDefaultSelect({ value: '3', datasource: { limit: 1, data }});
903
+
904
+ await flushPromises();
905
+
906
+ setFocus(instance);
907
+ await flushPromises();
908
+
909
+ await instance.loadMore();
910
+ expect(instance.pushedValue).toEqual(data[2]);
911
+ expect(instance.datasource.data).toEqual([data[0], data[1]]);
912
+
913
+ await instance.loadMore();
914
+ expect(instance.showLoadMore()).toBeFalsy();
915
+ expect(instance.pushedValue).toBeNull();
916
+ expect(instance.datasource.data).toEqual(data);
917
+ });
918
+ });
919
+
920
+ describe('blur()', () => {
921
+ it('should clear search and value on blur if autocomplete', async () => {
922
+ const instance = instantiateDefaultSelect();
923
+
924
+ await instance.setValue('1');
925
+ setBlur(instance);
926
+ expect(instance.datasource.search).toBe('');
927
+ expect(instance.value).toBeNull();
928
+ expect(instance.datasource.data).toEqual([
929
+ { text: 'default', value: '1' },
930
+ ]);
931
+ });
932
+
933
+ it('blur should not add value in datasource if it is already there', async () => {
934
+ const data = [{ text: 'First', value: '1' }];
935
+ const instance = instantiateDefaultSelect({
936
+ datasource: {
937
+ data,
938
+ },
939
+ });
940
+
941
+ instance.search = data[0].text;
942
+ instance.selectValue = data[0];
943
+ await flushPromises();
944
+ setBlur(instance);
945
+ expect(instance.datasource.data).toEqual(data);
946
+ });
947
+
948
+ it('blur should not clear search if not autocomplete', async () => {
949
+ const instance = instantiateDefaultSelect({
950
+ autocomplete: false,
951
+ });
952
+ const spy = jest.spyOn(instance.datasource, 'get');
953
+
954
+ instance.search = '2';
955
+ expect(instance.datasource.search).toBe('');
956
+ expect(instance.search).toBe('2');
957
+ expect(spy).not.toHaveBeenCalled();
958
+
959
+ setFocus(instance);
960
+ await flushPromises();
961
+ expect(instance.datasource.search).toBe('2');
962
+ expect(spy).toHaveBeenCalled();
963
+
964
+ setBlur(instance);
965
+ expect(instance.datasource.search).toBe('2');
966
+
967
+ spy.mockClear();
968
+ });
969
+
970
+ it('when select has pushedValue and another value is pushed, should remove the first push on blur', async () => {
971
+ const data = [
972
+ { value: '1', text: 'First' },
973
+ { value: '2', text: 'Second' },
974
+ { value: '3', text: 'Third' },
975
+ ];
976
+ const instance = instantiateDefaultSelect({
977
+ value: '3',
978
+ datasource: {
979
+ data,
980
+ limit: 1,
981
+ },
982
+ });
983
+ await flushPromises();
984
+
985
+ setFocus(instance);
986
+ await flushPromises();
987
+
988
+ instance.search = '2';
989
+ await flushPromises();
990
+ instance.selectValue = data[1];
991
+
992
+ setBlur(instance);
993
+
994
+ expect(instance.pushedValue).toEqual(data[1]);
995
+ expect(instance.items).toEqual([data[1], data[0]]);
996
+ });
997
+ });
998
+
999
+ describe('destroy()', () => {
1000
+ it('should destroy the component', () => {
1001
+ const method = jest.fn();
1002
+ const instance = new Select({
1003
+ name: 'select',
1004
+ component: 'ZdSelect',
1005
+ events: { onBeforeDestroy: method },
1006
+ });
1007
+ instance.onBeforeDestroy();
1008
+ expect(method).toHaveBeenCalled();
1009
+ });
1010
+ });
1011
+
1012
+ describe('indexOf()', () => {
1013
+ it('should find the index of an item', () => {
1014
+ const data = [
1015
+ { text: 'First', value: '1' },
1016
+ { text: 'Second', value: '2' },
1017
+ { text: 'Third', value: '3' },
1018
+ ];
1019
+ const instance = instantiateDefaultSelect({
1020
+ datasource: {
1021
+ data,
1022
+ },
1023
+ });
1024
+
1025
+ const index = instance.indexOf(data[1]);
1026
+
1027
+ expect(index).toBe(1);
1028
+ });
1029
+
1030
+ it('should find the index of an item by item value', () => {
1031
+ const data = [
1032
+ { text: 'First', value: '1' },
1033
+ { text: 'Second', value: '2' },
1034
+ { text: 'Third', value: '3' },
1035
+ ];
1036
+ const instance = instantiateDefaultSelect({
1037
+ datasource: {
1038
+ data,
1039
+ },
1040
+ });
1041
+
1042
+ const index = instance.indexOf(data[2].value);
1043
+
1044
+ expect(index).toBe(2);
1045
+ });
1046
+ });
1047
+
1048
+ describe('Accessor in value', () => {
1049
+ const mockLoaderValueAccessor = (controller: IDictionary) => {
1050
+ return jest.spyOn(Loader, 'getInstance').mockImplementation(() => {
1051
+ return controller;
1052
+ });
1053
+ };
1054
+
1055
+ it('when accessor is used in value, should sync controller value and select value', () => {
1056
+ const controller = { value: '1' };
1057
+ mockLoaderValueAccessor(controller);
1058
+ const spy = jest.fn();
1059
+
1060
+ const data = [
1061
+ { text: 'First', value: '1' },
1062
+ { text: 'Second', value: '2' },
1063
+ { text: 'Third', value: '3' },
1064
+ ];
1065
+ const instance = instantiateDefaultSelect({
1066
+ value: '{{AppController.value}}',
1067
+ datasource: {
1068
+ data,
1069
+ },
1070
+ events: {
1071
+ change: () => spy(),
1072
+ },
1073
+ });
1074
+
1075
+ expect(instance.value).toBe('1');
1076
+ expect(spy).not.toHaveBeenCalled();
1077
+
1078
+ controller.value = '2';
1079
+
1080
+ expect(instance.value).toBe('2');
1081
+ });
1082
+ });
1083
+
1084
+ describe('Data change', () => {
1085
+ it('when datasource is updated, should set the previous value as current value', async () => {
1086
+ const data = [
1087
+ { text: 'First', value: '1' },
1088
+ { text: 'Second', value: '2' },
1089
+ { text: 'Third', value: '3' },
1090
+ ];
1091
+ const instance = instantiateDefaultSelect({
1092
+ value: '1',
1093
+ datasource: {
1094
+ data,
1095
+ limit: 1,
1096
+ },
1097
+ });
1098
+
1099
+ await instance.datasource.get();
1100
+
1101
+ expect(instance.value).toBe('1');
1102
+ expect(instance.selectValue).toEqual(data[0]);
1103
+ });
1104
+
1105
+ it('when datasource is updated, should set value as null if not found in any page', async () => {
1106
+ const data = [
1107
+ { text: 'First', value: '1' },
1108
+ { text: 'Second', value: '2' },
1109
+ { text: 'Third', value: '3' },
1110
+ ];
1111
+ const instance = instantiateDefaultSelect({
1112
+ value: '1',
1113
+ datasource: {
1114
+ data,
1115
+ },
1116
+ });
1117
+
1118
+ await instance.datasource.setFilter({ value: '2' });
1119
+
1120
+ expect(instance.value).toBeNull();
1121
+ expect(instance.selectValue).toBeNull();
1122
+ });
1123
+
1124
+ it('when datasource search changes, should not change value', async () => {
1125
+ const data = [
1126
+ { text: 'First', value: '1' },
1127
+ { text: 'Second', value: '2' },
1128
+ { text: 'Third', value: '3' },
1129
+ ];
1130
+ const instance = instantiateDefaultSelect({
1131
+ value: '1',
1132
+ datasource: {
1133
+ data,
1134
+ },
1135
+ });
1136
+
1137
+ await instance.datasource.setSearch('Second');
1138
+
1139
+ expect(instance.value).toBe('1');
1140
+ expect(instance.selectValue).toEqual(data[0]);
1141
+ });
1142
+
1143
+ it('when datasource is updated, if the value cannot be found should set value as null', async () => {
1144
+ const data = [
1145
+ { text: 'First', value: '1' },
1146
+ { text: 'Second', value: '2' },
1147
+ { text: 'Third', value: '3' },
1148
+ ];
1149
+ const instance = new Select({
1150
+ name: 'select',
1151
+ component: 'ZdSelect',
1152
+ dataText: 'text',
1153
+ dataValue: 'value',
1154
+ value: '2',
1155
+ datasource: {
1156
+ data,
1157
+ limit: 1,
1158
+ },
1159
+ });
1160
+ instance.onCreated();
1161
+ await flushPromises();
1162
+
1163
+ await instance.datasource.setFilter({ value: '3' });
1164
+
1165
+ expect(instance.value).toBeNull();
1166
+ expect(instance.selectValue).toBeNull();
1167
+ expect(instance.datasource.data).toEqual([{ text: 'Third', value: '3' }]);
1168
+ });
1169
+ });
1170
+
1171
+ describe('pushed value', () => {
1172
+ it('should push the value if it is from another page', async () => {
1173
+ const data = [
1174
+ { text: 'default', value: '1' },
1175
+ { text: 'default 2', value: '2' },
1176
+ ];
1177
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
1178
+
1179
+ await instance.setValue('2');
1180
+
1181
+ expect(instance.items).toEqual([data[1], data[0]]);
1182
+ expect(instance.pushedValue).toEqual(data[1]);
1183
+ });
1184
+
1185
+ it('should push the value on blur if it isnt part of the cache', async () => {
1186
+ const data = [
1187
+ { text: 'default', value: '1' },
1188
+ { text: 'default 2', value: '2' },
1189
+ ];
1190
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
1191
+
1192
+ setFocus(instance);
1193
+
1194
+ instance.search = '2';
1195
+ await flushPromises();
1196
+
1197
+ await instance.setValue('2');
1198
+
1199
+ setBlur(instance);
1200
+
1201
+ expect(instance.items).toEqual([data[1], data[0]]);
1202
+ expect(instance.pushedValue).toEqual(data[1]);
1203
+ });
1204
+
1205
+ it('should push value when datasource reloads if found in another page', async () => {
1206
+ const data = [
1207
+ { text: 'default', value: '1' },
1208
+ { text: 'default 2', value: '2' },
1209
+ ];
1210
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
1211
+
1212
+ await instance.setValue('2');
1213
+
1214
+ await instance.datasource.get();
1215
+
1216
+ expect(instance.pushedValue).toEqual(data[1]);
1217
+ });
1218
+
1219
+ it('should clear pushed value when datasource reloads if not found in another page', async () => {
1220
+ const data = [
1221
+ { text: 'First', value: '1' },
1222
+ { text: 'Second', value: '2' },
1223
+ { text: 'Third', value: '3' },
1224
+ ];
1225
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
1226
+
1227
+ await instance.setValue('2');
1228
+
1229
+ // sets a filter, so the value '2' cannot be found in other pages
1230
+ await instance.datasource.setFilter({ value: '3' });
1231
+
1232
+ expect(instance.pushedValue).toBeNull();
1233
+ });
1234
+
1235
+ it('should clear pushed value when datasource reloads and the current value is part of the new data', async () => {
1236
+ const data = [
1237
+ { text: 'First', value: '1' },
1238
+ { text: 'Second', value: '2' },
1239
+ { text: 'Third', value: '3' },
1240
+ ];
1241
+ const instance = instantiateDefaultSelect({ datasource: { data, limit: 1 }});
1242
+
1243
+ await instance.setValue('2');
1244
+
1245
+ await instance.datasource.setLimit(2);
1246
+
1247
+ expect(instance.pushedValue).toBeNull();
1248
+ });
1249
+
1250
+ it('should clear pushedValue when select search is changed to empty', async () => {
1251
+ const data = [
1252
+ { text: 'default 1', value: '1' },
1253
+ { text: 'default 2', value: '2' },
1254
+ { text: 'default 3', value: '3' },
1255
+ ];
1256
+ const instance = instantiateDefaultSelect({
1257
+ autocomplete: true,
1258
+ datasource: {
1259
+ limit: 1,
1260
+ data,
1261
+ },
1262
+ });
1263
+ const spy = jest.spyOn(instance.datasource, 'get');
1264
+
1265
+ expect(instance.items).toEqual([data[0]]);
1266
+
1267
+ setFocus(instance);
1268
+ // pushedValue
1269
+ instance.search = 'default 3';
1270
+ await instance.setValue('3');
1271
+ setBlur(instance);
1272
+ expect(instance.pushedValue).toEqual(data[2]);
1273
+ expect(instance.items).toEqual([data[2], data[0]]);
1274
+
1275
+ setFocus(instance);
1276
+ instance.search = '';
1277
+ expect(instance.search).toBe('');
1278
+ expect(instance.pushedValue).toBeNull();
1279
+ expect(instance.items).toEqual([data[0]]);
1280
+
1281
+ spy.mockClear();
1282
+ });
1283
+
1284
+ it('should clear pushed value on blur if select value is null', async () => {
1285
+ const data = [
1286
+ { text: 'default', value: '1' },
1287
+ { text: 'default 2', value: '2' },
1288
+ ];
1289
+ const instance = instantiateDefaultSelect({ value: '2', datasource: { data, limit: 1 }});
1290
+ await flushPromises();
1291
+ expect(instance.pushedValue).toEqual(data[1]);
1292
+
1293
+ setFocus(instance);
1294
+
1295
+ instance.setValue(null);
1296
+
1297
+ setBlur(instance);
1298
+ expect(instance.pushedValue).toBeNull();
1299
+ });
1300
+ });
1301
+
1302
+ describe('showSkeletonLoaders', () => {
1303
+ it('should return true when datasource is loading and has no data', () => {
1304
+ const instance = instantiateDefaultSelect({ datasource: { loading: true }});
1305
+
1306
+ expect(instance.showSkeletonLoaders()).toBeTruthy();
1307
+ });
1308
+
1309
+ it('should return true when datasource is loading and is less than total', () => {
1310
+ const instance = instantiateDefaultSelect({ datasource: { loading: true, data: [{}] }});
1311
+ instance.datasource.total = 10;
1312
+
1313
+ expect(instance.showSkeletonLoaders()).toBeTruthy();
1314
+ });
1315
+ });
1316
+ });