@zeedhi/common 3.0.4 → 3.0.6

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 (338) hide show
  1. package/dist/types/components/zd-date-input/date-input.d.ts +1 -1
  2. package/dist/types/components/zd-date-range/date-range.d.ts +3 -1
  3. package/dist/types/components/zd-iterable/iterable.d.ts +9 -0
  4. package/dist/types/utils/date-utils/date-utils.d.ts +1 -0
  5. package/dist/zd-common.js +75 -24
  6. package/dist/zd-common.min.js +75 -24
  7. package/environments.json +6 -0
  8. package/jest.config.cjs +1 -0
  9. package/package.json +6 -3
  10. package/src/components/zd-date-input/date-input.ts +9 -21
  11. package/src/components/zd-date-range/date-range.ts +27 -4
  12. package/src/components/zd-iterable/iterable.ts +41 -3
  13. package/src/utils/date-utils/date-utils.ts +18 -0
  14. package/tests/unit/components/zd-component/component.spec.ts +3 -2
  15. package/tests/unit/components/zd-date-range/date-range.spec.ts +189 -23
  16. package/tests/unit/components/zd-grid/grid.spec.ts +48 -35
  17. package/tests/unit/components/zd-grid-editable/data-editor.spec.ts +1 -1
  18. package/tests/unit/components/zd-grid-editable/grid-editable.spec.ts +1 -1
  19. package/tests/unit/components/zd-iterable/column.spec.ts +42 -0
  20. package/tests/unit/utils/mock-console.ts +18 -0
  21. package/coverage/clover.xml +0 -5741
  22. package/coverage/coverage-final.json +0 -144
  23. package/coverage/lcov-report/base.css +0 -224
  24. package/coverage/lcov-report/block-navigation.js +0 -87
  25. package/coverage/lcov-report/favicon.png +0 -0
  26. package/coverage/lcov-report/index.html +0 -1316
  27. package/coverage/lcov-report/prettify.css +0 -1
  28. package/coverage/lcov-report/prettify.js +0 -2
  29. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  30. package/coverage/lcov-report/sorter.js +0 -210
  31. package/coverage/lcov-report/src/components/index.html +0 -116
  32. package/coverage/lcov-report/src/components/index.ts.html +0 -730
  33. package/coverage/lcov-report/src/components/tek-grid/columns-searcher.ts.html +0 -151
  34. package/coverage/lcov-report/src/components/tek-grid/dynamic-filter-datasource-factory.ts.html +0 -145
  35. package/coverage/lcov-report/src/components/tek-grid/filter-helper.ts.html +0 -145
  36. package/coverage/lcov-report/src/components/tek-grid/grid-filter-button.ts.html +0 -1351
  37. package/coverage/lcov-report/src/components/tek-grid/grouped-data-manager.ts.html +0 -1429
  38. package/coverage/lcov-report/src/components/tek-grid/grouped-data-selector.ts.html +0 -205
  39. package/coverage/lcov-report/src/components/tek-grid/grouped-view-navigator.ts.html +0 -340
  40. package/coverage/lcov-report/src/components/tek-grid/index.html +0 -326
  41. package/coverage/lcov-report/src/components/tek-grid/index.ts.html +0 -139
  42. package/coverage/lcov-report/src/components/tek-grid/interfaces.ts.html +0 -1072
  43. package/coverage/lcov-report/src/components/tek-grid/keymap-grouped.ts.html +0 -148
  44. package/coverage/lcov-report/src/components/tek-grid/layout-options.ts.html +0 -829
  45. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.html +0 -161
  46. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/index.ts.html +0 -94
  47. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/interfaces.ts.html +0 -193
  48. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-memory-datasource.ts.html +0 -1027
  49. package/coverage/lcov-report/src/components/tek-grid/tek-datasource/tek-rest-datasource.ts.html +0 -757
  50. package/coverage/lcov-report/src/components/tek-grid/tek-grid-column.ts.html +0 -664
  51. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/index.html +0 -131
  52. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts.html +0 -169
  53. package/coverage/lcov-report/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts.html +0 -196
  54. package/coverage/lcov-report/src/components/tek-grid/tek-grid-controller.ts.html +0 -505
  55. package/coverage/lcov-report/src/components/tek-grid/tek-grid-events.ts.html +0 -400
  56. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts.html +0 -163
  57. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.html +0 -146
  58. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts.html +0 -94
  59. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts.html +0 -340
  60. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.html +0 -131
  61. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/index.ts.html +0 -91
  62. package/coverage/lcov-report/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts.html +0 -1186
  63. package/coverage/lcov-report/src/components/tek-grid/tek-grid.ts.html +0 -3451
  64. package/coverage/lcov-report/src/components/zd-alert/alert.ts.html +0 -502
  65. package/coverage/lcov-report/src/components/zd-alert/index.html +0 -116
  66. package/coverage/lcov-report/src/components/zd-badge/badge.ts.html +0 -226
  67. package/coverage/lcov-report/src/components/zd-badge/index.html +0 -116
  68. package/coverage/lcov-report/src/components/zd-breadcrumbs/breadcrumbs.ts.html +0 -226
  69. package/coverage/lcov-report/src/components/zd-breadcrumbs/index.html +0 -116
  70. package/coverage/lcov-report/src/components/zd-button/button.ts.html +0 -706
  71. package/coverage/lcov-report/src/components/zd-button/index.html +0 -116
  72. package/coverage/lcov-report/src/components/zd-button-group/button-group.ts.html +0 -412
  73. package/coverage/lcov-report/src/components/zd-button-group/index.html +0 -116
  74. package/coverage/lcov-report/src/components/zd-card/card.ts.html +0 -748
  75. package/coverage/lcov-report/src/components/zd-card/index.html +0 -116
  76. package/coverage/lcov-report/src/components/zd-carousel/carousel.ts.html +0 -949
  77. package/coverage/lcov-report/src/components/zd-carousel/index.html +0 -116
  78. package/coverage/lcov-report/src/components/zd-checkbox/checkbox.ts.html +0 -148
  79. package/coverage/lcov-report/src/components/zd-checkbox/index.html +0 -116
  80. package/coverage/lcov-report/src/components/zd-checkbox-multiple/checkbox-multiple.ts.html +0 -313
  81. package/coverage/lcov-report/src/components/zd-checkbox-multiple/index.html +0 -116
  82. package/coverage/lcov-report/src/components/zd-chip/chip.ts.html +0 -352
  83. package/coverage/lcov-report/src/components/zd-chip/index.html +0 -116
  84. package/coverage/lcov-report/src/components/zd-code-editor/code-editor.ts.html +0 -1045
  85. package/coverage/lcov-report/src/components/zd-code-editor/index.html +0 -116
  86. package/coverage/lcov-report/src/components/zd-code-viewer/code-viewer.ts.html +0 -682
  87. package/coverage/lcov-report/src/components/zd-code-viewer/index.html +0 -116
  88. package/coverage/lcov-report/src/components/zd-col/col.ts.html +0 -250
  89. package/coverage/lcov-report/src/components/zd-col/index.html +0 -116
  90. package/coverage/lcov-report/src/components/zd-collapse-card/collapse-card.ts.html +0 -343
  91. package/coverage/lcov-report/src/components/zd-collapse-card/index.html +0 -116
  92. package/coverage/lcov-report/src/components/zd-component/child-not-found.ts.html +0 -109
  93. package/coverage/lcov-report/src/components/zd-component/component-render.ts.html +0 -160
  94. package/coverage/lcov-report/src/components/zd-component/component.ts.html +0 -1084
  95. package/coverage/lcov-report/src/components/zd-component/index.html +0 -146
  96. package/coverage/lcov-report/src/components/zd-container/container.ts.html +0 -289
  97. package/coverage/lcov-report/src/components/zd-container/index.html +0 -116
  98. package/coverage/lcov-report/src/components/zd-currency/currency.ts.html +0 -259
  99. package/coverage/lcov-report/src/components/zd-currency/index.html +0 -116
  100. package/coverage/lcov-report/src/components/zd-date-input/date-input.ts.html +0 -1798
  101. package/coverage/lcov-report/src/components/zd-date-input/index.html +0 -116
  102. package/coverage/lcov-report/src/components/zd-date-range/date-range.ts.html +0 -2167
  103. package/coverage/lcov-report/src/components/zd-date-range/index.html +0 -116
  104. package/coverage/lcov-report/src/components/zd-dialog/dialog.ts.html +0 -541
  105. package/coverage/lcov-report/src/components/zd-dialog/index.html +0 -116
  106. package/coverage/lcov-report/src/components/zd-divider/divider.ts.html +0 -178
  107. package/coverage/lcov-report/src/components/zd-divider/index.html +0 -116
  108. package/coverage/lcov-report/src/components/zd-dropdown/dropdown.ts.html +0 -460
  109. package/coverage/lcov-report/src/components/zd-dropdown/index.html +0 -116
  110. package/coverage/lcov-report/src/components/zd-field-group/field-group.ts.html +0 -325
  111. package/coverage/lcov-report/src/components/zd-field-group/index.html +0 -116
  112. package/coverage/lcov-report/src/components/zd-footer/footer.ts.html +0 -451
  113. package/coverage/lcov-report/src/components/zd-footer/index.html +0 -116
  114. package/coverage/lcov-report/src/components/zd-form/form.ts.html +0 -1075
  115. package/coverage/lcov-report/src/components/zd-form/index.html +0 -116
  116. package/coverage/lcov-report/src/components/zd-frame/frame.ts.html +0 -763
  117. package/coverage/lcov-report/src/components/zd-frame/index.html +0 -116
  118. package/coverage/lcov-report/src/components/zd-frame-page/frame-page.ts.html +0 -169
  119. package/coverage/lcov-report/src/components/zd-frame-page/index.html +0 -116
  120. package/coverage/lcov-report/src/components/zd-grid/data-navigator.ts.html +0 -304
  121. package/coverage/lcov-report/src/components/zd-grid/data-selector.ts.html +0 -532
  122. package/coverage/lcov-report/src/components/zd-grid/grid-column.ts.html +0 -709
  123. package/coverage/lcov-report/src/components/zd-grid/grid-events.ts.html +0 -244
  124. package/coverage/lcov-report/src/components/zd-grid/grid.ts.html +0 -1042
  125. package/coverage/lcov-report/src/components/zd-grid/index.html +0 -266
  126. package/coverage/lcov-report/src/components/zd-grid/index.ts.html +0 -118
  127. package/coverage/lcov-report/src/components/zd-grid/iterable-table.ts.html +0 -274
  128. package/coverage/lcov-report/src/components/zd-grid/keymap-merger.ts.html +0 -241
  129. package/coverage/lcov-report/src/components/zd-grid/keymap-navigation.ts.html +0 -313
  130. package/coverage/lcov-report/src/components/zd-grid/table-action-builder.ts.html +0 -427
  131. package/coverage/lcov-report/src/components/zd-grid/view-navigator.ts.html +0 -175
  132. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor-with-add.ts.html +0 -826
  133. package/coverage/lcov-report/src/components/zd-grid-editable/data-editor.ts.html +0 -1570
  134. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.html +0 -146
  135. package/coverage/lcov-report/src/components/zd-grid-editable/errors/index.ts.html +0 -91
  136. package/coverage/lcov-report/src/components/zd-grid-editable/errors/not-editing.ts.html +0 -109
  137. package/coverage/lcov-report/src/components/zd-grid-editable/errors/row-not-found.ts.html +0 -109
  138. package/coverage/lcov-report/src/components/zd-grid-editable/grid-column-editable.ts.html +0 -130
  139. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-controller.ts.html +0 -139
  140. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable-events.ts.html +0 -430
  141. package/coverage/lcov-report/src/components/zd-grid-editable/grid-editable.ts.html +0 -1477
  142. package/coverage/lcov-report/src/components/zd-grid-editable/index.html +0 -221
  143. package/coverage/lcov-report/src/components/zd-grid-editable/index.ts.html +0 -109
  144. package/coverage/lcov-report/src/components/zd-grid-editable/keymap-editing.ts.html +0 -139
  145. package/coverage/lcov-report/src/components/zd-header/header.ts.html +0 -502
  146. package/coverage/lcov-report/src/components/zd-header/index.html +0 -116
  147. package/coverage/lcov-report/src/components/zd-icon/icon.ts.html +0 -325
  148. package/coverage/lcov-report/src/components/zd-icon/index.html +0 -116
  149. package/coverage/lcov-report/src/components/zd-image/image.ts.html +0 -424
  150. package/coverage/lcov-report/src/components/zd-image/index.html +0 -116
  151. package/coverage/lcov-report/src/components/zd-increment/increment.ts.html +0 -436
  152. package/coverage/lcov-report/src/components/zd-increment/index.html +0 -116
  153. package/coverage/lcov-report/src/components/zd-input/index.html +0 -131
  154. package/coverage/lcov-report/src/components/zd-input/input-factory.ts.html +0 -130
  155. package/coverage/lcov-report/src/components/zd-input/input.ts.html +0 -1345
  156. package/coverage/lcov-report/src/components/zd-iterable/column-not-found.ts.html +0 -109
  157. package/coverage/lcov-report/src/components/zd-iterable/column.ts.html +0 -823
  158. package/coverage/lcov-report/src/components/zd-iterable/conditions-manager.ts.html +0 -523
  159. package/coverage/lcov-report/src/components/zd-iterable/index.html +0 -281
  160. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button-controller.ts.html +0 -136
  161. package/coverage/lcov-report/src/components/zd-iterable/iterable-columns-button.ts.html +0 -313
  162. package/coverage/lcov-report/src/components/zd-iterable/iterable-controller.ts.html +0 -166
  163. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-component.ts.html +0 -244
  164. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-info.ts.html +0 -106
  165. package/coverage/lcov-report/src/components/zd-iterable/iterable-page-size.ts.html +0 -421
  166. package/coverage/lcov-report/src/components/zd-iterable/iterable-pagination.ts.html +0 -208
  167. package/coverage/lcov-report/src/components/zd-iterable/iterable.ts.html +0 -820
  168. package/coverage/lcov-report/src/components/zd-iterable/search.ts.html +0 -343
  169. package/coverage/lcov-report/src/components/zd-iterable-component-render/index.html +0 -116
  170. package/coverage/lcov-report/src/components/zd-iterable-component-render/iterable-component-render.ts.html +0 -592
  171. package/coverage/lcov-report/src/components/zd-layout/index.html +0 -116
  172. package/coverage/lcov-report/src/components/zd-layout/layout.ts.html +0 -145
  173. package/coverage/lcov-report/src/components/zd-list/index.html +0 -161
  174. package/coverage/lcov-report/src/components/zd-list/item-not-found.ts.html +0 -109
  175. package/coverage/lcov-report/src/components/zd-list/list-group.ts.html +0 -241
  176. package/coverage/lcov-report/src/components/zd-list/list-item.ts.html +0 -298
  177. package/coverage/lcov-report/src/components/zd-list/list.ts.html +0 -460
  178. package/coverage/lcov-report/src/components/zd-loading/index.html +0 -116
  179. package/coverage/lcov-report/src/components/zd-loading/loading.ts.html +0 -217
  180. package/coverage/lcov-report/src/components/zd-login/index.html +0 -131
  181. package/coverage/lcov-report/src/components/zd-login/login-button.ts.html +0 -421
  182. package/coverage/lcov-report/src/components/zd-login/login.ts.html +0 -340
  183. package/coverage/lcov-report/src/components/zd-main/index.html +0 -116
  184. package/coverage/lcov-report/src/components/zd-main/main.ts.html +0 -133
  185. package/coverage/lcov-report/src/components/zd-master-detail/detail-not-found.ts.html +0 -118
  186. package/coverage/lcov-report/src/components/zd-master-detail/index.html +0 -146
  187. package/coverage/lcov-report/src/components/zd-master-detail/master-detail.ts.html +0 -331
  188. package/coverage/lcov-report/src/components/zd-master-detail/master-not-found.ts.html +0 -118
  189. package/coverage/lcov-report/src/components/zd-menu/index.html +0 -176
  190. package/coverage/lcov-report/src/components/zd-menu/menu-button.ts.html +0 -241
  191. package/coverage/lcov-report/src/components/zd-menu/menu-group.ts.html +0 -400
  192. package/coverage/lcov-report/src/components/zd-menu/menu-link.ts.html +0 -337
  193. package/coverage/lcov-report/src/components/zd-menu/menu-separator.ts.html +0 -106
  194. package/coverage/lcov-report/src/components/zd-menu/menu.ts.html +0 -1384
  195. package/coverage/lcov-report/src/components/zd-modal/index.html +0 -131
  196. package/coverage/lcov-report/src/components/zd-modal/modal-close-button.ts.html +0 -220
  197. package/coverage/lcov-report/src/components/zd-modal/modal.ts.html +0 -355
  198. package/coverage/lcov-report/src/components/zd-month/index.html +0 -116
  199. package/coverage/lcov-report/src/components/zd-month/month.ts.html +0 -568
  200. package/coverage/lcov-report/src/components/zd-number-input/index.html +0 -116
  201. package/coverage/lcov-report/src/components/zd-number-input/number-input.ts.html +0 -532
  202. package/coverage/lcov-report/src/components/zd-password/index.html +0 -116
  203. package/coverage/lcov-report/src/components/zd-password/password.ts.html +0 -220
  204. package/coverage/lcov-report/src/components/zd-progress/index.html +0 -116
  205. package/coverage/lcov-report/src/components/zd-progress/progress.ts.html +0 -262
  206. package/coverage/lcov-report/src/components/zd-radio/index.html +0 -116
  207. package/coverage/lcov-report/src/components/zd-radio/radio.ts.html +0 -289
  208. package/coverage/lcov-report/src/components/zd-row/index.html +0 -116
  209. package/coverage/lcov-report/src/components/zd-row/row.ts.html +0 -256
  210. package/coverage/lcov-report/src/components/zd-select/index.html +0 -116
  211. package/coverage/lcov-report/src/components/zd-select/select.ts.html +0 -2089
  212. package/coverage/lcov-report/src/components/zd-select-multiple/index.html +0 -116
  213. package/coverage/lcov-report/src/components/zd-select-multiple/select-multiple.ts.html +0 -1549
  214. package/coverage/lcov-report/src/components/zd-svg-map/index.html +0 -116
  215. package/coverage/lcov-report/src/components/zd-svg-map/svg-map.ts.html +0 -475
  216. package/coverage/lcov-report/src/components/zd-switch/index.html +0 -116
  217. package/coverage/lcov-report/src/components/zd-switch/switch.ts.html +0 -163
  218. package/coverage/lcov-report/src/components/zd-table/index.html +0 -116
  219. package/coverage/lcov-report/src/components/zd-table/table.ts.html +0 -280
  220. package/coverage/lcov-report/src/components/zd-tabs/index.html +0 -146
  221. package/coverage/lcov-report/src/components/zd-tabs/tab-not-found.ts.html +0 -127
  222. package/coverage/lcov-report/src/components/zd-tabs/tab.ts.html +0 -370
  223. package/coverage/lcov-report/src/components/zd-tabs/tabs.ts.html +0 -586
  224. package/coverage/lcov-report/src/components/zd-tag/index.html +0 -116
  225. package/coverage/lcov-report/src/components/zd-tag/tag.ts.html +0 -142
  226. package/coverage/lcov-report/src/components/zd-text/index.html +0 -116
  227. package/coverage/lcov-report/src/components/zd-text/text.ts.html +0 -136
  228. package/coverage/lcov-report/src/components/zd-text-input/index.html +0 -116
  229. package/coverage/lcov-report/src/components/zd-text-input/text-input.ts.html +0 -778
  230. package/coverage/lcov-report/src/components/zd-textarea/index.html +0 -116
  231. package/coverage/lcov-report/src/components/zd-textarea/textarea.ts.html +0 -418
  232. package/coverage/lcov-report/src/components/zd-time/index.html +0 -131
  233. package/coverage/lcov-report/src/components/zd-time/time-format-selector.ts.html +0 -157
  234. package/coverage/lcov-report/src/components/zd-time/time.ts.html +0 -1687
  235. package/coverage/lcov-report/src/components/zd-toggleable/index.html +0 -116
  236. package/coverage/lcov-report/src/components/zd-toggleable/toggleable.ts.html +0 -196
  237. package/coverage/lcov-report/src/components/zd-tooltip/index.html +0 -116
  238. package/coverage/lcov-report/src/components/zd-tooltip/tooltip.ts.html +0 -340
  239. package/coverage/lcov-report/src/components/zd-tree/index.html +0 -116
  240. package/coverage/lcov-report/src/components/zd-tree/tree.ts.html +0 -1849
  241. package/coverage/lcov-report/src/components/zd-tree-grid/index.html +0 -191
  242. package/coverage/lcov-report/src/components/zd-tree-grid/index.ts.html +0 -103
  243. package/coverage/lcov-report/src/components/zd-tree-grid/iterable-tree.ts.html +0 -202
  244. package/coverage/lcov-report/src/components/zd-tree-grid/keymap-tree.ts.html +0 -154
  245. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-navigator.ts.html +0 -235
  246. package/coverage/lcov-report/src/components/zd-tree-grid/tree-data-selector.ts.html +0 -448
  247. package/coverage/lcov-report/src/components/zd-tree-grid/tree-grid.ts.html +0 -1390
  248. package/coverage/lcov-report/src/error/delete-rows.ts.html +0 -124
  249. package/coverage/lcov-report/src/error/index.html +0 -161
  250. package/coverage/lcov-report/src/error/index.ts.html +0 -94
  251. package/coverage/lcov-report/src/error/non-initialized.ts.html +0 -118
  252. package/coverage/lcov-report/src/error/tek-grid-delete-rows.ts.html +0 -130
  253. package/coverage/lcov-report/src/error/teknisa-common-error.ts.html +0 -109
  254. package/coverage/lcov-report/src/error/zeedhi-error.ts.html +0 -109
  255. package/coverage/lcov-report/src/index.html +0 -116
  256. package/coverage/lcov-report/src/index.ts.html +0 -145
  257. package/coverage/lcov-report/src/services/index.html +0 -116
  258. package/coverage/lcov-report/src/services/index.ts.html +0 -97
  259. package/coverage/lcov-report/src/services/zd-alert/alert-queue.ts.html +0 -205
  260. package/coverage/lcov-report/src/services/zd-alert/alert-replace.ts.html +0 -220
  261. package/coverage/lcov-report/src/services/zd-alert/alert-service.ts.html +0 -316
  262. package/coverage/lcov-report/src/services/zd-alert/alert-stack.ts.html +0 -172
  263. package/coverage/lcov-report/src/services/zd-alert/index.html +0 -176
  264. package/coverage/lcov-report/src/services/zd-alert/index.ts.html +0 -100
  265. package/coverage/lcov-report/src/services/zd-dialog/dialog-service.ts.html +0 -205
  266. package/coverage/lcov-report/src/services/zd-dialog/index.html +0 -116
  267. package/coverage/lcov-report/src/services/zd-loading/index.html +0 -116
  268. package/coverage/lcov-report/src/services/zd-loading/loading-service.ts.html +0 -157
  269. package/coverage/lcov-report/src/services/zd-modal/index.html +0 -116
  270. package/coverage/lcov-report/src/services/zd-modal/modal-service.ts.html +0 -298
  271. package/coverage/lcov-report/src/utils/data-value-out/data-value-out.ts.html +0 -202
  272. package/coverage/lcov-report/src/utils/data-value-out/index.html +0 -131
  273. package/coverage/lcov-report/src/utils/data-value-out/index.ts.html +0 -91
  274. package/coverage/lcov-report/src/utils/datasource-searcher/datasource-searcher.ts.html +0 -241
  275. package/coverage/lcov-report/src/utils/datasource-searcher/index.html +0 -131
  276. package/coverage/lcov-report/src/utils/datasource-searcher/index.ts.html +0 -91
  277. package/coverage/lcov-report/src/utils/icons/icons.ts.html +0 -547
  278. package/coverage/lcov-report/src/utils/icons/index.html +0 -116
  279. package/coverage/lcov-report/src/utils/index.html +0 -116
  280. package/coverage/lcov-report/src/utils/index.ts.html +0 -106
  281. package/coverage/lcov-report/src/utils/is-filled-object/index.html +0 -116
  282. package/coverage/lcov-report/src/utils/is-filled-object/is-filled-object.ts.html +0 -100
  283. package/coverage/lcov-report/src/utils/is-nil.ts.html +0 -94
  284. package/coverage/lcov-report/src/utils/omit/index.html +0 -116
  285. package/coverage/lcov-report/src/utils/omit/omit.ts.html +0 -124
  286. package/coverage/lcov-report/src/utils/theme/index.html +0 -116
  287. package/coverage/lcov-report/src/utils/theme/theme.ts.html +0 -679
  288. package/coverage/lcov-report/src/utils/tree-data-structure/index.html +0 -131
  289. package/coverage/lcov-report/src/utils/tree-data-structure/index.ts.html +0 -91
  290. package/coverage/lcov-report/src/utils/tree-data-structure/tree-data-structure.ts.html +0 -1645
  291. package/coverage/lcov-report/src/utils/unique-by/index.html +0 -116
  292. package/coverage/lcov-report/src/utils/unique-by/unique-by.ts.html +0 -130
  293. package/coverage/lcov-report/tests/unit/__helpers__/component-event-helper.ts.html +0 -106
  294. package/coverage/lcov-report/tests/unit/__helpers__/flush-promises-helper.ts.html +0 -94
  295. package/coverage/lcov-report/tests/unit/__helpers__/index.html +0 -146
  296. package/coverage/lcov-report/tests/unit/__helpers__/mock-http-get-helper.ts.html +0 -172
  297. package/coverage/lcov-report/tests/unit/components/zd-component/ComponentMock.ts.html +0 -166
  298. package/coverage/lcov-report/tests/unit/components/zd-component/index.html +0 -116
  299. package/coverage/lcov.info +0 -10206
  300. package/dist/types/components/tek-breadcrumb-header/breadcrumb-header.d.ts +0 -14
  301. package/dist/types/components/tek-breadcrumb-header/interfaces.d.ts +0 -7
  302. package/dist/types/components/tek-grid/columns-searcher.d.ts +0 -5
  303. package/dist/types/components/tek-grid/dynamic-filter-datasource-factory.d.ts +0 -6
  304. package/dist/types/components/tek-grid/filter-helper.d.ts +0 -7
  305. package/dist/types/components/tek-grid/grid-filter-button.d.ts +0 -27
  306. package/dist/types/components/tek-grid/grouped-data-manager.d.ts +0 -82
  307. package/dist/types/components/tek-grid/grouped-data-selector.d.ts +0 -7
  308. package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +0 -14
  309. package/dist/types/components/tek-grid/index.d.ts +0 -18
  310. package/dist/types/components/tek-grid/interfaces.d.ts +0 -259
  311. package/dist/types/components/tek-grid/keymap-grouped.d.ts +0 -7
  312. package/dist/types/components/tek-grid/layout-options.d.ts +0 -39
  313. package/dist/types/components/tek-grid/tek-datasource/index.d.ts +0 -3
  314. package/dist/types/components/tek-grid/tek-datasource/interfaces.d.ts +0 -16
  315. package/dist/types/components/tek-grid/tek-datasource/tek-memory-datasource.d.ts +0 -93
  316. package/dist/types/components/tek-grid/tek-datasource/tek-rest-datasource.d.ts +0 -95
  317. package/dist/types/components/tek-grid/tek-grid-column.d.ts +0 -42
  318. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.d.ts +0 -8
  319. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.d.ts +0 -12
  320. package/dist/types/components/tek-grid/tek-grid-controller.d.ts +0 -31
  321. package/dist/types/components/tek-grid/tek-grid-events.d.ts +0 -31
  322. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.d.ts +0 -17
  323. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/index.d.ts +0 -3
  324. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.d.ts +0 -5
  325. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.d.ts +0 -12
  326. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/index.d.ts +0 -2
  327. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +0 -23
  328. package/dist/types/components/tek-grid/tek-grid.d.ts +0 -220
  329. package/dist/types/components/zd-field-group/field-group.d.ts +0 -53
  330. package/dist/types/components/zd-field-group/interfaces.d.ts +0 -16
  331. package/dist/types/components/zd-number/interfaces.d.ts +0 -8
  332. package/dist/types/components/zd-number/number.d.ts +0 -43
  333. package/dist/types/error/tek-grid-delete-rows.d.ts +0 -7
  334. package/dist/types/error/teknisa-common-error.d.ts +0 -6
  335. package/dist/types/utils/config/config.d.ts +0 -7
  336. package/dist/types/utils/is-filled-object/is-filled-object.d.ts +0 -2
  337. package/dist/types/utils/is-nil.d.ts +0 -1
  338. package/tests/unit/utils/is-filled-object.spec.ts +0 -33
