@skyux/list-builder 5.0.0 → 5.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-list-builder.umd.js +317 -336
  3. package/documentation.json +857 -639
  4. package/esm2015/index.js +78 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/list/list-data-request.model.js +18 -0
  7. package/esm2015/lib/modules/list/list-data-request.model.js.map +1 -0
  8. package/esm2015/lib/modules/list/list-data-response.model.js +9 -0
  9. package/esm2015/lib/modules/list/list-data-response.model.js.map +1 -0
  10. package/esm2015/lib/modules/list/list-data.provider.js +7 -0
  11. package/esm2015/lib/modules/list/list-data.provider.js.map +1 -0
  12. package/esm2015/lib/modules/list/list-paging.component.js +13 -0
  13. package/esm2015/lib/modules/list/list-paging.component.js.map +1 -0
  14. package/esm2015/lib/modules/list/list-view.component.js +28 -0
  15. package/esm2015/lib/modules/list/list-view.component.js.map +1 -0
  16. package/esm2015/lib/modules/list/list.component.js +305 -0
  17. package/esm2015/lib/modules/list/list.component.js.map +1 -0
  18. package/esm2015/lib/modules/list/list.module.js +18 -0
  19. package/esm2015/lib/modules/list/list.module.js.map +1 -0
  20. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js +16 -0
  21. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js.map +1 -0
  22. package/esm2015/lib/modules/list/state/filters/update.action.js +9 -0
  23. package/esm2015/lib/modules/list/state/filters/update.action.js.map +1 -0
  24. package/esm2015/lib/modules/list/state/items/items.orchestrator.js +53 -0
  25. package/esm2015/lib/modules/list/state/items/items.orchestrator.js.map +1 -0
  26. package/esm2015/lib/modules/list/state/items/load.action.js +12 -0
  27. package/esm2015/lib/modules/list/state/items/load.action.js.map +1 -0
  28. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js +13 -0
  29. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js.map +1 -0
  30. package/esm2015/lib/modules/list/state/items/set-loading.action.js +9 -0
  31. package/esm2015/lib/modules/list/state/items/set-loading.action.js.map +1 -0
  32. package/esm2015/lib/modules/list/state/list-state-action.type.js +2 -0
  33. package/esm2015/lib/modules/list/state/list-state-action.type.js.map +1 -0
  34. package/esm2015/lib/modules/list/state/list-state.model.js +24 -0
  35. package/esm2015/lib/modules/list/state/list-state.model.js.map +1 -0
  36. package/esm2015/lib/modules/list/state/list-state.rxstate.js +80 -0
  37. package/esm2015/lib/modules/list/state/list-state.rxstate.js.map +1 -0
  38. package/esm2015/lib/modules/list/state/list-state.state-node.js +37 -0
  39. package/esm2015/lib/modules/list/state/list-state.state-node.js.map +1 -0
  40. package/esm2015/lib/modules/list/state/paging/paging.model.js +14 -0
  41. package/esm2015/lib/modules/list/state/paging/paging.model.js.map +1 -0
  42. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js +27 -0
  43. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js.map +1 -0
  44. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js +9 -0
  45. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js.map +1 -0
  46. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js +9 -0
  47. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js.map +1 -0
  48. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js +9 -0
  49. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js.map +1 -0
  50. package/esm2015/lib/modules/list/state/search/search.model.js +32 -0
  51. package/esm2015/lib/modules/list/state/search/search.model.js.map +1 -0
  52. package/esm2015/lib/modules/list/state/search/search.orchestrator.js +47 -0
  53. package/esm2015/lib/modules/list/state/search/search.orchestrator.js.map +1 -0
  54. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js +9 -0
  55. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js.map +1 -0
  56. package/esm2015/lib/modules/list/state/search/set-functions.action.js +9 -0
  57. package/esm2015/lib/modules/list/state/search/set-functions.action.js.map +1 -0
  58. package/esm2015/lib/modules/list/state/search/set-options.action.js +11 -0
  59. package/esm2015/lib/modules/list/state/search/set-options.action.js.map +1 -0
  60. package/esm2015/lib/modules/list/state/search/set-search-text.action.js +9 -0
  61. package/esm2015/lib/modules/list/state/search/set-search-text.action.js.map +1 -0
  62. package/esm2015/lib/modules/list/state/selected/load.action.js +9 -0
  63. package/esm2015/lib/modules/list/state/selected/load.action.js.map +1 -0
  64. package/esm2015/lib/modules/list/state/selected/selected.model.js +9 -0
  65. package/esm2015/lib/modules/list/state/selected/selected.model.js.map +1 -0
  66. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js +56 -0
  67. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js.map +1 -0
  68. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js +10 -0
  69. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js.map +1 -0
  70. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js +11 -0
  71. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js.map +1 -0
  72. package/esm2015/lib/modules/list/state/selected/set-loading.action.js +9 -0
  73. package/esm2015/lib/modules/list/state/selected/set-loading.action.js.map +1 -0
  74. package/esm2015/lib/modules/list/state/sort/label.model.js +25 -0
  75. package/esm2015/lib/modules/list/state/sort/label.model.js.map +1 -0
  76. package/esm2015/lib/modules/list/state/sort/set-available.action.js +9 -0
  77. package/esm2015/lib/modules/list/state/sort/set-available.action.js.map +1 -0
  78. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js +9 -0
  79. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js.map +1 -0
  80. package/esm2015/lib/modules/list/state/sort/set-global.action.js +9 -0
  81. package/esm2015/lib/modules/list/state/sort/set-global.action.js.map +1 -0
  82. package/esm2015/lib/modules/list/state/sort/sort.model.js +27 -0
  83. package/esm2015/lib/modules/list/state/sort/sort.model.js.map +1 -0
  84. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js +30 -0
  85. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js.map +1 -0
  86. package/esm2015/lib/modules/list/state/toolbar/disable.action.js +9 -0
  87. package/esm2015/lib/modules/list/state/toolbar/disable.action.js.map +1 -0
  88. package/esm2015/lib/modules/list/state/toolbar/load.action.js +10 -0
  89. package/esm2015/lib/modules/list/state/toolbar/load.action.js.map +1 -0
  90. package/esm2015/lib/modules/list/state/toolbar/remove.action.js +9 -0
  91. package/esm2015/lib/modules/list/state/toolbar/remove.action.js.map +1 -0
  92. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js +9 -0
  93. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js.map +1 -0
  94. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js +9 -0
  95. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js.map +1 -0
  96. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js +9 -0
  97. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js.map +1 -0
  98. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js +16 -0
  99. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js.map +1 -0
  100. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js +17 -0
  101. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js.map +1 -0
  102. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js +80 -0
  103. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js.map +1 -0
  104. package/esm2015/lib/modules/list/state/views/load.action.js +9 -0
  105. package/esm2015/lib/modules/list/state/views/load.action.js.map +1 -0
  106. package/esm2015/lib/modules/list/state/views/set-active.action.js +9 -0
  107. package/esm2015/lib/modules/list/state/views/set-active.action.js.map +1 -0
  108. package/esm2015/lib/modules/list/state/views/view.model.js +10 -0
  109. package/esm2015/lib/modules/list/state/views/view.model.js.map +1 -0
  110. package/esm2015/lib/modules/list/state/views/views.model.js +13 -0
  111. package/esm2015/lib/modules/list/state/views/views.model.js.map +1 -0
  112. package/esm2015/lib/modules/list/state/views/views.orchestrator.js +21 -0
  113. package/esm2015/lib/modules/list/state/views/views.orchestrator.js.map +1 -0
  114. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +160 -0
  115. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js.map +1 -0
  116. package/esm2015/lib/modules/list-filters/filter.model.js +18 -0
  117. package/esm2015/lib/modules/list-filters/filter.model.js.map +1 -0
  118. package/esm2015/lib/modules/list-filters/list-filter-button.component.js +44 -0
  119. package/esm2015/lib/modules/list-filters/list-filter-button.component.js.map +1 -0
  120. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js +34 -0
  121. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js.map +1 -0
  122. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js +45 -0
  123. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js.map +1 -0
  124. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js +74 -0
  125. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js.map +1 -0
  126. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js +21 -0
  127. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js.map +1 -0
  128. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js +60 -0
  129. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js.map +1 -0
  130. package/esm2015/lib/modules/list-filters/list-filters.module.js +41 -0
  131. package/esm2015/lib/modules/list-filters/list-filters.module.js.map +1 -0
  132. package/esm2015/lib/modules/list-paging/list-paging.component.js +89 -0
  133. package/esm2015/lib/modules/list-paging/list-paging.component.js.map +1 -0
  134. package/esm2015/lib/modules/list-paging/list-paging.module.js +19 -0
  135. package/esm2015/lib/modules/list-paging/list-paging.module.js.map +1 -0
  136. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js +153 -0
  137. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js.map +1 -0
  138. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +33 -0
  139. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js.map +1 -0
  140. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +2 -0
  141. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js.map +1 -0
  142. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +50 -0
  143. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js.map +1 -0
  144. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +45 -0
  145. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js.map +1 -0
  146. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +46 -0
  147. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js.map +1 -0
  148. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +36 -0
  149. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js.map +1 -0
  150. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js +30 -0
  151. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js.map +1 -0
  152. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js +47 -0
  153. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js.map +1 -0
  154. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js +19 -0
  155. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js.map +1 -0
  156. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js +25 -0
  157. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js.map +1 -0
  158. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js +21 -0
  159. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js.map +1 -0
  160. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js +360 -0
  161. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js.map +1 -0
  162. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js +87 -0
  163. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js.map +1 -0
  164. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js +14 -0
  165. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js.map +1 -0
  166. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js +21 -0
  167. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js.map +1 -0
  168. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js +9 -0
  169. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js.map +1 -0
  170. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +10 -0
  171. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js.map +1 -0
  172. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js +2 -0
  173. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js.map +1 -0
  174. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js +10 -0
  175. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js.map +1 -0
  176. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js +19 -0
  177. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js.map +1 -0
  178. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js +23 -0
  179. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js.map +1 -0
  180. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js +53 -0
  181. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js.map +1 -0
  182. package/esm2015/skyux-list-builder.js +2 -2
  183. package/esm2015/skyux-list-builder.js.map +1 -0
  184. package/fesm2015/skyux-list-builder.js +383 -399
  185. package/fesm2015/skyux-list-builder.js.map +1 -1
  186. package/index.d.ts +74 -0
  187. package/{modules → lib/modules}/list/list-data-request.model.d.ts +0 -0
  188. package/{modules → lib/modules}/list/list-data-response.model.d.ts +0 -0
  189. package/{modules → lib/modules}/list/list-data.provider.d.ts +0 -0
  190. package/{modules → lib/modules}/list/list-paging.component.d.ts +0 -0
  191. package/{modules → lib/modules}/list/list-view.component.d.ts +0 -0
  192. package/{modules → lib/modules}/list/list.component.d.ts +0 -0
  193. package/{modules → lib/modules}/list/list.module.d.ts +0 -0
  194. package/{modules → lib/modules}/list/state/filters/filters.orchestrator.d.ts +0 -0
  195. package/{modules → lib/modules}/list/state/filters/update.action.d.ts +0 -0
  196. package/{modules → lib/modules}/list/state/items/items.orchestrator.d.ts +0 -0
  197. package/{modules → lib/modules}/list/state/items/load.action.d.ts +0 -0
  198. package/{modules → lib/modules}/list/state/items/set-items-selected.action.d.ts +0 -0
  199. package/{modules → lib/modules}/list/state/items/set-loading.action.d.ts +0 -0
  200. package/{modules → lib/modules}/list/state/list-state-action.type.d.ts +0 -0
  201. package/{modules → lib/modules}/list/state/list-state.model.d.ts +0 -0
  202. package/{modules → lib/modules}/list/state/list-state.rxstate.d.ts +0 -0
  203. package/{modules → lib/modules}/list/state/list-state.state-node.d.ts +0 -0
  204. package/{modules → lib/modules}/list/state/paging/paging.model.d.ts +0 -0
  205. package/{modules → lib/modules}/list/state/paging/paging.orchestrator.d.ts +0 -0
  206. package/{modules → lib/modules}/list/state/paging/set-items-per-page.action.d.ts +0 -0
  207. package/{modules → lib/modules}/list/state/paging/set-max-pages.action.d.ts +0 -0
  208. package/{modules → lib/modules}/list/state/paging/set-page-number.action.d.ts +0 -0
  209. package/{modules → lib/modules}/list/state/search/search.model.d.ts +1 -0
  210. package/{modules → lib/modules}/list/state/search/search.orchestrator.d.ts +0 -0
  211. package/{modules → lib/modules}/list/state/search/set-field-selectors.action.d.ts +0 -0
  212. package/{modules → lib/modules}/list/state/search/set-functions.action.d.ts +0 -0
  213. package/{modules → lib/modules}/list/state/search/set-options.action.d.ts +0 -0
  214. package/{modules → lib/modules}/list/state/search/set-search-text.action.d.ts +0 -0
  215. package/{modules → lib/modules}/list/state/selected/load.action.d.ts +0 -0
  216. package/{modules → lib/modules}/list/state/selected/selected.model.d.ts +0 -0
  217. package/{modules → lib/modules}/list/state/selected/selected.orchestrator.d.ts +0 -0
  218. package/{modules → lib/modules}/list/state/selected/set-item-selected.action.d.ts +0 -0
  219. package/{modules → lib/modules}/list/state/selected/set-items-selected.action.d.ts +0 -0
  220. package/{modules → lib/modules}/list/state/selected/set-loading.action.d.ts +0 -0
  221. package/{modules → lib/modules}/list/state/sort/label.model.d.ts +0 -0
  222. package/{modules → lib/modules}/list/state/sort/set-available.action.d.ts +0 -0
  223. package/{modules → lib/modules}/list/state/sort/set-field-selectors.action.d.ts +0 -0
  224. package/{modules → lib/modules}/list/state/sort/set-global.action.d.ts +0 -0
  225. package/{modules → lib/modules}/list/state/sort/sort.model.d.ts +0 -0
  226. package/{modules → lib/modules}/list/state/sort/sort.orchestrator.d.ts +0 -0
  227. package/{modules → lib/modules}/list/state/toolbar/disable.action.d.ts +0 -0
  228. package/{modules → lib/modules}/list/state/toolbar/load.action.d.ts +0 -0
  229. package/{modules → lib/modules}/list/state/toolbar/remove.action.d.ts +0 -0
  230. package/{modules → lib/modules}/list/state/toolbar/set-exists.action.d.ts +0 -0
  231. package/{modules → lib/modules}/list/state/toolbar/set-type.action.d.ts +0 -0
  232. package/{modules → lib/modules}/list/state/toolbar/show-multiselect-toolbar.action.d.ts +0 -0
  233. package/{modules → lib/modules}/list/state/toolbar/toolbar-item.model.d.ts +0 -0
  234. package/{modules → lib/modules}/list/state/toolbar/toolbar.model.d.ts +0 -0
  235. package/{modules → lib/modules}/list/state/toolbar/toolbar.orchestrator.d.ts +0 -0
  236. package/{modules → lib/modules}/list/state/views/load.action.d.ts +0 -0
  237. package/{modules → lib/modules}/list/state/views/set-active.action.d.ts +0 -0
  238. package/{modules → lib/modules}/list/state/views/view.model.d.ts +0 -0
  239. package/{modules → lib/modules}/list/state/views/views.model.d.ts +0 -0
  240. package/{modules → lib/modules}/list/state/views/views.orchestrator.d.ts +0 -0
  241. package/{modules → lib/modules}/list-data-provider-in-memory/list-data-in-memory.provider.d.ts +0 -0
  242. package/{modules → lib/modules}/list-filters/filter.model.d.ts +0 -0
  243. package/{modules → lib/modules}/list-filters/list-filter-button.component.d.ts +0 -0
  244. package/{modules → lib/modules}/list-filters/list-filter-inline-item-renderer.component.d.ts +0 -0
  245. package/{modules → lib/modules}/list-filters/list-filter-inline-item.component.d.ts +0 -0
  246. package/{modules → lib/modules}/list-filters/list-filter-inline.component.d.ts +0 -0
  247. package/{modules → lib/modules}/list-filters/list-filter-inline.model.d.ts +0 -0
  248. package/{modules → lib/modules}/list-filters/list-filter-summary.component.d.ts +0 -0
  249. package/{modules → lib/modules}/list-filters/list-filters.module.d.ts +0 -0
  250. package/{modules → lib/modules}/list-paging/list-paging.component.d.ts +0 -0
  251. package/{modules → lib/modules}/list-paging/list-paging.module.d.ts +0 -0
  252. package/{modules → lib/modules}/list-toolbar/list-multiselect-toolbar.component.d.ts +0 -0
  253. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-action.component.d.ts +0 -0
  254. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-action.d.ts +0 -0
  255. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.d.ts +0 -0
  256. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.component.d.ts +0 -0
  257. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.module.d.ts +0 -0
  258. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.service.d.ts +0 -0
  259. package/{modules → lib/modules}/list-toolbar/list-toolbar-item-renderer.component.d.ts +0 -0
  260. package/{modules → lib/modules}/list-toolbar/list-toolbar-item.component.d.ts +3 -3
  261. package/{modules → lib/modules}/list-toolbar/list-toolbar-search-actions.component.d.ts +0 -0
  262. package/{modules → lib/modules}/list-toolbar/list-toolbar-sort.component.d.ts +0 -0
  263. package/{modules → lib/modules}/list-toolbar/list-toolbar-view-actions.component.d.ts +0 -0
  264. package/{modules → lib/modules}/list-toolbar/list-toolbar.component.d.ts +2 -2
  265. package/{modules → lib/modules}/list-toolbar/list-toolbar.module.d.ts +0 -0
  266. package/{modules → lib/modules}/list-toolbar/state/config/config.model.d.ts +0 -0
  267. package/{modules → lib/modules}/list-toolbar/state/config/config.orchestrator.d.ts +0 -0
  268. package/{modules → lib/modules}/list-toolbar/state/config/set-search-enabled.action.d.ts +0 -0
  269. package/{modules → lib/modules}/list-toolbar/state/config/set-sort-selector-enabled.action.d.ts +0 -0
  270. package/{modules → lib/modules}/list-toolbar/state/toolbar-state-action.type.d.ts +0 -0
  271. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.model.d.ts +0 -0
  272. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.rxstate.d.ts +0 -0
  273. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.state-node.d.ts +0 -0
  274. package/{modules → lib/modules}/shared/sky-list-builder-resources.module.d.ts +0 -0
  275. package/package.json +13 -13
  276. package/skyux-list-builder.d.ts +1 -1
  277. package/LICENSE +0 -21
  278. package/bundles/skyux-list-builder.umd.js.map +0 -1
  279. package/esm2015/modules/list/list-data-request.model.js +0 -18
  280. package/esm2015/modules/list/list-data-response.model.js +0 -9
  281. package/esm2015/modules/list/list-data.provider.js +0 -7
  282. package/esm2015/modules/list/list-paging.component.js +0 -13
  283. package/esm2015/modules/list/list-view.component.js +0 -28
  284. package/esm2015/modules/list/list.component.js +0 -301
  285. package/esm2015/modules/list/list.module.js +0 -26
  286. package/esm2015/modules/list/state/filters/filters.orchestrator.js +0 -17
  287. package/esm2015/modules/list/state/filters/update.action.js +0 -9
  288. package/esm2015/modules/list/state/items/items.orchestrator.js +0 -52
  289. package/esm2015/modules/list/state/items/load.action.js +0 -12
  290. package/esm2015/modules/list/state/items/set-items-selected.action.js +0 -13
  291. package/esm2015/modules/list/state/items/set-loading.action.js +0 -9
  292. package/esm2015/modules/list/state/list-state-action.type.js +0 -2
  293. package/esm2015/modules/list/state/list-state.model.js +0 -24
  294. package/esm2015/modules/list/state/list-state.rxstate.js +0 -80
  295. package/esm2015/modules/list/state/list-state.state-node.js +0 -37
  296. package/esm2015/modules/list/state/paging/paging.model.js +0 -14
  297. package/esm2015/modules/list/state/paging/paging.orchestrator.js +0 -28
  298. package/esm2015/modules/list/state/paging/set-items-per-page.action.js +0 -9
  299. package/esm2015/modules/list/state/paging/set-max-pages.action.js +0 -9
  300. package/esm2015/modules/list/state/paging/set-page-number.action.js +0 -9
  301. package/esm2015/modules/list/state/search/search.model.js +0 -31
  302. package/esm2015/modules/list/state/search/search.orchestrator.js +0 -46
  303. package/esm2015/modules/list/state/search/set-field-selectors.action.js +0 -9
  304. package/esm2015/modules/list/state/search/set-functions.action.js +0 -9
  305. package/esm2015/modules/list/state/search/set-options.action.js +0 -11
  306. package/esm2015/modules/list/state/search/set-search-text.action.js +0 -9
  307. package/esm2015/modules/list/state/selected/load.action.js +0 -9
  308. package/esm2015/modules/list/state/selected/selected.model.js +0 -9
  309. package/esm2015/modules/list/state/selected/selected.orchestrator.js +0 -57
  310. package/esm2015/modules/list/state/selected/set-item-selected.action.js +0 -10
  311. package/esm2015/modules/list/state/selected/set-items-selected.action.js +0 -11
  312. package/esm2015/modules/list/state/selected/set-loading.action.js +0 -9
  313. package/esm2015/modules/list/state/sort/label.model.js +0 -25
  314. package/esm2015/modules/list/state/sort/set-available.action.js +0 -9
  315. package/esm2015/modules/list/state/sort/set-field-selectors.action.js +0 -9
  316. package/esm2015/modules/list/state/sort/set-global.action.js +0 -9
  317. package/esm2015/modules/list/state/sort/sort.model.js +0 -27
  318. package/esm2015/modules/list/state/sort/sort.orchestrator.js +0 -31
  319. package/esm2015/modules/list/state/toolbar/disable.action.js +0 -9
  320. package/esm2015/modules/list/state/toolbar/load.action.js +0 -10
  321. package/esm2015/modules/list/state/toolbar/remove.action.js +0 -9
  322. package/esm2015/modules/list/state/toolbar/set-exists.action.js +0 -9
  323. package/esm2015/modules/list/state/toolbar/set-type.action.js +0 -9
  324. package/esm2015/modules/list/state/toolbar/show-multiselect-toolbar.action.js +0 -9
  325. package/esm2015/modules/list/state/toolbar/toolbar-item.model.js +0 -16
  326. package/esm2015/modules/list/state/toolbar/toolbar.model.js +0 -17
  327. package/esm2015/modules/list/state/toolbar/toolbar.orchestrator.js +0 -81
  328. package/esm2015/modules/list/state/views/load.action.js +0 -9
  329. package/esm2015/modules/list/state/views/set-active.action.js +0 -9
  330. package/esm2015/modules/list/state/views/view.model.js +0 -10
  331. package/esm2015/modules/list/state/views/views.model.js +0 -13
  332. package/esm2015/modules/list/state/views/views.orchestrator.js +0 -23
  333. package/esm2015/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +0 -150
  334. package/esm2015/modules/list-filters/filter.model.js +0 -18
  335. package/esm2015/modules/list-filters/list-filter-button.component.js +0 -43
  336. package/esm2015/modules/list-filters/list-filter-inline-item-renderer.component.js +0 -34
  337. package/esm2015/modules/list-filters/list-filter-inline-item.component.js +0 -44
  338. package/esm2015/modules/list-filters/list-filter-inline.component.js +0 -71
  339. package/esm2015/modules/list-filters/list-filter-inline.model.js +0 -21
  340. package/esm2015/modules/list-filters/list-filter-summary.component.js +0 -58
  341. package/esm2015/modules/list-filters/list-filters.module.js +0 -48
  342. package/esm2015/modules/list-paging/list-paging.component.js +0 -88
  343. package/esm2015/modules/list-paging/list-paging.module.js +0 -30
  344. package/esm2015/modules/list-toolbar/list-multiselect-toolbar.component.js +0 -150
  345. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +0 -32
  346. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +0 -2
  347. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +0 -49
  348. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +0 -50
  349. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +0 -50
  350. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +0 -36
  351. package/esm2015/modules/list-toolbar/list-toolbar-item-renderer.component.js +0 -30
  352. package/esm2015/modules/list-toolbar/list-toolbar-item.component.js +0 -47
  353. package/esm2015/modules/list-toolbar/list-toolbar-search-actions.component.js +0 -19
  354. package/esm2015/modules/list-toolbar/list-toolbar-sort.component.js +0 -25
  355. package/esm2015/modules/list-toolbar/list-toolbar-view-actions.component.js +0 -21
  356. package/esm2015/modules/list-toolbar/list-toolbar.component.js +0 -356
  357. package/esm2015/modules/list-toolbar/list-toolbar.module.js +0 -87
  358. package/esm2015/modules/list-toolbar/state/config/config.model.js +0 -14
  359. package/esm2015/modules/list-toolbar/state/config/config.orchestrator.js +0 -23
  360. package/esm2015/modules/list-toolbar/state/config/set-search-enabled.action.js +0 -9
  361. package/esm2015/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +0 -10
  362. package/esm2015/modules/list-toolbar/state/toolbar-state-action.type.js +0 -2
  363. package/esm2015/modules/list-toolbar/state/toolbar-state.model.js +0 -10
  364. package/esm2015/modules/list-toolbar/state/toolbar-state.rxstate.js +0 -19
  365. package/esm2015/modules/list-toolbar/state/toolbar-state.state-node.js +0 -23
  366. package/esm2015/modules/shared/sky-list-builder-resources.module.js +0 -41
  367. package/esm2015/public-api.js +0 -78
  368. package/public-api.d.ts +0 -74
