@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,1351 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/components/tek-grid/grid-filter-button.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</a> grid-filter-button.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">92.9% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>131/141</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">85.54% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>71/83</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">92.3% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>24/26</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">92.59% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>125/135</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>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">112x</span>
489
+ <span class="cline-any cline-yes">112x</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-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">112x</span>
504
+ <span class="cline-any cline-yes">112x</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-yes">112x</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</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">18x</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-yes">18x</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-yes">18x</span>
522
+ <span class="cline-any cline-yes">18x</span>
523
+ <span class="cline-any cline-yes">18x</span>
524
+ <span class="cline-any cline-yes">18x</span>
525
+ <span class="cline-any cline-yes">18x</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-yes">18x</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">3x</span>
532
+ <span class="cline-any cline-yes">3x</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-yes">2x</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-yes">16x</span>
539
+ <span class="cline-any cline-yes">16x</span>
540
+ <span class="cline-any cline-yes">16x</span>
541
+ <span class="cline-any cline-yes">15x</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-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-yes">3x</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-yes">3x</span>
549
+ <span class="cline-any cline-yes">3x</span>
550
+ <span class="cline-any cline-yes">1x</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-yes">1x</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">2x</span>
556
+ <span class="cline-any cline-yes">2x</span>
557
+ <span class="cline-any cline-yes">2x</span>
558
+ <span class="cline-any cline-yes">2x</span>
559
+ <span class="cline-any cline-yes">2x</span>
560
+ <span class="cline-any cline-yes">2x</span>
561
+ <span class="cline-any cline-yes">2x</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-yes">2x</span>
564
+ <span class="cline-any cline-yes">2x</span>
565
+ <span class="cline-any cline-yes">2x</span>
566
+ <span class="cline-any cline-yes">2x</span>
567
+ <span class="cline-any cline-yes">2x</span>
568
+ <span class="cline-any cline-yes">1x</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-yes">1x</span>
571
+ <span class="cline-any cline-yes">1x</span>
572
+ <span class="cline-any cline-yes">1x</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-yes">2x</span>
577
+ <span class="cline-any cline-yes">2x</span>
578
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-yes">2x</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-yes">2x</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-yes">2x</span>
590
+ <span class="cline-any cline-yes">3x</span>
591
+ <span class="cline-any cline-yes">2x</span>
592
+ <span class="cline-any cline-yes">2x</span>
593
+ <span class="cline-any cline-yes">2x</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-yes">3x</span>
599
+ <span class="cline-any cline-yes">5x</span>
600
+ <span class="cline-any cline-yes">1x</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-yes">2x</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-yes">15x</span>
615
+ <span class="cline-any cline-yes">14x</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-yes">14x</span>
622
+ <span class="cline-any cline-yes">14x</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-yes">14x</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-yes">1x</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-yes">15x</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-yes">1x</span>
751
+ <span class="cline-any cline-yes">1x</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-yes">3x</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-yes">4x</span>
779
+ <span class="cline-any cline-yes">4x</span>
780
+ <span class="cline-any cline-yes">4x</span>
781
+ <span class="cline-any cline-yes">3x</span>
782
+ <span class="cline-any cline-yes">3x</span>
783
+ <span class="cline-any cline-yes">3x</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-yes">3x</span>
786
+ <span class="cline-any cline-yes">1x</span>
787
+ <span class="cline-any cline-yes">5x</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-yes">5x</span>
790
+ <span class="cline-any cline-yes">4x</span>
791
+ <span class="cline-any cline-yes">4x</span>
792
+ <span class="cline-any cline-yes">4x</span>
793
+ <span class="cline-any cline-yes">4x</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-yes">4x</span>
796
+ <span class="cline-any cline-yes">3x</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-yes">4x</span>
800
+ <span class="cline-any cline-yes">4x</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-yes">1x</span>
809
+ <span class="cline-any cline-yes">1x</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-yes">2x</span>
812
+ <span class="cline-any cline-yes">8x</span>
813
+ <span class="cline-any cline-yes">8x</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-yes">8x</span>
816
+ <span class="cline-any cline-yes">6x</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-yes">2x</span>
821
+ <span class="cline-any cline-yes">2x</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-yes">3x</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-yes">3x</span>
830
+ <span class="cline-any cline-yes">3x</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-yes">2x</span>
833
+ <span class="cline-any cline-yes">2x</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-yes">1x</span>
838
+ <span class="cline-any cline-yes">1x</span>
839
+ <span class="cline-any cline-yes">5x</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-yes">25x</span>
845
+ <span class="cline-any cline-yes">25x</span>
846
+ <span class="cline-any cline-yes">25x</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-yes">14x</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-yes">14x</span>
853
+ <span class="cline-any cline-yes">34x</span>
854
+ <span class="cline-any cline-yes">34x</span>
855
+ <span class="cline-any cline-yes">23x</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-yes">23x</span>
858
+ <span class="cline-any cline-yes">26x</span>
859
+ <span class="cline-any cline-yes">26x</span>
860
+ <span class="cline-any cline-yes">18x</span>
861
+ <span class="cline-any cline-yes">18x</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-yes">18x</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-yes">8x</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-yes">26x</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-yes">26x</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
874
+ <span class="cline-any cline-neutral">&nbsp;</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-neutral">&nbsp;</span>
877
+ <span class="cline-any cline-yes">26x</span>
878
+ <span class="cline-any cline-yes">2x</span>
879
+ <span class="cline-any cline-yes">2x</span>
880
+ <span class="cline-any cline-neutral">&nbsp;</span>
881
+ <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-yes">26x</span>
883
+ <span class="cline-any cline-yes">4x</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-yes">26x</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-neutral">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-yes">14x</span>
891
+ <span class="cline-any cline-neutral">&nbsp;</span>
892
+ <span class="cline-any cline-neutral">&nbsp;</span>
893
+ <span class="cline-any cline-neutral">&nbsp;</span>
894
+ <span class="cline-any cline-no">&nbsp;</span>
895
+ <span class="cline-any cline-no">&nbsp;</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-no">&nbsp;</span>
898
+ <span class="cline-any cline-no">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-no">&nbsp;</span>
901
+ <span class="cline-any cline-no">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-no">&nbsp;</span>
904
+ <span class="cline-any cline-no">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IDictionary, IEventParam, Metadata } from '@zeedhi/core';
911
+ import {
912
+ Button,
913
+ Form,
914
+ IModal,
915
+ ISupportsToolbar,
916
+ ITekGridColumn,
917
+ ITekGridFilterButton,
918
+ Input,
919
+ Iterable,
920
+ Modal,
921
+ TekGridColumn,
922
+ TekMemoryDatasource,
923
+ TekRestDatasource,
924
+ } from '..';
925
+ import { ModalService } from '../../services';
926
+ import { TekFilterHelper } from './filter-helper';
927
+ &nbsp;
928
+ /**
929
+ * Base class for TekGrid Filter Button component
930
+ */
931
+ export class TekGridFilterButton extends Button implements ITekGridFilterButton {
932
+ public gridName?: string;
933
+ &nbsp;
934
+ public grid: Iterable&lt;TekGridColumn&gt; &amp; ISupportsToolbar;
935
+ &nbsp;
936
+ public showCheckboxAll = false;
937
+ &nbsp;
938
+ private filterModal?: Modal;
939
+ &nbsp;
940
+ protected filterFormInputs: IDictionary&lt;string[]&gt; = {};
941
+ &nbsp;
942
+ constructor(props: ITekGridFilterButton) {
943
+ super(props);
944
+ this.gridName = this.getInitValue('gridName', props.gridName, this.gridName);
945
+ this.grid = this.getInitValue('grid', props.grid, undefined);
946
+ this.showCheckboxAll = this.getInitValue('showCheckboxAll', props.showCheckboxAll, this.showCheckboxAll);
947
+ this.createAccessors();
948
+ &nbsp;
949
+ if (!this.grid) this.loadGrid();
950
+ }
951
+ &nbsp;
952
+ public loadGrid(gridName?: string) {
953
+ if (gridName) this.gridName = gridName;
954
+ if (!this.gridName) return;
955
+ &nbsp;
956
+ this.grid = Metadata.getInstances(this.gridName)[0];
957
+ }
958
+ &nbsp;
959
+ public click(event?: Event) {
960
+ this.callEvent('click', { component: this, event });
961
+ this.grid.callEvent('filterClick', { component: this.grid, event });
962
+ if (!event?.defaultPrevented) {
963
+ this.createFilterFromColumns.call(this);
964
+ }
965
+ }
966
+ &nbsp;
967
+ private loadFilterValues({ component }: IEventParam&lt;Form&gt;) {
968
+ const changedCompNames: string[] = [];
969
+ &nbsp;
970
+ const { datasource } = this.grid;
971
+ if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
972
+ const { dynamicFilter } = datasource;
973
+ &nbsp;
974
+ const newDynamicFilter = { ...this.grid.defaultFilter, ...dynamicFilter };
975
+ &nbsp;
976
+ Object.keys(newDynamicFilter).forEach((column) =&gt; {
977
+ if (newDynamicFilter[column] &amp;&amp; newDynamicFilter[column].length &gt; 0) {
978
+ newDynamicFilter[column].forEach((filterItem: any, index: number) =&gt; {
979
+ const relation = filterItem.relation || 'AND';
980
+ const operation = filterItem.operation || 'CONTAINS';
981
+ const compName = `${this.grid!.name}-filter-${relation}-${operation}-${column}-${index}`;
982
+ changedCompNames.push(compName);
983
+ component.value[compName] = filterItem.value;
984
+ &nbsp;
985
+ let helperValue = '';
986
+ const columnObj = this.grid!.getColumn(column);
987
+ if (columnObj instanceof TekGridColumn) {
988
+ const { filterProps } = columnObj;
989
+ if (!Array.isArray(filterProps)) {
990
+ helperValue = filterProps.helperValue || '';
991
+ } else {
992
+ filterProps.forEach((prop) =&gt; {
993
+ if ((prop.relation || 'AND') === relation &amp;&amp; (prop.operation || 'CONTAINS') === operation) {
994
+ helperValue = prop.helperValue || '';
995
+ }
996
+ });
997
+ }
998
+ const inputObj = Metadata.getInstances(compName);
999
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (helperValue &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >inputObj.length </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >inputObj[0])</span> {
1000
+ (<span class="cstat-no" title="statement not covered" >inputObj[0] as Input).hint = TekFilterHelper.getLabel(helperValue);</span>
1001
+ }
1002
+ }
1003
+ });
1004
+ }
1005
+ });
1006
+ } else {
1007
+ const { filter } = datasource;
1008
+ &nbsp;
1009
+ const newFilter = { ...this.grid.defaultFilter, ...filter };
1010
+ &nbsp;
1011
+ Object.keys(newFilter).forEach((item) =&gt; {
1012
+ if (newFilter[item]) {
1013
+ const compName = `${this.grid!.name}-filter-AND-CONTAINS-${item}-0`;
1014
+ changedCompNames.push(compName);
1015
+ component.value[compName] = newFilter[item];
1016
+ }
1017
+ });
1018
+ }
1019
+ &nbsp;
1020
+ Object.keys(component.value).forEach((compName: string) =&gt; {
1021
+ if (changedCompNames.indexOf(compName) === -1) {
1022
+ component.value[compName] = null;
1023
+ }
1024
+ });
1025
+ }
1026
+ &nbsp;
1027
+ public hideFilterModal() {
1028
+ this.filterModal!.hide();
1029
+ }
1030
+ &nbsp;
1031
+ public destroyFilterModal() {
1032
+ if (this.filterModal) this.filterModal!.destroy();
1033
+ }
1034
+ &nbsp;
1035
+ private createFilterFromColumns() {
1036
+ if (!this.filterModal) {
1037
+ const originalProps = {
1038
+ height: 'auto',
1039
+ maxHeight: '18.75rem',
1040
+ persistent: true,
1041
+ title: 'FILTER',
1042
+ };
1043
+ const mergeModalFilterProps = Object.assign(originalProps, this.grid.modalFilterProps);
1044
+ const filterModalDef: IModal = {
1045
+ name: `${this.grid.name}-filter-modal`,
1046
+ persistent: mergeModalFilterProps.persistent,
1047
+ grid: mergeModalFilterProps.grid,
1048
+ cssClass: mergeModalFilterProps.cssClass,
1049
+ cssStyle: mergeModalFilterProps.cssStyle,
1050
+ draggable: mergeModalFilterProps.draggable,
1051
+ dragHandle: mergeModalFilterProps.dragHandle,
1052
+ fullscreen: mergeModalFilterProps.fullscreen,
1053
+ light: mergeModalFilterProps.light,
1054
+ dark: mergeModalFilterProps.dark,
1055
+ escKeydownStop: false,
1056
+ children: [
1057
+ {
1058
+ name: `${this.grid.name}-filter-header-container`,
1059
+ component: 'ZdContainer',
1060
+ cssClass: 'zd-pa-0 zd-display-flex',
1061
+ children: [
1062
+ {
1063
+ name: `${this.grid.name}-filter-title`,
1064
+ component: 'ZdText',
1065
+ cssStyle: `color: ${'var(--v-primary-base);'}`,
1066
+ text: mergeModalFilterProps.title,
1067
+ tag: 'h3',
1068
+ },
1069
+ {
1070
+ name: `${this.grid.name}-filter-spacer`,
1071
+ component: 'VSpacer',
1072
+ },
1073
+ {
1074
+ name: `${this.grid.name}-filter-close-button`,
1075
+ component: 'ZdModalCloseButton',
1076
+ small: true,
1077
+ modalName: `${this.grid.name}-filter-modal`,
1078
+ },
1079
+ ],
1080
+ },
1081
+ {
1082
+ name: `${this.grid.name}-filter-content-container`,
1083
+ component: 'ZdContainer',
1084
+ scrollView: true,
1085
+ cssClass: 'zd-my-2 zd-pa-0 tek-grid-filter-content-container',
1086
+ maxHeight: mergeModalFilterProps!.maxHeight,
1087
+ height: mergeModalFilterProps!.height,
1088
+ children: [
1089
+ {
1090
+ name: `${this.grid.name}-filter-form`,
1091
+ component: 'ZdForm',
1092
+ cssClass: 'zd-my-2 zd-pa-0',
1093
+ children: this.getFilterModalComponents(),
1094
+ events: {
1095
+ onMounted: this.loadFilterValues.bind(this),
1096
+ },
1097
+ },
1098
+ ],
1099
+ },
1100
+ {
1101
+ name: `${this.grid.name}-filter-footer-container`,
1102
+ component: 'ZdContainer',
1103
+ cssClass: 'zd-pa-0',
1104
+ children: [
1105
+ {
1106
+ name: `${this.grid.name}-filter-footer`,
1107
+ component: 'ZdFooter',
1108
+ color: 'transparent',
1109
+ padless: true,
1110
+ leftSlot: [
1111
+ {
1112
+ name: `${this.grid.name}-filter-clearButton`,
1113
+ component: 'ZdButton',
1114
+ label: 'CLEAR',
1115
+ outline: true,
1116
+ events: {
1117
+ click: this.clearFilter.bind(this),
1118
+ },
1119
+ },
1120
+ ],
1121
+ rightSlot: [
1122
+ {
1123
+ name: `${this.grid.name}-filter-cancelButton`,
1124
+ component: 'ZdButton',
1125
+ label: 'CANCEL',
1126
+ keyMap: {
1127
+ esc: {
1128
+ event: this.hideFilterModal.bind(this),
1129
+ focus: true,
1130
+ visible: true,
1131
+ input: true,
1132
+ stop: true,
1133
+ },
1134
+ },
1135
+ outline: true,
1136
+ events: {
1137
+ click: this.hideFilterModal.bind(this),
1138
+ },
1139
+ },
1140
+ {
1141
+ name: `${this.grid.name}-filter-okButton`,
1142
+ component: 'ZdButton',
1143
+ label: 'OK',
1144
+ events: {
1145
+ click: this.applyFilter.bind(this),
1146
+ },
1147
+ keyMap: {
1148
+ 'mod+enter': {
1149
+ event: this.applyFilter.bind(this),
1150
+ focus: true,
1151
+ input: true,
1152
+ stop: true,
1153
+ visible: true,
1154
+ },
1155
+ },
1156
+ },
1157
+ ],
1158
+ },
1159
+ ],
1160
+ },
1161
+ ],
1162
+ };
1163
+ &nbsp;
1164
+ this.filterModal = ModalService.create(filterModalDef);
1165
+ } else {
1166
+ this.loadFilterValues({ component: Metadata.getInstance(`${this.grid.name}-filter-form`) });
1167
+ }
1168
+ this.filterModal.show();
1169
+ }
1170
+ &nbsp;
1171
+ public onBeforeDestroy() {
1172
+ super.onBeforeDestroy();
1173
+ this.destroyFilterModal();
1174
+ }
1175
+ &nbsp;
1176
+ private formatFormValue(filterForm: Form) {
1177
+ // TODO: add this logic when SelectMultiple is implemented
1178
+ // return Object.keys(filterForm.value).reduce((result, item) =&gt; {
1179
+ // try {
1180
+ // const itemInstance = filterForm.getChildInstance&lt;Input&gt;(item);
1181
+ // if (!(itemInstance instanceof SelectMultiple) || !itemInstance.checkboxAll) return result;
1182
+ // // when selectmultiple with checkboxAll, should either remove it from the filter or
1183
+ // // change the value to T, depending on selectAllCompatibilityMode
1184
+ // if ((Config as ITekConfig).selectAllCompatibilityMode) {
1185
+ // result[item] = 'T';
1186
+ // return result;
1187
+ // }
1188
+ &nbsp;
1189
+ // delete result[item];
1190
+ // return result;
1191
+ // } catch (e) {
1192
+ // return result;
1193
+ // }
1194
+ // }, { ...filterForm.value });
1195
+ &nbsp;
1196
+ return filterForm.value;
1197
+ }
1198
+ &nbsp;
1199
+ private async applyFilter({ event }: any) {
1200
+ const filterForm = Metadata.getInstance&lt;Form&gt;(`${this.grid.name}-filter-form`);
1201
+ const isFormValid = await filterForm.validate();
1202
+ if (isFormValid.valid) {
1203
+ const { datasource } = this.grid;
1204
+ const filter: IDictionary = {};
1205
+ const formValue = this.formatFormValue(filterForm);
1206
+ &nbsp;
1207
+ if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
1208
+ Object.keys(formValue).forEach((item) =&gt; {
1209
+ const itemValue = formValue[item];
1210
+ &nbsp;
1211
+ if (itemValue &amp;&amp; !(Array.isArray(itemValue) &amp;&amp; !itemValue.length)) {
1212
+ const relationAndOperationAndName = item.split(`${this.grid!.name}-filter-`)[1];
1213
+ const [relation, operation] = relationAndOperationAndName.split('-');
1214
+ let columnName = relationAndOperationAndName.split(`${relation}-${operation}-`)[1];
1215
+ columnName = columnName.split('-').slice(0, -1).join('-'); // remove index
1216
+ &nbsp;
1217
+ if (!filter[columnName]) {
1218
+ filter[columnName] = [];
1219
+ }
1220
+ &nbsp;
1221
+ const value = itemValue;
1222
+ filter[columnName].push({
1223
+ relation,
1224
+ operation,
1225
+ value,
1226
+ });
1227
+ }
1228
+ });
1229
+ &nbsp;
1230
+ datasource.dynamicFilter = filter;
1231
+ this.setFilter(filter, event, datasource.setDynamicFilter.bind(datasource));
1232
+ } else {
1233
+ Object.keys(formValue).forEach((item) =&gt; {
1234
+ let columnName = item.split(`${this.grid!.name}-filter-AND-CONTAINS-`)[1];
1235
+ columnName = columnName.split('-').slice(0, -1).join('-'); // remove index
1236
+ &nbsp;
1237
+ if (formValue[item]) {
1238
+ filter[columnName] = formValue[item];
1239
+ }
1240
+ });
1241
+ &nbsp;
1242
+ datasource.filter = filter;
1243
+ this.setFilter(filter, event, datasource.setFilter.bind(datasource));
1244
+ }
1245
+ &nbsp;
1246
+ this.grid.changeLayout(event);
1247
+ }
1248
+ }
1249
+ &nbsp;
1250
+ private setFilter(filter: IDictionary, event: Event, filterFn: (filter: IDictionary) =&gt; Promise&lt;any&gt;) {
1251
+ this.grid.callEvent('beforeApplyFilter', { component: this.grid, event });
1252
+ if (event.defaultPrevented) return;
1253
+ &nbsp;
1254
+ filterFn(filter);
1255
+ this.hideFilterModal();
1256
+ }
1257
+ &nbsp;
1258
+ private clearFilter() {
1259
+ const filterForm = Metadata.getInstance&lt;Form&gt;(`${this.grid!.name}-filter-form`);
1260
+ Object.keys(filterForm.value).forEach((item) =&gt; {
1261
+ filterForm.value[item] = null;
1262
+ });
1263
+ }
1264
+ &nbsp;
1265
+ private sortFilterIndex(col1: ITekGridColumn, col2: ITekGridColumn) {
1266
+ const index1 = col1.filterIndex !== undefined ? col1.filterIndex : Number.MAX_SAFE_INTEGER;
1267
+ const index2 = col2.filterIndex !== undefined ? col2.filterIndex : Number.MAX_SAFE_INTEGER;
1268
+ return index1 - index2;
1269
+ }
1270
+ &nbsp;
1271
+ private getFilterModalComponents() {
1272
+ const filterColumns: ITekGridColumn[] = [];
1273
+ let columnComponentName: any;
1274
+ [...this.grid.columns].sort(this.sortFilterIndex).forEach((column) =&gt; {
1275
+ const filterProps = Array.isArray(column.filterProps) ? column.filterProps : [column.filterProps];
1276
+ if (column.filterable &amp;&amp; filterProps &amp;&amp; filterProps.length &gt; 0) {
1277
+ this.filterFormInputs[column.name] = [];
1278
+ &nbsp;
1279
+ filterProps.forEach((filterItem, index: number) =&gt; {
1280
+ const { datasource } = this.grid;
1281
+ if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
1282
+ const relation = filterItem.relation || 'AND';
1283
+ const operation = filterItem.operation || 'CONTAINS';
1284
+ &nbsp;
1285
+ columnComponentName = `${this.grid!.name}-filter-${relation}-${operation}-${column.name}-${index}`;
1286
+ } else {
1287
+ columnComponentName = `${this.grid!.name}-filter-AND-CONTAINS-${column.name}-${index}`;
1288
+ }
1289
+ &nbsp;
1290
+ this.filterFormInputs[column.name].push(columnComponentName);
1291
+ &nbsp;
1292
+ const newColumnComponent = {
1293
+ label: column.label,
1294
+ ...column.componentProps,
1295
+ ...filterItem,
1296
+ name: columnComponentName,
1297
+ };
1298
+ &nbsp;
1299
+ if (filterItem.helperOptions) {
1300
+ if (!newColumnComponent.events) newColumnComponent.events = {};
1301
+ newColumnComponent.events.change = this.changeHelperEvent.bind(this, column);
1302
+ }
1303
+ &nbsp;
1304
+ if (newColumnComponent.component === 'ZdSelectMultiple') {
1305
+ newColumnComponent.showCheckboxAll = newColumnComponent.showCheckboxAll ?? this.showCheckboxAll;
1306
+ }
1307
+ &nbsp;
1308
+ filterColumns.push(newColumnComponent);
1309
+ });
1310
+ }
1311
+ });
1312
+ return filterColumns;
1313
+ }
1314
+ &nbsp;
1315
+ private <span class="fstat-no" title="function not covered" >changeHelperEvent(</span>column: TekGridColumn, { component }: any) {
1316
+ const { helperValue } = <span class="cstat-no" title="statement not covered" >component;</span>
1317
+ const componentName = <span class="cstat-no" title="statement not covered" >component.name;</span>
1318
+ &nbsp;
1319
+ <span class="cstat-no" title="statement not covered" > if (!Array.isArray(column.filterProps)) {</span>
1320
+ <span class="cstat-no" title="statement not covered" > column.filterProps.helperValue = helperValue;</span>
1321
+ } else {
1322
+ <span class="cstat-no" title="statement not covered" > column.filterProps.forEach(<span class="fstat-no" title="function not covered" >(p</span>rop) =&gt; {</span>
1323
+ const relationAndOperationAndName = <span class="cstat-no" title="statement not covered" >componentName.split(`${this.grid!.name}-filter-`)[1];</span>
1324
+ const [relation, operation] = <span class="cstat-no" title="statement not covered" >relationAndOperationAndName.split('-');</span>
1325
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if ((prop.relation || 'AND') === relation &amp;&amp; (prop.operation || 'CONTAINS') === operation) {</span>
1326
+ <span class="cstat-no" title="statement not covered" > prop.helperValue = helperValue;</span>
1327
+ }
1328
+ });
1329
+ }
1330
+ }
1331
+ }
1332
+ &nbsp;</pre></td></tr></table></pre>
1333
+
1334
+ <div class='push'></div><!-- for sticky footer -->
1335
+ </div><!-- /wrapper -->
1336
+ <div class='footer quiet pad2 space-top1 center small'>
1337
+ Code coverage generated by
1338
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1339
+ at 2025-09-24T14:48:32.782Z
1340
+ </div>
1341
+ <script src="../../../prettify.js"></script>
1342
+ <script>
1343
+ window.onload = function () {
1344
+ prettyPrint();
1345
+ };
1346
+ </script>
1347
+ <script src="../../../sorter.js"></script>
1348
+ <script src="../../../block-navigation.js"></script>
1349
+ </body>
1350
+ </html>
1351
+