@@ -1,1645 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/utils/tree-data-structure/tree-data-structure.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/utils/tree-data-structure</a> tree-data-structure.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>210/210</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>89/89</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>43/43</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>201/201</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>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">95x</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</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-yes">59x</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-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">59x</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-yes">59x</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-yes">59x</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">59x</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</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-yes">59x</span>
629
- <span class="cline-any cline-yes">59x</span>
630
- <span class="cline-any cline-yes">59x</span>
631
- <span class="cline-any cline-yes">59x</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-yes">249x</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-yes">2x</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">1x</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-yes">54x</span>
650
- <span class="cline-any cline-yes">54x</span>
651
- <span class="cline-any cline-yes">54x</span>
652
- <span class="cline-any cline-yes">54x</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-yes">59x</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-yes">54x</span>
663
- <span class="cline-any cline-yes">86x</span>
664
- <span class="cline-any cline-yes">86x</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-yes">86x</span>
667
- <span class="cline-any cline-yes">32x</span>
668
- <span class="cline-any cline-yes">17x</span>
669
- <span class="cline-any cline-yes">15x</span>
670
- <span class="cline-any cline-yes">5x</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-yes">86x</span>
675
- <span class="cline-any cline-yes">1x</span>
676
- <span class="cline-any cline-yes">1x</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-yes">85x</span>
680
- <span class="cline-any cline-yes">85x</span>
681
- <span class="cline-any cline-yes">6x</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-yes">79x</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-yes">85x</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-yes">88x</span>
696
- <span class="cline-any cline-yes">11x</span>
697
- <span class="cline-any cline-yes">77x</span>
698
- <span class="cline-any cline-yes">16x</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-yes">61x</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-yes">61x</span>
710
- <span class="cline-any cline-yes">61x</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-yes">61x</span>
713
- <span class="cline-any cline-yes">257x</span>
714
- <span class="cline-any cline-yes">257x</span>
715
- <span class="cline-any cline-yes">126x</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-yes">257x</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-yes">61x</span>
721
- <span class="cline-any cline-yes">61x</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-yes">316x</span>
730
- <span class="cline-any cline-yes">316x</span>
731
- <span class="cline-any cline-yes">255x</span>
732
- <span class="cline-any cline-yes">255x</span>
733
- <span class="cline-any cline-yes">255x</span>
734
- <span class="cline-any cline-yes">255x</span>
735
- <span class="cline-any cline-yes">255x</span>
736
- <span class="cline-any cline-yes">255x</span>
737
- <span class="cline-any cline-yes">255x</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-yes">316x</span>
741
- <span class="cline-any cline-yes">255x</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-yes">316x</span>
745
- <span class="cline-any cline-yes">255x</span>
746
- <span class="cline-any cline-yes">255x</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-neutral">&nbsp;</span>
751
- <span class="cline-any cline-yes">54x</span>
752
- <span class="cline-any cline-yes">67x</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-yes">16x</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">16x</span>
762
- <span class="cline-any cline-yes">13x</span>
763
- <span class="cline-any cline-yes">13x</span>
764
- <span class="cline-any cline-yes">13x</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-yes">16x</span>
768
- <span class="cline-any cline-yes">16x</span>
769
- <span class="cline-any cline-yes">16x</span>
770
- <span class="cline-any cline-yes">2x</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-yes">16x</span>
774
- <span class="cline-any cline-yes">41x</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-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-yes">41x</span>
784
- <span class="cline-any cline-yes">2x</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-yes">41x</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-yes">16x</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-yes">8x</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-yes">16x</span>
796
- <span class="cline-any cline-yes">14x</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-yes">2x</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-yes">16x</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">64x</span>
809
- <span class="cline-any cline-yes">64x</span>
810
- <span class="cline-any cline-yes">64x</span>
811
- <span class="cline-any cline-yes">7x</span>
812
- <span class="cline-any cline-yes">7x</span>
813
- <span class="cline-any cline-yes">7x</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-yes">64x</span>
817
- <span class="cline-any cline-yes">64x</span>
818
- <span class="cline-any cline-yes">64x</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
830
- <span class="cline-any cline-yes">134x</span>
831
- <span class="cline-any cline-yes">141x</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-yes">134x</span>
834
- <span class="cline-any cline-yes">270x</span>
835
- <span class="cline-any cline-yes">270x</span>
836
- <span class="cline-any cline-yes">270x</span>
837
- <span class="cline-any cline-yes">270x</span>
838
- <span class="cline-any cline-yes">70x</span>
839
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-yes">142x</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-yes">142x</span>
866
- <span class="cline-any cline-yes">123x</span>
867
- <span class="cline-any cline-yes">123x</span>
868
- <span class="cline-any cline-yes">1x</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-yes">122x</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-yes">19x</span>
873
- <span class="cline-any cline-yes">16x</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-yes">3x</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-yes">11x</span>
885
- <span class="cline-any cline-yes">11x</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-yes">11x</span>
888
- <span class="cline-any cline-yes">11x</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-yes">3x</span>
898
- <span class="cline-any cline-yes">3x</span>
899
- <span class="cline-any cline-yes">2x</span>
900
- <span class="cline-any cline-yes">2x</span>
901
- <span class="cline-any cline-yes">2x</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-yes">3x</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>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-yes">2x</span>
914
- <span class="cline-any cline-yes">2x</span>
915
- <span class="cline-any cline-yes">1x</span>
916
- <span class="cline-any cline-yes">1x</span>
917
- <span class="cline-any cline-yes">1x</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-yes">2x</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-yes">9x</span>
930
- <span class="cline-any cline-yes">9x</span>
931
- <span class="cline-any cline-yes">9x</span>
932
- <span class="cline-any cline-yes">9x</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-yes">2x</span>
939
- <span class="cline-any cline-yes">2x</span>
940
- <span class="cline-any cline-yes">1x</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-yes">2x</span>
943
- <span class="cline-any cline-yes">2x</span>
944
- <span class="cline-any cline-yes">2x</span>
945
- <span class="cline-any cline-yes">2x</span>
946
- <span class="cline-any cline-yes">2x</span>
947
- <span class="cline-any cline-yes">2x</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-yes">2x</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-yes">7x</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-yes">31x</span>
961
- <span class="cline-any cline-yes">17x</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-yes">14x</span>
964
- <span class="cline-any cline-yes">14x</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-yes">3x</span>
973
- <span class="cline-any cline-yes">3x</span>
974
- <span class="cline-any cline-yes">3x</span>
975
- <span class="cline-any cline-yes">2x</span>
976
- <span class="cline-any cline-yes">1x</span>
977
- <span class="cline-any cline-yes">1x</span>
978
- <span class="cline-any cline-yes">1x</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-yes">3x</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-yes">17x</span>
996
- <span class="cline-any cline-yes">17x</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-yes">70x</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-yes">17x</span>
1008
- <span class="cline-any cline-yes">17x</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-yes">1x</span>
1016
- <span class="cline-any cline-yes">1x</span>
1017
- <span class="cline-any cline-yes">1x</span>
1018
- <span class="cline-any cline-yes">5x</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-yes">5x</span>
1021
- <span class="cline-any cline-yes">26x</span>
1022
- <span class="cline-any cline-yes">26x</span>
1023
- <span class="cline-any cline-yes">26x</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-yes">5x</span>
1027
- <span class="cline-any cline-yes">5x</span>
1028
- <span class="cline-any cline-yes">2x</span>
1029
- <span class="cline-any cline-yes">2x</span>
1030
- <span class="cline-any cline-yes">2x</span>
1031
- <span class="cline-any cline-yes">1x</span>
1032
- <span class="cline-any cline-yes">1x</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-yes">1x</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-yes">298x</span>
1045
- <span class="cline-any cline-yes">298x</span>
1046
- <span class="cline-any cline-yes">298x</span>
1047
- <span class="cline-any cline-yes">298x</span>
1048
- <span class="cline-any cline-yes">298x</span>
1049
- <span class="cline-any cline-yes">298x</span>
1050
- <span class="cline-any cline-yes">298x</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-yes">45x</span>
1059
- <span class="cline-any cline-yes">45x</span>
1060
- <span class="cline-any cline-yes">45x</span>
1061
- <span class="cline-any cline-yes">24x</span>
1062
- <span class="cline-any cline-yes">24x</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-yes">45x</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-yes">8x</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-yes">7x</span>
1076
- <span class="cline-any cline-yes">7x</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-yes">7x</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-yes">3x</span>
1083
- <span class="cline-any cline-yes">3x</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-yes">3x</span>
1088
- <span class="cline-any cline-yes">3x</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-yes">1x</span>
1091
- <span class="cline-any cline-yes">1x</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-yes">7x</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-yes">8x</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-yes">2x</span>
1103
- <span class="cline-any cline-yes">2x</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Datasource, IDictionary } from '@zeedhi/core';
1107
- import { ITreeComponent, ITreeDataStructure } from './interfaces';
1108
- &nbsp;
1109
- export class TreeDataStructure implements ITreeDataStructure {
1110
- /**
1111
- * Original datasource
1112
- */
1113
- private originalDatasource!: Datasource;
1114
- &nbsp;
1115
- /**
1116
- * Parent field Name
1117
- */
1118
- private parentField: string;
1119
- &nbsp;
1120
- /**
1121
- * Defines if the tree will be opened or not (true/false) or if it should open only until a specific level
1122
- */
1123
- public openLevelOnLoad: number | boolean = false;
1124
- &nbsp;
1125
- /**
1126
- * Stores tree data
1127
- */
1128
- public treeData: IDictionary&lt;any&gt;[] = [];
1129
- &nbsp;
1130
- /**
1131
- * Search returns no data
1132
- */
1133
- public searchHasNoData = false;
1134
- &nbsp;
1135
- /**
1136
- * Stores tree structure
1137
- */
1138
- private treeStructure: any = {};
1139
- &nbsp;
1140
- public fieldHasChild?: string = '';
1141
- &nbsp;
1142
- /**
1143
- * Tree component
1144
- */
1145
- private tree!: ITreeComponent;
1146
- &nbsp;
1147
- constructor(tree: ITreeComponent) {
1148
- this.parentField = tree.parentField;
1149
- this.openLevelOnLoad = tree.openLevelOnLoad;
1150
- this.fieldHasChild = tree.fieldHasChild;
1151
- this.tree = tree;
1152
- }
1153
- detach?: boolean | undefined;
1154
- &nbsp;
1155
- get fetchOnDemand() {
1156
- return this.tree.fetchOnDemand || false;
1157
- }
1158
- &nbsp;
1159
- set fetchOnDemand(value: boolean) {
1160
- if (this.tree.fetchOnDemand === undefined) return;
1161
- &nbsp;
1162
- this.tree.fetchOnDemand = value;
1163
- }
1164
- &nbsp;
1165
- /**
1166
- * Creates properties and methods
1167
- */
1168
- public initialize() {
1169
- this.originalDatasource = this.tree.datasource;
1170
- const originalGetFunction = this.originalDatasource.get;
1171
- this.originalDatasource.get = this.treeGetData(originalGetFunction);
1172
- (this.originalDatasource as any).reloadAndUpdateSelectedRows = this.reloadAndUpdateSelectedRows.bind(this);
1173
- }
1174
- &nbsp;
1175
- private searchValue = '';
1176
- &nbsp;
1177
- /**
1178
- * Redefine get method
1179
- * @param originalGet originalDatasource get function
1180
- */
1181
- private treeGetData(originalGet: () =&gt; Promise&lt;any&gt;) {
1182
- return async () =&gt; {
1183
- this.searchValue = this.originalDatasource.search;
1184
- this.searchHasNoData = false;
1185
- &nbsp;
1186
- if (this.fetchOnDemand) {
1187
- if (this.tree.detach || this.originalDatasource.search) {
1188
- delete this.originalDatasource.filter[this.parentField];
1189
- } else if (!this.originalDatasource.filter[this.parentField]) {
1190
- this.originalDatasource.filter[this.parentField] = 'NULL';
1191
- }
1192
- }
1193
- &nbsp;
1194
- if (!this.tree.detach &amp;&amp; !this.fetchOnDemand &amp;&amp; this.searchValue) {
1195
- this.searchAllData();
1196
- return Promise.resolve(this.originalDatasource.data);
1197
- }
1198
- &nbsp;
1199
- return originalGet.call(this.originalDatasource).then((data: IDictionary&lt;any&gt;[]) =&gt; {
1200
- if (this.searchValue) {
1201
- this.buildDetached();
1202
- } else {
1203
- this.buildTree();
1204
- }
1205
- &nbsp;
1206
- return data;
1207
- });
1208
- };
1209
- }
1210
- &nbsp;
1211
- /**
1212
- * search data
1213
- */
1214
- public buildTree() {
1215
- if (this.tree.detach) {
1216
- this.buildDetached();
1217
- } else if (this.fetchOnDemand) {
1218
- this.buildOnDemand();
1219
- } else {
1220
- this.buildAllData();
1221
- }
1222
- }
1223
- &nbsp;
1224
- /**
1225
- * Build tree without fetchOnDemand
1226
- * @param data datasource data
1227
- */
1228
- private buildAllData() {
1229
- this.treeData = [];
1230
- this.treeStructure = {};
1231
- &nbsp;
1232
- this.originalDatasource.data.forEach((row) =&gt; {
1233
- const parentKey = row[this.parentField] || 'no-parent';
1234
- if (!this.treeStructure[parentKey]) {
1235
- this.treeStructure[parentKey] = [];
1236
- }
1237
- this.treeStructure[parentKey].push({ ...row });
1238
- });
1239
- &nbsp;
1240
- this.buildTreeData();
1241
- this.sortData();
1242
- }
1243
- &nbsp;
1244
- /**
1245
- * Build tree data using a parent row
1246
- * @param parentRow Parent row (undefined = build entire tree)
1247
- */
1248
- private buildTreeData(parentRow: any = undefined) {
1249
- const parentKey = parentRow?.[this.originalDatasource.uniqueKey] || 'no-parent';
1250
- const childrenData = (this.treeStructure[parentKey] || []).map((row: IDictionary&lt;any&gt;) =&gt; {
1251
- const level = (parentRow?.tree__level || 0) + 1;
1252
- row.tree__children = [{}];
1253
- row.tree__opened = this.openLevelOnLoad === true || level &lt;= this.openLevelOnLoad;
1254
- row.tree__parent = parentRow;
1255
- row.tree__level = level;
1256
- row.tree__searched = false;
1257
- return row;
1258
- });
1259
- &nbsp;
1260
- if (parentRow) {
1261
- parentRow.tree__children = childrenData;
1262
- }
1263
- &nbsp;
1264
- childrenData.forEach((row: any) =&gt; {
1265
- this.treeData.push(row);
1266
- this.buildTreeData(row);
1267
- });
1268
- }
1269
- &nbsp;
1270
- public findDataIndex(data: IDictionary&lt;any&gt;[], value: any) {
1271
- const { uniqueKey } = this.originalDatasource;
1272
- return data.findIndex((item) =&gt; item[uniqueKey] === value);
1273
- }
1274
- &nbsp;
1275
- /**
1276
- * Build tree with fetchOnDemand
1277
- */
1278
- private buildOnDemand() {
1279
- let parentKey = this.originalDatasource.filter[this.parentField];
1280
- &nbsp;
1281
- if (parentKey === 'NULL') {
1282
- parentKey = 'no-parent';
1283
- this.treeData = [];
1284
- this.treeStructure = {};
1285
- }
1286
- &nbsp;
1287
- const parentIdx = this.findDataIndex(this.treeData, parentKey);
1288
- const parent = parentIdx !== -1 ? this.treeData[parentIdx] : undefined;
1289
- if (parent) {
1290
- parent.tree__children = [];
1291
- }
1292
- &nbsp;
1293
- const childData = this.originalDatasource.data.map((row) =&gt; {
1294
- const item = {
1295
- ...row,
1296
- tree__children: [{}],
1297
- tree__opened: false,
1298
- tree__searched: false,
1299
- tree__level: parent ? parent.tree__level + 1 : 1,
1300
- tree__parent: parent,
1301
- };
1302
- &nbsp;
1303
- if (parent) {
1304
- parent.tree__children.push(item);
1305
- }
1306
- &nbsp;
1307
- return item;
1308
- });
1309
- &nbsp;
1310
- if (parent) {
1311
- // remove all existing children to add new ones
1312
- this.treeData = this.treeData.filter((item) =&gt; item.tree__parent !== parent);
1313
- }
1314
- &nbsp;
1315
- if (!parent) {
1316
- this.treeData = childData;
1317
- } else {
1318
- this.treeData.splice(parentIdx + 1, 0, ...childData);
1319
- }
1320
- &nbsp;
1321
- this.treeStructure[parentKey] = [...childData];
1322
- }
1323
- &nbsp;
1324
- /**
1325
- * Sort data
1326
- */
1327
- private sortData() {
1328
- const columns: string[] = [];
1329
- const order: string[] = [];
1330
- this.originalDatasource.order.forEach((value) =&gt; {
1331
- const splitted = value.split('.');
1332
- columns.push(splitted[0]);
1333
- order.push(splitted[1]);
1334
- });
1335
- &nbsp;
1336
- this.treeData = [];
1337
- this.originalDatasource.data = [];
1338
- this.sortTreeDataRows(this.treeStructure['no-parent'] || [], columns, order);
1339
- }
1340
- &nbsp;
1341
- /**
1342
- * Sort tree data rows
1343
- * @param dataToSort Data to sort
1344
- * @param columns Columns used to oreder the collection
1345
- * @param types Order orientation. All values must be asc or desc
1346
- * @param index Columns and types position
1347
- * @returns Sorted data
1348
- */
1349
- private sortTreeDataRows(dataToSort: IDictionary&lt;any&gt;[], columns: string[], types: string[]) {
1350
- const { uniqueKey } = this.originalDatasource;
1351
- const childrenData = dataToSort.sort((row, nextRow) =&gt; this.sort(row, nextRow, columns, types));
1352
- &nbsp;
1353
- childrenData.forEach((row) =&gt; {
1354
- this.treeData.push(row);
1355
- this.originalDatasource.data.push(this.clearRow(row));
1356
- const key = row[uniqueKey];
1357
- if (this.treeStructure[key]?.length) {
1358
- this.sortTreeDataRows(this.treeStructure[key], columns, types);
1359
- }
1360
- });
1361
- }
1362
- &nbsp;
1363
- /**
1364
- * Custom sort for collections
1365
- * @param row Collection row
1366
- * @param nextRow Next row from collection
1367
- * @param columns Columns used to oreder the collection
1368
- * @param types Order orientation. All values must be asc or desc
1369
- * @param index Columns and types position
1370
- * @returns Row's position
1371
- */
1372
- private sort(
1373
- row: IDictionary&lt;any&gt;,
1374
- nextRow: IDictionary&lt;any&gt;,
1375
- columns: string[],
1376
- types: string[],
1377
- index = 0,
1378
- ): number {
1379
- const orderTypes: IDictionary&lt;number&gt; = {
1380
- asc: 1,
1381
- desc: -1,
1382
- same: 0,
1383
- };
1384
- &nbsp;
1385
- if (row[columns[index]] === nextRow[columns[index]]) {
1386
- const nextIndex = index + 1;
1387
- if (Object.prototype.hasOwnProperty.call(columns, nextIndex)) {
1388
- return this.sort(row, nextRow, columns, types, nextIndex);
1389
- }
1390
- return orderTypes.same;
1391
- }
1392
- if (row[columns[index]] &gt; nextRow[columns[index]]) {
1393
- return orderTypes[types[index]];
1394
- }
1395
- return orderTypes[types[index]] * -1;
1396
- }
1397
- &nbsp;
1398
- /**
1399
- * Return if tree element and its parents are opened
1400
- * @param row datasource row
1401
- * @returns Element and parents are opened
1402
- */
1403
- public isOpened(row: IDictionary&lt;any&gt;): boolean {
1404
- const rowData = this.getRowData(row);
1405
- const isSearched = !this.searchValue || rowData.tree__searched;
1406
- const isOpened =
1407
- !rowData.tree__parent || (rowData.tree__parent.tree__opened &amp;&amp; this.isOpened(rowData.tree__parent));
1408
- return isSearched &amp;&amp; isOpened;
1409
- }
1410
- &nbsp;
1411
- /**
1412
- * Return previous opened row index
1413
- * @param rowIdx row index
1414
- * @returns previous row index
1415
- */
1416
- public previousOpenedRow(rowIdx: number) {
1417
- let result = -1;
1418
- for (let i = rowIdx - 1; i &gt;= 0; i -= 1) {
1419
- if (this.isOpened(this.treeData[i])) {
1420
- result = i;
1421
- break;
1422
- }
1423
- }
1424
- return result;
1425
- }
1426
- &nbsp;
1427
- /**
1428
- * Return next opened row index
1429
- * @param rowIdx row index
1430
- * @returns next row index
1431
- */
1432
- public nextOpenedRow(rowIdx: number) {
1433
- let result = -1;
1434
- for (let i = rowIdx + 1; i &lt; this.treeData.length; i += 1) {
1435
- if (this.isOpened(this.treeData[i])) {
1436
- result = i;
1437
- break;
1438
- }
1439
- }
1440
- return result;
1441
- }
1442
- &nbsp;
1443
- /**
1444
- * Expands or collapses a row
1445
- * @param row Row object
1446
- * @param rowIndex Row index
1447
- */
1448
- public async toggleExpand(row: IDictionary&lt;any&gt;, rowIndex = -1) {
1449
- const { uniqueKey } = this.originalDatasource;
1450
- const rowData = this.getRowData(row);
1451
- rowData.tree__opened = !rowData.tree__opened;
1452
- if (
1453
- rowData.tree__opened &amp;&amp;
1454
- this.fetchOnDemand &amp;&amp;
1455
- rowData.tree__children.length === 1 &amp;&amp;
1456
- !rowData.tree__children[0][uniqueKey]
1457
- ) {
1458
- let index = rowIndex;
1459
- if (index === -1) {
1460
- index = this.findDataIndex(this.treeData, row[uniqueKey]);
1461
- }
1462
- const originalData = [...this.originalDatasource.data];
1463
- const data: IDictionary&lt;any&gt;[] = await this.originalDatasource.addFilter(this.parentField, row[uniqueKey]);
1464
- originalData.splice(index + 1, 0, ...data);
1465
- this.originalDatasource.data = originalData;
1466
- this.originalDatasource.currentRow = this.clearRow(row);
1467
- delete this.originalDatasource.filter[this.parentField];
1468
- &nbsp;
1469
- return data;
1470
- }
1471
- &nbsp;
1472
- return undefined;
1473
- }
1474
- &nbsp;
1475
- /**
1476
- * Return row with tree data
1477
- * @param row datasource row
1478
- */
1479
- public getRowData(row: IDictionary&lt;any&gt;) {
1480
- if (row.tree__opened !== undefined) {
1481
- return row;
1482
- }
1483
- const rowIdx = this.findDataIndex(this.treeData, row[this.originalDatasource.uniqueKey]);
1484
- return this.treeData[rowIdx];
1485
- }
1486
- &nbsp;
1487
- /**
1488
- * Toggle expand/collapse using navigation keys
1489
- * @param collapse Should collapse
1490
- */
1491
- public navigateToggle(collapse: boolean) {
1492
- const { currentRow } = this.originalDatasource;
1493
- const rowData = this.getRowData(currentRow);
1494
- if (rowData.tree__opened === collapse &amp;&amp; rowData.tree__children.length &gt; 0) {
1495
- this.toggleExpand(rowData);
1496
- } else if (collapse) {
1497
- if (rowData.tree__parent) {
1498
- this.originalDatasource.currentRow = this.clearRow(rowData.tree__parent);
1499
- }
1500
- }
1501
- }
1502
- &nbsp;
1503
- /**
1504
- * Updates selected rows, fetches and retrieves data collection
1505
- * @returns Promise with data collection
1506
- */
1507
- private async reloadAndUpdateSelectedRows() {
1508
- this.sortData();
1509
- }
1510
- &nbsp;
1511
- /**
1512
- * Arrange treeData in a uniform structure
1513
- */
1514
- public buildDetached() {
1515
- this.treeData = [];
1516
- this.treeStructure = {};
1517
- &nbsp;
1518
- const childData = this.originalDatasource.data.map((row) =&gt; ({
1519
- ...row,
1520
- tree__children: [],
1521
- tree__opened: false,
1522
- tree__searched: !!this.searchValue,
1523
- tree__level: 1,
1524
- tree__parent: undefined,
1525
- }));
1526
- &nbsp;
1527
- this.treeData = childData;
1528
- this.treeStructure['no-parent'] = childData;
1529
- }
1530
- &nbsp;
1531
- /**
1532
- * Search value against a memory datasource
1533
- */
1534
- private searchAllData() {
1535
- this.searchHasNoData = true;
1536
- const searchValue = this.searchValue.toLowerCase();
1537
- this.treeData.forEach((row) =&gt; {
1538
- let filtered = false;
1539
- &nbsp;
1540
- Object.keys(row).every((key) =&gt; {
1541
- const rowValue = (row[key] || '').toString().toLowerCase();
1542
- filtered = this.originalDatasource.searchIn.indexOf(key) !== -1 &amp;&amp; rowValue.indexOf(searchValue) !== -1;
1543
- return !filtered;
1544
- });
1545
- &nbsp;
1546
- row.tree__searched = filtered;
1547
- if (filtered) {
1548
- this.searchHasNoData = false;
1549
- let parent = row.tree__parent;
1550
- while (parent &amp;&amp; !parent.tree__searched) {
1551
- parent.tree__searched = true;
1552
- parent = parent.tree__parent;
1553
- }
1554
- }
1555
- });
1556
- &nbsp;
1557
- this.searchHasNoData = !this.treeData.some((row) =&gt; row.tree__searched);
1558
- }
1559
- &nbsp;
1560
- /**
1561
- * Clear row removing 'tree__' props
1562
- */
1563
- public clearRow(row: IDictionary&lt;any&gt;) {
1564
- const result = { ...row };
1565
- result.tree__children = undefined;
1566
- result.tree__level = undefined;
1567
- result.tree__parent = undefined;
1568
- result.tree__opened = undefined;
1569
- result.tree__searched = undefined;
1570
- return result;
1571
- }
1572
- &nbsp;
1573
- /**
1574
- * Get all children
1575
- * @param row datasource row
1576
- */
1577
- public getChildren(row: IDictionary&lt;any&gt;) {
1578
- let result: IDictionary&lt;any&gt;[] = [];
1579
- const { uniqueKey } = this.originalDatasource;
1580
- (this.treeStructure[row[uniqueKey]] || []).forEach((item: IDictionary&lt;any&gt;) =&gt; {
1581
- result.push(this.clearRow(item));
1582
- result = result.concat(this.getChildren(item));
1583
- });
1584
- return result;
1585
- }
1586
- &nbsp;
1587
- /**
1588
- * Checks if a row has async children that are yet to be loaded
1589
- * @param row
1590
- * @returns `false` if the row has no children to be loaded, `true` if it does or if fieldHasChild is not defined
1591
- */
1592
- public hasChildOnDemand(row: IDictionary&lt;any&gt;) {
1593
- if (!this.fieldHasChild) return true;
1594
- &nbsp;
1595
- const rowHasChild: boolean | number | '0' | '1' = row[this.fieldHasChild];
1596
- let isVisibleChevron = true;
1597
- &nbsp;
1598
- switch (rowHasChild) {
1599
- case '0':
1600
- case false:
1601
- case 0:
1602
- isVisibleChevron = false;
1603
- break;
1604
- case '1':
1605
- case true:
1606
- case 1:
1607
- isVisibleChevron = true;
1608
- break;
1609
- default:
1610
- isVisibleChevron = true;
1611
- break;
1612
- }
1613
- &nbsp;
1614
- return isVisibleChevron;
1615
- }
1616
- &nbsp;
1617
- public getParentRow(row: IDictionary): IDictionary {
1618
- return this.getRowData(row).tree__parent;
1619
- }
1620
- &nbsp;
1621
- public resetTree() {
1622
- this.treeData = [];
1623
- this.buildTree();
1624
- }
1625
- }
1626
- &nbsp;</pre></td></tr></table></pre>
1627
-
1628
- <div class='push'></div><!-- for sticky footer -->
1629
- </div><!-- /wrapper -->
1630
- <div class='footer quiet pad2 space-top1 center small'>
1631
- Code coverage generated by
1632
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1633
- at 2025-10-29T14:27:41.126Z
1634
- </div>
1635
- <script src="../../../prettify.js"></script>
1636
- <script>
1637
- window.onload = function () {
1638
- prettyPrint();
1639
- };
1640
- </script>
1641
- <script src="../../../sorter.js"></script>
1642
- <script src="../../../block-navigation.js"></script>
1643
- </body>
1644
- </html>
1645
-