@@ -1,9 +0,0 @@
1
- export class ListDataResponseModel {
2
- constructor(data) {
3
- if (data !== undefined) {
4
- this.count = data.count;
5
- this.items = data.items;
6
- }
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBWSxJQUFVO1FBQ3BCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTGlzdEl0ZW1Nb2RlbFxufSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbiBleHBvcnQgY2xhc3MgTGlzdERhdGFSZXNwb25zZU1vZGVsIHtcbiAgIC8qKlxuICAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBsaXN0LlxuICAgICovXG4gICBwdWJsaWMgY291bnQ6IG51bWJlcjtcbiAgIC8qKlxuICAgICogQW4gYXJyYXkgb2YgdGhlIGl0ZW1zIHJldHVybmVkLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgYExpc3RJdGVtTW9kZWxgLCBzZWUgdGhlXG4gICAgKiBbc2hhcmVkIGNsYXNzZXMgZm9yIGxpc3RzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LWxpc3QtYnVpbGRlci1jb21tb24vZG9jcy9saXN0LWJ1aWxkZXItY29tbW9uKS5cbiAgICAqL1xuICAgcHVibGljIGl0ZW1zOiBMaXN0SXRlbU1vZGVsW107XG5cbiAgIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgIHRoaXMuY291bnQgPSBkYXRhLmNvdW50O1xuICAgICAgIHRoaXMuaXRlbXMgPSBkYXRhLml0ZW1zO1xuICAgICB9XG4gICB9XG4gfVxuIl19
@@ -1,7 +0,0 @@
1
- /**
2
- * @internal
3
- */
4
- export class ListDataProvider {
5
- constructor(data) { }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1kYXRhLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixnQkFBZ0I7SUFDcEMsWUFBWSxJQUE2QixJQUFHLENBQUM7Q0FLOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMaXN0RGF0YVJlcXVlc3RNb2RlbCB9IGZyb20gJy4vbGlzdC1kYXRhLXJlcXVlc3QubW9kZWwnO1xuaW1wb3J0IHsgTGlzdERhdGFSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi9saXN0LWRhdGEtcmVzcG9uc2UubW9kZWwnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGlzdERhdGFQcm92aWRlciB7XG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBPYnNlcnZhYmxlPEFycmF5PGFueT4+KSB7fVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQocmVxdWVzdDogTGlzdERhdGFSZXF1ZXN0TW9kZWwpOiBPYnNlcnZhYmxlPExpc3REYXRhUmVzcG9uc2VNb2RlbD47XG5cbiAgcHVibGljIGFic3RyYWN0IGNvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPjtcbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- /**
3
- * Provides a SKY UX-themed pagination control to display list data across multiple pages.
4
- * @internal
5
- */
6
- export class ListPagingComponent {
7
- constructor(state, dispatcher) {
8
- this.initialized = new BehaviorSubject(false);
9
- this.state = state;
10
- this.dispatcher = dispatcher;
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1wYWdpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2hCLE1BQU0sTUFBTSxDQUFDO0FBS2Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixtQkFBbUI7SUFLdkMsWUFBWSxLQUFnQixFQUFFLFVBQStCO1FBSm5ELGdCQUFXLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSzNFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTGlzdFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgTGlzdFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5yeHN0YXRlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIFNLWSBVWC10aGVtZWQgcGFnaW5hdGlvbiBjb250cm9sIHRvIGRpc3BsYXkgbGlzdCBkYXRhIGFjcm9zcyBtdWx0aXBsZSBwYWdlcy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGlzdFBhZ2luZ0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBpbml0aWFsaXplZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByb3RlY3RlZCBzdGF0ZTogTGlzdFN0YXRlO1xuICBwcm90ZWN0ZWQgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcjtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZTogTGlzdFN0YXRlLCBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XG4gIH1cbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { distinctUntilChanged, map as observableMap } from 'rxjs/operators';
2
- let idIndex = 0;
3
- /**
4
- * @internal
5
- */
6
- export class ListViewComponent {
7
- constructor(state, defaultName) {
8
- this.viewId = `sky-list-view-cmp-${++idIndex}`;
9
- this.state = state;
10
- this.viewName = defaultName;
11
- /* istanbul ignore next */
12
- this.hasToolbar = this.state.pipe(observableMap(s => s.toolbar.exists));
13
- this.active = this.state.pipe(observableMap(s => s.views.active === this.viewId));
14
- this.active.pipe(distinctUntilChanged()).subscribe(isActive => isActive ? this.onViewActive() : this.onViewInactive());
15
- }
16
- get id() {
17
- return this.viewId;
18
- }
19
- get label() {
20
- return this.viewName;
21
- }
22
- /* istanbul ignore next */
23
- onViewActive() {
24
- }
25
- onViewInactive() {
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L2xpc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixHQUFHLElBQUksYUFBYSxFQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBS3hCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQUNILE1BQU0sT0FBZ0IsaUJBQWlCO0lBU3JDLFlBQVksS0FBZ0IsRUFBRSxXQUFtQjtRQUZ6QyxXQUFNLEdBQVcscUJBQXFCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFHeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFFNUIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQy9CLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMzQixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ25ELENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxvQkFBb0IsRUFBRSxDQUN2QixDQUFDLFNBQVMsQ0FDVCxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixZQUFZO0lBQ25CLENBQUM7SUFFTSxjQUFjO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9ic2VydmFibGVcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmltcG9ydCB7IFNreUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9saXN0L2xpc3QuY29tcG9uZW50JztcblxubGV0IGlkSW5kZXggPSAwO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGlzdFZpZXdDb21wb25lbnQge1xuICBwdWJsaWMgYWN0aXZlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByb3RlY3RlZCB2aWV3TmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc3RhdGU6IExpc3RTdGF0ZTtcbiAgcHJvdGVjdGVkIGxpc3Q6IFNreUxpc3RDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBoYXNUb29sYmFyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIHZpZXdJZDogc3RyaW5nID0gYHNreS1saXN0LXZpZXctY21wLSR7KytpZEluZGV4fWA7XG5cbiAgY29uc3RydWN0b3Ioc3RhdGU6IExpc3RTdGF0ZSwgZGVmYXVsdE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLnZpZXdOYW1lID0gZGVmYXVsdE5hbWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHRoaXMuaGFzVG9vbGJhciA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAocyA9PiBzLnRvb2xiYXIuZXhpc3RzKVxuICAgICk7XG5cbiAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAocyA9PiBzLnZpZXdzLmFjdGl2ZSA9PT0gdGhpcy52aWV3SWQpXG4gICAgKTtcblxuICAgIHRoaXMuYWN0aXZlLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBpc0FjdGl2ZSA9PiBpc0FjdGl2ZSA/IHRoaXMub25WaWV3QWN0aXZlKCkgOiB0aGlzLm9uVmlld0luYWN0aXZlKClcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdJZDtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3TmFtZTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvblZpZXdBY3RpdmUoKSB7XG4gIH1cblxuICBwdWJsaWMgb25WaWV3SW5hY3RpdmUoKSB7XG4gIH1cbn1cbiJdfQ==
@@ -1,301 +0,0 @@
1
- import { combineLatest as observableCombineLatest, of as observableOf, Subject } from 'rxjs';
2
- import { distinctUntilChanged, flatMap, map as observableMap, skip, take, takeUntil } from 'rxjs/operators';
3
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
4
- import { getValue } from '@skyux/list-builder-common';
5
- import { ListItemsLoadAction } from './state/items/load.action';
6
- import { ListItemsSetLoadingAction } from './state/items/set-loading.action';
7
- import { ListSelectedLoadAction } from './state/selected/load.action';
8
- import { ListSelectedSetLoadingAction } from './state/selected/set-loading.action';
9
- import { ListSortModel } from './state/sort/sort.model';
10
- import { ListSortSetFieldSelectorsAction } from './state/sort/set-field-selectors.action';
11
- import { ListDataRequestModel } from './list-data-request.model';
12
- import { ListDataResponseModel } from './list-data-response.model';
13
- import { SkyListInMemoryDataProvider } from '../list-data-provider-in-memory/list-data-in-memory.provider';
14
- import { ListState } from './state/list-state.state-node';
15
- import { ListStateDispatcher } from './state/list-state.rxstate';
16
- import { isObservable, ListItemModel } from '@skyux/list-builder-common';
17
- import { ListViewComponent } from './list-view.component';
18
- import { ListPagingSetPageNumberAction } from './state/paging/set-page-number.action';
19
- import { ListViewsLoadAction } from './state/views/load.action';
20
- import { ListViewsSetActiveAction } from './state/views/set-active.action';
21
- import { ListViewModel } from './state/views/view.model';
22
- import * as i0 from "@angular/core";
23
- import * as i1 from "./state/list-state.state-node";
24
- import * as i2 from "./state/list-state.rxstate";
25
- let idIndex = 0;
26
- export class SkyListComponent {
27
- constructor(state, dispatcher) {
28
- this.state = state;
29
- this.dispatcher = dispatcher;
30
- this.id = `sky-list-cmp-${++idIndex}`;
31
- /**
32
- * Specifies the data to display. The list component requires this property or the
33
- * `dataProvider` property. For checklist or multiselect grids, each row requires an
34
- * `id` property to manage selected items with the `selectedIds` input and the
35
- * `selectedIdsChange` event. If you do not provide an `id`, the list automatically
36
- * generates one. To update data in your view outside of a `dataProvider`, you must use
37
- * an observable instead of a static array.
38
- */
39
- this.data = [];
40
- /**
41
- * Specifies a set of filters to apply to list data.
42
- * These filters create a filter summary when the list includes the
43
- * [`sky-list-filter-summary`](https://developer.blackbaud.com/skyux/components/list/filters)
44
- * component.
45
- */
46
- this.appliedFilters = [];
47
- /**
48
- * For list views that support item selection, emits the selected entries.
49
- */
50
- this.selectedIdsChange = new EventEmitter();
51
- /**
52
- * Emits the filters applied to the list.
53
- */
54
- this.appliedFiltersChange = new EventEmitter();
55
- /* tslint:enable */
56
- this.dataFirstLoad = false;
57
- this.lastSelectedIds = [];
58
- this.lastFilters = [];
59
- this.ngUnsubscribe = new Subject();
60
- }
61
- ngAfterContentInit() {
62
- if (this.data && this.dataProvider && this.initialTotal) {
63
- this.dataFirstLoad = true;
64
- }
65
- if (this.listViews.length > 0) {
66
- let defaultView = (this.defaultView === undefined) ? this.listViews.first : this.defaultView;
67
- this.dispatcher.next(new ListViewsLoadAction(this.listViews.map(v => new ListViewModel(v.id, v.label))));
68
- // activate the default view
69
- this.dispatcher.next(new ListViewsSetActiveAction(defaultView.id));
70
- }
71
- else {
72
- return;
73
- }
74
- // set sort fields
75
- getValue(this.sortFields, (sortFields) => {
76
- let sortArray;
77
- if (!Array.isArray(sortFields) && sortFields) {
78
- sortArray = [sortFields];
79
- }
80
- else {
81
- sortArray = sortFields;
82
- }
83
- this.dispatcher.next(new ListSortSetFieldSelectorsAction(sortArray || []));
84
- });
85
- this.displayedItems.subscribe(result => {
86
- this.dispatcher.next(new ListItemsSetLoadingAction());
87
- this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
88
- });
89
- // Watch for selection changes.
90
- this.state
91
- .pipe(observableMap(current => current.selected), takeUntil(this.ngUnsubscribe), distinctUntilChanged())
92
- .subscribe(selected => {
93
- // Update lastSelectedIds to help us retain user selections.
94
- let selectedIdsList = [];
95
- selected.item.selectedIdMap.forEach((value, key) => {
96
- if (value === true) {
97
- selectedIdsList.push(key);
98
- }
99
- });
100
- // If changes are distinct, emit selectedIdsChange.
101
- const distinctChanges = !this.arraysEqual(this.lastSelectedIds, selectedIdsList);
102
- if (this.selectedIdsChange.observers.length > 0 && distinctChanges) {
103
- this.selectedIdsChange.emit(selected.item.selectedIdMap);
104
- }
105
- this.lastSelectedIds = selectedIdsList;
106
- });
107
- if (this.appliedFiltersChange.observers.length > 0) {
108
- this.state
109
- .pipe(observableMap(current => current.filters), takeUntil(this.ngUnsubscribe), skip(1))
110
- .subscribe((filters) => {
111
- /**
112
- * We are doing this instead of a distinctUntilChange due to memory allocation issues
113
- * with the javascript array. To fix fully the array should be changed to an object in
114
- * a breaking change.
115
- */
116
- if (!this.arraysEqual(filters, this.lastFilters)) {
117
- this.lastFilters = filters.slice(0);
118
- this.appliedFiltersChange.emit(filters);
119
- }
120
- });
121
- }
122
- }
123
- ngOnChanges(changes) {
124
- if (changes['appliedFilters'] &&
125
- changes['appliedFilters'].currentValue !== changes['appliedFilters'].previousValue) {
126
- this.state.pipe(take(1)).subscribe((currentState) => {
127
- if (currentState.paging.pageNumber && currentState.paging.pageNumber !== 1) {
128
- this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
129
- }
130
- this.dispatcher.filtersUpdate(this.appliedFilters);
131
- });
132
- }
133
- if (changes['selectedIds']) {
134
- // Only send selection changes to dispatcher if changes are distinct.
135
- const newSelectedIds = changes['selectedIds'].currentValue;
136
- if (!this.arraysEqual(newSelectedIds, this.lastSelectedIds)) {
137
- this.dispatcher.setSelected(newSelectedIds, true, true);
138
- }
139
- }
140
- }
141
- ngOnDestroy() {
142
- this.ngUnsubscribe.next();
143
- this.ngUnsubscribe.complete();
144
- }
145
- refreshDisplayedItems() {
146
- this.displayedItems.pipe(take(1)).subscribe((result) => {
147
- this.dispatcher.next(new ListItemsSetLoadingAction());
148
- this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
149
- });
150
- }
151
- get displayedItems() {
152
- if (!this.data && !this.dataProvider) {
153
- throw new Error('List requires data or dataProvider to be set.');
154
- }
155
- let data = this.data;
156
- if (!isObservable(data)) {
157
- data = observableOf(this.data);
158
- }
159
- if (!this.dataProvider) {
160
- this.dataProvider = new SkyListInMemoryDataProvider(data, this.searchFunction);
161
- }
162
- let selectedIds = this.selectedIds || observableOf([]);
163
- if (!isObservable(selectedIds)) {
164
- selectedIds = observableOf(selectedIds);
165
- }
166
- let selectedChanged = false;
167
- // This subject is used to cancel previous request to the list's data provider when a new change
168
- // to the list's state occurs. In a future breaking change this should be replaced or coupled
169
- // with adding a debounce time to the Observable which watches for state changes.
170
- let cancelLastRequest = new Subject();
171
- return observableCombineLatest([
172
- this.state.pipe(observableMap(s => s.filters), distinctUntilChanged()),
173
- this.state.pipe(observableMap(s => s.search), distinctUntilChanged()),
174
- this.state.pipe(observableMap(s => s.sort.fieldSelectors), distinctUntilChanged()),
175
- this.state.pipe(observableMap(s => s.paging.itemsPerPage), distinctUntilChanged()),
176
- this.state.pipe(observableMap(s => s.paging.pageNumber), distinctUntilChanged()),
177
- this.state.pipe(observableMap(s => s.toolbar.disabled), distinctUntilChanged()),
178
- selectedIds.pipe(distinctUntilChanged(), observableMap(selected => {
179
- selectedChanged = true;
180
- return selected;
181
- })),
182
- data.pipe(distinctUntilChanged())
183
- ], (filters, search, sortFieldSelectors, itemsPerPage, pageNumber, isToolbarDisabled, selected, itemsData) => {
184
- cancelLastRequest.next();
185
- cancelLastRequest.complete();
186
- if (selectedChanged) {
187
- this.dispatcher.next(new ListSelectedSetLoadingAction());
188
- this.dispatcher.next(new ListSelectedLoadAction(selected));
189
- this.dispatcher.next(new ListSelectedSetLoadingAction(false));
190
- selectedChanged = false;
191
- }
192
- let response;
193
- if (this.dataFirstLoad) {
194
- this.dataFirstLoad = false;
195
- let initialItems = itemsData.map(d => new ListItemModel(d.id || `sky-list-item-model-${++idIndex}`, d));
196
- response = observableOf(new ListDataResponseModel({
197
- count: this.initialTotal,
198
- items: initialItems
199
- })).pipe(takeUntil(cancelLastRequest));
200
- }
201
- else {
202
- response = this.dataProvider.get(new ListDataRequestModel({
203
- filters: filters,
204
- pageSize: itemsPerPage,
205
- pageNumber: pageNumber,
206
- search: search,
207
- sort: new ListSortModel({ fieldSelectors: sortFieldSelectors }),
208
- isToolbarDisabled: isToolbarDisabled
209
- })).pipe(takeUntil(cancelLastRequest));
210
- }
211
- return response;
212
- })
213
- .pipe(takeUntil(this.ngUnsubscribe),
214
- // Retain user selections from previous state.
215
- // This is only necessary for grids component (based on item.isSelected).
216
- observableMap(response => {
217
- return response.pipe(observableMap(listDataResponseModel => {
218
- return new ListDataResponseModel({
219
- count: listDataResponseModel.count,
220
- items: this.getItemsAndRetainSelections(listDataResponseModel.items, this.lastSelectedIds)
221
- });
222
- }));
223
- }), flatMap(value => value));
224
- }
225
- get selectedItems() {
226
- return observableCombineLatest(this.state.pipe(observableMap(current => current.items.items), distinctUntilChanged()), this.state.pipe(observableMap(current => current.selected), distinctUntilChanged()), (items, selected) => {
227
- return items.filter(i => selected.item.selectedIdMap.get(i.id));
228
- }).pipe(takeUntil(this.ngUnsubscribe));
229
- }
230
- get lastUpdate() {
231
- return this.state
232
- .pipe(takeUntil(this.ngUnsubscribe), observableMap(s => s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined));
233
- }
234
- get views() {
235
- return this.listViews.toArray();
236
- }
237
- get itemCount() {
238
- return this.dataProvider.count();
239
- }
240
- getItemsAndRetainSelections(newList, selectedIds) {
241
- let updatedListModel = newList.slice();
242
- updatedListModel.forEach(item => {
243
- item.isSelected = selectedIds.indexOf(item.id) > -1 ? true : false;
244
- });
245
- return updatedListModel;
246
- }
247
- arraysEqual(arrayA, arrayB) {
248
- /* istanbul ignore next */
249
- if (arrayA === arrayB) {
250
- return true;
251
- }
252
- if (arrayA === undefined || arrayB === undefined) {
253
- return false;
254
- }
255
- if (arrayA.length !== arrayB.length) {
256
- return false;
257
- }
258
- for (let i = 0; i < arrayA.length; ++i) {
259
- if (arrayA[i] !== arrayB[i]) {
260
- return false;
261
- }
262
- }
263
- return true;
264
- }
265
- }
266
- SkyListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListComponent, deps: [{ token: i1.ListState }, { token: i2.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
267
- SkyListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.8", type: SkyListComponent, selector: "sky-list", inputs: { data: "data", dataProvider: "dataProvider", defaultView: "defaultView", initialTotal: "initialTotal", selectedIds: "selectedIds", sortFields: "sortFields", appliedFilters: "appliedFilters", searchFunction: ["search", "searchFunction"] }, outputs: { selectedIdsChange: "selectedIdsChange", appliedFiltersChange: "appliedFiltersChange" }, providers: [ListState, ListStateDispatcher], queries: [{ propertyName: "listViews", predicate: ListViewComponent }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListComponent, decorators: [{
269
- type: Component,
270
- args: [{
271
- selector: 'sky-list',
272
- template: '<ng-content></ng-content>',
273
- providers: [ListState, ListStateDispatcher],
274
- changeDetection: ChangeDetectionStrategy.OnPush
275
- }]
276
- }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i2.ListStateDispatcher }]; }, propDecorators: { data: [{
277
- type: Input
278
- }], dataProvider: [{
279
- type: Input
280
- }], defaultView: [{
281
- type: Input
282
- }], initialTotal: [{
283
- type: Input
284
- }], selectedIds: [{
285
- type: Input
286
- }], sortFields: [{
287
- type: Input
288
- }], appliedFilters: [{
289
- type: Input
290
- }], selectedIdsChange: [{
291
- type: Output
292
- }], appliedFiltersChange: [{
293
- type: Output
294
- }], searchFunction: [{
295
- type: Input,
296
- args: ['search']
297
- }], listViews: [{
298
- type: ContentChildren,
299
- args: [ListViewComponent]
300
- }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxJQUFJLHVCQUF1QixFQUV4QyxFQUFFLElBQUksWUFBWSxFQUNsQixPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFLUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUwsUUFBUSxFQUNULE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLHFDQUFxQyxDQUFDO0FBTTdDLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0seUNBQXlDLENBQUM7QUFNakQsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQU1wQyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0sOERBQThELENB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ZXJ2YWJsZUNvbWJpbmVMYXRlc3QsXG4gIE9ic2VydmFibGUsXG4gIG9mIGFzIG9ic2VydmFibGVPZixcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZsYXRNYXAsXG4gIG1hcCBhcyBvYnNlcnZhYmxlTWFwLFxuICBza2lwLFxuICB0YWtlLFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQXN5bmNJdGVtLFxuICBnZXRWYWx1ZVxufSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc0xvYWRBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9zZXQtbG9hZGluZy5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VsZWN0ZWRMb2FkQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvbG9hZC5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvc2V0LWxvYWRpbmcuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFNlbGVjdGVkTW9kZWxcbn0gZnJvbSAnLi9zdGF0ZS9zZWxlY3RlZC9zZWxlY3RlZC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3RTb3J0TW9kZWxcbn0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NvcnQubW9kZWwnO1xuXG5pbXBvcnQge1xuICBMaXN0U29ydFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc29ydC9zZXQtZmllbGQtc2VsZWN0b3JzLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RGaWx0ZXJNb2RlbFxufSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdERhdGFSZXF1ZXN0TW9kZWxcbn0gZnJvbSAnLi9saXN0LWRhdGEtcmVxdWVzdC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3REYXRhUmVzcG9uc2VNb2RlbFxufSBmcm9tICcuL2xpc3QtZGF0YS1yZXNwb25zZS5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3REYXRhUHJvdmlkZXJcbn0gZnJvbSAnLi9saXN0LWRhdGEucHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXJcbn0gZnJvbSAnLi4vbGlzdC1kYXRhLXByb3ZpZGVyLWluLW1lbW9yeS9saXN0LWRhdGEtaW4tbWVtb3J5LnByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgTGlzdFN0YXRlXG59IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcblxuaW1wb3J0IHtcbiAgTGlzdFN0YXRlRGlzcGF0Y2hlclxufSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5cbmltcG9ydCB7XG4gIGlzT2JzZXJ2YWJsZSxcbiAgTGlzdEl0ZW1Nb2RlbCxcbiAgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQge1xuICBMaXN0Vmlld0NvbXBvbmVudFxufSBmcm9tICcuL2xpc3Qtdmlldy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvblxufSBmcm9tICcuL3N0YXRlL3BhZ2luZy9zZXQtcGFnZS1udW1iZXIuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFNlYXJjaE1vZGVsXG59IGZyb20gJy4vc3RhdGUvc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3RWaWV3c0xvYWRBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS92aWV3cy9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RWaWV3c1NldEFjdGl2ZUFjdGlvblxufSBmcm9tICcuL3N0YXRlL3ZpZXdzL3NldC1hY3RpdmUuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFZpZXdNb2RlbFxufSBmcm9tICcuL3N0YXRlL3ZpZXdzL3ZpZXcubW9kZWwnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0JyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgcHJvdmlkZXJzOiBbTGlzdFN0YXRlLCBMaXN0U3RhdGVEaXNwYXRjaGVyXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHVibGljIGlkOiBzdHJpbmcgPSBgc2t5LWxpc3QtY21wLSR7KytpZEluZGV4fWA7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRhdGEgdG8gZGlzcGxheS4gVGhlIGxpc3QgY29tcG9uZW50IHJlcXVpcmVzIHRoaXMgcHJvcGVydHkgb3IgdGhlXG4gICAqIGBkYXRhUHJvdmlkZXJgIHByb3BlcnR5LiBGb3IgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWRzLCBlYWNoIHJvdyByZXF1aXJlcyBhblxuICAgKiBgaWRgIHByb3BlcnR5IHRvIG1hbmFnZSBzZWxlY3RlZCBpdGVtcyB3aXRoIHRoZSBgc2VsZWN0ZWRJZHNgIGlucHV0IGFuZCB0aGVcbiAgICogYHNlbGVjdGVkSWRzQ2hhbmdlYCBldmVudC4gSWYgeW91IGRvIG5vdCBwcm92aWRlIGFuIGBpZGAsIHRoZSBsaXN0IGF1dG9tYXRpY2FsbHlcbiAgICogZ2VuZXJhdGVzIG9uZS4gVG8gdXBkYXRlIGRhdGEgaW4geW91ciB2aWV3IG91dHNpZGUgb2YgYSBgZGF0YVByb3ZpZGVyYCwgeW91IG11c3QgdXNlXG4gICAqIGFuIG9ic2VydmFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBhcnJheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhPzogQXJyYXk8YW55PiB8IE9ic2VydmFibGU8QXJyYXk8YW55Pj4gPSBbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgZGF0YSBwcm92aWRlciB0byBvYnRhaW4gdGhlIGRhdGEgdG8gZGlzcGxheS4gVGhlIGxpc3QgY29tcG9uZW50IHJlcXVpcmVzXG4gICAqIHRoaXMgcHJvcGVydHkgb3IgdGhlIGBkYXRhYCBwcm9wZXJ0eS4gRm9yIGxpc3RzIHRoYXQgdXNlIGBkYXRhUHJvdmlkZXJgIGluc3RlYWQgb2YgYGRhdGFgLFxuICAgKiBjb25zdW1lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhbGwgYExpc3REYXRhUmVxdWVzdE1vZGVsYCBwcm9wZXJ0aWVzLlxuICAgKiBAZGVmYXVsdCBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBMaXN0RGF0YVByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Vmlldz86IExpc3RWaWV3Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBmb3IgdGhlIGluaXRpYWwgZGF0YSBzZXQgd2hlbiBpbml0aWFsaXplZC4gV2hlblxuICAgKiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYGRhdGFgIGFuZCBgZGF0YVByb3ZpZGVyYCwgaXQgYWxsb3dzIGFuIGluaXRpYWwgZGF0YSB0byBiZVxuICAgKiBzZXQgd2l0aCB0aGUgbmVlZCB0byBjYWxsIHRoZSBgZGF0YVByb3ZpZGVyYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbml0aWFsVG90YWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBJRHMgZm9yIHRoZSBpdGVtcyB0byBzZWxlY3QgaW4gYSBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZC5cbiAgICogVGhlIElEcyBtYXRjaCB0aGUgYGlkYCBwcm9wZXJ0aWVzIG9mIHRoZSBgZGF0YWAgb2JqZWN0cy4gSXRlbXMgd2l0aCBJRHMgdGhhdCBhcmUgbm90XG4gICAqIGluY2x1ZGVkIGFyZSBkZS1zZWxlY3RlZCBpbiB0aGUgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRJZHM/OiBBcnJheTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2V0IG9mIGZpZWxkcyB0byBzb3J0IGJ5LiBJZiBhcnJheSBvZiBmaWVsZHMgdGhlbiBzb3J0ZWQgYnkgb3JkZXIgb2YgYXJyYXkuXG4gICAqIEZvciBpbmZvcm1hdGlvbiBhYm91dCBgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxgLCBzZWUgdGhlXG4gICAqIFtzaGFyZWQgY2xhc3NlcyBmb3IgbGlzdHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtbGlzdC1idWlsZGVyLWNvbW1vbi9kb2NzL2xpc3QtYnVpbGRlci1jb21tb24pLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNvcnRGaWVsZHM/OiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbCB8XG4gICAgQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+IHxcbiAgICBPYnNlcnZhYmxlPEFycmF5PExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPj4gfFxuICAgIE9ic2VydmFibGU8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmlsdGVycyB0byBhcHBseSB0byBsaXN0IGRhdGEuXG4gICAqIFRoZXNlIGZpbHRlcnMgY3JlYXRlIGEgZmlsdGVyIHN1bW1hcnkgd2hlbiB0aGUgbGlzdCBpbmNsdWRlcyB0aGVcbiAgICogW2Bza3ktbGlzdC1maWx0ZXItc3VtbWFyeWBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9saXN0L2ZpbHRlcnMpXG4gICAqIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBsaWVkRmlsdGVyczogQXJyYXk8TGlzdEZpbHRlck1vZGVsPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBGb3IgbGlzdCB2aWV3cyB0aGF0IHN1cHBvcnQgaXRlbSBzZWxlY3Rpb24sIGVtaXRzIHRoZSBzZWxlY3RlZCBlbnRyaWVzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZElkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWFwPHN0cmluZywgYm9vbGVhbj4+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBmaWx0ZXJzIGFwcGxpZWQgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0RmlsdGVyTW9kZWw+PigpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0byBhcHBseSBhcyBhIGdsb2JhbCBzb3J0IG9uIHRoZSBsaXN0LlxuICAgKi9cbiAgLyogdHNsaW50OmRpc2FibGUgKi9cbiAgQElucHV0KCdzZWFyY2gnKVxuICBwdWJsaWMgc2VhcmNoRnVuY3Rpb246IChkYXRhOiBhbnksIHNlYXJjaFRleHQ6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xuXG4gIHByaXZhdGUgZGF0YUZpcnN0TG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdFZpZXdDb21wb25lbnQpXG4gIHByaXZhdGUgbGlzdFZpZXdzOiBRdWVyeUxpc3Q8TGlzdFZpZXdDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgbGFzdEZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdID0gW107XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlOiBMaXN0U3RhdGUsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyXG4gICkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMuaW5pdGlhbFRvdGFsKSB7XG4gICAgICB0aGlzLmRhdGFGaXJzdExvYWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpc3RWaWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmYXVsdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50ID1cbiAgICAgICAgKHRoaXMuZGVmYXVsdFZpZXcgPT09IHVuZGVmaW5lZCkgPyB0aGlzLmxpc3RWaWV3cy5maXJzdCA6IHRoaXMuZGVmYXVsdFZpZXc7XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdFZpZXdzTG9hZEFjdGlvbih0aGlzLmxpc3RWaWV3cy5tYXAodiA9PiBuZXcgTGlzdFZpZXdNb2RlbCh2LmlkLCB2LmxhYmVsKSkpXG4gICAgICApO1xuXG4gICAgICAvLyBhY3RpdmF0ZSB0aGUgZGVmYXVsdCB2aWV3XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uKGRlZmF1bHRWaWV3LmlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzZXQgc29ydCBmaWVsZHNcbiAgICBnZXRWYWx1ZSh0aGlzLnNvcnRGaWVsZHMsXG4gICAgICAoc29ydEZpZWxkczogTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXSB8IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsKSA9PiB7XG4gICAgICAgIGxldCBzb3J0QXJyYXk6IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsW107XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzb3J0RmllbGRzKSAmJiBzb3J0RmllbGRzKSB7XG4gICAgICAgICAgc29ydEFycmF5ID0gW3NvcnRGaWVsZHNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNvcnRBcnJheSA9IHNvcnRGaWVsZHMgYXMgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNvcnRTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbihzb3J0QXJyYXkgfHwgW10pKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0SXRlbXNTZXRMb2FkaW5nQWN0aW9uKCkpO1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc0xvYWRBY3Rpb24ocmVzdWx0Lml0ZW1zLCB0cnVlLCB0cnVlLCByZXN1bHQuY291bnQpKTtcbiAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcChjdXJyZW50ID0+IGN1cnJlbnQuc2VsZWN0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZCA9PiB7XG5cbiAgICAgICAgLy8gVXBkYXRlIGxhc3RTZWxlY3RlZElkcyB0byBoZWxwIHVzIHJldGFpbiB1c2VyIHNlbGVjdGlvbnMuXG4gICAgICAgIGxldCBzZWxlY3RlZElkc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHNlbGVjdGVkLml0ZW0uc2VsZWN0ZWRJZE1hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZElkc0xpc3QucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSWYgY2hhbmdlcyBhcmUgZGlzdGluY3QsIGVtaXQgc2VsZWN0ZWRJZHNDaGFuZ2UuXG4gICAgICAgIGNvbnN0IGRpc3RpbmN0Q2hhbmdlcyA9ICF0aGlzLmFycmF5c0VxdWFsKHRoaXMubGFzdFNlbGVjdGVkSWRzLCBzZWxlY3RlZElkc0xpc3QpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiBkaXN0aW5jdENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLmVtaXQoc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHNMaXN0O1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdGF0ZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKGN1cnJlbnQgPT4gY3VycmVudC5maWx0ZXJzKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBza2lwKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFdlIGFyZSBkb2luZyB0aGlzIGluc3RlYWQgb2YgYSBkaXN0aW5jdFVudGlsQ2hhbmdlIGR1ZSB0byBtZW1vcnkgYWxsb2NhdGlvbiBpc3N1ZXNcbiAgICAgICAgICAgKiB3aXRoIHRoZSBqYXZhc2NyaXB0IGFycmF5LiBUbyBmaXggZnVsbHkgdGhlIGFycmF5IHNob3VsZCBiZSBjaGFuZ2VkIHRvIGFuIG9iamVjdCBpblxuICAgICAgICAgICAqIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChmaWx0ZXJzLCB0aGlzLmxhc3RGaWx0ZXJzKSkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RmlsdGVycyA9IGZpbHRlcnMuc2xpY2UoMCk7XG4gICAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzQ2hhbmdlLmVtaXQoZmlsdGVycyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10gJiZcbiAgICAgIGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMuc3RhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGN1cnJlbnRTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAoY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICYmIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAhPT0gMSkge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgbmV3IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uKE51bWJlcigxKSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLmZpbHRlcnNVcGRhdGUodGhpcy5hcHBsaWVkRmlsdGVycyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10pIHtcbiAgICAgIC8vIE9ubHkgc2VuZCBzZWxlY3Rpb24gY2hhbmdlcyB0byBkaXNwYXRjaGVyIGlmIGNoYW5nZXMgYXJlIGRpc3RpbmN0LlxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHMgPSBjaGFuZ2VzWydzZWxlY3RlZElkcyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChuZXdTZWxlY3RlZElkcywgdGhpcy5sYXN0U2VsZWN0ZWRJZHMpKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZXRTZWxlY3RlZChuZXdTZWxlY3RlZElkcywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaERpc3BsYXllZEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24oKSk7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXllZEl0ZW1zKCk6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPiB7XG4gICAgaWYgKCF0aGlzLmRhdGEgJiYgIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpc3QgcmVxdWlyZXMgZGF0YSBvciBkYXRhUHJvdmlkZXIgdG8gYmUgc2V0LicpO1xuICAgIH1cblxuICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLmRhdGE7XG4gICAgaWYgKCFpc09ic2VydmFibGUoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBvYnNlcnZhYmxlT2YodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmRhdGFQcm92aWRlciA9IG5ldyBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXIoZGF0YSwgdGhpcy5zZWFyY2hGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZElkcyB8fCBvYnNlcnZhYmxlT2YoW10pO1xuICAgIGlmICghaXNPYnNlcnZhYmxlKHNlbGVjdGVkSWRzKSkge1xuICAgICAgc2VsZWN0ZWRJZHMgPSBvYnNlcnZhYmxlT2Yoc2VsZWN0ZWRJZHMpO1xuICAgIH1cblxuICAgIGxldCBzZWxlY3RlZENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFRoaXMgc3ViamVjdCBpcyB1c2VkIHRvIGNhbmNlbCBwcmV2aW91cyByZXF1ZXN0IHRvIHRoZSBsaXN0J3MgZGF0YSBwcm92aWRlciB3aGVuIGEgbmV3IGNoYW5nZVxuICAgIC8vIHRvIHRoZSBsaXN0J3Mgc3RhdGUgb2NjdXJzLiBJbiBhIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgdGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgb3IgY291cGxlZFxuICAgIC8vIHdpdGggYWRkaW5nIGEgZGVib3VuY2UgdGltZSB0byB0aGUgT2JzZXJ2YWJsZSB3aGljaCB3YXRjaGVzIGZvciBzdGF0ZSBjaGFuZ2VzLlxuICAgIGxldCBjYW5jZWxMYXN0UmVxdWVzdCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLmZpbHRlcnMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy5zZWFyY2gpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMucGFnaW5nLml0ZW1zUGVyUGFnZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLnBhZ2luZy5wYWdlTnVtYmVyKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMudG9vbGJhci5kaXNhYmxlZCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgc2VsZWN0ZWRJZHMucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgb2JzZXJ2YWJsZU1hcChzZWxlY3RlZCA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgZGF0YS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgXSwgKFxuICAgICAgZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10sXG4gICAgICBzZWFyY2g6IExpc3RTZWFyY2hNb2RlbCxcbiAgICAgIHNvcnRGaWVsZFNlbGVjdG9yczogQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+LFxuICAgICAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gICAgICBwYWdlTnVtYmVyOiBudW1iZXIsXG4gICAgICBpc1Rvb2xiYXJEaXNhYmxlZDogYm9vbGVhbixcbiAgICAgIHNlbGVjdGVkOiBBcnJheTxzdHJpbmc+LFxuICAgICAgaXRlbXNEYXRhOiBBcnJheTxhbnk+XG4gICAgKSA9PiB7XG4gICAgICBjYW5jZWxMYXN0UmVxdWVzdC5uZXh0KCk7XG4gICAgICBjYW5jZWxMYXN0UmVxdWVzdC5jb21wbGV0ZSgpO1xuICAgICAgaWYgKHNlbGVjdGVkQ2hhbmdlZCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RTZWxlY3RlZExvYWRBY3Rpb24oc2VsZWN0ZWQpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24oZmFsc2UpKTtcbiAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGxldCByZXNwb25zZTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+O1xuICAgICAgaWYgKHRoaXMuZGF0YUZpcnN0TG9hZCkge1xuICAgICAgICB0aGlzLmRhdGFGaXJzdExvYWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGluaXRpYWxJdGVtcyA9IGl0ZW1zRGF0YS5tYXAoZCA9PiBuZXcgTGlzdEl0ZW1Nb2RlbChcbiAgICAgICAgICBkLmlkIHx8IGBza3ktbGlzdC1pdGVtLW1vZGVsLSR7KytpZEluZGV4fWAsIGRcbiAgICAgICAgKSk7XG4gICAgICAgIHJlc3BvbnNlID0gb2JzZXJ2YWJsZU9mKG5ldyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwoe1xuICAgICAgICAgIGNvdW50OiB0aGlzLmluaXRpYWxUb3RhbCxcbiAgICAgICAgICBpdGVtczogaW5pdGlhbEl0ZW1zXG4gICAgICAgIH0pKS5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChjYW5jZWxMYXN0UmVxdWVzdClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlID0gdGhpcy5kYXRhUHJvdmlkZXIuZ2V0KG5ldyBMaXN0RGF0YVJlcXVlc3RNb2RlbCh7XG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgICAgICBwYWdlU2l6ZTogaXRlbXNQZXJQYWdlLFxuICAgICAgICAgIHBhZ2VOdW1iZXI6IHBhZ2VOdW1iZXIsXG4gICAgICAgICAgc2VhcmNoOiBzZWFyY2gsXG4gICAgICAgICAgc29ydDogbmV3IExpc3RTb3J0TW9kZWwoeyBmaWVsZFNlbGVjdG9yczogc29ydEZpZWxkU2VsZWN0b3JzIH0pLFxuICAgICAgICAgIGlzVG9vbGJhckRpc2FibGVkOiBpc1Rvb2xiYXJEaXNhYmxlZFxuICAgICAgICB9KSkucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoY2FuY2VsTGFzdFJlcXVlc3QpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuXG4gICAgICAgIC8vIFJldGFpbiB1c2VyIHNlbGVjdGlvbnMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgICAgLy8gVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgZ3JpZHMgY29tcG9uZW50IChiYXNlZCBvbiBpdGVtLmlzU2VsZWN0ZWQpLlxuICAgICAgICBvYnNlcnZhYmxlTWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucGlwZShvYnNlcnZhYmxlTWFwKGxpc3REYXRhUmVzcG9uc2VNb2RlbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IExpc3REYXRhUmVzcG9uc2VNb2RlbCh7XG4gICAgICAgICAgICAgIGNvdW50OiBsaXN0RGF0YVJlc3BvbnNlTW9kZWwuY291bnQsXG4gICAgICAgICAgICAgIGl0ZW1zOiB0aGlzLmdldEl0ZW1zQW5kUmV0YWluU2VsZWN0aW9ucyhsaXN0RGF0YVJlc3BvbnNlTW9kZWwuaXRlbXMsIHRoaXMubGFzdFNlbGVjdGVkSWRzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmxhdE1hcCh2YWx1ZSA9PiB2YWx1ZSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSXRlbXMoKTogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbU1vZGVsPj4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdChcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKGN1cnJlbnQgPT4gY3VycmVudC5pdGVtcy5pdGVtcyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAoY3VycmVudCA9PiBjdXJyZW50LnNlbGVjdGVkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICAoaXRlbXM6IEFycmF5PExpc3RJdGVtTW9kZWw+LCBzZWxlY3RlZDogQXN5bmNJdGVtPExpc3RTZWxlY3RlZE1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGkgPT4gc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwLmdldChpLmlkKSk7XG4gICAgICB9XG4gICAgKS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFVwZGF0ZSgpOiBPYnNlcnZhYmxlPERhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBvYnNlcnZhYmxlTWFwKHMgPT5cbiAgICAgICAgICBzLml0ZW1zLmxhc3RVcGRhdGUgPyBuZXcgRGF0ZShzLml0ZW1zLmxhc3RVcGRhdGUpIDogdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdzKCk6IEFycmF5PExpc3RWaWV3Q29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFZpZXdzLnRvQXJyYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbUNvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVByb3ZpZGVyLmNvdW50KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1zQW5kUmV0YWluU2VsZWN0aW9ucyhuZXdMaXN0OiBMaXN0SXRlbU1vZGVsW10sIHNlbGVjdGVkSWRzOiBzdHJpbmdbXSk6IExpc3RJdGVtTW9kZWxbXSB7XG4gICAgbGV0IHVwZGF0ZWRMaXN0TW9kZWwgPSBuZXdMaXN0LnNsaWNlKCk7XG4gICAgdXBkYXRlZExpc3RNb2RlbC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihpdGVtLmlkKSA+IC0xID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiB1cGRhdGVkTGlzdE1vZGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheXNFcXVhbChhcnJheUE6IGFueVtdLCBhcnJheUI6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoYXJyYXlBID09PSBhcnJheUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBID09PSB1bmRlZmluZWQgfHwgYXJyYXlCID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheUEubGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChhcnJheUFbaV0gIT09IGFycmF5QltpXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SkyListComponent } from './list.component';
4
- import * as i0 from "@angular/core";
5
- export class SkyListModule {
6
- }
7
- SkyListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- SkyListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListModule, declarations: [SkyListComponent], imports: [CommonModule], exports: [SkyListComponent] });
9
- SkyListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListModule, imports: [[
10
- CommonModule
11
- ]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0, type: SkyListModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [
16
- SkyListComponent
17
- ],
18
- imports: [
19
- CommonModule
20
- ],
21
- exports: [
22
- SkyListComponent
23
- ]
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFhcEQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFUdEIsZ0JBQWdCLGFBR2hCLFlBQVksYUFHWixnQkFBZ0I7MkdBR1AsYUFBYSxZQVBmO1lBQ1AsWUFBWTtTQUNiOzJGQUtVLGFBQWE7a0JBWHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNreUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5TGlzdENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lMaXN0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdE1vZHVsZSB7XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { ListStateOrchestrator } from '../list-state.rxstate';
2
- import { ListFiltersUpdateAction } from './update.action';
3
- /**
4
- * @internal
5
- */
6
- export class ListFiltersOrchestrator extends ListStateOrchestrator {
7
- /* istanbul ignore next */
8
- constructor() {
9
- super();
10
- this
11
- .register(ListFiltersUpdateAction, this.update);
12
- }
13
- update(state, action) {
14
- return [...action.filters];
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5vcmNoZXN0cmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9zdGF0ZS9maWx0ZXJzL2ZpbHRlcnMub3JjaGVzdHJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxxQkFBd0M7SUFDbkYsMEJBQTBCO0lBQzFCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJO2FBQ0QsUUFBUSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwRCxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQXdCLEVBQUUsTUFBK0I7UUFDdEUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RTdGF0ZU9yY2hlc3RyYXRvciB9IGZyb20gJy4uL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5pbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7XG4gIExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uXG59IGZyb20gJy4vdXBkYXRlLmFjdGlvbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyc09yY2hlc3RyYXRvciBleHRlbmRzIExpc3RTdGF0ZU9yY2hlc3RyYXRvcjxMaXN0RmlsdGVyTW9kZWxbXT4ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpc1xuICAgICAgLnJlZ2lzdGVyKExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uLCB0aGlzLnVwZGF0ZSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKHN0YXRlOiBMaXN0RmlsdGVyTW9kZWxbXSwgYWN0aW9uOiBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbik6IExpc3RGaWx0ZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gWy4uLmFjdGlvbi5maWx0ZXJzXTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * @internal
3
- */
4
- export class ListFiltersUpdateAction {
5
- constructor(filters) {
6
- this.filters = filters;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L3N0YXRlL2ZpbHRlcnMvdXBkYXRlLmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBbUIsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFBRyxDQUFDO0NBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbGlzdC1maWx0ZXJzL2ZpbHRlci5tb2RlbCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSkge31cbn1cbiJdfQ==
@@ -1,52 +0,0 @@
1
- import { ListItemModel } from '@skyux/list-builder-common';
2
- import { AsyncList } from '@skyux/list-builder-common';
3
- import { ListStateOrchestrator } from '../list-state.rxstate';
4
- import { ListItemsLoadAction } from './load.action';
5
- import { ListItemsSetLoadingAction } from './set-loading.action';
6
- import { ListItemsSetSelectedAction } from './set-items-selected.action';
7
- /**
8
- * @internal
9
- */
10
- export class ListItemsOrchestrator extends ListStateOrchestrator {
11
- /* istanbul ignore next */
12
- constructor() {
13
- super();
14
- this
15
- .register(ListItemsSetLoadingAction, this.setLoading)
16
- .register(ListItemsLoadAction, this.load)
17
- .register(ListItemsSetSelectedAction, this.setItemsSelected);
18
- }
19
- setLoading(state, action) {
20
- return new AsyncList(state.items, state.lastUpdate, action.loading, state.count);
21
- }
22
- load(state, action) {
23
- const newListItems = action.items.map(g => new ListItemModel(g.id, g.data, g.isSelected));
24
- const resultItems = (action.refresh) ? [...newListItems] : [...state.items, ...newListItems];
25
- let count = action.count === undefined ? resultItems.length : action.count;
26
- return new AsyncList(resultItems, action.dataChanged ? Date.now() : state.lastUpdate, false, count);
27
- }
28
- setItemsSelected(state, action) {
29
- /* istanbul ignore next */
30
- const newSelectedIds = action.items || [];
31
- let newListItemModels = this.cloneListItemModelArray(state.items);
32
- if (action.refresh) {
33
- newListItemModels.forEach(item => item.isSelected = undefined);
34
- }
35
- newSelectedIds.map(s => {
36
- let newItem = newListItemModels.find(i => i.id === s);
37
- /* istanbul ignore next */
38
- if (newItem) {
39
- newItem.isSelected = action.selected;
40
- }
41
- });
42
- return new AsyncList(newListItemModels, Date.now(), state.loading, state.count);
43
- }
44
- cloneListItemModelArray(source) {
45
- let newListItems = [];
46
- source.forEach(item => {
47
- newListItems.push(new ListItemModel(item.id, Object.assign({}, item.data), item.isSelected));
48
- });
49
- return newListItems;
50
- }
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMub3JjaGVzdHJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3Qvc3RhdGUvaXRlbXMvaXRlbXMub3JjaGVzdHJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLHlCQUF5QixFQUMxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFDTCwwQkFBMEIsRUFDM0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQzs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBK0M7SUFDeEYsMEJBQTBCO0lBQzFCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJO2FBQ0QsUUFBUSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDcEQsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDeEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxVQUFVLENBQ2hCLEtBQStCLEVBQy9CLE1BQWlDO1FBRWpDLE9BQU8sSUFBSSxTQUFTLENBQWdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRU8sSUFBSSxDQUNWLEtBQStCLEVBQy9CLE1BQTJCO1FBRTNCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFFN0YsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0UsT0FBTyxJQUFJLFNBQVMsQ0FDbEIsV0FBVyxFQUNYLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFDbEQsS0FBSyxFQUNMLEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUN0QixLQUErQixFQUMvQixNQUFrQztRQUVsQywwQkFBMEI7UUFDMUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxFLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQixJQUFJLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RELDBCQUEwQjtZQUMxQixJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxTQUFTLENBQ2xCLGlCQUFpQixFQUNqQixJQUFJLENBQUMsR0FBRyxFQUFFLEVBQ1YsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsS0FBSyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBNEI7UUFDMUQsSUFBSSxZQUFZLEdBQXlCLEVBQUUsQ0FBQztRQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQ2YsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMxRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMaXN0SXRlbU1vZGVsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHtcbiAgQXN5bmNMaXN0XG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFN0YXRlT3JjaGVzdHJhdG9yXG59IGZyb20gJy4uL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc0xvYWRBY3Rpb25cbn0gZnJvbSAnLi9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb25cbn0gZnJvbSAnLi9zZXQtbG9hZGluZy5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0SXRlbXNTZXRTZWxlY3RlZEFjdGlvblxufSBmcm9tICcuL3NldC1pdGVtcy1zZWxlY3RlZC5hY3Rpb24nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1zT3JjaGVzdHJhdG9yIGV4dGVuZHMgTGlzdFN0YXRlT3JjaGVzdHJhdG9yPEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPj4ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpc1xuICAgICAgLnJlZ2lzdGVyKExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24sIHRoaXMuc2V0TG9hZGluZylcbiAgICAgIC5yZWdpc3RlcihMaXN0SXRlbXNMb2FkQWN0aW9uLCB0aGlzLmxvYWQpXG4gICAgICAucmVnaXN0ZXIoTGlzdEl0ZW1zU2V0U2VsZWN0ZWRBY3Rpb24sIHRoaXMuc2V0SXRlbXNTZWxlY3RlZCk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcoXG4gICAgc3RhdGU6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPixcbiAgICBhY3Rpb246IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb25cbiAgKTogQXN5bmNMaXN0PExpc3RJdGVtTW9kZWw+IHtcbiAgICByZXR1cm4gbmV3IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPihzdGF0ZS5pdGVtcywgc3RhdGUubGFzdFVwZGF0ZSwgYWN0aW9uLmxvYWRpbmcsIHN0YXRlLmNvdW50KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZChcbiAgICBzdGF0ZTogQXN5bmNMaXN0PExpc3RJdGVtTW9kZWw+LFxuICAgIGFjdGlvbjogTGlzdEl0ZW1zTG9hZEFjdGlvblxuICApOiBBc3luY0xpc3Q8TGlzdEl0ZW1Nb2RlbD4ge1xuICAgIGNvbnN0IG5ld0xpc3RJdGVtcyA9IGFjdGlvbi5pdGVtcy5tYXAoZyA9PiBuZXcgTGlzdEl0ZW1Nb2RlbChnLmlkLCBnLmRhdGEsIGcuaXNTZWxlY3RlZCkpO1xuICAgIGNvbnN0IHJlc3VsdEl0ZW1zID0gKGFjdGlvbi5yZWZyZXNoKSA/IFsuLi5uZXdMaXN0SXRlbXNdIDogWy4uLnN0YXRlLml0ZW1zLCAuLi5uZXdMaXN0SXRlbXNdO1xuXG4gICAgbGV0IGNvdW50ID0gYWN0aW9uLmNvdW50ID09PSB1bmRlZmluZWQgPyByZXN1bHRJdGVtcy5sZW5ndGggOiBhY3Rpb24uY291bnQ7XG4gICAgcmV0dXJuIG5ldyBBc3luY0xpc3Q8TGlzdEl0ZW1Nb2RlbD4oXG4gICAgICByZXN1bHRJdGVtcyxcbiAgICAgIGFjdGlvbi5kYXRhQ2hhbmdlZCA/IERhdGUubm93KCkgOiBzdGF0ZS5sYXN0VXBkYXRlLFxuICAgICAgZmFsc2UsXG4gICAgICBjb3VudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zU2VsZWN0ZWQoXG4gICAgc3RhdGU6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPixcbiAgICBhY3Rpb246IExpc3RJdGVtc1NldFNlbGVjdGVkQWN0aW9uXG4gICk6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBjb25zdCBuZXdTZWxlY3RlZElkcyA9IGFjdGlvbi5pdGVtcyB8fCBbXTtcbiAgICBsZXQgbmV3TGlzdEl0ZW1Nb2RlbHMgPSB0aGlzLmNsb25lTGlzdEl0ZW1Nb2RlbEFycmF5KHN0YXRlLml0ZW1zKTtcblxuICAgIGlmIChhY3Rpb24ucmVmcmVzaCkge1xuICAgICAgbmV3TGlzdEl0ZW1Nb2RlbHMuZm9yRWFjaChpdGVtID0+IGl0ZW0uaXNTZWxlY3RlZCA9IHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgbmV3U2VsZWN0ZWRJZHMubWFwKHMgPT4ge1xuICAgICAgbGV0IG5ld0l0ZW0gPSBuZXdMaXN0SXRlbU1vZGVscy5maW5kKGkgPT4gaS5pZCA9PT0gcyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKG5ld0l0ZW0pIHtcbiAgICAgICAgbmV3SXRlbS5pc1NlbGVjdGVkID0gYWN0aW9uLnNlbGVjdGVkO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBBc3luY0xpc3Q8TGlzdEl0ZW1Nb2RlbD4oXG4gICAgICBuZXdMaXN0SXRlbU1vZGVscyxcbiAgICAgIERhdGUubm93KCksXG4gICAgICBzdGF0ZS5sb2FkaW5nLFxuICAgICAgc3RhdGUuY291bnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9uZUxpc3RJdGVtTW9kZWxBcnJheShzb3VyY2U6IEFycmF5PExpc3RJdGVtTW9kZWw+KTogTGlzdEl0ZW1Nb2RlbFtdIHtcbiAgICBsZXQgbmV3TGlzdEl0ZW1zOiBBcnJheTxMaXN0SXRlbU1vZGVsPiA9IFtdO1xuICAgIHNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgbmV3TGlzdEl0ZW1zLnB1c2goXG4gICAgICAgIG5ldyBMaXN0SXRlbU1vZGVsKGl0ZW0uaWQsIE9iamVjdC5hc3NpZ24oe30sIGl0ZW0uZGF0YSksIGl0ZW0uaXNTZWxlY3RlZClcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld0xpc3RJdGVtcztcbiAgfVxufVxuIl19
@@ -1,12 +0,0 @@
1
- /**
2
- * @internal
3
- */
4
- export class ListItemsLoadAction {
5
- constructor(items, refresh = false, dataChanged = true, count) {
6
- this.items = items;
7
- this.refresh = refresh;
8
- this.dataChanged = dataChanged;
9
- this.count = count;
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDUyxLQUEyQixFQUMzQixVQUFtQixLQUFLLEVBQ3hCLGNBQXVCLElBQUksRUFDM0IsS0FBYztRQUhkLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFTO0lBRXZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExpc3RJdGVtTW9kZWxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1zTG9hZEFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpdGVtczogQXJyYXk8TGlzdEl0ZW1Nb2RlbD4sXG4gICAgcHVibGljIHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQ6IGJvb2xlYW4gPSB0cnVlLFxuICAgIHB1YmxpYyBjb3VudD86IG51bWJlclxuICApIHtcbiAgfVxufVxuIl19
@@ -1,13 +0,0 @@
1
- /**
2
- * @internal
3
- */
4
- export class ListItemsSetSelectedAction {
5
- constructor(items,
6
- /* istanbul ignore next */
7
- selected = false, refresh = true) {
8
- this.items = items;
9
- this.selected = selected;
10
- this.refresh = refresh;
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWl0ZW1zLXNlbGVjdGVkLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L3N0YXRlL2l0ZW1zL3NldC1pdGVtcy1zZWxlY3RlZC5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ1MsS0FBZTtJQUN0QiwwQkFBMEI7SUFDbkIsV0FBb0IsS0FBSyxFQUN6QixVQUFtQixJQUFJO1FBSHZCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFFZixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtJQUM3QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1zU2V0U2VsZWN0ZWRBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaXRlbXM6IHN0cmluZ1tdLFxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcHVibGljIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgcHVibGljIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlXG4gICkge31cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- /**
2
- * @internal
3
- */
4
- export class ListItemsSetLoadingAction {
5
- constructor(loading = true) {
6
- this.loading = loading;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWxvYWRpbmcuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3Qvc3RhdGUvaXRlbXMvc2V0LWxvYWRpbmcuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFtQixVQUFtQixJQUFJO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQUcsQ0FBQztDQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0SXRlbXNTZXRMb2FkaW5nQWN0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlKSB7fVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGF0ZS1hY3Rpb24udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L3N0YXRlL2xpc3Qtc3RhdGUtYWN0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24gfSBmcm9tICcuL2l0ZW1zL3NldC1sb2FkaW5nLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9pdGVtcy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0SXRlbXNTZXRTZWxlY3RlZEFjdGlvbiB9IGZyb20gJy4vaXRlbXMvc2V0LWl0ZW1zLXNlbGVjdGVkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0UGFnaW5nU2V0TWF4UGFnZXNBY3Rpb24gfSBmcm9tICcuL3BhZ2luZy9zZXQtbWF4LXBhZ2VzLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0UGFnaW5nU2V0SXRlbXNQZXJQYWdlQWN0aW9uIH0gZnJvbSAnLi9wYWdpbmcvc2V0LWl0ZW1zLXBlci1wYWdlLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvbiB9IGZyb20gJy4vcGFnaW5nL3NldC1wYWdlLW51bWJlci5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFZpZXdzTG9hZEFjdGlvbiB9IGZyb20gJy4vdmlld3MvbG9hZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uIH0gZnJvbSAnLi92aWV3cy9zZXQtYWN0aXZlLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0VG9vbGJhckl0ZW1zTG9hZEFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0VG9vbGJhclNldEV4aXN0c0FjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9zZXQtZXhpc3RzLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VhcmNoU2V0U2VhcmNoVGV4dEFjdGlvbiB9IGZyb20gJy4vc2VhcmNoL3NldC1zZWFyY2gtdGV4dC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNlYXJjaFNldEZ1bmN0aW9uc0FjdGlvbiB9IGZyb20gJy4vc2VhcmNoL3NldC1mdW5jdGlvbnMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTZWFyY2hTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbiB9IGZyb20gJy4vc2VhcmNoL3NldC1maWVsZC1zZWxlY3RvcnMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTZWFyY2hTZXRPcHRpb25zQWN0aW9uIH0gZnJvbSAnLi9zZWFyY2gvc2V0LW9wdGlvbnMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24gfSBmcm9tICcuL3NlbGVjdGVkL3NldC1sb2FkaW5nLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VsZWN0ZWRMb2FkQWN0aW9uIH0gZnJvbSAnLi9zZWxlY3RlZC9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VsZWN0ZWRTZXRJdGVtU2VsZWN0ZWRBY3Rpb24gfSBmcm9tICcuL3NlbGVjdGVkL3NldC1pdGVtLXNlbGVjdGVkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VsZWN0ZWRTZXRJdGVtc1NlbGVjdGVkQWN0aW9uIH0gZnJvbSAnLi9zZWxlY3RlZC9zZXQtaXRlbXMtc2VsZWN0ZWQuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFyU2V0VHlwZUFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9zZXQtdHlwZS5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNvcnRTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbiB9IGZyb20gJy4vc29ydC9zZXQtZmllbGQtc2VsZWN0b3JzLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U29ydFNldEF2YWlsYWJsZUFjdGlvbiB9IGZyb20gJy4vc29ydC9zZXQtYXZhaWxhYmxlLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U29ydFNldEdsb2JhbEFjdGlvbiB9IGZyb20gJy4vc29ydC9zZXQtZ2xvYmFsLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbiB9IGZyb20gJy4vZmlsdGVycy91cGRhdGUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFySXRlbXNSZW1vdmVBY3Rpb24gfSBmcm9tICcuL3Rvb2xiYXIvcmVtb3ZlLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0VG9vbGJhckl0ZW1zRGlzYWJsZUFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9kaXNhYmxlLmFjdGlvbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCB0eXBlIExpc3RTdGF0ZUFjdGlvbiA9XG4gIExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24gfCBMaXN0SXRlbXNMb2FkQWN0aW9uIHwgTGlzdEl0ZW1zU2V0U2VsZWN0ZWRBY3Rpb24gfFxuICBMaXN0UGFnaW5nU2V0TWF4UGFnZXNBY3Rpb24gfCBMaXN0UGFnaW5nU2V0SXRlbXNQZXJQYWdlQWN0aW9uIHwgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24gfFxuICBMaXN0Vmlld3NMb2FkQWN0aW9uIHwgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uIHwgTGlzdFRvb2xiYXJJdGVtc0xvYWRBY3Rpb24gfFxuICBMaXN0VG9vbGJhclNldEV4aXN0c0FjdGlvbiB8IExpc3RTZWFyY2hTZXRTZWFyY2hUZXh0QWN0aW9uIHwgTGlzdFNlYXJjaFNldEZ1bmN0aW9uc0FjdGlvbiB8XG4gIExpc3RTZWFyY2hTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbiB8IExpc3RTZWFyY2hTZXRPcHRpb25zQWN0aW9uIHwgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbiB8XG4gIExpc3RTZWxlY3RlZExvYWRBY3Rpb24gfCBMaXN0U2VsZWN0ZWRTZXRJdGVtU2VsZWN0ZWRBY3Rpb24gfCBMaXN0U2VsZWN0ZWRTZXRJdGVtc1NlbGVjdGVkQWN0aW9uIHxcbiAgTGlzdFRvb2xiYXJTZXRUeXBlQWN0aW9uIHwgTGlzdFNvcnRTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbiB8IExpc3RTb3J0U2V0QXZhaWxhYmxlQWN0aW9uIHxcbiAgTGlzdFNvcnRTZXRHbG9iYWxBY3Rpb24gfCBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbiB8IExpc3RUb29sYmFySXRlbXNSZW1vdmVBY3Rpb24gfCBMaXN0VG9vbGJhckl0ZW1zRGlzYWJsZUFjdGlvbjtcbiJdfQ==