@skyux/list-builder 5.9.4 → 6.0.0-beta.10

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 (351) hide show
  1. package/documentation.json +775 -532
  2. package/esm2020/index.mjs +78 -0
  3. package/esm2020/lib/modules/list/list-data-request.model.mjs +21 -0
  4. package/esm2020/lib/modules/list/list-data-response.model.mjs +12 -0
  5. package/esm2020/lib/modules/list/list-data.provider.mjs +10 -0
  6. package/esm2020/lib/modules/list/list-paging.component.mjs +14 -0
  7. package/esm2020/lib/modules/list/list-view.component.mjs +30 -0
  8. package/esm2020/lib/modules/list/list.component.mjs +315 -0
  9. package/esm2020/lib/modules/list/list.module.mjs +21 -0
  10. package/esm2020/lib/modules/list/state/filters/filters.orchestrator.mjs +17 -0
  11. package/esm2020/lib/modules/list/state/filters/update.action.mjs +10 -0
  12. package/esm2020/lib/modules/list/state/items/items.orchestrator.mjs +54 -0
  13. package/esm2020/lib/modules/list/state/items/load.action.mjs +13 -0
  14. package/esm2020/lib/modules/list/state/items/set-items-selected.action.mjs +14 -0
  15. package/esm2020/lib/modules/list/state/items/set-loading.action.mjs +10 -0
  16. package/esm2020/lib/modules/list/state/list-state-action.type.mjs +2 -0
  17. package/esm2020/lib/modules/list/state/list-state.model.mjs +25 -0
  18. package/esm2020/lib/modules/list/state/list-state.rxstate.mjs +82 -0
  19. package/esm2020/lib/modules/list/state/list-state.state-node.mjs +38 -0
  20. package/esm2020/lib/modules/list/state/paging/paging.model.mjs +15 -0
  21. package/esm2020/lib/modules/list/state/paging/paging.orchestrator.mjs +28 -0
  22. package/esm2020/lib/modules/list/state/paging/set-items-per-page.action.mjs +10 -0
  23. package/esm2020/lib/modules/list/state/paging/set-max-pages.action.mjs +10 -0
  24. package/esm2020/lib/modules/list/state/paging/set-page-number.action.mjs +10 -0
  25. package/esm2020/lib/modules/list/state/search/search.model.mjs +33 -0
  26. package/esm2020/lib/modules/list/state/search/search.orchestrator.mjs +48 -0
  27. package/esm2020/lib/modules/list/state/search/set-field-selectors.action.mjs +10 -0
  28. package/esm2020/lib/modules/list/state/search/set-functions.action.mjs +10 -0
  29. package/esm2020/lib/modules/list/state/search/set-options.action.mjs +12 -0
  30. package/esm2020/lib/modules/list/state/search/set-search-text.action.mjs +10 -0
  31. package/esm2020/lib/modules/list/state/selected/load.action.mjs +10 -0
  32. package/esm2020/lib/modules/list/state/selected/selected.model.mjs +10 -0
  33. package/esm2020/lib/modules/list/state/selected/selected.orchestrator.mjs +57 -0
  34. package/esm2020/lib/modules/list/state/selected/set-item-selected.action.mjs +11 -0
  35. package/esm2020/lib/modules/list/state/selected/set-items-selected.action.mjs +12 -0
  36. package/esm2020/lib/modules/list/state/selected/set-loading.action.mjs +10 -0
  37. package/esm2020/lib/modules/list/state/sort/label.model.mjs +26 -0
  38. package/esm2020/lib/modules/list/state/sort/set-available.action.mjs +10 -0
  39. package/esm2020/lib/modules/list/state/sort/set-field-selectors.action.mjs +10 -0
  40. package/esm2020/lib/modules/list/state/sort/set-global.action.mjs +10 -0
  41. package/esm2020/lib/modules/list/state/sort/sort.model.mjs +28 -0
  42. package/esm2020/lib/modules/list/state/sort/sort.orchestrator.mjs +31 -0
  43. package/esm2020/lib/modules/list/state/toolbar/disable.action.mjs +10 -0
  44. package/esm2020/lib/modules/list/state/toolbar/load.action.mjs +11 -0
  45. package/esm2020/lib/modules/list/state/toolbar/remove.action.mjs +10 -0
  46. package/esm2020/lib/modules/list/state/toolbar/set-exists.action.mjs +10 -0
  47. package/esm2020/lib/modules/list/state/toolbar/set-type.action.mjs +10 -0
  48. package/esm2020/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.mjs +10 -0
  49. package/esm2020/lib/modules/list/state/toolbar/toolbar-item.model.mjs +17 -0
  50. package/esm2020/lib/modules/list/state/toolbar/toolbar.model.mjs +18 -0
  51. package/esm2020/lib/modules/list/state/toolbar/toolbar.orchestrator.mjs +81 -0
  52. package/esm2020/lib/modules/list/state/views/load.action.mjs +10 -0
  53. package/esm2020/lib/modules/list/state/views/set-active.action.mjs +10 -0
  54. package/esm2020/lib/modules/list/state/views/view.model.mjs +11 -0
  55. package/esm2020/lib/modules/list/state/views/views.model.mjs +14 -0
  56. package/esm2020/lib/modules/list/state/views/views.orchestrator.mjs +22 -0
  57. package/esm2020/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.mjs +163 -0
  58. package/esm2020/lib/modules/list-filters/filter.model.mjs +18 -0
  59. package/esm2020/lib/modules/list-filters/list-filter-button.component.mjs +42 -0
  60. package/esm2020/lib/modules/list-filters/list-filter-inline-item-renderer.component.mjs +34 -0
  61. package/esm2020/lib/modules/list-filters/list-filter-inline-item.component.mjs +46 -0
  62. package/esm2020/lib/modules/list-filters/list-filter-inline.component.mjs +72 -0
  63. package/esm2020/lib/modules/list-filters/list-filter-inline.model.mjs +21 -0
  64. package/esm2020/lib/modules/list-filters/list-filter-summary.component.mjs +58 -0
  65. package/esm2020/lib/modules/list-filters/list-filters.module.mjs +44 -0
  66. package/esm2020/lib/modules/list-paging/list-paging.component.mjs +92 -0
  67. package/esm2020/lib/modules/list-paging/list-paging.module.mjs +22 -0
  68. package/esm2020/lib/modules/list-toolbar/list-multiselect-toolbar.component.mjs +149 -0
  69. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.mjs +31 -0
  70. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.mjs +2 -0
  71. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.mjs +45 -0
  72. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.mjs +41 -0
  73. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.mjs +49 -0
  74. package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.mjs +36 -0
  75. package/esm2020/lib/modules/list-toolbar/list-toolbar-item-renderer.component.mjs +30 -0
  76. package/esm2020/lib/modules/list-toolbar/list-toolbar-item.component.mjs +48 -0
  77. package/esm2020/lib/modules/list-toolbar/list-toolbar-search-actions.component.mjs +15 -0
  78. package/esm2020/lib/modules/list-toolbar/list-toolbar-sort.component.mjs +26 -0
  79. package/esm2020/lib/modules/list-toolbar/list-toolbar-view-actions.component.mjs +27 -0
  80. package/esm2020/lib/modules/list-toolbar/list-toolbar.component.mjs +363 -0
  81. package/esm2020/lib/modules/list-toolbar/list-toolbar.module.mjs +90 -0
  82. package/esm2020/lib/modules/list-toolbar/state/config/config.model.mjs +14 -0
  83. package/esm2020/lib/modules/list-toolbar/state/config/config.orchestrator.mjs +21 -0
  84. package/esm2020/lib/modules/list-toolbar/state/config/set-search-enabled.action.mjs +9 -0
  85. package/esm2020/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.mjs +10 -0
  86. package/esm2020/lib/modules/list-toolbar/state/toolbar-state-action.type.mjs +2 -0
  87. package/esm2020/lib/modules/list-toolbar/state/toolbar-state.model.mjs +10 -0
  88. package/esm2020/lib/modules/list-toolbar/state/toolbar-state.rxstate.mjs +19 -0
  89. package/esm2020/lib/modules/list-toolbar/state/toolbar-state.state-node.mjs +23 -0
  90. package/esm2020/lib/modules/shared/sky-list-builder-resources.module.mjs +53 -0
  91. package/esm2020/skyux-list-builder.mjs +5 -0
  92. package/fesm2015/{skyux-list-builder.js → skyux-list-builder.mjs} +231 -163
  93. package/fesm2015/skyux-list-builder.mjs.map +1 -0
  94. package/fesm2020/skyux-list-builder.mjs +2781 -0
  95. package/fesm2020/skyux-list-builder.mjs.map +1 -0
  96. package/lib/modules/list/list-data-request.model.d.ts +3 -0
  97. package/lib/modules/list/list-data-response.model.d.ts +3 -0
  98. package/lib/modules/list/list-data.provider.d.ts +1 -0
  99. package/lib/modules/list/list-paging.component.d.ts +1 -0
  100. package/lib/modules/list/list-view.component.d.ts +1 -0
  101. package/lib/modules/list/list.component.d.ts +5 -1
  102. package/lib/modules/list/list.module.d.ts +3 -0
  103. package/lib/modules/list/state/filters/filters.orchestrator.d.ts +1 -0
  104. package/lib/modules/list/state/filters/update.action.d.ts +1 -0
  105. package/lib/modules/list/state/items/items.orchestrator.d.ts +1 -0
  106. package/lib/modules/list/state/items/load.action.d.ts +1 -0
  107. package/lib/modules/list/state/items/set-items-selected.action.d.ts +1 -0
  108. package/lib/modules/list/state/items/set-loading.action.d.ts +1 -0
  109. package/lib/modules/list/state/list-state-action.type.d.ts +1 -0
  110. package/lib/modules/list/state/list-state.model.d.ts +1 -0
  111. package/lib/modules/list/state/list-state.rxstate.d.ts +2 -0
  112. package/lib/modules/list/state/list-state.state-node.d.ts +1 -0
  113. package/lib/modules/list/state/paging/paging.model.d.ts +1 -0
  114. package/lib/modules/list/state/paging/paging.orchestrator.d.ts +1 -0
  115. package/lib/modules/list/state/paging/set-items-per-page.action.d.ts +1 -0
  116. package/lib/modules/list/state/paging/set-max-pages.action.d.ts +1 -0
  117. package/lib/modules/list/state/paging/set-page-number.action.d.ts +1 -0
  118. package/lib/modules/list/state/search/search.model.d.ts +1 -0
  119. package/lib/modules/list/state/search/search.orchestrator.d.ts +1 -0
  120. package/lib/modules/list/state/search/set-field-selectors.action.d.ts +1 -0
  121. package/lib/modules/list/state/search/set-functions.action.d.ts +1 -0
  122. package/lib/modules/list/state/search/set-options.action.d.ts +1 -0
  123. package/lib/modules/list/state/search/set-search-text.action.d.ts +1 -0
  124. package/lib/modules/list/state/selected/load.action.d.ts +1 -0
  125. package/lib/modules/list/state/selected/selected.model.d.ts +1 -0
  126. package/lib/modules/list/state/selected/selected.orchestrator.d.ts +1 -0
  127. package/lib/modules/list/state/selected/set-item-selected.action.d.ts +1 -0
  128. package/lib/modules/list/state/selected/set-items-selected.action.d.ts +1 -0
  129. package/lib/modules/list/state/selected/set-loading.action.d.ts +1 -0
  130. package/lib/modules/list/state/sort/label.model.d.ts +1 -0
  131. package/lib/modules/list/state/sort/set-available.action.d.ts +1 -0
  132. package/lib/modules/list/state/sort/set-field-selectors.action.d.ts +1 -0
  133. package/lib/modules/list/state/sort/set-global.action.d.ts +1 -0
  134. package/lib/modules/list/state/sort/sort.model.d.ts +1 -0
  135. package/lib/modules/list/state/sort/sort.orchestrator.d.ts +1 -0
  136. package/lib/modules/list/state/toolbar/disable.action.d.ts +1 -0
  137. package/lib/modules/list/state/toolbar/load.action.d.ts +1 -0
  138. package/lib/modules/list/state/toolbar/remove.action.d.ts +1 -0
  139. package/lib/modules/list/state/toolbar/set-exists.action.d.ts +1 -0
  140. package/lib/modules/list/state/toolbar/set-type.action.d.ts +1 -0
  141. package/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.d.ts +1 -0
  142. package/lib/modules/list/state/toolbar/toolbar-item.model.d.ts +1 -0
  143. package/lib/modules/list/state/toolbar/toolbar.model.d.ts +1 -0
  144. package/lib/modules/list/state/toolbar/toolbar.orchestrator.d.ts +1 -0
  145. package/lib/modules/list/state/views/load.action.d.ts +1 -0
  146. package/lib/modules/list/state/views/set-active.action.d.ts +1 -0
  147. package/lib/modules/list/state/views/view.model.d.ts +1 -0
  148. package/lib/modules/list/state/views/views.model.d.ts +1 -0
  149. package/lib/modules/list/state/views/views.orchestrator.d.ts +1 -0
  150. package/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.d.ts +3 -0
  151. package/lib/modules/list-filters/list-filter-button.component.d.ts +1 -0
  152. package/lib/modules/list-filters/list-filter-inline-item.component.d.ts +1 -0
  153. package/lib/modules/list-filters/list-filter-inline.component.d.ts +1 -0
  154. package/lib/modules/list-filters/list-filter-summary.component.d.ts +1 -0
  155. package/lib/modules/list-filters/list-filters.module.d.ts +3 -0
  156. package/lib/modules/list-paging/list-paging.component.d.ts +3 -1
  157. package/lib/modules/list-paging/list-paging.module.d.ts +3 -0
  158. package/lib/modules/list-toolbar/list-multiselect-toolbar.component.d.ts +1 -0
  159. package/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.d.ts +1 -0
  160. package/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.d.ts +1 -0
  161. package/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.d.ts +1 -0
  162. package/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.d.ts +3 -0
  163. package/lib/modules/list-toolbar/list-toolbar-item.component.d.ts +1 -0
  164. package/lib/modules/list-toolbar/list-toolbar-search-actions.component.d.ts +1 -0
  165. package/lib/modules/list-toolbar/list-toolbar-sort.component.d.ts +1 -0
  166. package/lib/modules/list-toolbar/list-toolbar-view-actions.component.d.ts +3 -0
  167. package/lib/modules/list-toolbar/list-toolbar.component.d.ts +4 -1
  168. package/lib/modules/list-toolbar/list-toolbar.module.d.ts +3 -0
  169. package/package.json +33 -16
  170. package/bundles/skyux-list-builder.umd.js +0 -3357
  171. package/esm2015/index.js +0 -78
  172. package/esm2015/index.js.map +0 -1
  173. package/esm2015/lib/modules/list/list-data-request.model.js +0 -18
  174. package/esm2015/lib/modules/list/list-data-request.model.js.map +0 -1
  175. package/esm2015/lib/modules/list/list-data-response.model.js +0 -9
  176. package/esm2015/lib/modules/list/list-data-response.model.js.map +0 -1
  177. package/esm2015/lib/modules/list/list-data.provider.js +0 -9
  178. package/esm2015/lib/modules/list/list-data.provider.js.map +0 -1
  179. package/esm2015/lib/modules/list/list-paging.component.js +0 -13
  180. package/esm2015/lib/modules/list/list-paging.component.js.map +0 -1
  181. package/esm2015/lib/modules/list/list-view.component.js +0 -29
  182. package/esm2015/lib/modules/list/list-view.component.js.map +0 -1
  183. package/esm2015/lib/modules/list/list.component.js +0 -305
  184. package/esm2015/lib/modules/list/list.component.js.map +0 -1
  185. package/esm2015/lib/modules/list/list.module.js +0 -18
  186. package/esm2015/lib/modules/list/list.module.js.map +0 -1
  187. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js +0 -16
  188. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js.map +0 -1
  189. package/esm2015/lib/modules/list/state/filters/update.action.js +0 -9
  190. package/esm2015/lib/modules/list/state/filters/update.action.js.map +0 -1
  191. package/esm2015/lib/modules/list/state/items/items.orchestrator.js +0 -53
  192. package/esm2015/lib/modules/list/state/items/items.orchestrator.js.map +0 -1
  193. package/esm2015/lib/modules/list/state/items/load.action.js +0 -12
  194. package/esm2015/lib/modules/list/state/items/load.action.js.map +0 -1
  195. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js +0 -13
  196. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js.map +0 -1
  197. package/esm2015/lib/modules/list/state/items/set-loading.action.js +0 -9
  198. package/esm2015/lib/modules/list/state/items/set-loading.action.js.map +0 -1
  199. package/esm2015/lib/modules/list/state/list-state-action.type.js +0 -2
  200. package/esm2015/lib/modules/list/state/list-state-action.type.js.map +0 -1
  201. package/esm2015/lib/modules/list/state/list-state.model.js +0 -24
  202. package/esm2015/lib/modules/list/state/list-state.model.js.map +0 -1
  203. package/esm2015/lib/modules/list/state/list-state.rxstate.js +0 -80
  204. package/esm2015/lib/modules/list/state/list-state.rxstate.js.map +0 -1
  205. package/esm2015/lib/modules/list/state/list-state.state-node.js +0 -37
  206. package/esm2015/lib/modules/list/state/list-state.state-node.js.map +0 -1
  207. package/esm2015/lib/modules/list/state/paging/paging.model.js +0 -14
  208. package/esm2015/lib/modules/list/state/paging/paging.model.js.map +0 -1
  209. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js +0 -27
  210. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js.map +0 -1
  211. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js +0 -9
  212. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js.map +0 -1
  213. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js +0 -9
  214. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js.map +0 -1
  215. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js +0 -9
  216. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js.map +0 -1
  217. package/esm2015/lib/modules/list/state/search/search.model.js +0 -32
  218. package/esm2015/lib/modules/list/state/search/search.model.js.map +0 -1
  219. package/esm2015/lib/modules/list/state/search/search.orchestrator.js +0 -47
  220. package/esm2015/lib/modules/list/state/search/search.orchestrator.js.map +0 -1
  221. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js +0 -9
  222. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js.map +0 -1
  223. package/esm2015/lib/modules/list/state/search/set-functions.action.js +0 -9
  224. package/esm2015/lib/modules/list/state/search/set-functions.action.js.map +0 -1
  225. package/esm2015/lib/modules/list/state/search/set-options.action.js +0 -11
  226. package/esm2015/lib/modules/list/state/search/set-options.action.js.map +0 -1
  227. package/esm2015/lib/modules/list/state/search/set-search-text.action.js +0 -9
  228. package/esm2015/lib/modules/list/state/search/set-search-text.action.js.map +0 -1
  229. package/esm2015/lib/modules/list/state/selected/load.action.js +0 -9
  230. package/esm2015/lib/modules/list/state/selected/load.action.js.map +0 -1
  231. package/esm2015/lib/modules/list/state/selected/selected.model.js +0 -9
  232. package/esm2015/lib/modules/list/state/selected/selected.model.js.map +0 -1
  233. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js +0 -56
  234. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js.map +0 -1
  235. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js +0 -10
  236. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js.map +0 -1
  237. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js +0 -11
  238. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js.map +0 -1
  239. package/esm2015/lib/modules/list/state/selected/set-loading.action.js +0 -9
  240. package/esm2015/lib/modules/list/state/selected/set-loading.action.js.map +0 -1
  241. package/esm2015/lib/modules/list/state/sort/label.model.js +0 -25
  242. package/esm2015/lib/modules/list/state/sort/label.model.js.map +0 -1
  243. package/esm2015/lib/modules/list/state/sort/set-available.action.js +0 -9
  244. package/esm2015/lib/modules/list/state/sort/set-available.action.js.map +0 -1
  245. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js +0 -9
  246. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js.map +0 -1
  247. package/esm2015/lib/modules/list/state/sort/set-global.action.js +0 -9
  248. package/esm2015/lib/modules/list/state/sort/set-global.action.js.map +0 -1
  249. package/esm2015/lib/modules/list/state/sort/sort.model.js +0 -27
  250. package/esm2015/lib/modules/list/state/sort/sort.model.js.map +0 -1
  251. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js +0 -30
  252. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js.map +0 -1
  253. package/esm2015/lib/modules/list/state/toolbar/disable.action.js +0 -9
  254. package/esm2015/lib/modules/list/state/toolbar/disable.action.js.map +0 -1
  255. package/esm2015/lib/modules/list/state/toolbar/load.action.js +0 -10
  256. package/esm2015/lib/modules/list/state/toolbar/load.action.js.map +0 -1
  257. package/esm2015/lib/modules/list/state/toolbar/remove.action.js +0 -9
  258. package/esm2015/lib/modules/list/state/toolbar/remove.action.js.map +0 -1
  259. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js +0 -9
  260. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js.map +0 -1
  261. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js +0 -9
  262. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js.map +0 -1
  263. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js +0 -9
  264. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js.map +0 -1
  265. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js +0 -16
  266. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js.map +0 -1
  267. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js +0 -17
  268. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js.map +0 -1
  269. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js +0 -80
  270. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js.map +0 -1
  271. package/esm2015/lib/modules/list/state/views/load.action.js +0 -9
  272. package/esm2015/lib/modules/list/state/views/load.action.js.map +0 -1
  273. package/esm2015/lib/modules/list/state/views/set-active.action.js +0 -9
  274. package/esm2015/lib/modules/list/state/views/set-active.action.js.map +0 -1
  275. package/esm2015/lib/modules/list/state/views/view.model.js +0 -10
  276. package/esm2015/lib/modules/list/state/views/view.model.js.map +0 -1
  277. package/esm2015/lib/modules/list/state/views/views.model.js +0 -13
  278. package/esm2015/lib/modules/list/state/views/views.model.js.map +0 -1
  279. package/esm2015/lib/modules/list/state/views/views.orchestrator.js +0 -21
  280. package/esm2015/lib/modules/list/state/views/views.orchestrator.js.map +0 -1
  281. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +0 -160
  282. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js.map +0 -1
  283. package/esm2015/lib/modules/list-filters/filter.model.js +0 -18
  284. package/esm2015/lib/modules/list-filters/filter.model.js.map +0 -1
  285. package/esm2015/lib/modules/list-filters/list-filter-button.component.js +0 -44
  286. package/esm2015/lib/modules/list-filters/list-filter-button.component.js.map +0 -1
  287. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js +0 -34
  288. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js.map +0 -1
  289. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js +0 -45
  290. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js.map +0 -1
  291. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js +0 -74
  292. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js.map +0 -1
  293. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js +0 -21
  294. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js.map +0 -1
  295. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js +0 -60
  296. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js.map +0 -1
  297. package/esm2015/lib/modules/list-filters/list-filters.module.js +0 -41
  298. package/esm2015/lib/modules/list-filters/list-filters.module.js.map +0 -1
  299. package/esm2015/lib/modules/list-paging/list-paging.component.js +0 -89
  300. package/esm2015/lib/modules/list-paging/list-paging.component.js.map +0 -1
  301. package/esm2015/lib/modules/list-paging/list-paging.module.js +0 -19
  302. package/esm2015/lib/modules/list-paging/list-paging.module.js.map +0 -1
  303. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js +0 -152
  304. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js.map +0 -1
  305. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +0 -33
  306. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js.map +0 -1
  307. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +0 -2
  308. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js.map +0 -1
  309. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +0 -50
  310. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js.map +0 -1
  311. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +0 -45
  312. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js.map +0 -1
  313. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +0 -46
  314. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js.map +0 -1
  315. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +0 -36
  316. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js.map +0 -1
  317. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js +0 -30
  318. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js.map +0 -1
  319. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js +0 -47
  320. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js.map +0 -1
  321. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js +0 -19
  322. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js.map +0 -1
  323. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js +0 -25
  324. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js.map +0 -1
  325. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js +0 -21
  326. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js.map +0 -1
  327. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js +0 -360
  328. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js.map +0 -1
  329. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js +0 -87
  330. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js.map +0 -1
  331. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js +0 -14
  332. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js.map +0 -1
  333. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js +0 -21
  334. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js.map +0 -1
  335. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js +0 -9
  336. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js.map +0 -1
  337. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +0 -10
  338. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js.map +0 -1
  339. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js +0 -2
  340. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js.map +0 -1
  341. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js +0 -10
  342. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js.map +0 -1
  343. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js +0 -19
  344. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js.map +0 -1
  345. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js +0 -23
  346. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js.map +0 -1
  347. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js +0 -53
  348. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js.map +0 -1
  349. package/esm2015/skyux-list-builder.js +0 -5
  350. package/esm2015/skyux-list-builder.js.map +0 -1
  351. package/fesm2015/skyux-list-builder.js.map +0 -1
