@zeedhi/common 3.0.5 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/coverage/clover.xml +1404 -1469
  2. package/coverage/coverage-final.json +146 -143
  3. package/coverage/lcov-report/index.html +44 -29
  4. package/coverage/lcov-report/src/components/index.html +1 -1
  5. package/coverage/lcov-report/src/components/index.ts.html +152 -152
  6. package/coverage/lcov-report/src/components/tek-grid/columns-searcher.ts.html +151 -0
  7. package/coverage/lcov-report/src/components/tek-grid/dynamic-filter-datasource-factory.ts.html +145 -0
  8. package/coverage/lcov-report/src/components/tek-grid/filter-helper.ts.html +145 -0
  9. package/coverage/lcov-report/src/components/tek-grid/grid-filter-button.ts.html +1351 -0
  10. package/coverage/lcov-report/src/components/tek-grid/grouped-data-manager.ts.html +1429 -0
  11. package/coverage/lcov-report/src/components/tek-grid/grouped-data-selector.ts.html +205 -0
  12. package/coverage/lcov-report/src/components/tek-grid/grouped-view-navigator.ts.html +340 -0
  13. package/coverage/lcov-report/src/components/tek-grid/index.html +326 -0
  14. package/coverage/lcov-report/src/components/tek-grid/index.ts.html +139 -0
  15. package/coverage/lcov-report/src/components/tek-grid/interfaces.ts.html +1072 -0
  16. package/coverage/lcov-report/src/components/tek-grid/keymap-grouped.ts.html +148 -0
  17. package/coverage/lcov-report/src/components/tek-grid/layout-options.ts.html +829 -0
  18. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.html +161 -0
  19. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.ts.html +94 -0
  20. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/interfaces.ts.html +193 -0
  21. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts.html +1027 -0
  22. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts.html +757 -0
  23. package/coverage/lcov-report/src/components/tek-grid/tek-grid-column.ts.html +664 -0
  24. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/index.html +131 -0
  25. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts.html +169 -0
  26. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts.html +196 -0
  27. package/coverage/lcov-report/src/components/tek-grid/tek-grid-controller.ts.html +505 -0
  28. package/coverage/lcov-report/src/components/tek-grid/tek-grid-events.ts.html +400 -0
  29. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts.html +163 -0
  30. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.html +146 -0
  31. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts.html +94 -0
  32. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts.html +340 -0
  33. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.html +131 -0
  34. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.ts.html +91 -0
  35. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts.html +1186 -0
  36. package/coverage/lcov-report/src/components/tek-grid/tek-grid.ts.html +3451 -0
  37. package/coverage/lcov-report/src/components/zd-alert/alert.ts.html +3 -3
  38. package/coverage/lcov-report/src/components/zd-alert/index.html +1 -1
  39. package/coverage/lcov-report/src/components/zd-badge/badge.ts.html +3 -3
  40. package/coverage/lcov-report/src/components/zd-badge/index.html +1 -1
  41. package/coverage/lcov-report/src/components/zd-breadcrumbs/breadcrumbs.ts.html +3 -3
  42. package/coverage/lcov-report/src/components/zd-breadcrumbs/index.html +1 -1
  43. package/coverage/lcov-report/src/components/zd-button/button.ts.html +3 -3
  44. package/coverage/lcov-report/src/components/zd-button/index.html +1 -1
  45. package/coverage/lcov-report/src/components/zd-button-group/button-group.ts.html +3 -3
  46. package/coverage/lcov-report/src/components/zd-button-group/index.html +1 -1
  47. package/coverage/lcov-report/src/components/zd-card/card.ts.html +3 -3
  48. package/coverage/lcov-report/src/components/zd-card/index.html +1 -1
  49. package/coverage/lcov-report/src/components/zd-carousel/carousel.ts.html +3 -3
  50. package/coverage/lcov-report/src/components/zd-carousel/index.html +1 -1
  51. package/coverage/lcov-report/src/components/zd-checkbox/checkbox.ts.html +5 -5
  52. package/coverage/lcov-report/src/components/zd-checkbox/index.html +1 -1
  53. package/coverage/lcov-report/src/components/zd-checkbox-multiple/checkbox-multiple.ts.html +6 -6
  54. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +1 -1
  55. package/coverage/lcov-report/src/components/zd-chip/chip.ts.html +3 -3
  56. package/coverage/lcov-report/src/components/zd-chip/index.html +1 -1
  57. package/coverage/lcov-report/src/components/zd-code-editor/code-editor.ts.html +1045 -0
  58. package/coverage/lcov-report/src/components/zd-code-editor/index.html +116 -0
  59. package/coverage/lcov-report/src/components/zd-code-viewer/code-viewer.ts.html +4 -4
  60. package/coverage/lcov-report/src/components/zd-code-viewer/index.html +1 -1
  61. package/coverage/lcov-report/src/components/zd-col/col.ts.html +3 -3
  62. package/coverage/lcov-report/src/components/zd-col/index.html +1 -1
  63. package/coverage/lcov-report/src/components/zd-collapse-card/collapse-card.ts.html +3 -3
  64. package/coverage/lcov-report/src/components/zd-collapse-card/index.html +1 -1
  65. package/coverage/lcov-report/src/components/zd-component/child-not-found.ts.html +2 -2
  66. package/coverage/lcov-report/src/components/zd-component/component-render.ts.html +5 -5
  67. package/coverage/lcov-report/src/components/zd-component/component.ts.html +57 -57
  68. package/coverage/lcov-report/src/components/zd-component/index.html +1 -1
  69. package/coverage/lcov-report/src/components/zd-container/container.ts.html +3 -3
  70. package/coverage/lcov-report/src/components/zd-container/index.html +1 -1
  71. package/coverage/lcov-report/src/components/zd-currency/currency.ts.html +9 -9
  72. package/coverage/lcov-report/src/components/zd-currency/index.html +1 -1
  73. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +160 -517
  74. package/coverage/lcov-report/src/components/zd-date-input/index.html +24 -9
  75. package/coverage/lcov-report/src/components/zd-date-input/utils.ts.html +136 -0
  76. package/coverage/lcov-report/src/components/zd-date-range/date-range.ts.html +289 -583
  77. package/coverage/lcov-report/src/components/zd-date-range/index.html +24 -9
  78. package/coverage/lcov-report/src/components/zd-date-range/utils.ts.html +178 -0
  79. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +30 -30
  80. package/coverage/lcov-report/src/components/zd-dialog/index.html +1 -1
  81. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +3 -3
  82. package/coverage/lcov-report/src/components/zd-divider/index.html +1 -1
  83. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +3 -3
  84. package/coverage/lcov-report/src/components/zd-dropdown/index.html +1 -1
  85. package/coverage/lcov-report/src/components/zd-field-group/field-group.ts.html +325 -0
  86. package/coverage/lcov-report/src/components/zd-field-group/index.html +116 -0
  87. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +3 -3
  88. package/coverage/lcov-report/src/components/zd-footer/index.html +1 -1
  89. package/coverage/lcov-report/src/components/zd-form/form.ts.html +3 -3
  90. package/coverage/lcov-report/src/components/zd-form/index.html +1 -1
  91. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +7 -7
  92. package/coverage/lcov-report/src/components/zd-frame/index.html +1 -1
  93. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +4 -4
  94. package/coverage/lcov-report/src/components/zd-frame-page/index.html +1 -1
  95. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +2 -2
  96. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +2 -2
  97. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +10 -10
  98. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +2 -2
  99. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +13 -13
  100. package/coverage/lcov-report/src/components/zd-grid/index.html +1 -1
  101. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +12 -12
  102. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +3 -3
  103. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +3 -3
  104. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +2 -2
  105. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +4 -4
  106. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +2 -2
  107. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +6 -6
  108. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +7 -7
  109. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +1 -1
  110. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +3 -3
  111. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +2 -2
  112. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +2 -2
  113. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +3 -3
  114. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +2 -2
  115. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +2 -2
  116. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +9 -9
  117. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +1 -1
  118. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +9 -9
  119. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +2 -2
  120. package/coverage/lcov-report/src/components/zd-header/header.ts.html +3 -3
  121. package/coverage/lcov-report/src/components/zd-header/index.html +1 -1
  122. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +3 -3
  123. package/coverage/lcov-report/src/components/zd-icon/index.html +1 -1
  124. package/coverage/lcov-report/src/components/zd-image/image.ts.html +3 -3
  125. package/coverage/lcov-report/src/components/zd-image/index.html +1 -1
  126. package/coverage/lcov-report/src/components/zd-increment/increment.ts.html +5 -5
  127. package/coverage/lcov-report/src/components/zd-increment/index.html +1 -1
  128. package/coverage/lcov-report/src/components/zd-input/index.html +1 -1
  129. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +4 -4
  130. package/coverage/lcov-report/src/components/zd-input/input.ts.html +46 -46
  131. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +2 -2
  132. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +86 -86
  133. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +4 -4
  134. package/coverage/lcov-report/src/components/zd-iterable/index.html +20 -20
  135. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +2 -2
  136. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +6 -6
  137. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +2 -2
  138. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +5 -5
  139. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +3 -3
  140. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +5 -5
  141. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +3 -3
  142. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +131 -17
  143. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +8 -8
  144. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +1 -1
  145. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +5 -5
  146. package/coverage/lcov-report/src/components/zd-layout/index.html +1 -1
  147. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +3 -3
  148. package/coverage/lcov-report/src/components/zd-list/index.html +1 -1
  149. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +2 -2
  150. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +4 -4
  151. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +3 -3
  152. package/coverage/lcov-report/src/components/zd-list/list.ts.html +4 -4
  153. package/coverage/lcov-report/src/components/zd-loading/index.html +1 -1
  154. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +3 -3
  155. package/coverage/lcov-report/src/components/zd-login/index.html +1 -1
  156. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +4 -4
  157. package/coverage/lcov-report/src/components/zd-login/login.ts.html +3 -3
  158. package/coverage/lcov-report/src/components/zd-main/index.html +1 -1
  159. package/coverage/lcov-report/src/components/zd-main/main.ts.html +3 -3
  160. package/coverage/lcov-report/src/components/zd-master-detail/detail-not-found.ts.html +3 -3
  161. package/coverage/lcov-report/src/components/zd-master-detail/index.html +1 -1
  162. package/coverage/lcov-report/src/components/zd-master-detail/master-detail.ts.html +6 -6
  163. package/coverage/lcov-report/src/components/zd-master-detail/master-not-found.ts.html +3 -3
  164. package/coverage/lcov-report/src/components/zd-menu/index.html +1 -1
  165. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +4 -4
  166. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +3 -3
  167. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +3 -3
  168. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +3 -3
  169. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +4 -4
  170. package/coverage/lcov-report/src/components/zd-modal/index.html +1 -1
  171. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +4 -4
  172. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +5 -5
  173. package/coverage/lcov-report/src/components/zd-month/index.html +9 -9
  174. package/coverage/lcov-report/src/components/zd-month/month.ts.html +43 -259
  175. package/coverage/lcov-report/src/components/zd-number-input/index.html +1 -1
  176. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +9 -9
  177. package/coverage/lcov-report/src/components/zd-password/index.html +1 -1
  178. package/coverage/lcov-report/src/components/zd-password/password.ts.html +7 -7
  179. package/coverage/lcov-report/src/components/zd-progress/index.html +1 -1
  180. package/coverage/lcov-report/src/components/zd-progress/progress.ts.html +3 -3
  181. package/coverage/lcov-report/src/components/zd-radio/index.html +1 -1
  182. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +6 -6
  183. package/coverage/lcov-report/src/components/zd-row/index.html +1 -1
  184. package/coverage/lcov-report/src/components/zd-row/row.ts.html +3 -3
  185. package/coverage/lcov-report/src/components/zd-select/index.html +1 -1
  186. package/coverage/lcov-report/src/components/zd-select/select.ts.html +9 -9
  187. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +1 -1
  188. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +5 -5
  189. package/coverage/lcov-report/src/components/zd-svg-map/index.html +1 -1
  190. package/coverage/lcov-report/src/components/zd-svg-map/svg-map.ts.html +4 -4
  191. package/coverage/lcov-report/src/components/zd-switch/index.html +1 -1
  192. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +5 -5
  193. package/coverage/lcov-report/src/components/zd-table/index.html +1 -1
  194. package/coverage/lcov-report/src/components/zd-table/table.ts.html +4 -4
  195. package/coverage/lcov-report/src/components/zd-tabs/index.html +1 -1
  196. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +2 -2
  197. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +3 -3
  198. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +5 -5
  199. package/coverage/lcov-report/src/components/zd-tag/index.html +1 -1
  200. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +3 -3
  201. package/coverage/lcov-report/src/components/zd-text/index.html +1 -1
  202. package/coverage/lcov-report/src/components/zd-text/text.ts.html +3 -3
  203. package/coverage/lcov-report/src/components/zd-text-input/index.html +1 -1
  204. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +20 -20
  205. package/coverage/lcov-report/src/components/zd-textarea/index.html +1 -1
  206. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +5 -5
  207. package/coverage/lcov-report/src/components/zd-time/index.html +1 -1
  208. package/coverage/lcov-report/src/components/zd-time/time-format-selector.ts.html +2 -2
  209. package/coverage/lcov-report/src/components/zd-time/time.ts.html +10 -10
  210. package/coverage/lcov-report/src/components/zd-toggleable/index.html +1 -1
  211. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +3 -3
  212. package/coverage/lcov-report/src/components/zd-tooltip/index.html +1 -1
  213. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +3 -3
  214. package/coverage/lcov-report/src/components/zd-tree/index.html +1 -1
  215. package/coverage/lcov-report/src/components/zd-tree/tree.ts.html +7 -7
  216. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +1 -1
  217. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +7 -7
  218. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +2 -2
  219. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +2 -2
  220. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +3 -3
  221. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +3 -3
  222. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +11 -11
  223. package/coverage/lcov-report/src/error/delete-rows.ts.html +3 -3
  224. package/coverage/lcov-report/src/error/index.html +1 -1
  225. package/coverage/lcov-report/src/error/index.ts.html +4 -4
  226. package/coverage/lcov-report/src/error/non-initialized.ts.html +3 -3
  227. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +130 -0
  228. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +109 -0
  229. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +2 -2
  230. package/coverage/lcov-report/src/index.html +1 -1
  231. package/coverage/lcov-report/src/index.ts.html +9 -9
  232. package/coverage/lcov-report/src/services/index.html +1 -1
  233. package/coverage/lcov-report/src/services/index.ts.html +5 -5
  234. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +3 -3
  235. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +3 -3
  236. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +5 -5
  237. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +3 -3
  238. package/coverage/lcov-report/src/services/zd-alert/index.html +1 -1
  239. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +6 -6
  240. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +4 -4
  241. package/coverage/lcov-report/src/services/zd-dialog/index.html +1 -1
  242. package/coverage/lcov-report/src/services/zd-loading/index.html +1 -1
  243. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +2 -2
  244. package/coverage/lcov-report/src/services/zd-modal/index.html +1 -1
  245. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +5 -5
  246. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +3 -3
  247. package/coverage/lcov-report/src/utils/data-value-out/index.html +1 -1
  248. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +3 -3
  249. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +3 -3
  250. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +1 -1
  251. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +3 -3
  252. package/coverage/lcov-report/src/utils/date-utils/date-utils.ts.html +166 -0
  253. package/coverage/lcov-report/src/utils/date-utils/index.html +116 -0
  254. package/coverage/lcov-report/src/utils/icons/icons.ts.html +6 -6
  255. package/coverage/lcov-report/src/utils/icons/index.html +1 -1
  256. package/coverage/lcov-report/src/utils/index.html +1 -1
  257. package/coverage/lcov-report/src/utils/index.ts.html +8 -8
  258. package/coverage/lcov-report/src/utils/is-filled-object/index.html +116 -0
  259. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +100 -0
  260. package/coverage/lcov-report/src/utils/is-nil.ts.html +94 -0
  261. package/coverage/lcov-report/src/utils/omit/index.html +1 -1
  262. package/coverage/lcov-report/src/utils/omit/omit.ts.html +2 -2
  263. package/coverage/lcov-report/src/utils/theme/index.html +1 -1
  264. package/coverage/lcov-report/src/utils/theme/theme.ts.html +4 -4
  265. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +1 -1
  266. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +3 -3
  267. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +2 -2
  268. package/coverage/lcov-report/src/utils/unique-by/index.html +1 -1
  269. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +3 -3
  270. package/coverage/lcov-report/tests/unit/__helpers__/component-event-helper.ts.html +106 -0
  271. package/coverage/lcov-report/tests/unit/__helpers__/flush-promises-helper.ts.html +94 -0
  272. package/coverage/lcov-report/tests/unit/__helpers__/index.html +146 -0
  273. package/coverage/lcov-report/tests/unit/__helpers__/mock-http-get-helper.ts.html +172 -0
  274. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +1 -1
  275. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +1 -1
  276. package/coverage/lcov.info +1764 -1900
  277. package/dist/style.css +1 -1
  278. package/dist/zd-common.d.mts +7826 -0
  279. package/dist/zd-common.iife.min.js +11 -0
  280. package/dist/zd-common.mjs +12318 -0
  281. package/environments.json +6 -0
  282. package/jest.config.cjs +1 -0
  283. package/package.json +19 -12
  284. package/src/components/zd-date-input/date-input.ts +49 -168
  285. package/src/components/zd-date-input/utils.ts +17 -0
  286. package/src/components/zd-date-range/date-range.ts +111 -212
  287. package/src/components/zd-date-range/utils.ts +31 -0
  288. package/src/components/zd-frame/frame.ts +2 -2
  289. package/src/components/zd-grid-editable/data-editor-with-add.ts +1 -1
  290. package/src/components/zd-grid-editable/data-editor.ts +2 -2
  291. package/src/components/zd-iterable/iterable.ts +41 -3
  292. package/src/components/zd-month/month.ts +19 -91
  293. package/src/styles/_display.scss +3 -1
  294. package/src/styles/_elevation.scss +2 -1
  295. package/src/styles/_functions.scss +14 -11
  296. package/src/styles/_utilities.scss +67 -62
  297. package/src/styles/_variables.scss +17 -16
  298. package/src/styles/index.scss +5 -5
  299. package/src/utils/date-utils/date-utils.ts +27 -0
  300. package/src/utils/tree-data-structure/tree-data-structure.ts +1 -1
  301. package/tests/unit/components/zd-component/component.spec.ts +3 -2
  302. package/tests/unit/components/zd-date-input/date-input.spec.ts +36 -281
  303. package/tests/unit/components/zd-date-range/date-range.spec.ts +456 -393
  304. package/tests/unit/components/zd-grid/grid-column.spec.ts +1 -1
  305. package/tests/unit/components/zd-grid/grid.spec.ts +48 -35
  306. package/tests/unit/components/zd-grid-editable/data-editor.spec.ts +1 -1
  307. package/tests/unit/components/zd-grid-editable/grid-editable.spec.ts +1 -1
  308. package/tests/unit/components/zd-iterable/column.spec.ts +42 -0
  309. package/tests/unit/components/zd-month/month.spec.ts +7 -334
  310. package/tests/unit/components/zd-select/select.spec.ts +1 -2
  311. package/tests/unit/utils/mock-console.ts +18 -0
  312. package/tsdown.config.ts +74 -0
  313. package/.package.json +0 -45
  314. package/dist/types/components/index.d.ts +0 -151
  315. package/dist/types/components/zd-alert/alert.d.ts +0 -94
  316. package/dist/types/components/zd-alert/interfaces.d.ts +0 -18
  317. package/dist/types/components/zd-badge/badge.d.ts +0 -28
  318. package/dist/types/components/zd-badge/interfaces.d.ts +0 -10
  319. package/dist/types/components/zd-breadcrumbs/breadcrumbs.d.ts +0 -32
  320. package/dist/types/components/zd-breadcrumbs/interfaces.d.ts +0 -24
  321. package/dist/types/components/zd-button/button.d.ts +0 -89
  322. package/dist/types/components/zd-button/interfaces.d.ts +0 -48
  323. package/dist/types/components/zd-button-group/button-group.d.ts +0 -67
  324. package/dist/types/components/zd-button-group/interfaces.d.ts +0 -25
  325. package/dist/types/components/zd-card/card.d.ts +0 -152
  326. package/dist/types/components/zd-card/interfaces.d.ts +0 -40
  327. package/dist/types/components/zd-carousel/carousel.d.ts +0 -163
  328. package/dist/types/components/zd-carousel/interfaces.d.ts +0 -49
  329. package/dist/types/components/zd-checkbox/checkbox.d.ts +0 -12
  330. package/dist/types/components/zd-checkbox/interfaces.d.ts +0 -5
  331. package/dist/types/components/zd-checkbox-multiple/checkbox-multiple.d.ts +0 -39
  332. package/dist/types/components/zd-checkbox-multiple/interfaces.d.ts +0 -13
  333. package/dist/types/components/zd-chip/chip.d.ts +0 -60
  334. package/dist/types/components/zd-chip/interfaces.d.ts +0 -18
  335. package/dist/types/components/zd-code-viewer/code-viewer.d.ts +0 -86
  336. package/dist/types/components/zd-code-viewer/interfaces.d.ts +0 -13
  337. package/dist/types/components/zd-col/col.d.ts +0 -33
  338. package/dist/types/components/zd-col/interfaces.d.ts +0 -15
  339. package/dist/types/components/zd-collapse-card/collapse-card.d.ts +0 -56
  340. package/dist/types/components/zd-collapse-card/interfaces.d.ts +0 -14
  341. package/dist/types/components/zd-component/child-not-found.d.ts +0 -6
  342. package/dist/types/components/zd-component/component-render.d.ts +0 -16
  343. package/dist/types/components/zd-component/component.d.ts +0 -120
  344. package/dist/types/components/zd-component/interfaces.d.ts +0 -74
  345. package/dist/types/components/zd-container/container.d.ts +0 -45
  346. package/dist/types/components/zd-container/interfaces.d.ts +0 -12
  347. package/dist/types/components/zd-currency/currency.d.ts +0 -12
  348. package/dist/types/components/zd-currency/interfaces.d.ts +0 -6
  349. package/dist/types/components/zd-date-input/date-input.d.ts +0 -152
  350. package/dist/types/components/zd-date-input/interfaces.d.ts +0 -27
  351. package/dist/types/components/zd-date-range/date-range.d.ts +0 -158
  352. package/dist/types/components/zd-date-range/interfaces.d.ts +0 -18
  353. package/dist/types/components/zd-dialog/dialog.d.ts +0 -76
  354. package/dist/types/components/zd-dialog/interfaces.d.ts +0 -13
  355. package/dist/types/components/zd-divider/divider.d.ts +0 -20
  356. package/dist/types/components/zd-divider/interfaces.d.ts +0 -8
  357. package/dist/types/components/zd-dropdown/dropdown.d.ts +0 -81
  358. package/dist/types/components/zd-dropdown/interfaces.d.ts +0 -23
  359. package/dist/types/components/zd-footer/footer.d.ts +0 -80
  360. package/dist/types/components/zd-footer/interfaces.d.ts +0 -26
  361. package/dist/types/components/zd-form/form.d.ts +0 -174
  362. package/dist/types/components/zd-form/interfaces.d.ts +0 -36
  363. package/dist/types/components/zd-frame/frame.d.ts +0 -81
  364. package/dist/types/components/zd-frame/interfaces.d.ts +0 -23
  365. package/dist/types/components/zd-frame-page/frame-page.d.ts +0 -14
  366. package/dist/types/components/zd-frame-page/interfaces.d.ts +0 -4
  367. package/dist/types/components/zd-grid/data-navigator.d.ts +0 -12
  368. package/dist/types/components/zd-grid/data-selector.d.ts +0 -25
  369. package/dist/types/components/zd-grid/grid-column.d.ts +0 -47
  370. package/dist/types/components/zd-grid/grid-events.d.ts +0 -26
  371. package/dist/types/components/zd-grid/grid.d.ts +0 -85
  372. package/dist/types/components/zd-grid/index.d.ts +0 -11
  373. package/dist/types/components/zd-grid/interfaces.d.ts +0 -148
  374. package/dist/types/components/zd-grid/iterable-table.d.ts +0 -28
  375. package/dist/types/components/zd-grid/keymap-merger.d.ts +0 -26
  376. package/dist/types/components/zd-grid/keymap-navigation.d.ts +0 -6
  377. package/dist/types/components/zd-grid/table-action-builder.d.ts +0 -19
  378. package/dist/types/components/zd-grid/view-navigator.d.ts +0 -10
  379. package/dist/types/components/zd-grid-editable/data-editor-with-add.d.ts +0 -35
  380. package/dist/types/components/zd-grid-editable/data-editor.d.ts +0 -64
  381. package/dist/types/components/zd-grid-editable/errors/index.d.ts +0 -2
  382. package/dist/types/components/zd-grid-editable/errors/not-editing.d.ts +0 -6
  383. package/dist/types/components/zd-grid-editable/errors/row-not-found.d.ts +0 -6
  384. package/dist/types/components/zd-grid-editable/grid-column-editable.d.ts +0 -9
  385. package/dist/types/components/zd-grid-editable/grid-editable-controller.d.ts +0 -8
  386. package/dist/types/components/zd-grid-editable/grid-editable-events.d.ts +0 -32
  387. package/dist/types/components/zd-grid-editable/grid-editable.d.ts +0 -124
  388. package/dist/types/components/zd-grid-editable/index.d.ts +0 -8
  389. package/dist/types/components/zd-grid-editable/interfaces.d.ts +0 -66
  390. package/dist/types/components/zd-grid-editable/keymap-editing.d.ts +0 -7
  391. package/dist/types/components/zd-header/header.d.ts +0 -94
  392. package/dist/types/components/zd-header/interfaces.d.ts +0 -29
  393. package/dist/types/components/zd-icon/icon.d.ts +0 -55
  394. package/dist/types/components/zd-icon/interfaces.d.ts +0 -13
  395. package/dist/types/components/zd-image/image.d.ts +0 -73
  396. package/dist/types/components/zd-image/interfaces.d.ts +0 -17
  397. package/dist/types/components/zd-increment/increment.d.ts +0 -56
  398. package/dist/types/components/zd-increment/interfaces.d.ts +0 -9
  399. package/dist/types/components/zd-input/input-factory.d.ts +0 -6
  400. package/dist/types/components/zd-input/input.d.ts +0 -223
  401. package/dist/types/components/zd-input/interfaces.d.ts +0 -38
  402. package/dist/types/components/zd-iterable/column-not-found.d.ts +0 -6
  403. package/dist/types/components/zd-iterable/column.d.ts +0 -78
  404. package/dist/types/components/zd-iterable/conditions-manager.d.ts +0 -49
  405. package/dist/types/components/zd-iterable/interfaces.d.ts +0 -103
  406. package/dist/types/components/zd-iterable/iterable-columns-button-controller.d.ts +0 -9
  407. package/dist/types/components/zd-iterable/iterable-columns-button.d.ts +0 -35
  408. package/dist/types/components/zd-iterable/iterable-controller.d.ts +0 -8
  409. package/dist/types/components/zd-iterable/iterable-page-component.d.ts +0 -27
  410. package/dist/types/components/zd-iterable/iterable-page-info.d.ts +0 -7
  411. package/dist/types/components/zd-iterable/iterable-page-size.d.ts +0 -62
  412. package/dist/types/components/zd-iterable/iterable-pagination.d.ts +0 -28
  413. package/dist/types/components/zd-iterable/iterable.d.ts +0 -77
  414. package/dist/types/components/zd-iterable/search.d.ts +0 -31
  415. package/dist/types/components/zd-iterable-component-render/interfaces.d.ts +0 -34
  416. package/dist/types/components/zd-iterable-component-render/iterable-component-render.d.ts +0 -84
  417. package/dist/types/components/zd-layout/interfaces.d.ts +0 -7
  418. package/dist/types/components/zd-layout/layout.d.ts +0 -9
  419. package/dist/types/components/zd-list/interfaces.d.ts +0 -44
  420. package/dist/types/components/zd-list/item-not-found.d.ts +0 -6
  421. package/dist/types/components/zd-list/list-group.d.ts +0 -30
  422. package/dist/types/components/zd-list/list-item.d.ts +0 -46
  423. package/dist/types/components/zd-list/list.d.ts +0 -81
  424. package/dist/types/components/zd-loading/interfaces.d.ts +0 -7
  425. package/dist/types/components/zd-loading/loading.d.ts +0 -21
  426. package/dist/types/components/zd-login/interfaces.d.ts +0 -25
  427. package/dist/types/components/zd-login/login-button.d.ts +0 -50
  428. package/dist/types/components/zd-login/login.d.ts +0 -54
  429. package/dist/types/components/zd-main/interfaces.d.ts +0 -5
  430. package/dist/types/components/zd-main/main.d.ts +0 -7
  431. package/dist/types/components/zd-master-detail/detail-not-found.d.ts +0 -7
  432. package/dist/types/components/zd-master-detail/interfaces.d.ts +0 -10
  433. package/dist/types/components/zd-master-detail/master-detail.d.ts +0 -18
  434. package/dist/types/components/zd-master-detail/master-not-found.d.ts +0 -7
  435. package/dist/types/components/zd-menu/interfaces.d.ts +0 -68
  436. package/dist/types/components/zd-menu/menu-button.d.ts +0 -29
  437. package/dist/types/components/zd-menu/menu-group.d.ts +0 -61
  438. package/dist/types/components/zd-menu/menu-link.d.ts +0 -50
  439. package/dist/types/components/zd-menu/menu-separator.d.ts +0 -7
  440. package/dist/types/components/zd-menu/menu.d.ts +0 -199
  441. package/dist/types/components/zd-modal/interfaces.d.ts +0 -35
  442. package/dist/types/components/zd-modal/modal-close-button.d.ts +0 -28
  443. package/dist/types/components/zd-modal/modal.d.ts +0 -53
  444. package/dist/types/components/zd-month/interfaces.d.ts +0 -6
  445. package/dist/types/components/zd-month/month.d.ts +0 -33
  446. package/dist/types/components/zd-number-input/interfaces.d.ts +0 -8
  447. package/dist/types/components/zd-number-input/number-input.d.ts +0 -43
  448. package/dist/types/components/zd-password/interfaces.d.ts +0 -6
  449. package/dist/types/components/zd-password/password.d.ts +0 -17
  450. package/dist/types/components/zd-progress/interfaces.d.ts +0 -10
  451. package/dist/types/components/zd-progress/progress.d.ts +0 -41
  452. package/dist/types/components/zd-radio/interfaces.d.ts +0 -11
  453. package/dist/types/components/zd-radio/radio.d.ts +0 -35
  454. package/dist/types/components/zd-row/interfaces.d.ts +0 -13
  455. package/dist/types/components/zd-row/row.d.ts +0 -39
  456. package/dist/types/components/zd-select/interfaces.d.ts +0 -24
  457. package/dist/types/components/zd-select/select.d.ts +0 -238
  458. package/dist/types/components/zd-select-multiple/interfaces.d.ts +0 -18
  459. package/dist/types/components/zd-select-multiple/select-multiple.d.ts +0 -113
  460. package/dist/types/components/zd-svg-map/interfaces.d.ts +0 -26
  461. package/dist/types/components/zd-svg-map/svg-map.d.ts +0 -35
  462. package/dist/types/components/zd-switch/interfaces.d.ts +0 -7
  463. package/dist/types/components/zd-switch/switch.d.ts +0 -16
  464. package/dist/types/components/zd-table/interfaces.d.ts +0 -25
  465. package/dist/types/components/zd-table/table.d.ts +0 -42
  466. package/dist/types/components/zd-tabs/interfaces.d.ts +0 -40
  467. package/dist/types/components/zd-tabs/tab-not-found.d.ts +0 -11
  468. package/dist/types/components/zd-tabs/tab.d.ts +0 -57
  469. package/dist/types/components/zd-tabs/tabs.d.ts +0 -86
  470. package/dist/types/components/zd-tag/interfaces.d.ts +0 -7
  471. package/dist/types/components/zd-tag/tag.d.ts +0 -13
  472. package/dist/types/components/zd-text/interfaces.d.ts +0 -9
  473. package/dist/types/components/zd-text/text.d.ts +0 -8
  474. package/dist/types/components/zd-text-input/interfaces.d.ts +0 -23
  475. package/dist/types/components/zd-text-input/text-input.d.ts +0 -91
  476. package/dist/types/components/zd-textarea/interfaces.d.ts +0 -21
  477. package/dist/types/components/zd-textarea/textarea.d.ts +0 -71
  478. package/dist/types/components/zd-time/interfaces.d.ts +0 -22
  479. package/dist/types/components/zd-time/time-format-selector.d.ts +0 -8
  480. package/dist/types/components/zd-time/time.d.ts +0 -149
  481. package/dist/types/components/zd-toggleable/interfaces.d.ts +0 -6
  482. package/dist/types/components/zd-toggleable/toggleable.d.ts +0 -21
  483. package/dist/types/components/zd-tooltip/interfaces.d.ts +0 -18
  484. package/dist/types/components/zd-tooltip/tooltip.d.ts +0 -57
  485. package/dist/types/components/zd-tree/interfaces.d.ts +0 -107
  486. package/dist/types/components/zd-tree/tree.d.ts +0 -161
  487. package/dist/types/components/zd-tree-grid/index.d.ts +0 -6
  488. package/dist/types/components/zd-tree-grid/interfaces.d.ts +0 -35
  489. package/dist/types/components/zd-tree-grid/iterable-tree.d.ts +0 -10
  490. package/dist/types/components/zd-tree-grid/keymap-tree.d.ts +0 -7
  491. package/dist/types/components/zd-tree-grid/tree-data-navigator.d.ts +0 -10
  492. package/dist/types/components/zd-tree-grid/tree-data-selector.d.ts +0 -18
  493. package/dist/types/components/zd-tree-grid/tree-grid.d.ts +0 -119
  494. package/dist/types/error/delete-rows.d.ts +0 -7
  495. package/dist/types/error/index.d.ts +0 -3
  496. package/dist/types/error/non-initialized.d.ts +0 -7
  497. package/dist/types/error/zeedhi-error.d.ts +0 -6
  498. package/dist/types/index.d.ts +0 -6
  499. package/dist/types/services/index.d.ts +0 -4
  500. package/dist/types/services/zd-alert/alert-queue.d.ts +0 -13
  501. package/dist/types/services/zd-alert/alert-replace.d.ts +0 -18
  502. package/dist/types/services/zd-alert/alert-service.d.ts +0 -45
  503. package/dist/types/services/zd-alert/alert-stack.d.ts +0 -9
  504. package/dist/types/services/zd-alert/index.d.ts +0 -5
  505. package/dist/types/services/zd-alert/interfaces.d.ts +0 -6
  506. package/dist/types/services/zd-dialog/dialog-service.d.ts +0 -24
  507. package/dist/types/services/zd-loading/loading-service.d.ts +0 -17
  508. package/dist/types/services/zd-modal/modal-service.d.ts +0 -39
  509. package/dist/types/utils/data-value-out/data-value-out.d.ts +0 -5
  510. package/dist/types/utils/data-value-out/index.d.ts +0 -2
  511. package/dist/types/utils/data-value-out/interfaces.d.ts +0 -8
  512. package/dist/types/utils/datasource-searcher/datasource-searcher.d.ts +0 -6
  513. package/dist/types/utils/datasource-searcher/index.d.ts +0 -2
  514. package/dist/types/utils/datasource-searcher/interfaces.d.ts +0 -5
  515. package/dist/types/utils/icons/icons.d.ts +0 -24
  516. package/dist/types/utils/index.d.ts +0 -7
  517. package/dist/types/utils/omit/omit.d.ts +0 -11
  518. package/dist/types/utils/theme/theme.d.ts +0 -34
  519. package/dist/types/utils/tree-data-structure/index.d.ts +0 -2
  520. package/dist/types/utils/tree-data-structure/interfaces.d.ts +0 -30
  521. package/dist/types/utils/tree-data-structure/tree-data-structure.d.ts +0 -155
  522. package/dist/types/utils/unique-by/unique-by.d.ts +0 -3
  523. package/dist/zd-common.js +0 -13133
  524. package/dist/zd-common.min.js +0 -13133
  525. package/rollup.config.js +0 -27
  526. package/rollup.scss.config.js +0 -14
  527. package/tests/unit/utils/is-filled-object.spec.ts +0 -33
  528. package/tsconfig.build.json +0 -7
@@ -0,0 +1,1027 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/components/tek-grid/tek-datasource/tek-memory-datasource.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/components/tek-grid/tek-datasource</a> tek-memory-datasource.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>129/129</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>90/90</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>31/31</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>118/118</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">112x</span>
381
+ <span class="cline-any cline-yes">112x</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-yes">112x</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-yes">19x</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-yes">19x</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-yes">19x</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-yes">19x</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-yes">19x</span>
418
+ <span class="cline-any cline-yes">14x</span>
419
+ <span class="cline-any cline-yes">14x</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-yes">19x</span>
423
+ <span class="cline-any cline-yes">19x</span>
424
+ <span class="cline-any cline-yes">19x</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-yes">11x</span>
429
+ <span class="cline-any cline-yes">11x</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-yes">66x</span>
434
+ <span class="cline-any cline-yes">11x</span>
435
+ <span class="cline-any cline-yes">11x</span>
436
+ <span class="cline-any cline-yes">11x</span>
437
+ <span class="cline-any cline-yes">11x</span>
438
+ <span class="cline-any cline-yes">11x</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-yes">22x</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-yes">6x</span>
447
+ <span class="cline-any cline-yes">6x</span>
448
+ <span class="cline-any cline-yes">3x</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-yes">6x</span>
451
+ <span class="cline-any cline-yes">2x</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-yes">6x</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-yes">5x</span>
458
+ <span class="cline-any cline-yes">5x</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-yes">5x</span>
461
+ <span class="cline-any cline-yes">5x</span>
462
+ <span class="cline-any cline-yes">3x</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-yes">5x</span>
468
+ <span class="cline-any cline-yes">5x</span>
469
+ <span class="cline-any cline-yes">1x</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-yes">5x</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-yes">2x</span>
484
+ <span class="cline-any cline-yes">1x</span>
485
+ <span class="cline-any cline-yes">1x</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-yes">1x</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-yes">1x</span>
497
+ <span class="cline-any cline-yes">1x</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-yes">5x</span>
507
+ <span class="cline-any cline-yes">5x</span>
508
+ <span class="cline-any cline-yes">6x</span>
509
+ <span class="cline-any cline-yes">3x</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-yes">3x</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-yes">5x</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-yes">2x</span>
523
+ <span class="cline-any cline-yes">2x</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">9x</span>
532
+ <span class="cline-any cline-yes">9x</span>
533
+ <span class="cline-any cline-yes">9x</span>
534
+ <span class="cline-any cline-yes">9x</span>
535
+ <span class="cline-any cline-yes">2x</span>
536
+ <span class="cline-any cline-yes">1x</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-yes">1x</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-yes">9x</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-yes">8x</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-yes">7x</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-yes">1x</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-yes">47x</span>
583
+ <span class="cline-any cline-yes">12x</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-yes">47x</span>
587
+ <span class="cline-any cline-yes">163x</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-yes">47x</span>
591
+ <span class="cline-any cline-yes">6x</span>
592
+ <span class="cline-any cline-yes">6x</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-yes">6x</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-yes">6x</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-yes">47x</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-yes">92x</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-yes">47x</span>
605
+ <span class="cline-any cline-yes">12x</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-yes">3x</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-yes">211x</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-yes">163x</span>
618
+ <span class="cline-any cline-yes">163x</span>
619
+ <span class="cline-any cline-yes">169x</span>
620
+ <span class="cline-any cline-yes">169x</span>
621
+ <span class="cline-any cline-yes">180x</span>
622
+ <span class="cline-any cline-yes">175x</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-yes">173x</span>
625
+ <span class="cline-any cline-yes">173x</span>
626
+ <span class="cline-any cline-yes">173x</span>
627
+ <span class="cline-any cline-yes">60x</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-yes">30x</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-yes">6x</span>
632
+ <span class="cline-any cline-yes">6x</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-yes">6x</span>
635
+ <span class="cline-any cline-yes">6x</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-yes">12x</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-yes">12x</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-yes">6x</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-yes">143x</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-yes">143x</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-yes">41x</span>
650
+ <span class="cline-any cline-yes">41x</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-yes">6x</span>
653
+ <span class="cline-any cline-yes">6x</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-yes">36x</span>
656
+ <span class="cline-any cline-yes">36x</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-yes">6x</span>
659
+ <span class="cline-any cline-yes">6x</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-yes">12x</span>
662
+ <span class="cline-any cline-yes">12x</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-yes">12x</span>
665
+ <span class="cline-any cline-yes">12x</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-yes">12x</span>
668
+ <span class="cline-any cline-yes">12x</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-yes">12x</span>
671
+ <span class="cline-any cline-yes">12x</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-yes">6x</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-yes">163x</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-yes">24x</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-yes">2x</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">112x</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { DatasourceFactory, IDatasource, IDictionary, MemoryDatasource, URL, Utils } from '@zeedhi/core';
695
+ import {
696
+ DynamicFilterOperations,
697
+ DynamicFilterRelations,
698
+ IDynamicFilterItem,
699
+ ITekMemoryDatasource,
700
+ } from './interfaces';
701
+ &nbsp;
702
+ export class TekMemoryDatasource extends MemoryDatasource implements ITekMemoryDatasource {
703
+ /** Dynamic filter data */
704
+ public dynamicFilter!: IDictionary&lt;IDynamicFilterItem[]&gt;;
705
+ &nbsp;
706
+ /** Search Join data */
707
+ public searchJoin!: IDictionary&lt;Array&lt;string | number&gt;&gt;;
708
+ &nbsp;
709
+ /**
710
+ * Dynamic Filter Operations
711
+ */
712
+ public dynamicFilterOperations = DynamicFilterOperations;
713
+ &nbsp;
714
+ /**
715
+ * Dynamic Filter Relations
716
+ */
717
+ public dynamicFilterRelations = DynamicFilterRelations;
718
+ &nbsp;
719
+ /**
720
+ * Dynamic Filter applied flag
721
+ */
722
+ protected dynamicFilterApplied = '';
723
+ &nbsp;
724
+ /**
725
+ * Create new datasource
726
+ * @param props Datasource properties
727
+ */
728
+ constructor(props: ITekMemoryDatasource) {
729
+ super(props);
730
+ &nbsp;
731
+ if (!this.watchUrl) {
732
+ this.dynamicFilter = this.getInitValue('dynamicFilter', props.dynamicFilter, {});
733
+ this.searchJoin = this.getInitValue('searchJoin', props.searchJoin, {});
734
+ }
735
+ &nbsp;
736
+ this.createAccessors();
737
+ this.createObjAccessors(this.dynamicFilter, 'dynamicFilter');
738
+ this.createObjAccessors(this.searchJoin, 'searchJoin');
739
+ }
740
+ &nbsp;
741
+ protected updateReservedKeys() {
742
+ this.reservedKeys.dynamic_filter = true;
743
+ this.reservedKeys.search_join = true;
744
+ }
745
+ &nbsp;
746
+ protected updateInternalProperties(datasource: IDatasource = {}) {
747
+ if (!this.watchUrl) return;
748
+ this.updateReservedKeys();
749
+ super.updateInternalProperties(datasource);
750
+ const queryString = URL.getParsedQueryStringFromUrl();
751
+ this.dynamicFilter = this.getEncodedParam(queryString.dynamic_filter, datasource.dynamicFilter);
752
+ this.searchJoin = this.getEncodedParam(queryString.search_join, datasource.searchJoin);
753
+ }
754
+ &nbsp;
755
+ protected getEncodedParam(urlParam: string, datasourceParam: IDictionary&lt;any&gt; = {}): IDictionary&lt;any&gt; {
756
+ return urlParam ? JSON.parse(atob(urlParam)) : datasourceParam;
757
+ }
758
+ &nbsp;
759
+ protected getQueryStringValues(): IDictionary&lt;any&gt; {
760
+ const values = super.getQueryStringValues();
761
+ if (this.dynamicFilter &amp;&amp; Object.keys(this.dynamicFilter).length) {
762
+ values.dynamic_filter = btoa(JSON.stringify(this.dynamicFilter));
763
+ }
764
+ if (this.searchJoin &amp;&amp; Object.keys(this.searchJoin).length) {
765
+ values.search_join = btoa(JSON.stringify(this.searchJoin));
766
+ }
767
+ return values;
768
+ }
769
+ &nbsp;
770
+ protected getUrlQueryString() {
771
+ const superQueryString = super.getUrlQueryString();
772
+ const query = URL.getParsedQueryStringFromUrl();
773
+ &nbsp;
774
+ let dynamicFilterQuerystring = '';
775
+ if (query.dynamic_filter) {
776
+ dynamicFilterQuerystring = `&amp;${URL.getFormattedQueryString({
777
+ dynamic_filter: query.dynamic_filter,
778
+ })}`;
779
+ }
780
+ &nbsp;
781
+ let searchJoinQuerystring = '';
782
+ if (query.search_join) {
783
+ searchJoinQuerystring = `&amp;${URL.getFormattedQueryString({
784
+ search_join: query.search_join,
785
+ })}`;
786
+ }
787
+ return superQueryString + dynamicFilterQuerystring + searchJoinQuerystring;
788
+ }
789
+ &nbsp;
790
+ /**
791
+ * Adds a new dynamic filter position or replace if exists
792
+ * @param column Dynamic Filter column name
793
+ * @param value Dynamic Filter value
794
+ * @returns Promise with data collection
795
+ */
796
+ public addDynamicFilter(column: string, value: any) {
797
+ if (this.isValidDynamicFilterValue(column, value)) {
798
+ this.dynamicFilter[column] = value;
799
+ return this.updateDynamicFilter();
800
+ }
801
+ return this.removeDynamicFilter(column);
802
+ }
803
+ &nbsp;
804
+ /**
805
+ * Removes a dynamic filter position
806
+ * @param column Dynamic Filter column name
807
+ * @returns Promise with data collection
808
+ */
809
+ public removeDynamicFilter(column: string) {
810
+ delete this.dynamicFilter[column];
811
+ return this.updateDynamicFilter();
812
+ }
813
+ &nbsp;
814
+ /**
815
+ * Sets new dynamic filter value
816
+ * @param filter Dynamic Filter value
817
+ * @returns Promise with data collection
818
+ */
819
+ public setDynamicFilter(filter: IDictionary&lt;any&gt;) {
820
+ this.dynamicFilter = {};
821
+ Object.keys(filter).forEach((column: string) =&gt; {
822
+ if (this.isValidDynamicFilterValue(column, filter[column])) {
823
+ this.dynamicFilter[column] = filter[column];
824
+ } else {
825
+ delete this.dynamicFilter[column];
826
+ }
827
+ });
828
+ return this.updateDynamicFilter();
829
+ }
830
+ &nbsp;
831
+ /**
832
+ * Clears Dynamic filter value
833
+ * @returns Promise with data collection
834
+ */
835
+ public clearDynamicFilter() {
836
+ this.dynamicFilter = {};
837
+ return this.updateDynamicFilter();
838
+ }
839
+ &nbsp;
840
+ /**
841
+ * Resets page and selected rows and tries to update the url
842
+ * @returns Promise with data collection
843
+ */
844
+ public async updateDynamicFilter() {
845
+ this.page = this.firstPage;
846
+ this.selectedRows = [];
847
+ this.visibleSelectedRows = [];
848
+ if (this.watchUrl) {
849
+ if (this.dynamicFilter &amp;&amp; Object.keys(this.dynamicFilter).length) {
850
+ URL.updateQueryString({
851
+ dynamic_filter: btoa(JSON.stringify(this.dynamicFilter)),
852
+ });
853
+ } else {
854
+ URL.updateQueryString({
855
+ dynamic_filter: undefined,
856
+ });
857
+ }
858
+ }
859
+ return this.get();
860
+ }
861
+ &nbsp;
862
+ /**
863
+ * Checks if a filter value is valid
864
+ * @param value Filter value
865
+ * @returns Is valid filter value
866
+ */
867
+ protected isValidDynamicFilterValue(column: string, value?: IDictionary&lt;any&gt;[]) {
868
+ return (
869
+ !this.reservedKeys[column] &amp;&amp;
870
+ value &amp;&amp;
871
+ value.length &gt; 0 &amp;&amp;
872
+ value.every(
873
+ (filterValue) =&gt;
874
+ this.dynamicFilterOperations[filterValue.operation] &amp;&amp;
875
+ this.dynamicFilterRelations[filterValue.relation] &amp;&amp;
876
+ filterValue.value !== '' &amp;&amp;
877
+ filterValue.value !== null,
878
+ )
879
+ );
880
+ }
881
+ &nbsp;
882
+ public clone() {
883
+ return {
884
+ ...super.clone(),
885
+ dynamicFilter: this.dynamicFilter,
886
+ searchJoin: this.searchJoin,
887
+ type: 'tek-memory',
888
+ };
889
+ }
890
+ &nbsp;
891
+ /**
892
+ * Updates filtered data
893
+ */
894
+ protected updateFilteredData() {
895
+ // first apply filters (simple and dynamic)
896
+ this.filteredData = Object.keys(this.filter).length
897
+ ? this.allData.filter((row) =&gt; this.getRowByFilter(row))
898
+ : Array.from(this.allData);
899
+ &nbsp;
900
+ if (this.dynamicFilter &amp;&amp; Object.keys(this.dynamicFilter).length) {
901
+ this.filteredData = this.filteredData.filter((row) =&gt; this.getRowByDynamicFilter(row));
902
+ }
903
+ &nbsp;
904
+ const searchWithoutSearchJoin = (row: IDictionary&lt;any&gt;) =&gt; {
905
+ const searchRow = { ...row };
906
+ if (this.searchJoin) {
907
+ // do not search on columns with searchJoin
908
+ Object.keys(this.searchJoin).forEach((key) =&gt; delete searchRow[key]);
909
+ }
910
+ return this.getRowBySearch(searchRow);
911
+ };
912
+ &nbsp;
913
+ // only after do the search
914
+ const searchData = this.search ? this.filteredData.filter(searchWithoutSearchJoin) : this.filteredData;
915
+ &nbsp;
916
+ let searchIds = searchData.map((row) =&gt; row[this.uniqueKey]);
917
+ &nbsp;
918
+ if (this.searchJoin &amp;&amp; Object.keys(this.searchJoin).length) {
919
+ const searchJoinData = this.filteredData.filter((row) =&gt; this.getRowBySearchJoin(row));
920
+ &nbsp;
921
+ // get the ids from search and searchJoin
922
+ searchIds = searchIds.concat(searchJoinData.map((row) =&gt; row[this.uniqueKey])).sort();
923
+ }
924
+ &nbsp;
925
+ // filter filteredData using searchIds
926
+ this.filteredData = this.allData.filter((row) =&gt; searchIds.indexOf(row[this.uniqueKey]) !== -1);
927
+ }
928
+ &nbsp;
929
+ protected getRowByDynamicFilter(row: IDictionary&lt;any&gt;) {
930
+ let filtered: any;
931
+ try {
932
+ Object.keys(this.dynamicFilter).forEach((key) =&gt; {
933
+ const filterItems = this.dynamicFilter[key];
934
+ filterItems.forEach((item) =&gt; {
935
+ if (filtered === false &amp;&amp; item.relation === 'AND') return;
936
+ if (filtered === true &amp;&amp; item.relation === 'OR') return;
937
+ &nbsp;
938
+ const columnValue = Utils.normalize(row[key].toString());
939
+ let value: string | string[] = '';
940
+ if (Array.isArray(item.value)) {
941
+ value = item.value.map((val: string) =&gt; Utils.normalize(val.toString()));
942
+ &nbsp;
943
+ switch (item.operation) {
944
+ case 'IN':
945
+ filtered = value.includes(columnValue);
946
+ break;
947
+ case 'NOT_IN':
948
+ filtered = !value.includes(columnValue);
949
+ break;
950
+ case 'BETWEEN':
951
+ filtered =
952
+ (Number(columnValue) || columnValue) &gt;= (Number(value[0]) || value[0]) &amp;&amp;
953
+ (Number(columnValue) || columnValue) &lt;= (Number(value[1]) || value[1]);
954
+ break;
955
+ default:
956
+ break;
957
+ }
958
+ } else {
959
+ value = Utils.normalize(item.value.toString());
960
+ &nbsp;
961
+ switch (item.operation) {
962
+ case 'CONTAINS':
963
+ filtered = columnValue.indexOf(value) !== -1;
964
+ break;
965
+ case 'NOT_CONTAINS':
966
+ filtered = columnValue.indexOf(value) === -1;
967
+ break;
968
+ case 'EQUALS':
969
+ filtered = columnValue === value;
970
+ break;
971
+ case 'NOT_EQUALS':
972
+ filtered = columnValue !== value;
973
+ break;
974
+ case 'GREATER_THAN':
975
+ filtered = (Number(columnValue) || columnValue) &gt; (Number(value) || value);
976
+ break;
977
+ case 'LESS_THAN':
978
+ filtered = (Number(columnValue) || columnValue) &lt; (Number(value) || value);
979
+ break;
980
+ case 'GREATER_THAN_EQUALS':
981
+ filtered = (Number(columnValue) || columnValue) &gt;= (Number(value) || value);
982
+ break;
983
+ case 'LESS_THAN_EQUALS':
984
+ filtered = (Number(columnValue) || columnValue) &lt;= (Number(value) || value);
985
+ break;
986
+ default:
987
+ break;
988
+ }
989
+ }
990
+ });
991
+ });
992
+ } catch {
993
+ // do nothing
994
+ }
995
+ return filtered;
996
+ }
997
+ &nbsp;
998
+ protected getRowBySearchJoin(row: IDictionary&lt;any&gt;) {
999
+ return Object.keys(this.searchJoin).some((key) =&gt; this.searchJoin[key].includes(row[key]));
1000
+ }
1001
+ &nbsp;
1002
+ public hasFilter(columnName: string): boolean {
1003
+ return this.dynamicFilter[columnName] &amp;&amp; this.dynamicFilter[columnName].length &gt; 0;
1004
+ }
1005
+ }
1006
+ &nbsp;
1007
+ DatasourceFactory.register('tek-memory', TekMemoryDatasource);
1008
+ &nbsp;</pre></td></tr></table></pre>
1009
+
1010
+ <div class='push'></div><!-- for sticky footer -->
1011
+ </div><!-- /wrapper -->
1012
+ <div class='footer quiet pad2 space-top1 center small'>
1013
+ Code coverage generated by
1014
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1015
+ at 2025-09-24T14:48:32.782Z
1016
+ </div>
1017
+ <script src="../../../../prettify.js"></script>
1018
+ <script>
1019
+ window.onload = function () {
1020
+ prettyPrint();
1021
+ };
1022
+ </script>
1023
+ <script src="../../../../sorter.js"></script>
1024
+ <script src="../../../../block-navigation.js"></script>
1025
+ </body>
1026
+ </html>
1027
+