@@ -0,0 +1,2781 @@
1
+ import * as i4 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ContentChildren, NgModule, TemplateRef, ViewChild, ViewContainerRef, forwardRef } from '@angular/core';
5
+ import * as i3 from '@skyux/core';
6
+ import { ListItemModel, getData, compare, StateOrchestrator, StateDispatcher, AsyncList, AsyncItem, StateNode, getValue, isObservable } from '@skyux/list-builder-common';
7
+ import { BehaviorSubject, Observable, Subject, of, combineLatest } from 'rxjs';
8
+ import { map, distinctUntilChanged, take, takeUntil, skip, flatMap, scan } from 'rxjs/operators';
9
+ import * as i3$1 from '@skyux/lists';
10
+ import { SkyFilterModule, SkyPagingModule, SkySortModule } from '@skyux/lists';
11
+ import * as i5 from '@skyux/i18n';
12
+ import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
13
+ import * as i3$2 from '@skyux/indicators';
14
+ import { SkyIconModule } from '@skyux/indicators';
15
+ import * as i2 from '@skyux/popovers';
16
+ import { SkyDropdownModule } from '@skyux/popovers';
17
+ import * as i5$1 from '@skyux/forms';
18
+ import { SkyCheckboxModule } from '@skyux/forms';
19
+ import * as i3$3 from '@skyux/layout';
20
+ import { SkyToolbarModule } from '@skyux/layout';
21
+ import * as i9 from '@skyux/lookup';
22
+ import { SkySearchComponent, SkySearchModule } from '@skyux/lookup';
23
+
24
+ /**
25
+ * @deprecated
26
+ */
27
+ class ListDataRequestModel {
28
+ constructor(data) {
29
+ /**
30
+ * Indicates whether to disable the search bar and filter button.
31
+ * @default false
32
+ */
33
+ this.isToolbarDisabled = false;
34
+ if (data !== undefined) {
35
+ this.filters = data.filters;
36
+ this.pageSize = data.pageSize;
37
+ this.pageNumber = data.pageNumber;
38
+ this.search = data.search;
39
+ this.sort = data.sort;
40
+ this.isToolbarDisabled = data.isToolbarDisabled;
41
+ }
42
+ }
43
+ }
44
+
45
+ /**
46
+ * @deprecated
47
+ */
48
+ class ListDataResponseModel {
49
+ constructor(data) {
50
+ if (data !== undefined) {
51
+ this.count = data.count;
52
+ this.items = data.items;
53
+ }
54
+ }
55
+ }
56
+
57
+ /**
58
+ * @internal
59
+ * @deprecated
60
+ */
61
+ class ListDataProvider {
62
+ constructor(data) {
63
+ this.data = data;
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Specifies a function to dynamically manage the data source when users change the text
69
+ * in the list field. The search function must return an array or a promise of an array.
70
+ * The `search` property is particularly useful when the data source does not live
71
+ * in the source code.
72
+ * @deprecated
73
+ */
74
+ class ListSearchModel {
75
+ constructor(data) {
76
+ /**
77
+ * Specifies the text to search.
78
+ * @default ""
79
+ */
80
+ this.searchText = '';
81
+ /**
82
+ * Specifies an array of functions that returns a `boolean` value of `true` when
83
+ * the search is successful. This property accepts a function of type
84
+ * `(data: any, searchText: string) => boolean>.`
85
+ */
86
+ this.functions = [];
87
+ /**
88
+ * Specifies the columns to search. The columns correspond to `field` values that
89
+ * you specify with the list component's `data` property.
90
+ */
91
+ this.fieldSelectors = [];
92
+ if (data) {
93
+ this.searchText = data.searchText;
94
+ this.functions = [...data.functions];
95
+ this.fieldSelectors = data.fieldSelectors;
96
+ }
97
+ }
98
+ }
99
+
100
+ let idIndex$3 = 0;
101
+ /**
102
+ * @deprecated
103
+ */
104
+ class SkyListInMemoryDataProvider extends ListDataProvider {
105
+ constructor(data, searchFunction) {
106
+ super(data);
107
+ this.items = new BehaviorSubject([]);
108
+ this.searchFunction = searchFunction;
109
+ if (data) {
110
+ data.subscribe((items) => {
111
+ this.items.next(items.map((d) => new ListItemModel(d.id || `sky-list-data-in-memory-provider-item-${++idIndex$3}`, d)));
112
+ });
113
+ }
114
+ }
115
+ count() {
116
+ return this.items.pipe(map((items) => items.length));
117
+ }
118
+ get(request) {
119
+ return this.filteredItems(request).pipe(map((result) => {
120
+ if (request.pageNumber && request.pageSize) {
121
+ const itemStart = (request.pageNumber - 1) * request.pageSize;
122
+ const pagedResult = result.slice(itemStart, itemStart + request.pageSize);
123
+ return new ListDataResponseModel({
124
+ count: result.length,
125
+ items: pagedResult,
126
+ });
127
+ }
128
+ else {
129
+ return new ListDataResponseModel({
130
+ count: result.length,
131
+ items: result,
132
+ });
133
+ }
134
+ }));
135
+ }
136
+ filteredItems(request) {
137
+ const showSelectedId = ['show-selected'];
138
+ return this.items.pipe(map((items) => {
139
+ let dataChanged = false;
140
+ let search = request.search;
141
+ const sort = request.sort;
142
+ let filters = request.filters;
143
+ if (this.lastItems === undefined || this.lastItems !== items) {
144
+ dataChanged = true;
145
+ this.lastItems = items;
146
+ }
147
+ let searchChanged = false;
148
+ let filtersChanged = false;
149
+ if (request.isToolbarDisabled) {
150
+ searchChanged = true;
151
+ search = new ListSearchModel();
152
+ filters = filters.filter((f) => showSelectedId.indexOf(f.name) >= 0);
153
+ filtersChanged = true;
154
+ }
155
+ else {
156
+ if (this.lastSearch === undefined || this.lastSearch !== search) {
157
+ searchChanged = true;
158
+ }
159
+ if (this.lastFilters === undefined || this.lastFilters !== filters) {
160
+ filtersChanged = true;
161
+ }
162
+ }
163
+ this.lastSearch = search;
164
+ this.lastFilters = filters;
165
+ let result = items;
166
+ // Apply filters.
167
+ if (!dataChanged &&
168
+ !filtersChanged &&
169
+ this.lastFilterResults !== undefined) {
170
+ result = this.lastFilterResults;
171
+ }
172
+ else if (filters && filters.length > 0) {
173
+ result = result.filter((item) => {
174
+ for (let i = 0; i < filters.length; i++) {
175
+ const filter = filters[i];
176
+ if (filter.value === undefined ||
177
+ filter.value === '' ||
178
+ filter.value === false ||
179
+ filter.value === filter.defaultValue) {
180
+ continue;
181
+ }
182
+ if (!filter.filterFunction(item, filter.value)) {
183
+ return false;
184
+ }
185
+ }
186
+ return true;
187
+ });
188
+ this.lastFilterResults = result;
189
+ }
190
+ else {
191
+ this.lastFilterResults = undefined;
192
+ }
193
+ // Apply search.
194
+ /* istanbul ignore next */
195
+ if (!dataChanged &&
196
+ !searchChanged &&
197
+ this.lastSearchResults !== undefined &&
198
+ !filtersChanged) {
199
+ result = this.lastSearchResults;
200
+ }
201
+ else if (search &&
202
+ search.searchText !== undefined &&
203
+ search.searchText.length > 0) {
204
+ const searchText = search.searchText.toLowerCase();
205
+ let searchFunctions;
206
+ if (this.searchFunction !== undefined) {
207
+ searchFunctions = [this.searchFunction];
208
+ }
209
+ else {
210
+ searchFunctions = search.functions;
211
+ }
212
+ result = result.filter((item) => {
213
+ let isMatch = false;
214
+ for (let i = 0; i < searchFunctions.length; i++) {
215
+ const searchFunction = searchFunctions[i];
216
+ const searchResult = searchFunction(item.data, searchText);
217
+ if ((typeof searchResult === 'string' &&
218
+ searchResult.indexOf(searchText) !== -1) ||
219
+ searchResult === true) {
220
+ isMatch = true;
221
+ break;
222
+ }
223
+ }
224
+ return isMatch;
225
+ });
226
+ this.lastSearchResults = result;
227
+ }
228
+ else {
229
+ this.lastSearchResults = undefined;
230
+ }
231
+ // Apply sort.
232
+ if (sort && sort.fieldSelectors.length > 0) {
233
+ result = result
234
+ .slice()
235
+ .sort((item1, item2) => {
236
+ let compareResult = 0;
237
+ for (let i = 0; i < sort.fieldSelectors.length; i++) {
238
+ const selector = sort.fieldSelectors[i];
239
+ const value1 = getData(item1.data, selector.fieldSelector);
240
+ const value2 = getData(item2.data, selector.fieldSelector);
241
+ compareResult = compare(value1, value2);
242
+ if (selector.descending && compareResult !== 0) {
243
+ compareResult *= -1;
244
+ }
245
+ if (compareResult !== 0) {
246
+ break;
247
+ }
248
+ }
249
+ return compareResult;
250
+ });
251
+ }
252
+ return result;
253
+ }));
254
+ }
255
+ }
256
+
257
+ let idIndex$2 = 0;
258
+ /**
259
+ * @internal
260
+ * @deprecated
261
+ */
262
+ class ListViewComponent {
263
+ constructor(state, defaultName) {
264
+ this.viewId = `sky-list-view-cmp-${++idIndex$2}`;
265
+ this.state = state;
266
+ this.viewName = defaultName;
267
+ /* istanbul ignore next */
268
+ this.hasToolbar = this.state.pipe(map((s) => s.toolbar.exists));
269
+ this.active = this.state.pipe(map((s) => s.views.active === this.viewId));
270
+ this.active
271
+ .pipe(distinctUntilChanged())
272
+ .subscribe((isActive) => isActive ? this.onViewActive() : this.onViewInactive());
273
+ }
274
+ get id() {
275
+ return this.viewId;
276
+ }
277
+ get label() {
278
+ return this.viewName;
279
+ }
280
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
281
+ onViewActive() { }
282
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
283
+ onViewInactive() { }
284
+ }
285
+
286
+ /**
287
+ * @internal
288
+ * @deprecated
289
+ */
290
+ class ListItemsLoadAction {
291
+ constructor(items, refresh = false, dataChanged = true, count) {
292
+ this.items = items;
293
+ this.refresh = refresh;
294
+ this.dataChanged = dataChanged;
295
+ this.count = count;
296
+ }
297
+ }
298
+
299
+ /**
300
+ * @internal
301
+ * @deprecated
302
+ */
303
+ class ListItemsSetLoadingAction {
304
+ constructor(loading = true) {
305
+ this.loading = loading;
306
+ }
307
+ }
308
+
309
+ /**
310
+ * @internal
311
+ * @deprecated
312
+ */
313
+ class ListFiltersUpdateAction {
314
+ constructor(filters) {
315
+ this.filters = filters;
316
+ }
317
+ }
318
+
319
+ /**
320
+ * @internal
321
+ * @deprecated
322
+ */
323
+ class ListSearchSetFieldSelectorsAction {
324
+ constructor(fieldSelectors = []) {
325
+ this.fieldSelectors = fieldSelectors;
326
+ }
327
+ }
328
+
329
+ /**
330
+ * @internal
331
+ * @deprecated
332
+ */
333
+ class ListSearchSetFunctionsAction {
334
+ constructor(functions = []) {
335
+ this.functions = functions;
336
+ }
337
+ }
338
+
339
+ /**
340
+ * @internal
341
+ * @deprecated
342
+ */
343
+ class ListSearchSetOptionsAction {
344
+ constructor(searchTextAction, setFieldSelectorsAction, setFunctionsAction) {
345
+ this.searchTextAction = searchTextAction;
346
+ this.setFieldSelectorsAction = setFieldSelectorsAction;
347
+ this.setFunctionsAction = setFunctionsAction;
348
+ }
349
+ }
350
+
351
+ /**
352
+ * @internal
353
+ * @deprecated
354
+ */
355
+ class ListSearchSetSearchTextAction {
356
+ constructor(searchText) {
357
+ this.searchText = searchText;
358
+ }
359
+ }
360
+
361
+ /**
362
+ * @internal
363
+ * @deprecated
364
+ */
365
+ class ListSelectedSetItemsSelectedAction {
366
+ constructor(items, selected = false, refresh = true) {
367
+ this.items = items;
368
+ this.selected = selected;
369
+ this.refresh = refresh;
370
+ }
371
+ }
372
+
373
+ /**
374
+ * @internal
375
+ * @deprecated
376
+ */
377
+ class ListSortSetAvailableAction {
378
+ constructor(available) {
379
+ this.available = available;
380
+ }
381
+ }
382
+
383
+ /**
384
+ * @internal
385
+ * @deprecated
386
+ */
387
+ class ListSortSetFieldSelectorsAction {
388
+ constructor(fieldSelectors) {
389
+ this.fieldSelectors = fieldSelectors;
390
+ }
391
+ }
392
+
393
+ /**
394
+ * @internal
395
+ * @deprecated
396
+ */
397
+ class ListSortSetGlobalAction {
398
+ constructor(global) {
399
+ this.global = global;
400
+ }
401
+ }
402
+
403
+ /**
404
+ * @internal
405
+ * @deprecated
406
+ */
407
+ class ListToolbarItemsDisableAction {
408
+ constructor(disable) {
409
+ this.disable = disable;
410
+ }
411
+ }
412
+
413
+ /**
414
+ * @internal
415
+ * @deprecated
416
+ */
417
+ class ListToolbarItemsLoadAction {
418
+ constructor(items, index = -1) {
419
+ this.items = items;
420
+ this.index = index;
421
+ }
422
+ }
423
+
424
+ /**
425
+ * @internal
426
+ * @deprecated
427
+ */
428
+ class ListToolbarItemsRemoveAction {
429
+ constructor(ids) {
430
+ this.ids = ids;
431
+ }
432
+ }
433
+
434
+ /**
435
+ * @internal
436
+ * @deprecated
437
+ */
438
+ class ListToolbarSetExistsAction {
439
+ constructor(exists) {
440
+ this.exists = exists;
441
+ }
442
+ }
443
+
444
+ /**
445
+ * @internal
446
+ * @deprecated
447
+ */
448
+ class ListToolbarShowMultiselectToolbarAction {
449
+ constructor(exists) {
450
+ this.exists = exists;
451
+ }
452
+ }
453
+
454
+ /**
455
+ * @internal
456
+ * @deprecated
457
+ */
458
+ class ListViewsSetActiveAction {
459
+ constructor(view) {
460
+ this.view = view;
461
+ }
462
+ }
463
+
464
+ /**
465
+ * @internal
466
+ * @deprecated
467
+ */
468
+ class ListStateOrchestrator extends StateOrchestrator {
469
+ }
470
+ /**
471
+ * @internal
472
+ * @deprecated
473
+ */
474
+ class ListStateDispatcher extends StateDispatcher {
475
+ viewsSetActive(id) {
476
+ this.next(new ListViewsSetActiveAction(id));
477
+ }
478
+ toolbarExists(exists) {
479
+ this.next(new ListToolbarSetExistsAction(exists));
480
+ }
481
+ toolbarSetDisabled(disabled) {
482
+ this.next(new ListToolbarItemsDisableAction(disabled));
483
+ }
484
+ toolbarAddItems(items, index = -1) {
485
+ this.next(new ListToolbarItemsLoadAction(items, index));
486
+ }
487
+ toolbarRemoveItems(ids) {
488
+ this.next(new ListToolbarItemsRemoveAction(ids));
489
+ }
490
+ toolbarShowMultiselectToolbar(show) {
491
+ this.next(new ListToolbarShowMultiselectToolbarAction(show));
492
+ }
493
+ searchSetFunctions(sortFunctions) {
494
+ this.next(new ListSearchSetFunctionsAction(sortFunctions));
495
+ }
496
+ /* istanbul ignore next */
497
+ searchSetFieldSelectors(fieldSelectors) {
498
+ this.next(new ListSearchSetFieldSelectorsAction(fieldSelectors));
499
+ }
500
+ searchSetText(searchText) {
501
+ this.next(new ListSearchSetSearchTextAction(searchText));
502
+ }
503
+ searchSetOptions(searchOptions) {
504
+ this.next(new ListSearchSetOptionsAction(new ListSearchSetSearchTextAction(searchOptions.searchText), new ListSearchSetFieldSelectorsAction(searchOptions.fieldSelectors), new ListSearchSetFunctionsAction(searchOptions.functions)));
505
+ }
506
+ sortSetAvailable(sortLabels) {
507
+ this.next(new ListSortSetAvailableAction(sortLabels));
508
+ }
509
+ sortSetFieldSelectors(fieldSelectors) {
510
+ this.next(new ListSortSetFieldSelectorsAction(fieldSelectors));
511
+ }
512
+ sortSetGlobal(sortLabels) {
513
+ this.next(new ListSortSetGlobalAction(sortLabels));
514
+ }
515
+ filtersUpdate(filters) {
516
+ this.next(new ListFiltersUpdateAction(filters));
517
+ }
518
+ setSelected(selectedIds, selected, refresh = false) {
519
+ this.next(new ListSelectedSetItemsSelectedAction(selectedIds, selected, refresh));
520
+ }
521
+ }
522
+ ListStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
523
+ ListStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListStateDispatcher });
524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListStateDispatcher, decorators: [{
525
+ type: Injectable
526
+ }] });
527
+
528
+ /**
529
+ * @internal
530
+ * @deprecated
531
+ */
532
+ class ListFiltersOrchestrator extends ListStateOrchestrator {
533
+ /* istanbul ignore next */
534
+ constructor() {
535
+ super();
536
+ this.register(ListFiltersUpdateAction, this.update);
537
+ }
538
+ update(state, action) {
539
+ return [...action.filters];
540
+ }
541
+ }
542
+
543
+ /**
544
+ * @internal
545
+ * @deprecated
546
+ */
547
+ class ListItemsSetSelectedAction {
548
+ constructor(items,
549
+ /* istanbul ignore next */
550
+ selected = false, refresh = true) {
551
+ this.items = items;
552
+ this.selected = selected;
553
+ this.refresh = refresh;
554
+ }
555
+ }
556
+
557
+ /**
558
+ * @internal
559
+ * @deprecated
560
+ */
561
+ class ListItemsOrchestrator extends ListStateOrchestrator {
562
+ /* istanbul ignore next */
563
+ constructor() {
564
+ super();
565
+ this.register(ListItemsSetLoadingAction, this.setLoading)
566
+ .register(ListItemsLoadAction, this.load)
567
+ .register(ListItemsSetSelectedAction, this.setItemsSelected);
568
+ }
569
+ setLoading(state, action) {
570
+ return new AsyncList(state.items, state.lastUpdate, action.loading, state.count);
571
+ }
572
+ load(state, action) {
573
+ const newListItems = action.items.map((g) => new ListItemModel(g.id, g.data, g.isSelected));
574
+ const resultItems = action.refresh
575
+ ? [...newListItems]
576
+ : [...state.items, ...newListItems];
577
+ const count = action.count === undefined ? resultItems.length : action.count;
578
+ return new AsyncList(resultItems, action.dataChanged ? Date.now() : state.lastUpdate, false, count);
579
+ }
580
+ setItemsSelected(state, action) {
581
+ /* istanbul ignore next */
582
+ const newSelectedIds = action.items || [];
583
+ const newListItemModels = this.cloneListItemModelArray(state.items);
584
+ if (action.refresh) {
585
+ newListItemModels.forEach((item) => (item.isSelected = undefined));
586
+ }
587
+ newSelectedIds.map((s) => {
588
+ const newItem = newListItemModels.find((i) => i.id === s);
589
+ /* istanbul ignore next */
590
+ if (newItem) {
591
+ newItem.isSelected = action.selected;
592
+ }
593
+ });
594
+ return new AsyncList(newListItemModels, Date.now(), state.loading, state.count);
595
+ }
596
+ cloneListItemModelArray(source) {
597
+ const newListItems = [];
598
+ source.forEach((item) => {
599
+ newListItems.push(new ListItemModel(item.id, Object.assign({}, item.data), item.isSelected));
600
+ });
601
+ return newListItems;
602
+ }
603
+ }
604
+
605
+ /**
606
+ * @internal
607
+ * @deprecated
608
+ */
609
+ class ListPagingModel {
610
+ constructor(data) {
611
+ if (data !== undefined) {
612
+ this.itemsPerPage = data.itemsPerPage || 10;
613
+ this.maxDisplayedPages = data.maxDisplayedPages || 5;
614
+ this.pageCount = data.pageCount || 0;
615
+ this.pageNumber = data.pageNumber || 1;
616
+ }
617
+ }
618
+ }
619
+
620
+ /**
621
+ * Contains data about the selected items in the list.
622
+ * @deprecated
623
+ */
624
+ class ListSelectedModel {
625
+ constructor() {
626
+ this.selectedIdMap = new Map();
627
+ }
628
+ }
629
+
630
+ /**
631
+ * Specifies a set of fields to sort by.
632
+ * @deprecated
633
+ */
634
+ class ListSortModel {
635
+ constructor(data) {
636
+ /**
637
+ * Specifies the list of available views to sort.
638
+ */
639
+ this.available = [];
640
+ /**
641
+ * Specifies whether the sort applies to all list views.
642
+ */
643
+ this.global = [];
644
+ /**
645
+ * Specifies the fields to sort.
646
+ * For information about `ListSortFieldSelectorModel`, see the
647
+ * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).
648
+ */
649
+ this.fieldSelectors = [];
650
+ if (data) {
651
+ this.available = data.available;
652
+ this.global = data.global;
653
+ this.fieldSelectors = data.fieldSelectors;
654
+ }
655
+ }
656
+ }
657
+
658
+ /**
659
+ * @internal
660
+ * @deprecated
661
+ */
662
+ class ListToolbarModel {
663
+ constructor(data) {
664
+ this.items = [];
665
+ this.showMultiselectToolbar = false;
666
+ if (data) {
667
+ this.exists = data.exists;
668
+ this.disabled = data.disabled;
669
+ this.items = data.items;
670
+ this.type = data.type;
671
+ this.showMultiselectToolbar = data.showMultiselectToolbar;
672
+ }
673
+ }
674
+ }
675
+
676
+ /**
677
+ * @internal
678
+ * @deprecated
679
+ */
680
+ class ListViewsModel {
681
+ constructor(data) {
682
+ this.views = [];
683
+ if (data) {
684
+ this.active = data.active;
685
+ this.views = data.views;
686
+ }
687
+ }
688
+ }
689
+
690
+ /**
691
+ * @internal
692
+ * @deprecated
693
+ */
694
+ class ListStateModel {
695
+ constructor() {
696
+ this.filters = [];
697
+ this.items = new AsyncList();
698
+ this.paging = new ListPagingModel();
699
+ this.search = new ListSearchModel();
700
+ this.selected = new AsyncItem();
701
+ this.sort = new ListSortModel();
702
+ this.toolbar = new ListToolbarModel();
703
+ this.views = new ListViewsModel();
704
+ this.selected.item = new ListSelectedModel();
705
+ }
706
+ }
707
+
708
+ /**
709
+ * @internal
710
+ * @deprecated
711
+ */
712
+ class ListPagingSetItemsPerPageAction {
713
+ constructor(itemsPerPage) {
714
+ this.itemsPerPage = itemsPerPage;
715
+ }
716
+ }
717
+
718
+ /**
719
+ * @internal
720
+ * @deprecated
721
+ */
722
+ class ListPagingSetMaxPagesAction {
723
+ constructor(maxPages) {
724
+ this.maxPages = maxPages;
725
+ }
726
+ }
727
+
728
+ /**
729
+ * @internal
730
+ * @deprecated
731
+ */
732
+ class ListPagingSetPageNumberAction {
733
+ constructor(pageNumber) {
734
+ this.pageNumber = pageNumber;
735
+ }
736
+ }
737
+
738
+ /**
739
+ * @internal
740
+ * @deprecated
741
+ */
742
+ class ListPagingOrchestrator extends ListStateOrchestrator {
743
+ /* istanbul ignore next */
744
+ constructor() {
745
+ super();
746
+ this.register(ListPagingSetMaxPagesAction, this.setMaxPages)
747
+ .register(ListPagingSetItemsPerPageAction, this.setItemsPerPage)
748
+ .register(ListPagingSetPageNumberAction, this.setPageNumber);
749
+ }
750
+ setMaxPages(state, action) {
751
+ return new ListPagingModel(Object.assign({}, state, { maxDisplayedPages: Number(action.maxPages) }));
752
+ }
753
+ setItemsPerPage(state, action) {
754
+ return new ListPagingModel(Object.assign({}, state, { itemsPerPage: Number(action.itemsPerPage) }));
755
+ }
756
+ setPageNumber(state, action) {
757
+ return new ListPagingModel(Object.assign({}, state, { pageNumber: Number(action.pageNumber) }));
758
+ }
759
+ }
760
+
761
+ /**
762
+ * @internal
763
+ * @deprecated
764
+ */
765
+ class ListSearchOrchestrator extends ListStateOrchestrator {
766
+ /* istanbul ignore next */
767
+ constructor() {
768
+ super();
769
+ this.register(ListSearchSetSearchTextAction, this.setSearchText)
770
+ .register(ListSearchSetFunctionsAction, this.setFunctions)
771
+ .register(ListSearchSetFieldSelectorsAction, this.setFieldSelectors)
772
+ .register(ListSearchSetOptionsAction, this.setOptions);
773
+ }
774
+ setSearchText(state, action) {
775
+ return new ListSearchModel(Object.assign({}, state, {
776
+ searchText: action.searchText ? action.searchText : '',
777
+ }));
778
+ }
779
+ setFunctions(state, action) {
780
+ return new ListSearchModel(Object.assign({}, state, { functions: [...action.functions] }));
781
+ }
782
+ setFieldSelectors(state, action) {
783
+ return new ListSearchModel(Object.assign({}, state, { fieldSelectors: [...action.fieldSelectors] }));
784
+ }
785
+ setOptions(state, action) {
786
+ let result = state;
787
+ /* istanbul ignore else */
788
+ if (action.searchTextAction) {
789
+ result = this.setSearchText(result, action.searchTextAction);
790
+ }
791
+ /* istanbul ignore else */
792
+ if (action.setFieldSelectorsAction) {
793
+ result = this.setFieldSelectors(result, action.setFieldSelectorsAction);
794
+ }
795
+ /* istanbul ignore else */
796
+ if (action.setFunctionsAction) {
797
+ result = this.setFunctions(result, action.setFunctionsAction);
798
+ }
799
+ return result;
800
+ }
801
+ }
802
+
803
+ /**
804
+ * @internal
805
+ * @deprecated
806
+ */
807
+ class ListSelectedLoadAction {
808
+ constructor(items) {
809
+ this.items = items;
810
+ }
811
+ }
812
+
813
+ /**
814
+ * @internal
815
+ * @deprecated
816
+ */
817
+ class ListSelectedSetItemSelectedAction {
818
+ constructor(id, selected) {
819
+ this.id = id;
820
+ this.selected = selected;
821
+ }
822
+ }
823
+
824
+ /**
825
+ * @internal
826
+ * @deprecated
827
+ */
828
+ class ListSelectedSetLoadingAction {
829
+ constructor(loading = true) {
830
+ this.loading = loading;
831
+ }
832
+ }
833
+
834
+ /**
835
+ * @internal
836
+ * @deprecated
837
+ */
838
+ class ListSelectedOrchestrator extends ListStateOrchestrator {
839
+ /* istanbul ignore next */
840
+ constructor() {
841
+ super();
842
+ this.register(ListSelectedSetLoadingAction, this.setLoading)
843
+ .register(ListSelectedSetItemSelectedAction, this.setItemSelected)
844
+ .register(ListSelectedSetItemsSelectedAction, this.setItemsSelected)
845
+ .register(ListSelectedLoadAction, this.load);
846
+ }
847
+ setLoading(state, action) {
848
+ return new AsyncItem(state.item, state.lastUpdate, action.loading);
849
+ }
850
+ load(state, action) {
851
+ const newSelected = new ListSelectedModel();
852
+ action.items.map((s) => newSelected.selectedIdMap.set(s, true));
853
+ return new AsyncItem(Object.assign({}, state.item, newSelected), Date.now(), false);
854
+ }
855
+ setItemSelected(state, action) {
856
+ const newSelected = this.cloneListSelectedModel(state.item);
857
+ newSelected.selectedIdMap.set(action.id, action.selected);
858
+ return new AsyncItem(newSelected, state.lastUpdate, state.loading);
859
+ }
860
+ setItemsSelected(state, action) {
861
+ const newSelectedIds = action.items || [];
862
+ const newListSelectedModel = action.refresh
863
+ ? new ListSelectedModel()
864
+ : this.cloneListSelectedModel(state.item);
865
+ if (newSelectedIds instanceof Observable) {
866
+ newSelectedIds.pipe(take(1)).subscribe((selectedIds) => {
867
+ selectedIds.map((s) => newListSelectedModel.selectedIdMap.set(s, action.selected));
868
+ });
869
+ }
870
+ else {
871
+ newSelectedIds.map((s) => newListSelectedModel.selectedIdMap.set(s, action.selected));
872
+ }
873
+ return new AsyncItem(newListSelectedModel, state.lastUpdate, state.loading);
874
+ }
875
+ cloneListSelectedModel(source) {
876
+ const newListItems = new ListSelectedModel();
877
+ newListItems.selectedIdMap = new Map(source.selectedIdMap);
878
+ return newListItems;
879
+ }
880
+ }
881
+
882
+ /**
883
+ * These properties are a work in progress, and we do not recommend using them.
884
+ * @deprecated
885
+ */
886
+ class ListSortLabelModel {
887
+ constructor(data) {
888
+ /**
889
+ * Indicates whether to sort all fields.
890
+ * @default false
891
+ */
892
+ this.global = false;
893
+ /**
894
+ * Indicates whether to sort in descending order.
895
+ * @default false
896
+ */
897
+ this.descending = false;
898
+ if (data) {
899
+ this.text = data.text;
900
+ this.fieldType = data.fieldType;
901
+ this.fieldSelector = data.fieldSelector;
902
+ this.global = data.global;
903
+ this.descending = data.descending;
904
+ }
905
+ }
906
+ }
907
+
908
+ /**
909
+ * @internal
910
+ * @deprecated
911
+ */
912
+ class ListSortOrchestrator extends ListStateOrchestrator {
913
+ /* istanbul ignore next */
914
+ constructor() {
915
+ super();
916
+ this.register(ListSortSetFieldSelectorsAction, this.setFieldSelectors)
917
+ .register(ListSortSetAvailableAction, this.setAvailable)
918
+ .register(ListSortSetGlobalAction, this.setGlobal);
919
+ }
920
+ setFieldSelectors(state, action) {
921
+ return new ListSortModel(Object.assign({}, state, { fieldSelectors: action.fieldSelectors }));
922
+ }
923
+ setAvailable(state, action) {
924
+ const newAvailable = action.available.map((available) => new ListSortLabelModel(available));
925
+ return new ListSortModel(Object.assign({}, state, { available: newAvailable }));
926
+ }
927
+ setGlobal(state, action) {
928
+ const newGlobal = action.global.map((global) => new ListSortLabelModel(global));
929
+ return new ListSortModel(Object.assign({}, state, { global: newGlobal }));
930
+ }
931
+ }
932
+
933
+ /**
934
+ * @internal
935
+ * @deprecated
936
+ */
937
+ class ListToolbarSetTypeAction {
938
+ constructor(type) {
939
+ this.type = type;
940
+ }
941
+ }
942
+
943
+ /**
944
+ * @internal
945
+ * @deprecated
946
+ */
947
+ class ListToolbarItemModel {
948
+ constructor(data) {
949
+ this.index = -1;
950
+ if (data) {
951
+ this.index = data.index;
952
+ this.template = data.template;
953
+ this.location = data.location;
954
+ this.view = data.view;
955
+ this.id = data.id;
956
+ }
957
+ }
958
+ }
959
+
960
+ /**
961
+ * @internal
962
+ * @deprecated
963
+ */
964
+ class ListToolbarOrchestrator extends ListStateOrchestrator {
965
+ /* istanbul ignore next */
966
+ constructor() {
967
+ super();
968
+ this.register(ListToolbarSetExistsAction, this.setExists)
969
+ .register(ListToolbarItemsDisableAction, this.setDisabled)
970
+ .register(ListToolbarItemsLoadAction, this.load)
971
+ .register(ListToolbarSetTypeAction, this.setType)
972
+ .register(ListToolbarItemsRemoveAction, this.remove)
973
+ .register(ListToolbarShowMultiselectToolbarAction, this.showMultiselectToolbar);
974
+ }
975
+ setExists(state, action) {
976
+ const newModel = new ListToolbarModel(state);
977
+ newModel.exists = action.exists;
978
+ return newModel;
979
+ }
980
+ setDisabled(state, action) {
981
+ const newModel = new ListToolbarModel(state);
982
+ newModel.disabled = action.disable;
983
+ return newModel;
984
+ }
985
+ setType(state, action) {
986
+ const newModel = new ListToolbarModel(state);
987
+ newModel.type = action.type;
988
+ return newModel;
989
+ }
990
+ load(state, action) {
991
+ const newModel = new ListToolbarModel(state);
992
+ const newListItems = action.items.map((item) => {
993
+ /**
994
+ * NOTE: Originally this function went off the action index and item models did not include
995
+ * the index. We changed this but must leave functionality to convert the action index for
996
+ * backwards compatibility.
997
+ */
998
+ if (!item.index) {
999
+ item.index = action.index;
1000
+ }
1001
+ return new ListToolbarItemModel(item);
1002
+ });
1003
+ let items = [...state.items, ...newListItems];
1004
+ items = items.sort((a, b) => {
1005
+ if (a.index < b.index) {
1006
+ return -1;
1007
+ }
1008
+ else if (a.index > b.index) {
1009
+ return 1;
1010
+ }
1011
+ else {
1012
+ return 0;
1013
+ }
1014
+ });
1015
+ newModel.items = items;
1016
+ return newModel;
1017
+ }
1018
+ remove(state, action) {
1019
+ const newModel = new ListToolbarModel(state);
1020
+ newModel.items = newModel.items.filter((item) => {
1021
+ return action.ids.indexOf(item.id) === -1;
1022
+ });
1023
+ return newModel;
1024
+ }
1025
+ showMultiselectToolbar(state, action) {
1026
+ const newModel = new ListToolbarModel(state);
1027
+ newModel.showMultiselectToolbar = action.exists;
1028
+ return newModel;
1029
+ }
1030
+ }
1031
+
1032
+ /**
1033
+ * @internal
1034
+ * @deprecated
1035
+ */
1036
+ class ListViewsLoadAction {
1037
+ constructor(views) {
1038
+ this.views = views;
1039
+ }
1040
+ }
1041
+
1042
+ /**
1043
+ * @internal
1044
+ * @deprecated
1045
+ */
1046
+ class ListViewsOrchestrator extends ListStateOrchestrator {
1047
+ /* istanbul ignore next */
1048
+ constructor() {
1049
+ super();
1050
+ this.register(ListViewsSetActiveAction, this.setActive).register(ListViewsLoadAction, this.load);
1051
+ }
1052
+ setActive(state, action) {
1053
+ return new ListViewsModel(Object.assign({}, state, { active: action.view }));
1054
+ }
1055
+ load(state, action) {
1056
+ return new ListViewsModel(Object.assign({}, state, { views: action.views }));
1057
+ }
1058
+ }
1059
+
1060
+ /**
1061
+ * @internal
1062
+ * @deprecated
1063
+ */
1064
+ class ListState extends StateNode {
1065
+ constructor(dispatcher) {
1066
+ super(new ListStateModel(), dispatcher);
1067
+ this.register('filters', ListFiltersOrchestrator)
1068
+ .register('items', ListItemsOrchestrator)
1069
+ .register('paging', ListPagingOrchestrator)
1070
+ .register('search', ListSearchOrchestrator)
1071
+ .register('sort', ListSortOrchestrator)
1072
+ .register('toolbar', ListToolbarOrchestrator)
1073
+ .register('views', ListViewsOrchestrator)
1074
+ .register('selected', ListSelectedOrchestrator)
1075
+ .begin();
1076
+ }
1077
+ }
1078
+ ListState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListState, deps: [{ token: ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
1079
+ ListState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListState });
1080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListState, decorators: [{
1081
+ type: Injectable
1082
+ }], ctorParameters: function () { return [{ type: ListStateDispatcher }]; } });
1083
+
1084
+ /**
1085
+ * @internal
1086
+ * @deprecated
1087
+ */
1088
+ class ListViewModel {
1089
+ constructor(id, name) {
1090
+ this.id = id;
1091
+ this.name = name;
1092
+ }
1093
+ }
1094
+
1095
+ let idIndex$1 = 0;
1096
+ /**
1097
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
1098
+ */
1099
+ class SkyListComponent {
1100
+ constructor(state, dispatcher, logger) {
1101
+ this.state = state;
1102
+ this.dispatcher = dispatcher;
1103
+ this.id = `sky-list-cmp-${++idIndex$1}`;
1104
+ /**
1105
+ * Specifies the data to display. The list component requires this property or the
1106
+ * `dataProvider` property. For checklist or multiselect grids, each row requires an
1107
+ * `id` property to manage selected items with the `selectedIds` input and the
1108
+ * `selectedIdsChange` event. If you do not provide an `id`, the list automatically
1109
+ * generates one. To update data in your view outside of a `dataProvider`, you must use
1110
+ * an observable instead of a static array.
1111
+ */
1112
+ this.data = [];
1113
+ /**
1114
+ * Specifies a set of filters to apply to list data.
1115
+ * These filters create a filter summary when the list includes the
1116
+ * [`sky-list-filter-summary`](https://developer.blackbaud.com/skyux/components/list/filters)
1117
+ * component.
1118
+ */
1119
+ this.appliedFilters = [];
1120
+ /**
1121
+ * For list views that support item selection, emits the selected entries.
1122
+ */
1123
+ this.selectedIdsChange = new EventEmitter();
1124
+ /**
1125
+ * Emits the filters applied to the list.
1126
+ */
1127
+ this.appliedFiltersChange = new EventEmitter();
1128
+ this.dataFirstLoad = false;
1129
+ this.lastSelectedIds = [];
1130
+ this.lastFilters = [];
1131
+ this.ngUnsubscribe = new Subject();
1132
+ logger.deprecated('SkyListComponent', {
1133
+ deprecationMajorVersion: 6,
1134
+ moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/data-manager',
1135
+ replacementRecommendation: 'Use data manager instead.',
1136
+ });
1137
+ }
1138
+ ngAfterContentInit() {
1139
+ if (this.data && this.dataProvider && this.initialTotal) {
1140
+ this.dataFirstLoad = true;
1141
+ }
1142
+ if (this.listViews.length > 0) {
1143
+ const defaultView = this.defaultView === undefined
1144
+ ? this.listViews.first
1145
+ : this.defaultView;
1146
+ this.dispatcher.next(new ListViewsLoadAction(this.listViews.map((v) => new ListViewModel(v.id, v.label))));
1147
+ // activate the default view
1148
+ this.dispatcher.next(new ListViewsSetActiveAction(defaultView.id));
1149
+ }
1150
+ else {
1151
+ return;
1152
+ }
1153
+ // set sort fields
1154
+ getValue(this.sortFields, (sortFields) => {
1155
+ let sortArray;
1156
+ if (!Array.isArray(sortFields) && sortFields) {
1157
+ sortArray = [sortFields];
1158
+ }
1159
+ else {
1160
+ sortArray = sortFields;
1161
+ }
1162
+ this.dispatcher.next(new ListSortSetFieldSelectorsAction(sortArray || []));
1163
+ });
1164
+ this.displayedItems.subscribe((result) => {
1165
+ this.dispatcher.next(new ListItemsSetLoadingAction());
1166
+ this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
1167
+ });
1168
+ // Watch for selection changes.
1169
+ this.state
1170
+ .pipe(map((current) => current.selected), takeUntil(this.ngUnsubscribe), distinctUntilChanged())
1171
+ .subscribe((selected) => {
1172
+ // Update lastSelectedIds to help us retain user selections.
1173
+ const selectedIdsList = [];
1174
+ selected.item.selectedIdMap.forEach((value, key) => {
1175
+ if (value === true) {
1176
+ selectedIdsList.push(key);
1177
+ }
1178
+ });
1179
+ // If changes are distinct, emit selectedIdsChange.
1180
+ const distinctChanges = !this.arraysEqual(this.lastSelectedIds, selectedIdsList);
1181
+ if (this.selectedIdsChange.observers.length > 0 && distinctChanges) {
1182
+ this.selectedIdsChange.emit(selected.item.selectedIdMap);
1183
+ }
1184
+ this.lastSelectedIds = selectedIdsList;
1185
+ });
1186
+ if (this.appliedFiltersChange.observers.length > 0) {
1187
+ this.state
1188
+ .pipe(map((current) => current.filters), takeUntil(this.ngUnsubscribe), skip(1))
1189
+ .subscribe((filters) => {
1190
+ /**
1191
+ * We are doing this instead of a distinctUntilChange due to memory allocation issues
1192
+ * with the javascript array. To fix fully the array should be changed to an object in
1193
+ * a breaking change.
1194
+ */
1195
+ if (!this.arraysEqual(filters, this.lastFilters)) {
1196
+ this.lastFilters = filters.slice(0);
1197
+ this.appliedFiltersChange.emit(filters);
1198
+ }
1199
+ });
1200
+ }
1201
+ }
1202
+ ngOnChanges(changes) {
1203
+ if (changes['appliedFilters'] &&
1204
+ changes['appliedFilters'].currentValue !==
1205
+ changes['appliedFilters'].previousValue) {
1206
+ this.state.pipe(take(1)).subscribe((currentState) => {
1207
+ if (currentState.paging.pageNumber &&
1208
+ currentState.paging.pageNumber !== 1) {
1209
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
1210
+ }
1211
+ this.dispatcher.filtersUpdate(this.appliedFilters);
1212
+ });
1213
+ }
1214
+ if (changes['selectedIds']) {
1215
+ // Only send selection changes to dispatcher if changes are distinct.
1216
+ const newSelectedIds = changes['selectedIds'].currentValue;
1217
+ if (!this.arraysEqual(newSelectedIds, this.lastSelectedIds)) {
1218
+ this.dispatcher.setSelected(newSelectedIds, true, true);
1219
+ }
1220
+ }
1221
+ }
1222
+ ngOnDestroy() {
1223
+ this.ngUnsubscribe.next();
1224
+ this.ngUnsubscribe.complete();
1225
+ }
1226
+ refreshDisplayedItems() {
1227
+ this.displayedItems.pipe(take(1)).subscribe((result) => {
1228
+ this.dispatcher.next(new ListItemsSetLoadingAction());
1229
+ this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
1230
+ });
1231
+ }
1232
+ get displayedItems() {
1233
+ if (!this.data && !this.dataProvider) {
1234
+ throw new Error('List requires data or dataProvider to be set.');
1235
+ }
1236
+ let data = this.data;
1237
+ if (!isObservable(data)) {
1238
+ data = of(this.data);
1239
+ }
1240
+ if (!this.dataProvider) {
1241
+ this.dataProvider = new SkyListInMemoryDataProvider(data, this.searchFunction);
1242
+ }
1243
+ let selectedIds = this.selectedIds || of([]);
1244
+ if (!isObservable(selectedIds)) {
1245
+ selectedIds = of(selectedIds);
1246
+ }
1247
+ let selectedChanged = false;
1248
+ // This subject is used to cancel previous request to the list's data provider when a new change
1249
+ // to the list's state occurs. In a future breaking change this should be replaced or coupled
1250
+ // with adding a debounce time to the Observable which watches for state changes.
1251
+ const cancelLastRequest = new Subject();
1252
+ return combineLatest([
1253
+ this.state.pipe(map((s) => s.filters), distinctUntilChanged()),
1254
+ this.state.pipe(map((s) => s.search), distinctUntilChanged()),
1255
+ this.state.pipe(map((s) => s.sort.fieldSelectors), distinctUntilChanged()),
1256
+ this.state.pipe(map((s) => s.paging.itemsPerPage), distinctUntilChanged()),
1257
+ this.state.pipe(map((s) => s.paging.pageNumber), distinctUntilChanged()),
1258
+ this.state.pipe(map((s) => s.toolbar.disabled), distinctUntilChanged()),
1259
+ selectedIds.pipe(distinctUntilChanged(), map((selected) => {
1260
+ selectedChanged = true;
1261
+ return selected;
1262
+ })),
1263
+ data.pipe(distinctUntilChanged()),
1264
+ ], (filters, search, sortFieldSelectors, itemsPerPage, pageNumber, isToolbarDisabled, selected, itemsData) => {
1265
+ cancelLastRequest.next();
1266
+ cancelLastRequest.complete();
1267
+ if (selectedChanged) {
1268
+ this.dispatcher.next(new ListSelectedSetLoadingAction());
1269
+ this.dispatcher.next(new ListSelectedLoadAction(selected));
1270
+ this.dispatcher.next(new ListSelectedSetLoadingAction(false));
1271
+ selectedChanged = false;
1272
+ }
1273
+ let response;
1274
+ if (this.dataFirstLoad) {
1275
+ this.dataFirstLoad = false;
1276
+ const initialItems = itemsData.map((d) => new ListItemModel(d.id || `sky-list-item-model-${++idIndex$1}`, d));
1277
+ response = of(new ListDataResponseModel({
1278
+ count: this.initialTotal,
1279
+ items: initialItems,
1280
+ })).pipe(takeUntil(cancelLastRequest));
1281
+ }
1282
+ else {
1283
+ response = this.dataProvider
1284
+ .get(new ListDataRequestModel({
1285
+ filters: filters,
1286
+ pageSize: itemsPerPage,
1287
+ pageNumber: pageNumber,
1288
+ search: search,
1289
+ sort: new ListSortModel({ fieldSelectors: sortFieldSelectors }),
1290
+ isToolbarDisabled: isToolbarDisabled,
1291
+ }))
1292
+ .pipe(takeUntil(cancelLastRequest));
1293
+ }
1294
+ return response;
1295
+ }).pipe(takeUntil(this.ngUnsubscribe),
1296
+ // Retain user selections from previous state.
1297
+ // This is only necessary for grids component (based on item.isSelected).
1298
+ map((response) => {
1299
+ return response.pipe(map((listDataResponseModel) => {
1300
+ return new ListDataResponseModel({
1301
+ count: listDataResponseModel.count,
1302
+ items: this.getItemsAndRetainSelections(listDataResponseModel.items, this.lastSelectedIds),
1303
+ });
1304
+ }));
1305
+ }), flatMap((value) => value));
1306
+ }
1307
+ get selectedItems() {
1308
+ return combineLatest(this.state.pipe(map((current) => current.items.items), distinctUntilChanged()), this.state.pipe(map((current) => current.selected), distinctUntilChanged()), (items, selected) => {
1309
+ return items.filter((i) => selected.item.selectedIdMap.get(i.id));
1310
+ }).pipe(takeUntil(this.ngUnsubscribe));
1311
+ }
1312
+ get lastUpdate() {
1313
+ return this.state.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined));
1314
+ }
1315
+ get views() {
1316
+ return this.listViews.toArray();
1317
+ }
1318
+ get itemCount() {
1319
+ return this.dataProvider.count();
1320
+ }
1321
+ getItemsAndRetainSelections(newList, selectedIds) {
1322
+ const updatedListModel = newList.slice();
1323
+ updatedListModel.forEach((item) => {
1324
+ item.isSelected = selectedIds.indexOf(item.id) > -1 ? true : false;
1325
+ });
1326
+ return updatedListModel;
1327
+ }
1328
+ arraysEqual(arrayA, arrayB) {
1329
+ /* istanbul ignore next */
1330
+ if (arrayA === arrayB) {
1331
+ return true;
1332
+ }
1333
+ if (arrayA === undefined || arrayB === undefined) {
1334
+ return false;
1335
+ }
1336
+ if (arrayA.length !== arrayB.length) {
1337
+ return false;
1338
+ }
1339
+ for (let i = 0; i < arrayA.length; ++i) {
1340
+ if (arrayA[i] !== arrayB[i]) {
1341
+ return false;
1342
+ }
1343
+ }
1344
+ return true;
1345
+ }
1346
+ }
1347
+ SkyListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListComponent, deps: [{ token: ListState }, { token: ListStateDispatcher }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
1348
+ SkyListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", 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 });
1349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListComponent, decorators: [{
1350
+ type: Component,
1351
+ args: [{
1352
+ selector: 'sky-list',
1353
+ template: '<ng-content></ng-content>',
1354
+ providers: [ListState, ListStateDispatcher],
1355
+ changeDetection: ChangeDetectionStrategy.OnPush,
1356
+ }]
1357
+ }], ctorParameters: function () { return [{ type: ListState }, { type: ListStateDispatcher }, { type: i3.SkyLogService }]; }, propDecorators: { data: [{
1358
+ type: Input
1359
+ }], dataProvider: [{
1360
+ type: Input
1361
+ }], defaultView: [{
1362
+ type: Input
1363
+ }], initialTotal: [{
1364
+ type: Input
1365
+ }], selectedIds: [{
1366
+ type: Input
1367
+ }], sortFields: [{
1368
+ type: Input
1369
+ }], appliedFilters: [{
1370
+ type: Input
1371
+ }], selectedIdsChange: [{
1372
+ type: Output
1373
+ }], appliedFiltersChange: [{
1374
+ type: Output
1375
+ }], searchFunction: [{
1376
+ type: Input,
1377
+ args: ['search']
1378
+ }], listViews: [{
1379
+ type: ContentChildren,
1380
+ args: [ListViewComponent]
1381
+ }] } });
1382
+
1383
+ /**
1384
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
1385
+ */
1386
+ class SkyListModule {
1387
+ }
1388
+ SkyListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1389
+ SkyListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListModule, declarations: [SkyListComponent], imports: [CommonModule], exports: [SkyListComponent] });
1390
+ SkyListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListModule, imports: [[CommonModule]] });
1391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListModule, decorators: [{
1392
+ type: NgModule,
1393
+ args: [{
1394
+ declarations: [SkyListComponent],
1395
+ imports: [CommonModule],
1396
+ exports: [SkyListComponent],
1397
+ }]
1398
+ }] });
1399
+
1400
+ class ListFilterModel {
1401
+ constructor(data) {
1402
+ /**
1403
+ * Indicates whether users can dismiss the filter's summary item.
1404
+ * @default true
1405
+ */
1406
+ this.dismissible = true;
1407
+ if (data) {
1408
+ this.name = data.name;
1409
+ this.label = data.label;
1410
+ this.filterFunction = data.filterFunction;
1411
+ this.value = data.value;
1412
+ this.dismissible = data.dismissible;
1413
+ this.defaultValue = data.defaultValue;
1414
+ }
1415
+ }
1416
+ }
1417
+
1418
+ /**
1419
+ * @internal
1420
+ */
1421
+ class SkyListFilterInlineModel {
1422
+ constructor(data) {
1423
+ this.onChange = new EventEmitter();
1424
+ if (data) {
1425
+ this.name = data.name;
1426
+ this.filterFunction = data.filterFunction;
1427
+ this.value = data.value;
1428
+ this.template = data.template;
1429
+ this.defaultValue = data.defaultValue;
1430
+ }
1431
+ }
1432
+ changed(value) {
1433
+ this.value = value;
1434
+ this.onChange.emit(value);
1435
+ }
1436
+ }
1437
+
1438
+ /**
1439
+ * Contains a filter button for the list toolbar. Place a
1440
+ * [`sky-filter-button`](https://developer.blackbaud.com/skyux/components/filter)
1441
+ * component inside this component to open a modal with filtering options.
1442
+ * To apply filter options, use the
1443
+ * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)
1444
+ * `appliedFilters` property.
1445
+ * @deprecated
1446
+ */
1447
+ class SkyListFilterButtonComponent {
1448
+ constructor(dispatcher) {
1449
+ this.dispatcher = dispatcher;
1450
+ this.filterButtonItemToolbarIndex = 5000;
1451
+ }
1452
+ ngAfterViewInit() {
1453
+ this.dispatcher.toolbarAddItems([
1454
+ new ListToolbarItemModel({
1455
+ template: this.filterButtonTemplate,
1456
+ location: 'left',
1457
+ index: this.filterButtonItemToolbarIndex,
1458
+ }),
1459
+ ]);
1460
+ }
1461
+ }
1462
+ SkyListFilterButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterButtonComponent, deps: [{ token: ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
1463
+ SkyListFilterButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListFilterButtonComponent, selector: "sky-list-filter-button", viewQueries: [{ propertyName: "filterButtonTemplate", first: true, predicate: ["filterButton"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #filterButton>\n <ng-content></ng-content>\n</ng-template>\n" });
1464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterButtonComponent, decorators: [{
1465
+ type: Component,
1466
+ args: [{ selector: 'sky-list-filter-button', template: "<ng-template #filterButton>\n <ng-content></ng-content>\n</ng-template>\n" }]
1467
+ }], ctorParameters: function () { return [{ type: ListStateDispatcher }]; }, propDecorators: { filterButtonTemplate: [{
1468
+ type: ViewChild,
1469
+ args: ['filterButton', {
1470
+ read: TemplateRef,
1471
+ static: true,
1472
+ }]
1473
+ }] } });
1474
+
1475
+ /**
1476
+ * @internal
1477
+ */
1478
+ class SkyListFilterInlineItemRendererComponent {
1479
+ ngOnInit() {
1480
+ /* istanbul ignore else */
1481
+ /* sanity check */
1482
+ if (this.template !== undefined) {
1483
+ this.container.createEmbeddedView(this.template, this);
1484
+ }
1485
+ }
1486
+ }
1487
+ SkyListFilterInlineItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1488
+ SkyListFilterInlineItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListFilterInlineItemRendererComponent, selector: "sky-list-filter-inline-item-renderer", inputs: { template: "template", filter: "filter" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true });
1489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, decorators: [{
1490
+ type: Component,
1491
+ args: [{
1492
+ selector: 'sky-list-filter-inline-item-renderer',
1493
+ template: '<ng-template #container></ng-template>',
1494
+ }]
1495
+ }], propDecorators: { template: [{
1496
+ type: Input
1497
+ }], filter: [{
1498
+ type: Input
1499
+ }], container: [{
1500
+ type: ViewChild,
1501
+ args: ['container', {
1502
+ read: ViewContainerRef,
1503
+ static: true,
1504
+ }]
1505
+ }] } });
1506
+
1507
+ /**
1508
+ * Creates a filter in the list's inline filter area.
1509
+ * @deprecated
1510
+ */
1511
+ class SkyListFilterInlineItemComponent {
1512
+ constructor() {
1513
+ this.onChange = new EventEmitter();
1514
+ }
1515
+ ngOnInit() {
1516
+ if (this.name === undefined || this.name.length === 0) {
1517
+ throw new Error('Inline filter requires a name.');
1518
+ }
1519
+ }
1520
+ get template() {
1521
+ return this.templates.length > 0
1522
+ ? this.templates.first
1523
+ : this.templateInput;
1524
+ }
1525
+ }
1526
+ SkyListFilterInlineItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1527
+ SkyListFilterInlineItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListFilterInlineItemComponent, selector: "sky-list-filter-inline-item", inputs: { name: "name", value: "value", defaultValue: "defaultValue", filterFunction: ["filter", "filterFunction"], templateInput: ["template", "templateInput"] }, queries: [{ propertyName: "templates", predicate: TemplateRef }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
1528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineItemComponent, decorators: [{
1529
+ type: Component,
1530
+ args: [{
1531
+ selector: 'sky-list-filter-inline-item',
1532
+ template: '<ng-content></ng-content>',
1533
+ }]
1534
+ }], propDecorators: { name: [{
1535
+ type: Input
1536
+ }], value: [{
1537
+ type: Input
1538
+ }], defaultValue: [{
1539
+ type: Input
1540
+ }], filterFunction: [{
1541
+ type: Input,
1542
+ args: ['filter']
1543
+ }], templateInput: [{
1544
+ type: Input,
1545
+ args: ['template']
1546
+ }], templates: [{
1547
+ type: ContentChildren,
1548
+ args: [TemplateRef]
1549
+ }] } });
1550
+
1551
+ /**
1552
+ * Creates an inline filter area for the list. Place each filter
1553
+ * in a `sky-list-filter-inline-item` component.
1554
+ * @deprecated
1555
+ */
1556
+ class SkyListFilterInlineComponent {
1557
+ constructor(dispatcher, state) {
1558
+ this.dispatcher = dispatcher;
1559
+ this.state = state;
1560
+ this.inlineFilters = [];
1561
+ }
1562
+ ngAfterContentInit() {
1563
+ this.inlineFilters = this.filters.map((filter) => {
1564
+ return new SkyListFilterInlineModel({
1565
+ name: filter.name,
1566
+ filterFunction: filter.filterFunction,
1567
+ template: filter.template,
1568
+ value: filter.value,
1569
+ defaultValue: filter.defaultValue,
1570
+ });
1571
+ });
1572
+ this.inlineFilters.forEach((filter) => {
1573
+ filter.onChange.subscribe((value) => {
1574
+ this.applyFilters();
1575
+ });
1576
+ });
1577
+ this.dispatcher.filtersUpdate(this.getFilterModelFromInline(this.inlineFilters));
1578
+ }
1579
+ applyFilters() {
1580
+ this.state.pipe(take(1)).subscribe((currentState) => {
1581
+ if (currentState.paging.pageNumber &&
1582
+ currentState.paging.pageNumber !== 1) {
1583
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
1584
+ }
1585
+ this.dispatcher.filtersUpdate(this.getFilterModelFromInline(this.inlineFilters));
1586
+ });
1587
+ }
1588
+ getFilterModelFromInline(inlineFilters) {
1589
+ return inlineFilters.map((filter) => {
1590
+ return new ListFilterModel({
1591
+ name: filter.name,
1592
+ value: filter.value,
1593
+ filterFunction: filter.filterFunction,
1594
+ defaultValue: filter.defaultValue,
1595
+ });
1596
+ });
1597
+ }
1598
+ }
1599
+ SkyListFilterInlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineComponent, deps: [{ token: ListStateDispatcher }, { token: ListState }], target: i0.ɵɵFactoryTarget.Component });
1600
+ SkyListFilterInlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListFilterInlineComponent, selector: "sky-list-filter-inline", queries: [{ propertyName: "filters", predicate: SkyListFilterInlineItemComponent }], ngImport: i0, template: "<ng-content></ng-content>\n\n<sky-filter-inline>\n <sky-filter-inline-item *ngFor=\"let filter of inlineFilters\">\n <sky-list-filter-inline-item-renderer\n [template]=\"filter.template\"\n [filter]=\"filter\"\n >\n </sky-list-filter-inline-item-renderer>\n </sky-filter-inline-item>\n</sky-filter-inline>\n", components: [{ type: i3$1.λ2, selector: "sky-filter-inline" }, { type: i3$1.λ3, selector: "sky-filter-inline-item" }, { type: SkyListFilterInlineItemRendererComponent, selector: "sky-list-filter-inline-item-renderer", inputs: ["template", "filter"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterInlineComponent, decorators: [{
1602
+ type: Component,
1603
+ args: [{ selector: 'sky-list-filter-inline', template: "<ng-content></ng-content>\n\n<sky-filter-inline>\n <sky-filter-inline-item *ngFor=\"let filter of inlineFilters\">\n <sky-list-filter-inline-item-renderer\n [template]=\"filter.template\"\n [filter]=\"filter\"\n >\n </sky-list-filter-inline-item-renderer>\n </sky-filter-inline-item>\n</sky-filter-inline>\n" }]
1604
+ }], ctorParameters: function () { return [{ type: ListStateDispatcher }, { type: ListState }]; }, propDecorators: { filters: [{
1605
+ type: ContentChildren,
1606
+ args: [SkyListFilterInlineItemComponent]
1607
+ }] } });
1608
+
1609
+ /**
1610
+ * Creates a filter summary based on the
1611
+ * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)
1612
+ * `appliedFilters` property. Place this component within the
1613
+ * [`sky-list-toolbar`](https://developer.blackbaud.com/skyux/components/list/toolbar) component.
1614
+ * @deprecated
1615
+ */
1616
+ class SkyListFilterSummaryComponent {
1617
+ constructor(state, dispatcher) {
1618
+ this.state = state;
1619
+ this.dispatcher = dispatcher;
1620
+ /**
1621
+ * Emits a `ListFilterModel` when users select a summary item. A common use case is
1622
+ * to open a filter modal when this event is received.
1623
+ */
1624
+ this.summaryItemClick = new EventEmitter();
1625
+ }
1626
+ ngAfterContentInit() {
1627
+ // The setTimeout here is to ensure we avoid any ExpressionChangedAfterItHasBeenCheckedError issues.
1628
+ setTimeout(() => {
1629
+ this.appliedFilters = this.state.pipe(map((state) => {
1630
+ return state.filters.filter((filter) => {
1631
+ return (filter.value !== '' &&
1632
+ filter.value !== undefined &&
1633
+ filter.value !== false &&
1634
+ filter.value !== filter.defaultValue);
1635
+ });
1636
+ }));
1637
+ });
1638
+ }
1639
+ filterSummaryItemDismiss(index) {
1640
+ this.appliedFilters.pipe(take(1)).subscribe((filters) => {
1641
+ filters.splice(index, 1);
1642
+ this.dispatcher.filtersUpdate(filters.slice());
1643
+ });
1644
+ }
1645
+ filterSummaryItemClick(item) {
1646
+ this.summaryItemClick.emit(item);
1647
+ }
1648
+ }
1649
+ SkyListFilterSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterSummaryComponent, deps: [{ token: ListState }, { token: ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
1650
+ SkyListFilterSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListFilterSummaryComponent, selector: "sky-list-filter-summary", outputs: { summaryItemClick: "summaryItemClick" }, ngImport: i0, template: "<sky-filter-summary>\n <sky-filter-summary-item\n *ngFor=\"let item of appliedFilters | async; let i = index\"\n (dismiss)=\"filterSummaryItemDismiss(i)\"\n (itemClick)=\"filterSummaryItemClick(item)\"\n [dismissible]=\"item.dismissible\"\n >\n {{ item.label || item.value }}\n </sky-filter-summary-item>\n</sky-filter-summary>\n", components: [{ type: i3$1.λ5, selector: "sky-filter-summary" }, { type: i3$1.λ4, selector: "sky-filter-summary-item", inputs: ["dismissible"], outputs: ["dismiss", "itemClick"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe } });
1651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFilterSummaryComponent, decorators: [{
1652
+ type: Component,
1653
+ args: [{ selector: 'sky-list-filter-summary', template: "<sky-filter-summary>\n <sky-filter-summary-item\n *ngFor=\"let item of appliedFilters | async; let i = index\"\n (dismiss)=\"filterSummaryItemDismiss(i)\"\n (itemClick)=\"filterSummaryItemClick(item)\"\n [dismissible]=\"item.dismissible\"\n >\n {{ item.label || item.value }}\n </sky-filter-summary-item>\n</sky-filter-summary>\n" }]
1654
+ }], ctorParameters: function () { return [{ type: ListState }, { type: ListStateDispatcher }]; }, propDecorators: { summaryItemClick: [{
1655
+ type: Output
1656
+ }] } });
1657
+
1658
+ /**
1659
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
1660
+ */
1661
+ class SkyListFiltersModule {
1662
+ }
1663
+ SkyListFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1664
+ SkyListFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFiltersModule, declarations: [SkyListFilterButtonComponent,
1665
+ SkyListFilterSummaryComponent,
1666
+ SkyListFilterInlineItemComponent,
1667
+ SkyListFilterInlineComponent,
1668
+ SkyListFilterInlineItemRendererComponent], imports: [CommonModule, SkyFilterModule], exports: [SkyListFilterButtonComponent,
1669
+ SkyListFilterSummaryComponent,
1670
+ SkyListFilterInlineItemComponent,
1671
+ SkyListFilterInlineComponent] });
1672
+ SkyListFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFiltersModule, imports: [[CommonModule, SkyFilterModule]] });
1673
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListFiltersModule, decorators: [{
1674
+ type: NgModule,
1675
+ args: [{
1676
+ declarations: [
1677
+ SkyListFilterButtonComponent,
1678
+ SkyListFilterSummaryComponent,
1679
+ SkyListFilterInlineItemComponent,
1680
+ SkyListFilterInlineComponent,
1681
+ SkyListFilterInlineItemRendererComponent,
1682
+ ],
1683
+ imports: [CommonModule, SkyFilterModule],
1684
+ exports: [
1685
+ SkyListFilterButtonComponent,
1686
+ SkyListFilterSummaryComponent,
1687
+ SkyListFilterInlineItemComponent,
1688
+ SkyListFilterInlineComponent,
1689
+ ],
1690
+ }]
1691
+ }] });
1692
+
1693
+ /**
1694
+ * Provides a SKY UX-themed pagination control to display list data across multiple pages.
1695
+ * @internal
1696
+ * @deprecated
1697
+ */
1698
+ class ListPagingComponent {
1699
+ constructor(state, dispatcher) {
1700
+ this.initialized = new BehaviorSubject(false);
1701
+ this.state = state;
1702
+ this.dispatcher = dispatcher;
1703
+ }
1704
+ }
1705
+
1706
+ /* istanbul ignore next */
1707
+ const listPagingComponentRef = forwardRef(() => SkyListPagingComponent);
1708
+ /**
1709
+ * Displays a pagination control for a SKY UX-themed list of data.
1710
+ * @deprecated
1711
+ */
1712
+ class SkyListPagingComponent extends ListPagingComponent {
1713
+ constructor(state, dispatcher, logger) {
1714
+ super(state, dispatcher);
1715
+ /**
1716
+ * Specifies the number of list items per page.
1717
+ * @default 10
1718
+ */
1719
+ this.pageSize = 10;
1720
+ /**
1721
+ * Specifies the maximum pages to display.
1722
+ * @default 5
1723
+ */
1724
+ this.maxPages = 5;
1725
+ /**
1726
+ * Specifies the current page number.
1727
+ * @default 1
1728
+ */
1729
+ this.pageNumber = 1;
1730
+ logger.deprecated('SkyListPagingComponent', {
1731
+ deprecationMajorVersion: 6,
1732
+ moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/data-manager',
1733
+ replacementRecommendation: 'Use data manager and the paging component instead.',
1734
+ });
1735
+ }
1736
+ ngOnInit() {
1737
+ this.currentPageNumber = this.state.pipe(map((s) => s.paging.pageNumber));
1738
+ this.maxDisplayedPages = this.state.pipe(map((s) => s.paging.maxDisplayedPages));
1739
+ this.itemsPerPage = this.state.pipe(map((s) => s.paging.itemsPerPage));
1740
+ this.itemCount = this.state.pipe(map((s) => {
1741
+ return s.items;
1742
+ }), scan((previousValue, newValue) => {
1743
+ if (previousValue.lastUpdate > newValue.lastUpdate) {
1744
+ return previousValue;
1745
+ }
1746
+ else {
1747
+ return newValue;
1748
+ }
1749
+ }), map((result) => {
1750
+ return result.count;
1751
+ }), distinctUntilChanged());
1752
+ // subscribe to or use inputs
1753
+ getValue(this.pageSize, (pageSize) => this.dispatcher.next(new ListPagingSetItemsPerPageAction(Number(pageSize))));
1754
+ getValue(this.maxPages, (maxPages) => this.dispatcher.next(new ListPagingSetMaxPagesAction(Number(maxPages))));
1755
+ getValue(this.pageNumber, (pageNumber) => this.dispatcher.next(new ListPagingSetPageNumberAction(Number(pageNumber))));
1756
+ }
1757
+ pageChange(currentPage) {
1758
+ // Paging must be updated after list data has been updated.
1759
+ // Adding a setTimeout will pull it out of the stream.
1760
+ setTimeout(() => {
1761
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(currentPage)));
1762
+ });
1763
+ }
1764
+ }
1765
+ SkyListPagingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingComponent, deps: [{ token: ListState }, { token: ListStateDispatcher }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
1766
+ SkyListPagingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListPagingComponent, selector: "sky-list-paging", inputs: { pageSize: "pageSize", maxPages: "maxPages", pageNumber: "pageNumber" }, providers: [
1767
+ { provide: ListPagingComponent, useExisting: listPagingComponentRef },
1768
+ ], usesInheritance: true, ngImport: i0, template: "<sky-paging\n [pageSize]=\"itemsPerPage | async\"\n [maxPages]=\"maxDisplayedPages | async\"\n [currentPage]=\"currentPageNumber | async\"\n [itemCount]=\"itemCount | async\"\n (currentPageChange)=\"pageChange($event)\"\n>\n</sky-paging>\n", components: [{ type: i3$1.λ7, selector: "sky-paging", inputs: ["currentPage", "itemCount", "maxPages", "pageSize", "pagingLabel"], outputs: ["currentPageChange"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingComponent, decorators: [{
1770
+ type: Component,
1771
+ args: [{ selector: 'sky-list-paging', providers: [
1772
+ { provide: ListPagingComponent, useExisting: listPagingComponentRef },
1773
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-paging\n [pageSize]=\"itemsPerPage | async\"\n [maxPages]=\"maxDisplayedPages | async\"\n [currentPage]=\"currentPageNumber | async\"\n [itemCount]=\"itemCount | async\"\n (currentPageChange)=\"pageChange($event)\"\n>\n</sky-paging>\n" }]
1774
+ }], ctorParameters: function () { return [{ type: ListState }, { type: ListStateDispatcher }, { type: i3.SkyLogService }]; }, propDecorators: { pageSize: [{
1775
+ type: Input
1776
+ }], maxPages: [{
1777
+ type: Input
1778
+ }], pageNumber: [{
1779
+ type: Input
1780
+ }] } });
1781
+
1782
+ /**
1783
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
1784
+ */
1785
+ class SkyListPagingModule {
1786
+ }
1787
+ SkyListPagingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1788
+ SkyListPagingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingModule, declarations: [SkyListPagingComponent], imports: [CommonModule, SkyPagingModule], exports: [SkyListPagingComponent] });
1789
+ SkyListPagingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingModule, imports: [[CommonModule, SkyPagingModule]] });
1790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListPagingModule, decorators: [{
1791
+ type: NgModule,
1792
+ args: [{
1793
+ declarations: [SkyListPagingComponent],
1794
+ imports: [CommonModule, SkyPagingModule],
1795
+ exports: [SkyListPagingComponent],
1796
+ }]
1797
+ }] });
1798
+
1799
+ /**
1800
+ * NOTICE: DO NOT MODIFY THIS FILE!
1801
+ * The contents of this file were automatically generated by
1802
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-list-builder' schematic.
1803
+ * To update this file, simply rerun the command.
1804
+ */
1805
+ const RESOURCES = {
1806
+ 'EN-US': {
1807
+ skyux_list_show_secondary_actions_button: { message: 'More' },
1808
+ skyux_list_multiselect_clear_all: { message: 'Clear all' },
1809
+ skyux_list_mutliselect_select_all: { message: 'Select all' },
1810
+ skyux_list_mutliselect_show_selected: {
1811
+ message: 'Only show selected items',
1812
+ },
1813
+ skyux_list_view_switcher_dropdown_title: { message: 'Select view' },
1814
+ },
1815
+ };
1816
+ class SkyListBuilderResourcesProvider {
1817
+ getString(localeInfo, name) {
1818
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
1819
+ }
1820
+ }
1821
+ /**
1822
+ * Import into any component library module that needs to use resource strings.
1823
+ */
1824
+ class SkyListBuilderResourcesModule {
1825
+ }
1826
+ SkyListBuilderResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListBuilderResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1827
+ SkyListBuilderResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListBuilderResourcesModule, exports: [SkyI18nModule] });
1828
+ SkyListBuilderResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListBuilderResourcesModule, providers: [
1829
+ {
1830
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
1831
+ useClass: SkyListBuilderResourcesProvider,
1832
+ multi: true,
1833
+ },
1834
+ ], imports: [SkyI18nModule] });
1835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListBuilderResourcesModule, decorators: [{
1836
+ type: NgModule,
1837
+ args: [{
1838
+ exports: [SkyI18nModule],
1839
+ providers: [
1840
+ {
1841
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
1842
+ useClass: SkyListBuilderResourcesProvider,
1843
+ multi: true,
1844
+ },
1845
+ ],
1846
+ }]
1847
+ }] });
1848
+
1849
+ /**
1850
+ * @internal
1851
+ */
1852
+ class SkyListSecondaryActionsService {
1853
+ constructor() {
1854
+ this.secondaryActionsCount = 0;
1855
+ this.secondaryActionsSubject = new BehaviorSubject(0);
1856
+ this.actionsStream = new BehaviorSubject([]);
1857
+ this.actions = [];
1858
+ }
1859
+ addSecondaryAction(action) {
1860
+ this.secondaryActionsCount++;
1861
+ this.secondaryActionsSubject.next(this.secondaryActionsCount);
1862
+ this.actions.push(action);
1863
+ this.actionsStream.next(this.actions);
1864
+ }
1865
+ removeSecondaryAction(action) {
1866
+ this.secondaryActionsCount--;
1867
+ this.secondaryActionsSubject.next(this.secondaryActionsCount);
1868
+ this.actions = this.actions.filter((existingItem) => existingItem !== action);
1869
+ this.actionsStream.next(this.actions);
1870
+ }
1871
+ ngOnDestroy() {
1872
+ this.secondaryActionsSubject.complete();
1873
+ this.actionsStream.complete();
1874
+ }
1875
+ }
1876
+ SkyListSecondaryActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1877
+ SkyListSecondaryActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsService });
1878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsService, decorators: [{
1879
+ type: Injectable
1880
+ }] });
1881
+
1882
+ /**
1883
+ * Adds actions to the secondary actions dropdown in the list toolbar.
1884
+ * @deprecated
1885
+ */
1886
+ class SkyListSecondaryActionComponent {
1887
+ constructor(actionService) {
1888
+ this.actionService = actionService;
1889
+ }
1890
+ ngAfterContentInit() {
1891
+ this.actionService.addSecondaryAction({
1892
+ template: this.templateRef,
1893
+ });
1894
+ }
1895
+ }
1896
+ SkyListSecondaryActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionComponent, deps: [{ token: SkyListSecondaryActionsService }], target: i0.ɵɵFactoryTarget.Component });
1897
+ SkyListSecondaryActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListSecondaryActionComponent, selector: "sky-list-secondary-action", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["listSecondaryAction"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #listSecondaryAction>\n <ng-content></ng-content>\n</ng-template>\n" });
1898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionComponent, decorators: [{
1899
+ type: Component,
1900
+ args: [{ selector: 'sky-list-secondary-action', template: "<ng-template #listSecondaryAction>\n <ng-content></ng-content>\n</ng-template>\n" }]
1901
+ }], ctorParameters: function () { return [{ type: SkyListSecondaryActionsService }]; }, propDecorators: { templateRef: [{
1902
+ type: ViewChild,
1903
+ args: ['listSecondaryAction', {
1904
+ read: TemplateRef,
1905
+ static: true,
1906
+ }]
1907
+ }] } });
1908
+
1909
+ // Note: this component is needed to ensure any reactive styles placed in the element have
1910
+ // their host to be based off of. Without this component the host is not written via the dispatcher.
1911
+ /**
1912
+ * @internal
1913
+ */
1914
+ class SkyListSecondaryActionsHostComponent {
1915
+ constructor(changeDetector, actionService) {
1916
+ this.changeDetector = changeDetector;
1917
+ this.actionService = actionService;
1918
+ this.dropdownHidden = false;
1919
+ this.actions = [];
1920
+ this.ngUnsubscribe = new Subject();
1921
+ }
1922
+ ngOnInit() {
1923
+ this.actionService.actionsStream
1924
+ .pipe(takeUntil(this.ngUnsubscribe), distinctUntilChanged())
1925
+ .subscribe((actions) => {
1926
+ const hasSecondaryActions = actions.length > 0;
1927
+ this.dropdownHidden = !hasSecondaryActions;
1928
+ this.actions = actions;
1929
+ this.changeDetector.detectChanges();
1930
+ });
1931
+ }
1932
+ ngOnDestroy() {
1933
+ this.ngUnsubscribe.next();
1934
+ this.ngUnsubscribe.complete();
1935
+ }
1936
+ }
1937
+ SkyListSecondaryActionsHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsHostComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyListSecondaryActionsService }], target: i0.ɵɵFactoryTarget.Component });
1938
+ SkyListSecondaryActionsHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListSecondaryActionsHostComponent, selector: "sky-list-secondary-actions-host", ngImport: i0, template: "<div\n class=\"sky-list-secondary-actions\"\n [ngClass]=\"{ 'sky-list-secondary-actions-hidden': dropdownHidden }\"\n>\n <sky-dropdown\n [attr.title]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n [label]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n >\n <sky-dropdown-button>\n <sky-icon icon=\"ellipsis-h\"> </sky-icon>\n <span class=\"sky-list-secondary-actions-btn-text\">\n {{ 'skyux_list_show_secondary_actions_button' | skyLibResources }}\n </span>\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"> </ng-container>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n</div>\n<ng-content> </ng-content>\n", styles: [".sky-list-secondary-actions ::ng-deep .sky-dropdown-button-type-select{padding:6px 12px}.sky-list-secondary-actions ::ng-deep .sky-dropdown-button-type-select sky-icon[icon=ellipsis-h]{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.sky-list-secondary-actions-hidden{display:none}:host .sky-list-secondary-actions-btn-text{display:none}:host .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:none}:host-context(.sky-responsive-container-xs) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:none}@media (min-width: 768px){:host .sky-list-secondary-actions-btn-text{display:inline}:host .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:inline-block}}:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions-btn-text{display:inline}:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:inline-block}\n"], components: [{ type: i2.λ3, selector: "sky-dropdown", inputs: ["buttonStyle", "buttonType", "disabled", "dismissOnBlur", "label", "horizontalAlignment", "messageStream", "title", "trigger"] }, { type: i2.λ2, selector: "sky-dropdown-button" }, { type: i3$2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i2.λ4, selector: "sky-dropdown-menu", inputs: ["ariaLabelledBy", "ariaRole", "useNativeFocus"], outputs: ["menuChanges"] }, { type: i2.λ1, selector: "sky-dropdown-item", inputs: ["ariaRole"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i5.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1939
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsHostComponent, decorators: [{
1940
+ type: Component,
1941
+ args: [{ selector: 'sky-list-secondary-actions-host', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-list-secondary-actions\"\n [ngClass]=\"{ 'sky-list-secondary-actions-hidden': dropdownHidden }\"\n>\n <sky-dropdown\n [attr.title]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n [label]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n >\n <sky-dropdown-button>\n <sky-icon icon=\"ellipsis-h\"> </sky-icon>\n <span class=\"sky-list-secondary-actions-btn-text\">\n {{ 'skyux_list_show_secondary_actions_button' | skyLibResources }}\n </span>\n </sky-dropdown-button>\n <sky-dropdown-menu>\n <sky-dropdown-item *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"> </ng-container>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n</div>\n<ng-content> </ng-content>\n", styles: [".sky-list-secondary-actions ::ng-deep .sky-dropdown-button-type-select{padding:6px 12px}.sky-list-secondary-actions ::ng-deep .sky-dropdown-button-type-select sky-icon[icon=ellipsis-h]{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.sky-list-secondary-actions-hidden{display:none}:host .sky-list-secondary-actions-btn-text{display:none}:host .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:none}:host-context(.sky-responsive-container-xs) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:none}@media (min-width: 768px){:host .sky-list-secondary-actions-btn-text{display:inline}:host .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:inline-block}}:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions-btn-text,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions-btn-text{display:inline}:host-context(.sky-responsive-container-sm) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-md) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret,:host-context(.sky-responsive-container-lg) .sky-list-secondary-actions ::ng-deep .sky-dropdown-caret{display:inline-block}\n"] }]
1942
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyListSecondaryActionsService }]; } });
1943
+
1944
+ /**
1945
+ * Adds a dropdown to the list toolbar for secondary actions. If the dropdown does not
1946
+ * include actions, the secondary actions dropdown is hidden.
1947
+ * @deprecated
1948
+ */
1949
+ class SkyListSecondaryActionsComponent {
1950
+ constructor(dispatcher) {
1951
+ this.dispatcher = dispatcher;
1952
+ this.actions = [];
1953
+ this.secondaryActionsItemToolbarIndex = 5000;
1954
+ }
1955
+ ngAfterViewInit() {
1956
+ const secondaryActionItem = new ListToolbarItemModel({
1957
+ id: 'secondary-actions',
1958
+ template: this.secondaryActionsTemplate,
1959
+ location: 'center',
1960
+ index: this.secondaryActionsItemToolbarIndex,
1961
+ });
1962
+ this.dispatcher.toolbarAddItems([secondaryActionItem]);
1963
+ }
1964
+ }
1965
+ SkyListSecondaryActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsComponent, deps: [{ token: ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
1966
+ SkyListSecondaryActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListSecondaryActionsComponent, selector: "sky-list-secondary-actions", providers: [SkyListSecondaryActionsService], viewQueries: [{ propertyName: "secondaryActionsTemplate", first: true, predicate: ["secondaryActions"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #secondaryActions>\n <sky-list-secondary-actions-host>\n <ng-content></ng-content>\n </sky-list-secondary-actions-host>\n</ng-template>\n", components: [{ type: SkyListSecondaryActionsHostComponent, selector: "sky-list-secondary-actions-host" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsComponent, decorators: [{
1968
+ type: Component,
1969
+ args: [{ selector: 'sky-list-secondary-actions', providers: [SkyListSecondaryActionsService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #secondaryActions>\n <sky-list-secondary-actions-host>\n <ng-content></ng-content>\n </sky-list-secondary-actions-host>\n</ng-template>\n" }]
1970
+ }], ctorParameters: function () { return [{ type: ListStateDispatcher }]; }, propDecorators: { secondaryActionsTemplate: [{
1971
+ type: ViewChild,
1972
+ args: ['secondaryActions', {
1973
+ read: TemplateRef,
1974
+ static: true,
1975
+ }]
1976
+ }] } });
1977
+
1978
+ /**
1979
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
1980
+ */
1981
+ class SkyListSecondaryActionsModule {
1982
+ }
1983
+ SkyListSecondaryActionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1984
+ SkyListSecondaryActionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsModule, declarations: [SkyListSecondaryActionsComponent,
1985
+ SkyListSecondaryActionsHostComponent,
1986
+ SkyListSecondaryActionComponent], imports: [CommonModule,
1987
+ SkyDropdownModule,
1988
+ SkyI18nModule,
1989
+ SkyIconModule,
1990
+ SkyListBuilderResourcesModule], exports: [SkyListSecondaryActionsComponent, SkyListSecondaryActionComponent] });
1991
+ SkyListSecondaryActionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsModule, imports: [[
1992
+ CommonModule,
1993
+ SkyDropdownModule,
1994
+ SkyI18nModule,
1995
+ SkyIconModule,
1996
+ SkyListBuilderResourcesModule,
1997
+ ]] });
1998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListSecondaryActionsModule, decorators: [{
1999
+ type: NgModule,
2000
+ args: [{
2001
+ declarations: [
2002
+ SkyListSecondaryActionsComponent,
2003
+ SkyListSecondaryActionsHostComponent,
2004
+ SkyListSecondaryActionComponent,
2005
+ ],
2006
+ imports: [
2007
+ CommonModule,
2008
+ SkyDropdownModule,
2009
+ SkyI18nModule,
2010
+ SkyIconModule,
2011
+ SkyListBuilderResourcesModule,
2012
+ ],
2013
+ exports: [SkyListSecondaryActionsComponent, SkyListSecondaryActionComponent],
2014
+ }]
2015
+ }] });
2016
+
2017
+ /**
2018
+ * @internal
2019
+ */
2020
+ class SkyListToolbarItemRendererComponent {
2021
+ ngOnInit() {
2022
+ if (this.template !== undefined) {
2023
+ this.container.createEmbeddedView(this.template, this);
2024
+ }
2025
+ }
2026
+ }
2027
+ SkyListToolbarItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarItemRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2028
+ SkyListToolbarItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarItemRendererComponent, selector: "sky-list-toolbar-item-renderer", inputs: { template: "template" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true });
2029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarItemRendererComponent, decorators: [{
2030
+ type: Component,
2031
+ args: [{
2032
+ selector: 'sky-list-toolbar-item-renderer',
2033
+ template: '<ng-template #container></ng-template>',
2034
+ }]
2035
+ }], propDecorators: { template: [{
2036
+ type: Input
2037
+ }], container: [{
2038
+ type: ViewChild,
2039
+ args: ['container', {
2040
+ read: ViewContainerRef,
2041
+ static: true,
2042
+ }]
2043
+ }] } });
2044
+
2045
+ let uniqueId = 0;
2046
+ /**
2047
+ * @internal
2048
+ * @deprecated
2049
+ */
2050
+ class SkyListMultiselectToolbarComponent {
2051
+ constructor(state, dispatcher) {
2052
+ this.state = state;
2053
+ this.dispatcher = dispatcher;
2054
+ this.showOnlySelected = false;
2055
+ this.multiselectToolbarId = `sky-list-multiselect-toolbar-${uniqueId++}`;
2056
+ this.selectedIdMap = new Map();
2057
+ this.ngUnsubscribe = new Subject();
2058
+ }
2059
+ ngOnInit() {
2060
+ this.state
2061
+ .pipe(map((t) => t.selected.item), takeUntil(this.ngUnsubscribe), distinctUntilChanged(this.selectedMapEqual))
2062
+ .subscribe((model) => {
2063
+ this.selectedIdMap = model.selectedIdMap;
2064
+ if (this.showOnlySelected) {
2065
+ this.reapplyFilter(true);
2066
+ }
2067
+ });
2068
+ // If 'show-selected' filter is programatically set from a child component (e.g. checkilst),
2069
+ // make sure the checked state of the 'show-selected' checkbox stays in sync.
2070
+ this.state
2071
+ .pipe(map((t) => t.filters), takeUntil(this.ngUnsubscribe), distinctUntilChanged(this.showSelectedValuesEqual))
2072
+ .subscribe((filters) => {
2073
+ const showSelectedFilter = filters.find((filter) => filter.name === 'show-selected');
2074
+ if (showSelectedFilter) {
2075
+ this.showOnlySelected = showSelectedFilter.value === 'true';
2076
+ }
2077
+ });
2078
+ }
2079
+ ngOnDestroy() {
2080
+ this.ngUnsubscribe.next();
2081
+ this.ngUnsubscribe.complete();
2082
+ }
2083
+ selectAll() {
2084
+ this.state
2085
+ .pipe(map((state) => state.items.items), take(1))
2086
+ .subscribe((items) => {
2087
+ this.dispatcher.setSelected(items.map((item) => item.id), true);
2088
+ if (this.showOnlySelected) {
2089
+ this.reapplyFilter(this.showOnlySelected);
2090
+ }
2091
+ });
2092
+ }
2093
+ clearSelections() {
2094
+ this.state
2095
+ .pipe(map((state) => state.items.items), take(1))
2096
+ .subscribe((items) => {
2097
+ this.dispatcher.setSelected(items.map((item) => item.id), false);
2098
+ if (this.showOnlySelected) {
2099
+ this.reapplyFilter(this.showOnlySelected);
2100
+ }
2101
+ });
2102
+ }
2103
+ changeVisibleItems(change) {
2104
+ this.showOnlySelected = change.checked;
2105
+ this.reapplyFilter(change.checked);
2106
+ }
2107
+ reapplyFilter(isSelected) {
2108
+ this.state
2109
+ .pipe(map((state) => state.filters), take(1))
2110
+ .subscribe((filters) => {
2111
+ filters = filters.filter((filter) => filter.name !== 'show-selected');
2112
+ filters.push(this.getShowSelectedFilter(isSelected));
2113
+ this.dispatcher.filtersUpdate(filters);
2114
+ });
2115
+ // If "show selected" is checked and paging is enabled, go to page one.
2116
+ /* istanbul ignore else */
2117
+ if (isSelected) {
2118
+ this.state.pipe(take(1)).subscribe((currentState) => {
2119
+ if (currentState.paging.pageNumber &&
2120
+ currentState.paging.pageNumber !== 1) {
2121
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
2122
+ }
2123
+ });
2124
+ }
2125
+ this.dispatcher.toolbarSetDisabled(isSelected);
2126
+ }
2127
+ getShowSelectedFilter(isSelected) {
2128
+ return new ListFilterModel({
2129
+ name: 'show-selected',
2130
+ value: isSelected.toString(),
2131
+ filterFunction: (model, showOnlySelected) => {
2132
+ /* istanbul ignore else */
2133
+ if (showOnlySelected.toString() !== false.toString()) {
2134
+ return this.selectedIdMap.get(model.id);
2135
+ }
2136
+ },
2137
+ defaultValue: false.toString(),
2138
+ });
2139
+ }
2140
+ showSelectedValuesEqual(prev, next) {
2141
+ const prevShowSelectedFilter = prev.find((filter) => filter.name === 'show-selected');
2142
+ const nextShowSelectedFilter = next.find((filter) => filter.name === 'show-selected');
2143
+ // Both undefined.
2144
+ if (!prevShowSelectedFilter && !nextShowSelectedFilter) {
2145
+ return true;
2146
+ }
2147
+ // Only one undefined.
2148
+ if ((prevShowSelectedFilter && !nextShowSelectedFilter) ||
2149
+ (!prevShowSelectedFilter && nextShowSelectedFilter)) {
2150
+ return false;
2151
+ }
2152
+ // Defined, but with different "value".
2153
+ return prevShowSelectedFilter.value === nextShowSelectedFilter.value;
2154
+ }
2155
+ selectedMapEqual(prev, next) {
2156
+ if (prev.selectedIdMap.size !== next.selectedIdMap.size) {
2157
+ return false;
2158
+ }
2159
+ for (let i = 0; i < next.selectedIdMap.size; i++) {
2160
+ const key = Array.from(next.selectedIdMap.keys())[i];
2161
+ const value = next.selectedIdMap.get(key);
2162
+ /* istanbul ignore next */
2163
+ if (value !== prev.selectedIdMap.get(key)) {
2164
+ return false;
2165
+ }
2166
+ }
2167
+ return true;
2168
+ }
2169
+ }
2170
+ SkyListMultiselectToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListMultiselectToolbarComponent, deps: [{ token: ListState }, { token: ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
2171
+ SkyListMultiselectToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListMultiselectToolbarComponent, selector: "sky-list-multiselect-toolbar", inputs: { showOnlySelected: "showOnlySelected" }, ngImport: i0, template: "<sky-toolbar class=\"sky-list-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer [template]=\"selectAllTemplate\">\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer [template]=\"clearSelectionsTemplate\">\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <ng-container *ngTemplateOutlet=\"showSelectedTemplate\"></ng-container>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n</sky-toolbar>\n\n<ng-template #selectAllTemplate>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.id]=\"multiselectToolbarId + '-select-all'\"\n (click)=\"selectAll(); $event.preventDefault()\"\n >\n {{ 'skyux_list_mutliselect_select_all' | skyLibResources }}\n </button>\n</ng-template>\n\n<ng-template #clearSelectionsTemplate>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.id]=\"multiselectToolbarId + '-clear-all'\"\n (click)=\"clearSelections(); $event.preventDefault()\"\n >\n {{ 'skyux_list_multiselect_clear_all' | skyLibResources }}\n </button>\n</ng-template>\n\n<ng-template #showSelectedTemplate>\n <sky-checkbox\n [attr.id]=\"multiselectToolbarId + '-show-selected'\"\n [checked]=\"showOnlySelected\"\n (change)=\"changeVisibleItems($event)\"\n >\n <sky-checkbox-label>\n {{ 'skyux_list_mutliselect_show_selected' | skyLibResources }}\n </sky-checkbox-label>\n </sky-checkbox>\n</ng-template>\n", styles: [":host-context(sky-toolbar +) .sky-list-multiselect-toolbar ::ng-deep .sky-toolbar-container,:host-context(.sky-list-toolbar-search +) .sky-list-multiselect-toolbar ::ng-deep .sky-toolbar-container{border-top:none}\n"], components: [{ type: i3$3.λ37, selector: "sky-toolbar" }, { type: i3$3.λ38, selector: "sky-toolbar-section" }, { type: i3$3.λ39, selector: "sky-toolbar-item" }, { type: SkyListToolbarItemRendererComponent, selector: "sky-list-toolbar-item-renderer", inputs: ["template"] }, { type: i3$3.λ40, selector: "sky-toolbar-view-actions" }, { type: i5$1.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i5$1.λ4, selector: "sky-checkbox-label" }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i5.SkyLibResourcesPipe } });
2172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListMultiselectToolbarComponent, decorators: [{
2173
+ type: Component,
2174
+ args: [{ selector: 'sky-list-multiselect-toolbar', template: "<sky-toolbar class=\"sky-list-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer [template]=\"selectAllTemplate\">\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer [template]=\"clearSelectionsTemplate\">\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <ng-container *ngTemplateOutlet=\"showSelectedTemplate\"></ng-container>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n</sky-toolbar>\n\n<ng-template #selectAllTemplate>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.id]=\"multiselectToolbarId + '-select-all'\"\n (click)=\"selectAll(); $event.preventDefault()\"\n >\n {{ 'skyux_list_mutliselect_select_all' | skyLibResources }}\n </button>\n</ng-template>\n\n<ng-template #clearSelectionsTemplate>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.id]=\"multiselectToolbarId + '-clear-all'\"\n (click)=\"clearSelections(); $event.preventDefault()\"\n >\n {{ 'skyux_list_multiselect_clear_all' | skyLibResources }}\n </button>\n</ng-template>\n\n<ng-template #showSelectedTemplate>\n <sky-checkbox\n [attr.id]=\"multiselectToolbarId + '-show-selected'\"\n [checked]=\"showOnlySelected\"\n (change)=\"changeVisibleItems($event)\"\n >\n <sky-checkbox-label>\n {{ 'skyux_list_mutliselect_show_selected' | skyLibResources }}\n </sky-checkbox-label>\n </sky-checkbox>\n</ng-template>\n", styles: [":host-context(sky-toolbar +) .sky-list-multiselect-toolbar ::ng-deep .sky-toolbar-container,:host-context(.sky-list-toolbar-search +) .sky-list-multiselect-toolbar ::ng-deep .sky-toolbar-container{border-top:none}\n"] }]
2175
+ }], ctorParameters: function () { return [{ type: ListState }, { type: ListStateDispatcher }]; }, propDecorators: { showOnlySelected: [{
2176
+ type: Input
2177
+ }] } });
2178
+
2179
+ let idIndex = 0;
2180
+ /**
2181
+ * Defines a toolbar item for the list toolbar.
2182
+ * @deprecated
2183
+ */
2184
+ class SkyListToolbarItemComponent {
2185
+ constructor() {
2186
+ /**
2187
+ * Specifies the ID of the item.
2188
+ */
2189
+ this.id = `sky-list-toolbar-item-${++idIndex}`;
2190
+ /**
2191
+ * Specifies the index of the item at the given item location.
2192
+ * @default -1
2193
+ */
2194
+ this.index = -1;
2195
+ /**
2196
+ * Specifies the toolbar location of the item. The valid options are `"left"`,
2197
+ * `"center"`, and `"right"`.
2198
+ * @default "left"
2199
+ */
2200
+ this.location = 'left';
2201
+ }
2202
+ get template() {
2203
+ return this.templates.length > 0 ? this.templates.first : undefined;
2204
+ }
2205
+ }
2206
+ SkyListToolbarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2207
+ SkyListToolbarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarItemComponent, selector: "sky-list-toolbar-item", inputs: { id: "id", index: "index", location: "location" }, queries: [{ propertyName: "templates", predicate: TemplateRef }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
2208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarItemComponent, decorators: [{
2209
+ type: Component,
2210
+ args: [{
2211
+ selector: 'sky-list-toolbar-item',
2212
+ template: '<ng-content></ng-content>',
2213
+ }]
2214
+ }], propDecorators: { id: [{
2215
+ type: Input
2216
+ }], index: [{
2217
+ type: Input
2218
+ }], location: [{
2219
+ type: Input
2220
+ }], templates: [{
2221
+ type: ContentChildren,
2222
+ args: [TemplateRef]
2223
+ }] } });
2224
+
2225
+ /**
2226
+ * Displays custom actions in the toolbar beside to the search bar.
2227
+ * @deprecated
2228
+ */
2229
+ class SkyListToolbarSearchActionsComponent {
2230
+ }
2231
+ SkyListToolbarSearchActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarSearchActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2232
+ SkyListToolbarSearchActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarSearchActionsComponent, selector: "sky-list-toolbar-search-actions", ngImport: i0, template: "<div class=\"sky-list-toolbar-search-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-toolbar-search-actions{margin-left:10px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarSearchActionsComponent, decorators: [{
2234
+ type: Component,
2235
+ args: [{ selector: 'sky-list-toolbar-search-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-list-toolbar-search-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-toolbar-search-actions{margin-left:10px}\n"] }]
2236
+ }] });
2237
+
2238
+ /**
2239
+ * Adds a sort dropdown to the list toolbar.
2240
+ * @deprecated
2241
+ */
2242
+ class SkyListToolbarSortComponent {
2243
+ }
2244
+ SkyListToolbarSortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2245
+ SkyListToolbarSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarSortComponent, selector: "sky-list-toolbar-sort", inputs: { label: "label", field: "field", type: "type", descending: "descending" }, ngImport: i0, template: '', isInline: true });
2246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarSortComponent, decorators: [{
2247
+ type: Component,
2248
+ args: [{
2249
+ selector: 'sky-list-toolbar-sort',
2250
+ template: '',
2251
+ }]
2252
+ }], propDecorators: { label: [{
2253
+ type: Input
2254
+ }], field: [{
2255
+ type: Input
2256
+ }], type: [{
2257
+ type: Input
2258
+ }], descending: [{
2259
+ type: Input
2260
+ }] } });
2261
+
2262
+ /**
2263
+ * Adds a section on the right side of the toolbar for items that substantially change
2264
+ * or affect the view of the list. This includes simple filters and view switchers.
2265
+ * If the view section includes more than one item, simple filters appear on the left
2266
+ * and view switchers appear on the right.
2267
+ * @deprecated
2268
+ */
2269
+ class SkyListToolbarViewActionsComponent {
2270
+ constructor(logger) {
2271
+ logger.deprecated('SkyListToolbarViewActionsComponent', {
2272
+ deprecationMajorVersion: 6,
2273
+ moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/data-manager',
2274
+ replacementRecommendation: 'Use data manager instead.',
2275
+ });
2276
+ }
2277
+ }
2278
+ SkyListToolbarViewActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarViewActionsComponent, deps: [{ token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
2279
+ SkyListToolbarViewActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarViewActionsComponent, selector: "sky-list-toolbar-view-actions", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host::ng-deep>:not(:last-child){margin-right:5px}.sky-list-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}\n"] });
2280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarViewActionsComponent, decorators: [{
2281
+ type: Component,
2282
+ args: [{ selector: 'sky-list-toolbar-view-actions', template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host::ng-deep>:not(:last-child){margin-right:5px}.sky-list-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}\n"] }]
2283
+ }], ctorParameters: function () { return [{ type: i3.SkyLogService }]; } });
2284
+
2285
+ /**
2286
+ * @internal
2287
+ */
2288
+ class ListToolbarConfigSetSearchEnabledAction {
2289
+ constructor(enabled) {
2290
+ this.enabled = enabled;
2291
+ }
2292
+ }
2293
+
2294
+ /**
2295
+ * @internal
2296
+ */
2297
+ class ListToolbarConfigSetSortSelectorEnabledAction {
2298
+ /* istanbul ignore next */
2299
+ constructor(enabled = true) {
2300
+ this.enabled = enabled;
2301
+ }
2302
+ }
2303
+
2304
+ /**
2305
+ * @internal
2306
+ */
2307
+ class ListToolbarConfigModel {
2308
+ constructor(data) {
2309
+ this.searchEnabled = true;
2310
+ this.sortSelectorEnabled = true;
2311
+ if (data) {
2312
+ this.searchEnabled = data.searchEnabled;
2313
+ this.sortSelectorEnabled = data.sortSelectorEnabled;
2314
+ }
2315
+ }
2316
+ }
2317
+
2318
+ /**
2319
+ * @internal
2320
+ */
2321
+ class ListToolbarStateModel {
2322
+ constructor() {
2323
+ this.config = new ListToolbarConfigModel();
2324
+ }
2325
+ }
2326
+
2327
+ /**
2328
+ * @internal
2329
+ */
2330
+ class ListToolbarStateDispatcher extends StateDispatcher {
2331
+ }
2332
+ ListToolbarStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
2333
+ ListToolbarStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarStateDispatcher });
2334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarStateDispatcher, decorators: [{
2335
+ type: Injectable
2336
+ }] });
2337
+ /**
2338
+ * @internal
2339
+ */
2340
+ class ListToolbarStateOrchestrator extends StateOrchestrator {
2341
+ }
2342
+
2343
+ /**
2344
+ * @internal
2345
+ */
2346
+ class ListToolbarConfigOrchestrator extends ListToolbarStateOrchestrator {
2347
+ /* istanbul ignore next */
2348
+ constructor() {
2349
+ super();
2350
+ this.register(ListToolbarConfigSetSearchEnabledAction, this.setSearchEnabled).register(ListToolbarConfigSetSortSelectorEnabledAction, this.setSortSelectorEnabled);
2351
+ }
2352
+ setSearchEnabled(state, action) {
2353
+ return new ListToolbarConfigModel(Object.assign({}, state, { searchEnabled: action.enabled }));
2354
+ }
2355
+ setSortSelectorEnabled(state, action) {
2356
+ return new ListToolbarConfigModel(Object.assign({}, state, { sortSelectorEnabled: action.enabled }));
2357
+ }
2358
+ }
2359
+
2360
+ /**
2361
+ * @internal
2362
+ */
2363
+ class ListToolbarState extends StateNode {
2364
+ constructor(initialState, dispatcher) {
2365
+ super(initialState, dispatcher);
2366
+ this.register('config', ListToolbarConfigOrchestrator).begin();
2367
+ }
2368
+ }
2369
+ ListToolbarState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarState, deps: [{ token: ListToolbarStateModel }, { token: ListToolbarStateDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
2370
+ ListToolbarState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarState });
2371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ListToolbarState, decorators: [{
2372
+ type: Injectable
2373
+ }], ctorParameters: function () { return [{ type: ListToolbarStateModel }, { type: ListToolbarStateDispatcher }]; } });
2374
+
2375
+ let nextId = 0;
2376
+ /**
2377
+ * Displays a toolbar for a SKY UX-themed list of data.
2378
+ * @deprecated
2379
+ */
2380
+ class SkyListToolbarComponent {
2381
+ constructor(changeDetector, state, dispatcher, toolbarState, toolbarDispatcher, logger) {
2382
+ this.changeDetector = changeDetector;
2383
+ this.state = state;
2384
+ this.dispatcher = dispatcher;
2385
+ this.toolbarState = toolbarState;
2386
+ this.toolbarDispatcher = toolbarDispatcher;
2387
+ /**
2388
+ * Display the search bar in the standard position or in a separate section.
2389
+ * To highlight the search bar in a section above all other toolbar items,
2390
+ * set this property to `search`.
2391
+ * @default "standard"
2392
+ */
2393
+ this.toolbarType = 'standard';
2394
+ this.isToolbarDisabled = false;
2395
+ this.inlineFilterBarExpanded = false;
2396
+ this.hasAdditionalToolbarSection = false;
2397
+ this.hasViewActions = false;
2398
+ this.filterButtonId = `sky-list-toolbar-filter-button-${++nextId}`;
2399
+ this.listFilterInlineId = `sky-list-toolbar-filter-inline-${++nextId}`;
2400
+ /**
2401
+ * Fires when users submit a search.
2402
+ * @internal
2403
+ * @deprecated
2404
+ */
2405
+ this.searchApplied = new Subject();
2406
+ this.customItemIds = [];
2407
+ this.hasSortSelectors = false;
2408
+ this.inlineFiltersItemToolbarIndex = 5000;
2409
+ this.sortSelectorItemToolbarIndex = 6000;
2410
+ this.ngUnsubscribe = new Subject();
2411
+ logger.deprecated('SkyListToolbarComponent', {
2412
+ deprecationMajorVersion: 6,
2413
+ moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/data-manager',
2414
+ replacementRecommendation: 'Use data manager instead.',
2415
+ });
2416
+ }
2417
+ /**
2418
+ * Indicates whether to use the in-memory search.
2419
+ * Setting this to `false` will allow consumers to run their own searches remotely,
2420
+ * and push new values to the list component by updating the `data` property.
2421
+ * @default true
2422
+ * @internal
2423
+ */
2424
+ set inMemorySearchEnabled(value) {
2425
+ this._inMemorySearchEnabled = value;
2426
+ }
2427
+ get inMemorySearchEnabled() {
2428
+ if (this._inMemorySearchEnabled === undefined) {
2429
+ return true;
2430
+ }
2431
+ return this._inMemorySearchEnabled;
2432
+ }
2433
+ get isFilterBarDisplayed() {
2434
+ return (!this.isToolbarDisabled &&
2435
+ this.hasInlineFilters &&
2436
+ this.inlineFilterBarExpanded);
2437
+ }
2438
+ get filterButtonAriaControls() {
2439
+ return this.isFilterBarDisplayed ? this.listFilterInlineId : undefined;
2440
+ }
2441
+ ngOnInit() {
2442
+ this.dispatcher.toolbarExists(true);
2443
+ getValue(this.searchText, (searchText) => {
2444
+ this.updateSearchText(searchText);
2445
+ });
2446
+ getValue(this.searchEnabled, (searchEnabled) => {
2447
+ this.toolbarDispatcher.next(new ListToolbarConfigSetSearchEnabledAction(searchEnabled === undefined ? true : searchEnabled));
2448
+ });
2449
+ getValue(this.toolbarType, (type) => {
2450
+ this.dispatcher.next(new ListToolbarSetTypeAction(this.toolbarType));
2451
+ });
2452
+ getValue(this.sortSelectorEnabled, (sortSelectorEnabled) => {
2453
+ this.toolbarDispatcher.next(new ListToolbarConfigSetSortSelectorEnabledAction(sortSelectorEnabled === undefined ? true : sortSelectorEnabled));
2454
+ });
2455
+ this.sortSelectors = this.getSortSelectors();
2456
+ // Initialize the sort toolbar item if necessary
2457
+ this.sortSelectors
2458
+ .pipe(takeUntil(this.ngUnsubscribe), distinctUntilChanged())
2459
+ .subscribe((currentSort) => {
2460
+ if (currentSort.length > 0 && !this.hasSortSelectors) {
2461
+ this.hasSortSelectors = true;
2462
+ this.dispatcher.toolbarAddItems([
2463
+ new ListToolbarItemModel({
2464
+ id: 'sort-selector',
2465
+ template: this.sortSelectorTemplate,
2466
+ location: 'left',
2467
+ index: this.sortSelectorItemToolbarIndex,
2468
+ }),
2469
+ ]);
2470
+ }
2471
+ else if (currentSort.length < 1 && this.hasSortSelectors) {
2472
+ this.hasSortSelectors = false;
2473
+ this.dispatcher.toolbarRemoveItems(['sort-selector']);
2474
+ }
2475
+ });
2476
+ this.searchTextInput = this.state.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.search.searchText), distinctUntilChanged());
2477
+ this.view = this.state.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.views.active), distinctUntilChanged());
2478
+ this.watchTemplates();
2479
+ this.type = this.state.pipe(takeUntil(this.ngUnsubscribe), map((state) => state.toolbar.type), distinctUntilChanged());
2480
+ this.type.pipe(takeUntil(this.ngUnsubscribe)).subscribe((toolbarType) => {
2481
+ if (toolbarType === 'search') {
2482
+ this.dispatcher.toolbarRemoveItems(['search']);
2483
+ }
2484
+ else {
2485
+ this.dispatcher.toolbarAddItems([
2486
+ new ListToolbarItemModel({
2487
+ id: 'search',
2488
+ template: this.searchTemplate,
2489
+ location: 'right',
2490
+ }),
2491
+ ]);
2492
+ }
2493
+ });
2494
+ this.isSearchEnabled = this.toolbarState.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.config), distinctUntilChanged(), map((c) => c.searchEnabled));
2495
+ this.state
2496
+ .pipe(map((s) => s.toolbar), takeUntil(this.ngUnsubscribe), distinctUntilChanged(), map((c) => c.disabled))
2497
+ .subscribe((isDisabled) => (this.isToolbarDisabled = isDisabled));
2498
+ this.isSortSelectorEnabled = this.toolbarState.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.config), distinctUntilChanged(), map((c) => c.sortSelectorEnabled));
2499
+ this.isMultiselectEnabled = this.state.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.toolbar), distinctUntilChanged(), map((t) => t.showMultiselectToolbar));
2500
+ this.hasAppliedFilters = this.state.pipe(takeUntil(this.ngUnsubscribe), map((s) => s.filters), distinctUntilChanged(), map((filters) => {
2501
+ const activeFilters = filters.filter((f) => {
2502
+ return (f.value !== '' &&
2503
+ f.value !== undefined &&
2504
+ f.value !== false &&
2505
+ f.value !== f.defaultValue);
2506
+ });
2507
+ return activeFilters.length > 0;
2508
+ }));
2509
+ this.state.pipe(takeUntil(this.ngUnsubscribe)).subscribe((current) => {
2510
+ this.hasAdditionalToolbarSection = current.toolbar.items.length > 0;
2511
+ this.changeDetector.detectChanges();
2512
+ });
2513
+ }
2514
+ ngAfterContentInit() {
2515
+ // Inject custom toolbar items.
2516
+ this.toolbarItems.forEach((toolbarItem) => {
2517
+ this.dispatcher.toolbarAddItems([new ListToolbarItemModel(toolbarItem)]);
2518
+ this.customItemIds.push(toolbarItem.id);
2519
+ });
2520
+ this.toolbarItems.changes
2521
+ .pipe(takeUntil(this.ngUnsubscribe))
2522
+ .subscribe((newItems) => {
2523
+ newItems.forEach((item) => {
2524
+ if (this.customItemIds.indexOf(item.id) < 0) {
2525
+ this.dispatcher.toolbarAddItems([new ListToolbarItemModel(item)]);
2526
+ this.customItemIds.push(item.id);
2527
+ }
2528
+ });
2529
+ const itemsToRemove = [];
2530
+ this.customItemIds.forEach((itemId, index) => {
2531
+ if (!newItems.find((item) => item.id === itemId)) {
2532
+ itemsToRemove.push(itemId);
2533
+ this.customItemIds.splice(index, 1);
2534
+ }
2535
+ });
2536
+ this.dispatcher.toolbarRemoveItems(itemsToRemove);
2537
+ });
2538
+ const sortModels = this.toolbarSorts.map((sort) => new ListSortLabelModel({
2539
+ text: sort.label,
2540
+ fieldSelector: sort.field,
2541
+ fieldType: sort.type,
2542
+ global: true,
2543
+ descending: sort.descending,
2544
+ }));
2545
+ this.dispatcher.sortSetGlobal(sortModels);
2546
+ // Add inline filters.
2547
+ this.showFilterSummary = this.filterSummary.length > 0;
2548
+ this.hasInlineFilters = this.inlineFilter.length > 0;
2549
+ if (this.hasInlineFilters) {
2550
+ this.dispatcher.toolbarAddItems([
2551
+ new ListToolbarItemModel({
2552
+ template: this.inlineFilterButtonTemplate,
2553
+ location: 'left',
2554
+ index: this.inlineFiltersItemToolbarIndex,
2555
+ }),
2556
+ ]);
2557
+ }
2558
+ // Check for view actions
2559
+ this.hasViewActions = this.viewActions.length > 0;
2560
+ }
2561
+ ngOnDestroy() {
2562
+ this.searchApplied.complete();
2563
+ this.ngUnsubscribe.next();
2564
+ this.ngUnsubscribe.complete();
2565
+ }
2566
+ setSort(sort) {
2567
+ this.state.pipe(take(1)).subscribe((currentState) => {
2568
+ if (currentState.paging.pageNumber &&
2569
+ currentState.paging.pageNumber !== 1) {
2570
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
2571
+ }
2572
+ this.dispatcher.sortSetFieldSelectors([
2573
+ { fieldSelector: sort.fieldSelector, descending: sort.descending },
2574
+ ]);
2575
+ });
2576
+ }
2577
+ inlineFilterButtonClick() {
2578
+ this.inlineFilterBarExpanded = !this.inlineFilterBarExpanded;
2579
+ }
2580
+ updateSearchText(searchText) {
2581
+ this.searchApplied.next(searchText);
2582
+ if (this.inMemorySearchEnabled) {
2583
+ this.state.pipe(take(1)).subscribe((currentState) => {
2584
+ if (currentState.paging.pageNumber &&
2585
+ currentState.paging.pageNumber !== 1) {
2586
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
2587
+ }
2588
+ this.dispatcher.searchSetText(searchText);
2589
+ });
2590
+ }
2591
+ }
2592
+ itemIsInView(itemView, activeView) {
2593
+ return itemView === undefined || itemView === activeView;
2594
+ }
2595
+ getSortSelectors() {
2596
+ return combineLatest(this.state.pipe(map((s) => s.sort.available), distinctUntilChanged()), this.state.pipe(map((s) => s.sort.global), distinctUntilChanged()), this.state.pipe(map((s) => s.sort.fieldSelectors), distinctUntilChanged()), (available, global, fieldSelectors) => {
2597
+ // Get sorts that are in the global that are not in the available
2598
+ const sorts = global.filter((g) => available.filter((a) => a.fieldSelector === g.fieldSelector)
2599
+ .length === 0);
2600
+ const resultSortSelectors = [...sorts, ...available].map((sortLabels) => {
2601
+ const fs = fieldSelectors.filter((f) => {
2602
+ return (f.fieldSelector === sortLabels.fieldSelector &&
2603
+ f.descending === sortLabels.descending);
2604
+ });
2605
+ let selected = false;
2606
+ if (fs.length > 0) {
2607
+ selected = true;
2608
+ }
2609
+ return {
2610
+ sort: sortLabels,
2611
+ selected: selected,
2612
+ };
2613
+ });
2614
+ return resultSortSelectors;
2615
+ }).pipe(takeUntil(this.ngUnsubscribe));
2616
+ }
2617
+ watchTemplates() {
2618
+ combineLatest(this.state.pipe(map((s) => s.toolbar), distinctUntilChanged()), this.view.pipe(distinctUntilChanged()), (toolbar, view) => {
2619
+ const items = toolbar.items.filter((i) => {
2620
+ return this.itemIsInView(i.view, view);
2621
+ });
2622
+ const templates = {};
2623
+ items.forEach((item) => {
2624
+ templates[item.location] = templates[item.location] || [];
2625
+ templates[item.location].push(item);
2626
+ });
2627
+ return templates;
2628
+ })
2629
+ .pipe(takeUntil(this.ngUnsubscribe))
2630
+ .subscribe((value) => {
2631
+ this.leftTemplates = value.left;
2632
+ this.centerTemplates = value.center;
2633
+ this.rightTemplates = value.right;
2634
+ this.changeDetector.markForCheck();
2635
+ });
2636
+ }
2637
+ }
2638
+ SkyListToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ListState }, { token: ListStateDispatcher }, { token: ListToolbarState }, { token: ListToolbarStateDispatcher }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
2639
+ SkyListToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: { inMemorySearchEnabled: "inMemorySearchEnabled", placeholder: "placeholder", searchEnabled: "searchEnabled", sortSelectorEnabled: "sortSelectorEnabled", toolbarType: "toolbarType", searchText: "searchText" }, providers: [
2640
+ ListToolbarState,
2641
+ ListToolbarStateDispatcher,
2642
+ ListToolbarStateModel,
2643
+ ], queries: [{ propertyName: "toolbarItems", predicate: SkyListToolbarItemComponent }, { propertyName: "toolbarSorts", predicate: SkyListToolbarSortComponent }, { propertyName: "filterSummary", predicate: SkyListFilterSummaryComponent }, { propertyName: "inlineFilter", predicate: SkyListFilterInlineComponent }, { propertyName: "viewActions", predicate: SkyListToolbarViewActionsComponent }], viewQueries: [{ propertyName: "searchComponent", first: true, predicate: SkySearchComponent, descendants: true, read: SkySearchComponent }, { propertyName: "searchTemplate", first: true, predicate: ["search"], descendants: true, read: TemplateRef, static: true }, { propertyName: "sortSelectorTemplate", first: true, predicate: ["sortSelector"], descendants: true, read: TemplateRef, static: true }, { propertyName: "inlineFilterButtonTemplate", first: true, predicate: ["inlineFilterButton"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-list-toolbar-container\">\n <sky-toolbar *ngIf=\"(type | async) !== 'search'\">\n <sky-toolbar-section>\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n\n <sky-toolbar-section\n *ngIf=\"showFilterSummary && (hasAppliedFilters | async)\"\n >\n <ng-content select=\"sky-list-filter-summary\"> </ng-content>\n </sky-toolbar-section>\n </sky-toolbar>\n\n <div\n *ngIf=\"\n (type | async) === 'search' &&\n ((isSearchEnabled | async) || hasAdditionalToolbarSection)\n \"\n class=\"sky-list-toolbar-search\"\n >\n <sky-toolbar>\n <sky-toolbar-section *ngIf=\"isSearchEnabled | async\">\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer\n sky-cmp-id=\"search\"\n [template]=\"search\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n </sky-toolbar-section>\n <sky-toolbar-section [hidden]=\"!hasAdditionalToolbarSection\">\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n *ngIf=\"item.id !== 'search'\"\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"isFilterBarDisplayed\"\n [attr.aria-labelledby]=\"filterButtonId\"\n [id]=\"listFilterInlineId\"\n >\n <ng-content select=\"sky-list-filter-inline\"> </ng-content>\n </div>\n <sky-list-multiselect-toolbar *ngIf=\"isMultiselectEnabled | async\">\n </sky-list-multiselect-toolbar>\n</div>\n\n<ng-template #search>\n <div *ngIf=\"isSearchEnabled | async\" class=\"sky-list-toolbar-search-wrapper\">\n <sky-search\n [disabled]=\"isToolbarDisabled\"\n [expandMode]=\"(type | async) === 'search' ? 'fit' : 'responsive'\"\n [placeholderText]=\"placeholder\"\n [searchText]=\"searchTextInput | async\"\n (searchApply)=\"updateSearchText($event)\"\n >\n </sky-search>\n <ng-content select=\"sky-list-toolbar-search-actions\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #sortSelector>\n <div\n *ngIf=\"\n (isSortSelectorEnabled | async) && (sortSelectors | async).length > 0\n \"\n class=\"sky-toolbar-item-sort-container\"\n >\n <sky-sort [showButtonText]=\"true\">\n <sky-sort-item\n *ngFor=\"let item of sortSelectors | async\"\n [active]=\"item.selected\"\n (itemSelect)=\"setSort(item.sort)\"\n >\n {{ item.sort.text }}\n </sky-sort-item>\n </sky-sort>\n </div>\n</ng-template>\n\n<ng-template #inlineFilterButton>\n <sky-filter-button\n [active]=\"hasAppliedFilters | async\"\n [ariaControls]=\"filterButtonAriaControls\"\n [ariaExpanded]=\"inlineFilterBarExpanded\"\n [disabled]=\"isToolbarDisabled\"\n [filterButtonId]=\"filterButtonId\"\n [showButtonText]=\"true\"\n (filterButtonClick)=\"inlineFilterButtonClick()\"\n >\n </sky-filter-button>\n</ng-template>\n", styles: [".sky-list-toolbar-search-wrapper{display:flex}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-dismiss-absolute{padding:0;position:static}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-container{position:relative;height:100%}.sky-list-toolbar-search-wrapper ::ng-deep sky-search{flex:1 1 auto}.sky-list-toolbar-search-wrapper ::ng-deep sky-list-toolbar-search-actions{flex:0 0 auto;z-index:1}.sky-list-toolbar-container ::ng-deep .sky-toolbar-section-items sky-toolbar-item{flex:0 1 auto;align-self:flex-start}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section{padding-top:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section-items{display:block;width:100%}.sky-list-toolbar-search ::ng-deep .sky-toolbar-item{margin:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-container,.sky-list-toolbar-search ::ng-deep .sky-search-dismiss-absolute{background-color:#eeeeef}.sky-list-toolbar-search ::ng-deep input[type=text]:disabled,.sky-list-toolbar-search ::ng-deep .sky-search-btn:disabled{background-color:#cdcfd2;opacity:1}.sky-list-toolbar-container ::ng-deep sky-toolbar-item[sky-toolbar-id=sort-selector] .sky-toolbar-item{margin-right:0}.sky-list-toolbar-container ::ng-deep sky-checkbox{position:relative;top:-2px}\n"], components: [{ type: i3$3.λ37, selector: "sky-toolbar" }, { type: i3$3.λ38, selector: "sky-toolbar-section" }, { type: i3$3.λ39, selector: "sky-toolbar-item" }, { type: SkyListToolbarItemRendererComponent, selector: "sky-list-toolbar-item-renderer", inputs: ["template"] }, { type: i3$3.λ40, selector: "sky-toolbar-view-actions" }, { type: SkyListMultiselectToolbarComponent, selector: "sky-list-multiselect-toolbar", inputs: ["showOnlySelected"] }, { type: i9.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { type: i3$1.λ14, selector: "sky-sort", inputs: ["showButtonText"] }, { type: i3$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { type: i3$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarComponent, decorators: [{
2645
+ type: Component,
2646
+ args: [{ selector: 'sky-list-toolbar', providers: [
2647
+ ListToolbarState,
2648
+ ListToolbarStateDispatcher,
2649
+ ListToolbarStateModel,
2650
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-list-toolbar-container\">\n <sky-toolbar *ngIf=\"(type | async) !== 'search'\">\n <sky-toolbar-section>\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n\n <sky-toolbar-section\n *ngIf=\"showFilterSummary && (hasAppliedFilters | async)\"\n >\n <ng-content select=\"sky-list-filter-summary\"> </ng-content>\n </sky-toolbar-section>\n </sky-toolbar>\n\n <div\n *ngIf=\"\n (type | async) === 'search' &&\n ((isSearchEnabled | async) || hasAdditionalToolbarSection)\n \"\n class=\"sky-list-toolbar-search\"\n >\n <sky-toolbar>\n <sky-toolbar-section *ngIf=\"isSearchEnabled | async\">\n <sky-toolbar-item>\n <sky-list-toolbar-item-renderer\n sky-cmp-id=\"search\"\n [template]=\"search\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n </sky-toolbar-section>\n <sky-toolbar-section [hidden]=\"!hasAdditionalToolbarSection\">\n <sky-toolbar-item *ngFor=\"let item of leftTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item *ngFor=\"let item of centerTemplates\">\n <sky-list-toolbar-item-renderer\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <sky-toolbar-item\n *ngFor=\"let item of rightTemplates\"\n [attr.sky-toolbar-id]=\"item.id\"\n >\n <sky-list-toolbar-item-renderer\n *ngIf=\"item.id !== 'search'\"\n [attr.sky-cmp-id]=\"item.id\"\n [template]=\"item.template\"\n >\n </sky-list-toolbar-item-renderer>\n </sky-toolbar-item>\n <ng-content></ng-content>\n\n <sky-toolbar-view-actions *ngIf=\"hasViewActions\">\n <ng-content select=\"sky-list-toolbar-view-actions\"> </ng-content>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n </div>\n <div\n *ngIf=\"isFilterBarDisplayed\"\n [attr.aria-labelledby]=\"filterButtonId\"\n [id]=\"listFilterInlineId\"\n >\n <ng-content select=\"sky-list-filter-inline\"> </ng-content>\n </div>\n <sky-list-multiselect-toolbar *ngIf=\"isMultiselectEnabled | async\">\n </sky-list-multiselect-toolbar>\n</div>\n\n<ng-template #search>\n <div *ngIf=\"isSearchEnabled | async\" class=\"sky-list-toolbar-search-wrapper\">\n <sky-search\n [disabled]=\"isToolbarDisabled\"\n [expandMode]=\"(type | async) === 'search' ? 'fit' : 'responsive'\"\n [placeholderText]=\"placeholder\"\n [searchText]=\"searchTextInput | async\"\n (searchApply)=\"updateSearchText($event)\"\n >\n </sky-search>\n <ng-content select=\"sky-list-toolbar-search-actions\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #sortSelector>\n <div\n *ngIf=\"\n (isSortSelectorEnabled | async) && (sortSelectors | async).length > 0\n \"\n class=\"sky-toolbar-item-sort-container\"\n >\n <sky-sort [showButtonText]=\"true\">\n <sky-sort-item\n *ngFor=\"let item of sortSelectors | async\"\n [active]=\"item.selected\"\n (itemSelect)=\"setSort(item.sort)\"\n >\n {{ item.sort.text }}\n </sky-sort-item>\n </sky-sort>\n </div>\n</ng-template>\n\n<ng-template #inlineFilterButton>\n <sky-filter-button\n [active]=\"hasAppliedFilters | async\"\n [ariaControls]=\"filterButtonAriaControls\"\n [ariaExpanded]=\"inlineFilterBarExpanded\"\n [disabled]=\"isToolbarDisabled\"\n [filterButtonId]=\"filterButtonId\"\n [showButtonText]=\"true\"\n (filterButtonClick)=\"inlineFilterButtonClick()\"\n >\n </sky-filter-button>\n</ng-template>\n", styles: [".sky-list-toolbar-search-wrapper{display:flex}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-dismiss-absolute{padding:0;position:static}.sky-list-toolbar-search-wrapper ::ng-deep .sky-search-container{position:relative;height:100%}.sky-list-toolbar-search-wrapper ::ng-deep sky-search{flex:1 1 auto}.sky-list-toolbar-search-wrapper ::ng-deep sky-list-toolbar-search-actions{flex:0 0 auto;z-index:1}.sky-list-toolbar-container ::ng-deep .sky-toolbar-section-items sky-toolbar-item{flex:0 1 auto;align-self:flex-start}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section{padding-top:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-section-items{display:block;width:100%}.sky-list-toolbar-search ::ng-deep .sky-toolbar-item{margin:0}.sky-list-toolbar-search ::ng-deep .sky-toolbar-container,.sky-list-toolbar-search ::ng-deep .sky-search-dismiss-absolute{background-color:#eeeeef}.sky-list-toolbar-search ::ng-deep input[type=text]:disabled,.sky-list-toolbar-search ::ng-deep .sky-search-btn:disabled{background-color:#cdcfd2;opacity:1}.sky-list-toolbar-container ::ng-deep sky-toolbar-item[sky-toolbar-id=sort-selector] .sky-toolbar-item{margin-right:0}.sky-list-toolbar-container ::ng-deep sky-checkbox{position:relative;top:-2px}\n"] }]
2651
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: ListState }, { type: ListStateDispatcher }, { type: ListToolbarState }, { type: ListToolbarStateDispatcher }, { type: i3.SkyLogService }]; }, propDecorators: { inMemorySearchEnabled: [{
2652
+ type: Input
2653
+ }], placeholder: [{
2654
+ type: Input
2655
+ }], searchEnabled: [{
2656
+ type: Input
2657
+ }], searchComponent: [{
2658
+ type: ViewChild,
2659
+ args: [SkySearchComponent, {
2660
+ read: SkySearchComponent,
2661
+ static: false,
2662
+ }]
2663
+ }], sortSelectorEnabled: [{
2664
+ type: Input
2665
+ }], toolbarType: [{
2666
+ type: Input
2667
+ }], searchText: [{
2668
+ type: Input
2669
+ }], toolbarItems: [{
2670
+ type: ContentChildren,
2671
+ args: [SkyListToolbarItemComponent]
2672
+ }], toolbarSorts: [{
2673
+ type: ContentChildren,
2674
+ args: [SkyListToolbarSortComponent]
2675
+ }], filterSummary: [{
2676
+ type: ContentChildren,
2677
+ args: [SkyListFilterSummaryComponent]
2678
+ }], inlineFilter: [{
2679
+ type: ContentChildren,
2680
+ args: [SkyListFilterInlineComponent]
2681
+ }], viewActions: [{
2682
+ type: ContentChildren,
2683
+ args: [SkyListToolbarViewActionsComponent]
2684
+ }], searchTemplate: [{
2685
+ type: ViewChild,
2686
+ args: ['search', {
2687
+ read: TemplateRef,
2688
+ static: true,
2689
+ }]
2690
+ }], sortSelectorTemplate: [{
2691
+ type: ViewChild,
2692
+ args: ['sortSelector', {
2693
+ read: TemplateRef,
2694
+ static: true,
2695
+ }]
2696
+ }], inlineFilterButtonTemplate: [{
2697
+ type: ViewChild,
2698
+ args: ['inlineFilterButton', {
2699
+ read: TemplateRef,
2700
+ static: true,
2701
+ }]
2702
+ }] } });
2703
+
2704
+ /**
2705
+ * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.
2706
+ */
2707
+ class SkyListToolbarModule {
2708
+ }
2709
+ SkyListToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2710
+ SkyListToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarModule, declarations: [SkyListToolbarComponent,
2711
+ SkyListToolbarItemComponent,
2712
+ SkyListToolbarItemRendererComponent,
2713
+ SkyListMultiselectToolbarComponent,
2714
+ SkyListToolbarSearchActionsComponent,
2715
+ SkyListToolbarSortComponent,
2716
+ SkyListToolbarViewActionsComponent], imports: [CommonModule,
2717
+ SkyCheckboxModule,
2718
+ SkyI18nModule,
2719
+ SkyToolbarModule,
2720
+ SkySearchModule,
2721
+ SkySortModule,
2722
+ SkyFilterModule,
2723
+ SkyListFiltersModule,
2724
+ SkyIconModule,
2725
+ SkyListBuilderResourcesModule], exports: [SkyListToolbarComponent,
2726
+ SkyListToolbarItemComponent,
2727
+ SkyListToolbarSearchActionsComponent,
2728
+ SkyListToolbarSortComponent,
2729
+ SkyListToolbarViewActionsComponent] });
2730
+ SkyListToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarModule, imports: [[
2731
+ CommonModule,
2732
+ SkyCheckboxModule,
2733
+ SkyI18nModule,
2734
+ SkyToolbarModule,
2735
+ SkySearchModule,
2736
+ SkySortModule,
2737
+ SkyFilterModule,
2738
+ SkyListFiltersModule,
2739
+ SkyIconModule,
2740
+ SkyListBuilderResourcesModule,
2741
+ ]] });
2742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListToolbarModule, decorators: [{
2743
+ type: NgModule,
2744
+ args: [{
2745
+ declarations: [
2746
+ SkyListToolbarComponent,
2747
+ SkyListToolbarItemComponent,
2748
+ SkyListToolbarItemRendererComponent,
2749
+ SkyListMultiselectToolbarComponent,
2750
+ SkyListToolbarSearchActionsComponent,
2751
+ SkyListToolbarSortComponent,
2752
+ SkyListToolbarViewActionsComponent,
2753
+ ],
2754
+ imports: [
2755
+ CommonModule,
2756
+ SkyCheckboxModule,
2757
+ SkyI18nModule,
2758
+ SkyToolbarModule,
2759
+ SkySearchModule,
2760
+ SkySortModule,
2761
+ SkyFilterModule,
2762
+ SkyListFiltersModule,
2763
+ SkyIconModule,
2764
+ SkyListBuilderResourcesModule,
2765
+ ],
2766
+ exports: [
2767
+ SkyListToolbarComponent,
2768
+ SkyListToolbarItemComponent,
2769
+ SkyListToolbarSearchActionsComponent,
2770
+ SkyListToolbarSortComponent,
2771
+ SkyListToolbarViewActionsComponent,
2772
+ ],
2773
+ }]
2774
+ }] });
2775
+
2776
+ /**
2777
+ * Generated bundle index. Do not edit.
2778
+ */
2779
+
2780
+ export { ListDataProvider, ListDataRequestModel, ListDataResponseModel, ListFilterModel, ListFiltersOrchestrator, ListFiltersUpdateAction, ListItemsLoadAction, ListItemsOrchestrator, ListItemsSetLoadingAction, ListItemsSetSelectedAction, ListPagingModel, ListPagingOrchestrator, ListPagingSetItemsPerPageAction, ListPagingSetMaxPagesAction, ListPagingSetPageNumberAction, ListSearchModel, ListSearchOrchestrator, ListSearchSetFieldSelectorsAction, ListSearchSetFunctionsAction, ListSearchSetOptionsAction, ListSearchSetSearchTextAction, ListSelectedLoadAction, ListSelectedModel, ListSelectedOrchestrator, ListSelectedSetItemSelectedAction, ListSelectedSetItemsSelectedAction, ListSelectedSetLoadingAction, ListSortLabelModel, ListSortModel, ListSortOrchestrator, ListSortSetAvailableAction, ListSortSetFieldSelectorsAction, ListSortSetGlobalAction, ListState, ListStateDispatcher, ListStateModel, ListStateOrchestrator, ListToolbarItemModel, ListToolbarItemsDisableAction, ListToolbarItemsLoadAction, ListToolbarItemsRemoveAction, ListToolbarModel, ListToolbarOrchestrator, ListToolbarSetExistsAction, ListToolbarSetTypeAction, ListToolbarShowMultiselectToolbarAction, ListViewComponent, ListViewModel, ListViewsLoadAction, ListViewsModel, ListViewsOrchestrator, ListViewsSetActiveAction, SkyListComponent, SkyListFilterInlineModel, SkyListFiltersModule, SkyListInMemoryDataProvider, SkyListModule, SkyListPagingModule, SkyListSecondaryActionsComponent, SkyListSecondaryActionsModule, SkyListToolbarComponent, SkyListToolbarModule, SkyListFilterButtonComponent as λ1, SkyListToolbarViewActionsComponent as λ10, SkyListToolbarSearchActionsComponent as λ11, SkyListFilterSummaryComponent as λ2, SkyListFilterInlineItemComponent as λ3, SkyListFilterInlineComponent as λ4, SkyListPagingComponent as λ5, SkyListSecondaryActionComponent as λ6, SkyListSecondaryActionsComponent as λ7, SkyListToolbarItemComponent as λ8, SkyListToolbarSortComponent as λ9 };
2781
+ //# sourceMappingURL=skyux-list-builder.mjs.map