@skyux/list-builder 5.0.2 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-list-builder.umd.js +95 -94
  3. package/documentation.json +681 -468
  4. package/esm2015/index.js +78 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/list/list-data-request.model.js +18 -0
  7. package/esm2015/lib/modules/list/list-data-request.model.js.map +1 -0
  8. package/esm2015/lib/modules/list/list-data-response.model.js +9 -0
  9. package/esm2015/lib/modules/list/list-data-response.model.js.map +1 -0
  10. package/esm2015/lib/modules/list/list-data.provider.js +7 -0
  11. package/esm2015/lib/modules/list/list-data.provider.js.map +1 -0
  12. package/esm2015/lib/modules/list/list-paging.component.js +13 -0
  13. package/esm2015/lib/modules/list/list-paging.component.js.map +1 -0
  14. package/esm2015/lib/modules/list/list-view.component.js +28 -0
  15. package/esm2015/lib/modules/list/list-view.component.js.map +1 -0
  16. package/esm2015/lib/modules/list/list.component.js +305 -0
  17. package/esm2015/lib/modules/list/list.component.js.map +1 -0
  18. package/esm2015/lib/modules/list/list.module.js +18 -0
  19. package/esm2015/lib/modules/list/list.module.js.map +1 -0
  20. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js +16 -0
  21. package/esm2015/lib/modules/list/state/filters/filters.orchestrator.js.map +1 -0
  22. package/esm2015/lib/modules/list/state/filters/update.action.js +9 -0
  23. package/esm2015/lib/modules/list/state/filters/update.action.js.map +1 -0
  24. package/esm2015/lib/modules/list/state/items/items.orchestrator.js +53 -0
  25. package/esm2015/lib/modules/list/state/items/items.orchestrator.js.map +1 -0
  26. package/esm2015/lib/modules/list/state/items/load.action.js +12 -0
  27. package/esm2015/lib/modules/list/state/items/load.action.js.map +1 -0
  28. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js +13 -0
  29. package/esm2015/lib/modules/list/state/items/set-items-selected.action.js.map +1 -0
  30. package/esm2015/lib/modules/list/state/items/set-loading.action.js +9 -0
  31. package/esm2015/lib/modules/list/state/items/set-loading.action.js.map +1 -0
  32. package/esm2015/lib/modules/list/state/list-state-action.type.js +2 -0
  33. package/esm2015/lib/modules/list/state/list-state-action.type.js.map +1 -0
  34. package/esm2015/lib/modules/list/state/list-state.model.js +24 -0
  35. package/esm2015/lib/modules/list/state/list-state.model.js.map +1 -0
  36. package/esm2015/lib/modules/list/state/list-state.rxstate.js +80 -0
  37. package/esm2015/lib/modules/list/state/list-state.rxstate.js.map +1 -0
  38. package/esm2015/lib/modules/list/state/list-state.state-node.js +37 -0
  39. package/esm2015/lib/modules/list/state/list-state.state-node.js.map +1 -0
  40. package/esm2015/lib/modules/list/state/paging/paging.model.js +14 -0
  41. package/esm2015/lib/modules/list/state/paging/paging.model.js.map +1 -0
  42. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js +27 -0
  43. package/esm2015/lib/modules/list/state/paging/paging.orchestrator.js.map +1 -0
  44. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js +9 -0
  45. package/esm2015/lib/modules/list/state/paging/set-items-per-page.action.js.map +1 -0
  46. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js +9 -0
  47. package/esm2015/lib/modules/list/state/paging/set-max-pages.action.js.map +1 -0
  48. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js +9 -0
  49. package/esm2015/lib/modules/list/state/paging/set-page-number.action.js.map +1 -0
  50. package/esm2015/lib/modules/list/state/search/search.model.js +32 -0
  51. package/esm2015/lib/modules/list/state/search/search.model.js.map +1 -0
  52. package/esm2015/lib/modules/list/state/search/search.orchestrator.js +47 -0
  53. package/esm2015/lib/modules/list/state/search/search.orchestrator.js.map +1 -0
  54. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js +9 -0
  55. package/esm2015/lib/modules/list/state/search/set-field-selectors.action.js.map +1 -0
  56. package/esm2015/lib/modules/list/state/search/set-functions.action.js +9 -0
  57. package/esm2015/lib/modules/list/state/search/set-functions.action.js.map +1 -0
  58. package/esm2015/lib/modules/list/state/search/set-options.action.js +11 -0
  59. package/esm2015/lib/modules/list/state/search/set-options.action.js.map +1 -0
  60. package/esm2015/lib/modules/list/state/search/set-search-text.action.js +9 -0
  61. package/esm2015/lib/modules/list/state/search/set-search-text.action.js.map +1 -0
  62. package/esm2015/lib/modules/list/state/selected/load.action.js +9 -0
  63. package/esm2015/lib/modules/list/state/selected/load.action.js.map +1 -0
  64. package/esm2015/lib/modules/list/state/selected/selected.model.js +9 -0
  65. package/esm2015/lib/modules/list/state/selected/selected.model.js.map +1 -0
  66. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js +56 -0
  67. package/esm2015/lib/modules/list/state/selected/selected.orchestrator.js.map +1 -0
  68. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js +10 -0
  69. package/esm2015/lib/modules/list/state/selected/set-item-selected.action.js.map +1 -0
  70. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js +11 -0
  71. package/esm2015/lib/modules/list/state/selected/set-items-selected.action.js.map +1 -0
  72. package/esm2015/lib/modules/list/state/selected/set-loading.action.js +9 -0
  73. package/esm2015/lib/modules/list/state/selected/set-loading.action.js.map +1 -0
  74. package/esm2015/lib/modules/list/state/sort/label.model.js +25 -0
  75. package/esm2015/lib/modules/list/state/sort/label.model.js.map +1 -0
  76. package/esm2015/lib/modules/list/state/sort/set-available.action.js +9 -0
  77. package/esm2015/lib/modules/list/state/sort/set-available.action.js.map +1 -0
  78. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js +9 -0
  79. package/esm2015/lib/modules/list/state/sort/set-field-selectors.action.js.map +1 -0
  80. package/esm2015/lib/modules/list/state/sort/set-global.action.js +9 -0
  81. package/esm2015/lib/modules/list/state/sort/set-global.action.js.map +1 -0
  82. package/esm2015/lib/modules/list/state/sort/sort.model.js +27 -0
  83. package/esm2015/lib/modules/list/state/sort/sort.model.js.map +1 -0
  84. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js +30 -0
  85. package/esm2015/lib/modules/list/state/sort/sort.orchestrator.js.map +1 -0
  86. package/esm2015/lib/modules/list/state/toolbar/disable.action.js +9 -0
  87. package/esm2015/lib/modules/list/state/toolbar/disable.action.js.map +1 -0
  88. package/esm2015/lib/modules/list/state/toolbar/load.action.js +10 -0
  89. package/esm2015/lib/modules/list/state/toolbar/load.action.js.map +1 -0
  90. package/esm2015/lib/modules/list/state/toolbar/remove.action.js +9 -0
  91. package/esm2015/lib/modules/list/state/toolbar/remove.action.js.map +1 -0
  92. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js +9 -0
  93. package/esm2015/lib/modules/list/state/toolbar/set-exists.action.js.map +1 -0
  94. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js +9 -0
  95. package/esm2015/lib/modules/list/state/toolbar/set-type.action.js.map +1 -0
  96. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js +9 -0
  97. package/esm2015/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.js.map +1 -0
  98. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js +16 -0
  99. package/esm2015/lib/modules/list/state/toolbar/toolbar-item.model.js.map +1 -0
  100. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js +17 -0
  101. package/esm2015/lib/modules/list/state/toolbar/toolbar.model.js.map +1 -0
  102. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js +80 -0
  103. package/esm2015/lib/modules/list/state/toolbar/toolbar.orchestrator.js.map +1 -0
  104. package/esm2015/lib/modules/list/state/views/load.action.js +9 -0
  105. package/esm2015/lib/modules/list/state/views/load.action.js.map +1 -0
  106. package/esm2015/lib/modules/list/state/views/set-active.action.js +9 -0
  107. package/esm2015/lib/modules/list/state/views/set-active.action.js.map +1 -0
  108. package/esm2015/lib/modules/list/state/views/view.model.js +10 -0
  109. package/esm2015/lib/modules/list/state/views/view.model.js.map +1 -0
  110. package/esm2015/lib/modules/list/state/views/views.model.js +13 -0
  111. package/esm2015/lib/modules/list/state/views/views.model.js.map +1 -0
  112. package/esm2015/lib/modules/list/state/views/views.orchestrator.js +21 -0
  113. package/esm2015/lib/modules/list/state/views/views.orchestrator.js.map +1 -0
  114. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +160 -0
  115. package/esm2015/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.js.map +1 -0
  116. package/esm2015/lib/modules/list-filters/filter.model.js +18 -0
  117. package/esm2015/lib/modules/list-filters/filter.model.js.map +1 -0
  118. package/esm2015/lib/modules/list-filters/list-filter-button.component.js +44 -0
  119. package/esm2015/lib/modules/list-filters/list-filter-button.component.js.map +1 -0
  120. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js +34 -0
  121. package/esm2015/lib/modules/list-filters/list-filter-inline-item-renderer.component.js.map +1 -0
  122. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js +45 -0
  123. package/esm2015/lib/modules/list-filters/list-filter-inline-item.component.js.map +1 -0
  124. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js +74 -0
  125. package/esm2015/lib/modules/list-filters/list-filter-inline.component.js.map +1 -0
  126. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js +21 -0
  127. package/esm2015/lib/modules/list-filters/list-filter-inline.model.js.map +1 -0
  128. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js +60 -0
  129. package/esm2015/lib/modules/list-filters/list-filter-summary.component.js.map +1 -0
  130. package/esm2015/lib/modules/list-filters/list-filters.module.js +41 -0
  131. package/esm2015/lib/modules/list-filters/list-filters.module.js.map +1 -0
  132. package/esm2015/lib/modules/list-paging/list-paging.component.js +89 -0
  133. package/esm2015/lib/modules/list-paging/list-paging.component.js.map +1 -0
  134. package/esm2015/lib/modules/list-paging/list-paging.module.js +19 -0
  135. package/esm2015/lib/modules/list-paging/list-paging.module.js.map +1 -0
  136. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js +153 -0
  137. package/esm2015/lib/modules/list-toolbar/list-multiselect-toolbar.component.js.map +1 -0
  138. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +33 -0
  139. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js.map +1 -0
  140. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +2 -0
  141. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.js.map +1 -0
  142. package/esm2015/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +6 -5
  143. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js.map +1 -0
  144. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +45 -0
  145. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js.map +1 -0
  146. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +46 -0
  147. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js.map +1 -0
  148. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +36 -0
  149. package/esm2015/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js.map +1 -0
  150. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js +30 -0
  151. package/esm2015/lib/modules/list-toolbar/list-toolbar-item-renderer.component.js.map +1 -0
  152. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js +47 -0
  153. package/esm2015/lib/modules/list-toolbar/list-toolbar-item.component.js.map +1 -0
  154. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js +19 -0
  155. package/esm2015/lib/modules/list-toolbar/list-toolbar-search-actions.component.js.map +1 -0
  156. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js +25 -0
  157. package/esm2015/lib/modules/list-toolbar/list-toolbar-sort.component.js.map +1 -0
  158. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js +21 -0
  159. package/esm2015/lib/modules/list-toolbar/list-toolbar-view-actions.component.js.map +1 -0
  160. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js +360 -0
  161. package/esm2015/lib/modules/list-toolbar/list-toolbar.component.js.map +1 -0
  162. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js +87 -0
  163. package/esm2015/lib/modules/list-toolbar/list-toolbar.module.js.map +1 -0
  164. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js +14 -0
  165. package/esm2015/lib/modules/list-toolbar/state/config/config.model.js.map +1 -0
  166. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js +21 -0
  167. package/esm2015/lib/modules/list-toolbar/state/config/config.orchestrator.js.map +1 -0
  168. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js +9 -0
  169. package/esm2015/lib/modules/list-toolbar/state/config/set-search-enabled.action.js.map +1 -0
  170. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +10 -0
  171. package/esm2015/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js.map +1 -0
  172. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js +2 -0
  173. package/esm2015/lib/modules/list-toolbar/state/toolbar-state-action.type.js.map +1 -0
  174. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js +10 -0
  175. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.model.js.map +1 -0
  176. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js +19 -0
  177. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.rxstate.js.map +1 -0
  178. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js +23 -0
  179. package/esm2015/lib/modules/list-toolbar/state/toolbar-state.state-node.js.map +1 -0
  180. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js +53 -0
  181. package/esm2015/lib/modules/shared/sky-list-builder-resources.module.js.map +1 -0
  182. package/esm2015/skyux-list-builder.js +2 -2
  183. package/esm2015/skyux-list-builder.js.map +1 -0
  184. package/fesm2015/skyux-list-builder.js +117 -116
  185. package/fesm2015/skyux-list-builder.js.map +1 -1
  186. package/index.d.ts +74 -0
  187. package/{modules → lib/modules}/list/list-data-request.model.d.ts +0 -0
  188. package/{modules → lib/modules}/list/list-data-response.model.d.ts +0 -0
  189. package/{modules → lib/modules}/list/list-data.provider.d.ts +0 -0
  190. package/{modules → lib/modules}/list/list-paging.component.d.ts +0 -0
  191. package/{modules → lib/modules}/list/list-view.component.d.ts +0 -0
  192. package/{modules → lib/modules}/list/list.component.d.ts +0 -0
  193. package/{modules → lib/modules}/list/list.module.d.ts +0 -0
  194. package/{modules → lib/modules}/list/state/filters/filters.orchestrator.d.ts +0 -0
  195. package/{modules → lib/modules}/list/state/filters/update.action.d.ts +0 -0
  196. package/{modules → lib/modules}/list/state/items/items.orchestrator.d.ts +0 -0
  197. package/{modules → lib/modules}/list/state/items/load.action.d.ts +0 -0
  198. package/{modules → lib/modules}/list/state/items/set-items-selected.action.d.ts +0 -0
  199. package/{modules → lib/modules}/list/state/items/set-loading.action.d.ts +0 -0
  200. package/{modules → lib/modules}/list/state/list-state-action.type.d.ts +0 -0
  201. package/{modules → lib/modules}/list/state/list-state.model.d.ts +0 -0
  202. package/{modules → lib/modules}/list/state/list-state.rxstate.d.ts +0 -0
  203. package/{modules → lib/modules}/list/state/list-state.state-node.d.ts +0 -0
  204. package/{modules → lib/modules}/list/state/paging/paging.model.d.ts +0 -0
  205. package/{modules → lib/modules}/list/state/paging/paging.orchestrator.d.ts +0 -0
  206. package/{modules → lib/modules}/list/state/paging/set-items-per-page.action.d.ts +0 -0
  207. package/{modules → lib/modules}/list/state/paging/set-max-pages.action.d.ts +0 -0
  208. package/{modules → lib/modules}/list/state/paging/set-page-number.action.d.ts +0 -0
  209. package/{modules → lib/modules}/list/state/search/search.model.d.ts +1 -0
  210. package/{modules → lib/modules}/list/state/search/search.orchestrator.d.ts +0 -0
  211. package/{modules → lib/modules}/list/state/search/set-field-selectors.action.d.ts +0 -0
  212. package/{modules → lib/modules}/list/state/search/set-functions.action.d.ts +0 -0
  213. package/{modules → lib/modules}/list/state/search/set-options.action.d.ts +0 -0
  214. package/{modules → lib/modules}/list/state/search/set-search-text.action.d.ts +0 -0
  215. package/{modules → lib/modules}/list/state/selected/load.action.d.ts +0 -0
  216. package/{modules → lib/modules}/list/state/selected/selected.model.d.ts +0 -0
  217. package/{modules → lib/modules}/list/state/selected/selected.orchestrator.d.ts +0 -0
  218. package/{modules → lib/modules}/list/state/selected/set-item-selected.action.d.ts +0 -0
  219. package/{modules → lib/modules}/list/state/selected/set-items-selected.action.d.ts +0 -0
  220. package/{modules → lib/modules}/list/state/selected/set-loading.action.d.ts +0 -0
  221. package/{modules → lib/modules}/list/state/sort/label.model.d.ts +0 -0
  222. package/{modules → lib/modules}/list/state/sort/set-available.action.d.ts +0 -0
  223. package/{modules → lib/modules}/list/state/sort/set-field-selectors.action.d.ts +0 -0
  224. package/{modules → lib/modules}/list/state/sort/set-global.action.d.ts +0 -0
  225. package/{modules → lib/modules}/list/state/sort/sort.model.d.ts +0 -0
  226. package/{modules → lib/modules}/list/state/sort/sort.orchestrator.d.ts +0 -0
  227. package/{modules → lib/modules}/list/state/toolbar/disable.action.d.ts +0 -0
  228. package/{modules → lib/modules}/list/state/toolbar/load.action.d.ts +0 -0
  229. package/{modules → lib/modules}/list/state/toolbar/remove.action.d.ts +0 -0
  230. package/{modules → lib/modules}/list/state/toolbar/set-exists.action.d.ts +0 -0
  231. package/{modules → lib/modules}/list/state/toolbar/set-type.action.d.ts +0 -0
  232. package/{modules → lib/modules}/list/state/toolbar/show-multiselect-toolbar.action.d.ts +0 -0
  233. package/{modules → lib/modules}/list/state/toolbar/toolbar-item.model.d.ts +0 -0
  234. package/{modules → lib/modules}/list/state/toolbar/toolbar.model.d.ts +0 -0
  235. package/{modules → lib/modules}/list/state/toolbar/toolbar.orchestrator.d.ts +0 -0
  236. package/{modules → lib/modules}/list/state/views/load.action.d.ts +0 -0
  237. package/{modules → lib/modules}/list/state/views/set-active.action.d.ts +0 -0
  238. package/{modules → lib/modules}/list/state/views/view.model.d.ts +0 -0
  239. package/{modules → lib/modules}/list/state/views/views.model.d.ts +0 -0
  240. package/{modules → lib/modules}/list/state/views/views.orchestrator.d.ts +0 -0
  241. package/{modules → lib/modules}/list-data-provider-in-memory/list-data-in-memory.provider.d.ts +0 -0
  242. package/{modules → lib/modules}/list-filters/filter.model.d.ts +0 -0
  243. package/{modules → lib/modules}/list-filters/list-filter-button.component.d.ts +0 -0
  244. package/{modules → lib/modules}/list-filters/list-filter-inline-item-renderer.component.d.ts +0 -0
  245. package/{modules → lib/modules}/list-filters/list-filter-inline-item.component.d.ts +0 -0
  246. package/{modules → lib/modules}/list-filters/list-filter-inline.component.d.ts +0 -0
  247. package/{modules → lib/modules}/list-filters/list-filter-inline.model.d.ts +0 -0
  248. package/{modules → lib/modules}/list-filters/list-filter-summary.component.d.ts +0 -0
  249. package/{modules → lib/modules}/list-filters/list-filters.module.d.ts +0 -0
  250. package/{modules → lib/modules}/list-paging/list-paging.component.d.ts +0 -0
  251. package/{modules → lib/modules}/list-paging/list-paging.module.d.ts +0 -0
  252. package/{modules → lib/modules}/list-toolbar/list-multiselect-toolbar.component.d.ts +0 -0
  253. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-action.component.d.ts +0 -0
  254. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-action.d.ts +0 -0
  255. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.d.ts +0 -0
  256. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.component.d.ts +0 -0
  257. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.module.d.ts +0 -0
  258. package/{modules → lib/modules}/list-toolbar/list-secondary-actions/list-secondary-actions.service.d.ts +0 -0
  259. package/{modules → lib/modules}/list-toolbar/list-toolbar-item-renderer.component.d.ts +0 -0
  260. package/{modules → lib/modules}/list-toolbar/list-toolbar-item.component.d.ts +3 -3
  261. package/{modules → lib/modules}/list-toolbar/list-toolbar-search-actions.component.d.ts +0 -0
  262. package/{modules → lib/modules}/list-toolbar/list-toolbar-sort.component.d.ts +0 -0
  263. package/{modules → lib/modules}/list-toolbar/list-toolbar-view-actions.component.d.ts +0 -0
  264. package/{modules → lib/modules}/list-toolbar/list-toolbar.component.d.ts +2 -2
  265. package/{modules → lib/modules}/list-toolbar/list-toolbar.module.d.ts +0 -0
  266. package/{modules → lib/modules}/list-toolbar/state/config/config.model.d.ts +0 -0
  267. package/{modules → lib/modules}/list-toolbar/state/config/config.orchestrator.d.ts +0 -0
  268. package/{modules → lib/modules}/list-toolbar/state/config/set-search-enabled.action.d.ts +0 -0
  269. package/{modules → lib/modules}/list-toolbar/state/config/set-sort-selector-enabled.action.d.ts +0 -0
  270. package/{modules → lib/modules}/list-toolbar/state/toolbar-state-action.type.d.ts +0 -0
  271. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.model.d.ts +0 -0
  272. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.rxstate.d.ts +0 -0
  273. package/{modules → lib/modules}/list-toolbar/state/toolbar-state.state-node.d.ts +0 -0
  274. package/{modules → lib/modules}/shared/sky-list-builder-resources.module.d.ts +0 -0
  275. package/package.json +27 -13
  276. package/skyux-list-builder.d.ts +1 -1
  277. package/LICENSE +0 -21
  278. package/esm2015/modules/list/list-data-request.model.js +0 -18
  279. package/esm2015/modules/list/list-data-response.model.js +0 -9
  280. package/esm2015/modules/list/list-data.provider.js +0 -7
  281. package/esm2015/modules/list/list-paging.component.js +0 -13
  282. package/esm2015/modules/list/list-view.component.js +0 -28
  283. package/esm2015/modules/list/list.component.js +0 -304
  284. package/esm2015/modules/list/list.module.js +0 -18
  285. package/esm2015/modules/list/state/filters/filters.orchestrator.js +0 -16
  286. package/esm2015/modules/list/state/filters/update.action.js +0 -9
  287. package/esm2015/modules/list/state/items/items.orchestrator.js +0 -53
  288. package/esm2015/modules/list/state/items/load.action.js +0 -12
  289. package/esm2015/modules/list/state/items/set-items-selected.action.js +0 -13
  290. package/esm2015/modules/list/state/items/set-loading.action.js +0 -9
  291. package/esm2015/modules/list/state/list-state-action.type.js +0 -2
  292. package/esm2015/modules/list/state/list-state.model.js +0 -24
  293. package/esm2015/modules/list/state/list-state.rxstate.js +0 -80
  294. package/esm2015/modules/list/state/list-state.state-node.js +0 -36
  295. package/esm2015/modules/list/state/paging/paging.model.js +0 -14
  296. package/esm2015/modules/list/state/paging/paging.orchestrator.js +0 -27
  297. package/esm2015/modules/list/state/paging/set-items-per-page.action.js +0 -9
  298. package/esm2015/modules/list/state/paging/set-max-pages.action.js +0 -9
  299. package/esm2015/modules/list/state/paging/set-page-number.action.js +0 -9
  300. package/esm2015/modules/list/state/search/search.model.js +0 -31
  301. package/esm2015/modules/list/state/search/search.orchestrator.js +0 -47
  302. package/esm2015/modules/list/state/search/set-field-selectors.action.js +0 -9
  303. package/esm2015/modules/list/state/search/set-functions.action.js +0 -9
  304. package/esm2015/modules/list/state/search/set-options.action.js +0 -11
  305. package/esm2015/modules/list/state/search/set-search-text.action.js +0 -9
  306. package/esm2015/modules/list/state/selected/load.action.js +0 -9
  307. package/esm2015/modules/list/state/selected/selected.model.js +0 -9
  308. package/esm2015/modules/list/state/selected/selected.orchestrator.js +0 -56
  309. package/esm2015/modules/list/state/selected/set-item-selected.action.js +0 -10
  310. package/esm2015/modules/list/state/selected/set-items-selected.action.js +0 -11
  311. package/esm2015/modules/list/state/selected/set-loading.action.js +0 -9
  312. package/esm2015/modules/list/state/sort/label.model.js +0 -25
  313. package/esm2015/modules/list/state/sort/set-available.action.js +0 -9
  314. package/esm2015/modules/list/state/sort/set-field-selectors.action.js +0 -9
  315. package/esm2015/modules/list/state/sort/set-global.action.js +0 -9
  316. package/esm2015/modules/list/state/sort/sort.model.js +0 -27
  317. package/esm2015/modules/list/state/sort/sort.orchestrator.js +0 -30
  318. package/esm2015/modules/list/state/toolbar/disable.action.js +0 -9
  319. package/esm2015/modules/list/state/toolbar/load.action.js +0 -10
  320. package/esm2015/modules/list/state/toolbar/remove.action.js +0 -9
  321. package/esm2015/modules/list/state/toolbar/set-exists.action.js +0 -9
  322. package/esm2015/modules/list/state/toolbar/set-type.action.js +0 -9
  323. package/esm2015/modules/list/state/toolbar/show-multiselect-toolbar.action.js +0 -9
  324. package/esm2015/modules/list/state/toolbar/toolbar-item.model.js +0 -16
  325. package/esm2015/modules/list/state/toolbar/toolbar.model.js +0 -17
  326. package/esm2015/modules/list/state/toolbar/toolbar.orchestrator.js +0 -80
  327. package/esm2015/modules/list/state/views/load.action.js +0 -9
  328. package/esm2015/modules/list/state/views/set-active.action.js +0 -9
  329. package/esm2015/modules/list/state/views/view.model.js +0 -10
  330. package/esm2015/modules/list/state/views/views.model.js +0 -13
  331. package/esm2015/modules/list/state/views/views.orchestrator.js +0 -21
  332. package/esm2015/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +0 -160
  333. package/esm2015/modules/list-filters/filter.model.js +0 -18
  334. package/esm2015/modules/list-filters/list-filter-button.component.js +0 -43
  335. package/esm2015/modules/list-filters/list-filter-inline-item-renderer.component.js +0 -34
  336. package/esm2015/modules/list-filters/list-filter-inline-item.component.js +0 -45
  337. package/esm2015/modules/list-filters/list-filter-inline.component.js +0 -72
  338. package/esm2015/modules/list-filters/list-filter-inline.model.js +0 -21
  339. package/esm2015/modules/list-filters/list-filter-summary.component.js +0 -58
  340. package/esm2015/modules/list-filters/list-filters.module.js +0 -41
  341. package/esm2015/modules/list-paging/list-paging.component.js +0 -87
  342. package/esm2015/modules/list-paging/list-paging.module.js +0 -19
  343. package/esm2015/modules/list-toolbar/list-multiselect-toolbar.component.js +0 -151
  344. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +0 -32
  345. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +0 -2
  346. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +0 -44
  347. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +0 -46
  348. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +0 -36
  349. package/esm2015/modules/list-toolbar/list-toolbar-item-renderer.component.js +0 -30
  350. package/esm2015/modules/list-toolbar/list-toolbar-item.component.js +0 -47
  351. package/esm2015/modules/list-toolbar/list-toolbar-search-actions.component.js +0 -19
  352. package/esm2015/modules/list-toolbar/list-toolbar-sort.component.js +0 -25
  353. package/esm2015/modules/list-toolbar/list-toolbar-view-actions.component.js +0 -21
  354. package/esm2015/modules/list-toolbar/list-toolbar.component.js +0 -358
  355. package/esm2015/modules/list-toolbar/list-toolbar.module.js +0 -87
  356. package/esm2015/modules/list-toolbar/state/config/config.model.js +0 -14
  357. package/esm2015/modules/list-toolbar/state/config/config.orchestrator.js +0 -21
  358. package/esm2015/modules/list-toolbar/state/config/set-search-enabled.action.js +0 -9
  359. package/esm2015/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +0 -10
  360. package/esm2015/modules/list-toolbar/state/toolbar-state-action.type.js +0 -2
  361. package/esm2015/modules/list-toolbar/state/toolbar-state.model.js +0 -10
  362. package/esm2015/modules/list-toolbar/state/toolbar-state.rxstate.js +0 -19
  363. package/esm2015/modules/list-toolbar/state/toolbar-state.state-node.js +0 -21
  364. package/esm2015/modules/shared/sky-list-builder-resources.module.js +0 -53
  365. package/esm2015/public-api.js +0 -78
  366. package/public-api.d.ts +0 -74
@@ -0,0 +1,21 @@
1
+ import { ListStateOrchestrator } from '../list-state.rxstate';
2
+ import { ListViewsModel } from './views.model';
3
+ import { ListViewsLoadAction } from './load.action';
4
+ import { ListViewsSetActiveAction } from './set-active.action';
5
+ /**
6
+ * @internal
7
+ */
8
+ export class ListViewsOrchestrator extends ListStateOrchestrator {
9
+ /* istanbul ignore next */
10
+ constructor() {
11
+ super();
12
+ this.register(ListViewsSetActiveAction, this.setActive).register(ListViewsLoadAction, this.load);
13
+ }
14
+ setActive(state, action) {
15
+ return new ListViewsModel(Object.assign({}, state, { active: action.view }));
16
+ }
17
+ load(state, action) {
18
+ return new ListViewsModel(Object.assign({}, state, { views: action.views }));
19
+ }
20
+ }
21
+ //# sourceMappingURL=views.orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder/src/lib/modules/list/state/views/views.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,qBAAqC;IAC9E,0BAA0B;IAC1B;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAC9D,mBAAmB,EACnB,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAEO,SAAS,CACf,KAAqB,EACrB,MAAgC;QAEhC,OAAO,IAAI,cAAc,CACvB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;IAEO,IAAI,CACV,KAAqB,EACrB,MAA2B;QAE3B,OAAO,IAAI,cAAc,CACvB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { ListStateOrchestrator } from '../list-state.rxstate';\nimport { ListViewsModel } from './views.model';\nimport { ListViewsLoadAction } from './load.action';\nimport { ListViewsSetActiveAction } from './set-active.action';\n\n/**\n * @internal\n */\nexport class ListViewsOrchestrator extends ListStateOrchestrator<ListViewsModel> {\n /* istanbul ignore next */\n constructor() {\n super();\n\n this.register(ListViewsSetActiveAction, this.setActive).register(\n ListViewsLoadAction,\n this.load\n );\n }\n\n private setActive(\n state: ListViewsModel,\n action: ListViewsSetActiveAction\n ): ListViewsModel {\n return new ListViewsModel(\n Object.assign({}, state, { active: action.view })\n );\n }\n\n private load(\n state: ListViewsModel,\n action: ListViewsLoadAction\n ): ListViewsModel {\n return new ListViewsModel(\n Object.assign({}, state, { views: action.views })\n );\n }\n}\n"]}
@@ -0,0 +1,160 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { map as observableMap } from 'rxjs/operators';
3
+ import { compare, getData, ListItemModel } from '@skyux/list-builder-common';
4
+ import { ListDataProvider } from '../list/list-data.provider';
5
+ import { ListDataResponseModel } from '../list/list-data-response.model';
6
+ import { ListSearchModel } from '../list/state/search/search.model';
7
+ let idIndex = 0;
8
+ export class SkyListInMemoryDataProvider extends ListDataProvider {
9
+ constructor(data, searchFunction) {
10
+ super(data);
11
+ this.items = new BehaviorSubject([]);
12
+ this.searchFunction = searchFunction;
13
+ if (data) {
14
+ data.subscribe((items) => {
15
+ this.items.next(items.map((d) => new ListItemModel(d.id || `sky-list-data-in-memory-provider-item-${++idIndex}`, d)));
16
+ });
17
+ }
18
+ }
19
+ count() {
20
+ return this.items.pipe(observableMap((items) => items.length));
21
+ }
22
+ get(request) {
23
+ return this.filteredItems(request).pipe(observableMap((result) => {
24
+ if (request.pageNumber && request.pageSize) {
25
+ let itemStart = (request.pageNumber - 1) * request.pageSize;
26
+ let pagedResult = result.slice(itemStart, itemStart + request.pageSize);
27
+ return new ListDataResponseModel({
28
+ count: result.length,
29
+ items: pagedResult,
30
+ });
31
+ }
32
+ else {
33
+ return new ListDataResponseModel({
34
+ count: result.length,
35
+ items: result,
36
+ });
37
+ }
38
+ }));
39
+ }
40
+ filteredItems(request) {
41
+ const showSelectedId = ['show-selected'];
42
+ return this.items.pipe(observableMap((items) => {
43
+ let dataChanged = false;
44
+ let search = request.search;
45
+ let sort = request.sort;
46
+ let filters = request.filters;
47
+ if (this.lastItems === undefined || this.lastItems !== items) {
48
+ dataChanged = true;
49
+ this.lastItems = items;
50
+ }
51
+ let searchChanged = false;
52
+ let filtersChanged = false;
53
+ if (request.isToolbarDisabled) {
54
+ searchChanged = true;
55
+ search = new ListSearchModel();
56
+ filters = filters.filter((f) => showSelectedId.indexOf(f.name) >= 0);
57
+ filtersChanged = true;
58
+ }
59
+ else {
60
+ if (this.lastSearch === undefined || this.lastSearch !== search) {
61
+ searchChanged = true;
62
+ }
63
+ if (this.lastFilters === undefined || this.lastFilters !== filters) {
64
+ filtersChanged = true;
65
+ }
66
+ }
67
+ this.lastSearch = search;
68
+ this.lastFilters = filters;
69
+ let result = items;
70
+ // Apply filters.
71
+ if (!dataChanged &&
72
+ !filtersChanged &&
73
+ this.lastFilterResults !== undefined) {
74
+ result = this.lastFilterResults;
75
+ }
76
+ else if (filters && filters.length > 0) {
77
+ result = result.filter((item) => {
78
+ for (let i = 0; i < filters.length; i++) {
79
+ let filter = filters[i];
80
+ if (filter.value === undefined ||
81
+ filter.value === '' ||
82
+ filter.value === false ||
83
+ filter.value === filter.defaultValue) {
84
+ continue;
85
+ }
86
+ if (!filter.filterFunction(item, filter.value)) {
87
+ return false;
88
+ }
89
+ }
90
+ return true;
91
+ });
92
+ this.lastFilterResults = result;
93
+ }
94
+ else {
95
+ this.lastFilterResults = undefined;
96
+ }
97
+ // Apply search.
98
+ /* istanbul ignore next */
99
+ if (!dataChanged &&
100
+ !searchChanged &&
101
+ this.lastSearchResults !== undefined &&
102
+ !filtersChanged) {
103
+ result = this.lastSearchResults;
104
+ }
105
+ else if (search &&
106
+ search.searchText !== undefined &&
107
+ search.searchText.length > 0) {
108
+ let searchText = search.searchText.toLowerCase();
109
+ let searchFunctions;
110
+ if (this.searchFunction !== undefined) {
111
+ searchFunctions = [this.searchFunction];
112
+ }
113
+ else {
114
+ searchFunctions = search.functions;
115
+ }
116
+ result = result.filter((item) => {
117
+ let isMatch = false;
118
+ for (let i = 0; i < searchFunctions.length; i++) {
119
+ let searchFunction = searchFunctions[i];
120
+ let searchResult = searchFunction(item.data, searchText);
121
+ if ((typeof searchResult === 'string' &&
122
+ searchResult.indexOf(searchText) !== -1) ||
123
+ searchResult === true) {
124
+ isMatch = true;
125
+ break;
126
+ }
127
+ }
128
+ return isMatch;
129
+ });
130
+ this.lastSearchResults = result;
131
+ }
132
+ else {
133
+ this.lastSearchResults = undefined;
134
+ }
135
+ // Apply sort.
136
+ if (sort && sort.fieldSelectors.length > 0) {
137
+ result = result
138
+ .slice()
139
+ .sort((item1, item2) => {
140
+ let compareResult = 0;
141
+ for (let i = 0; i < sort.fieldSelectors.length; i++) {
142
+ let selector = sort.fieldSelectors[i];
143
+ let value1 = getData(item1.data, selector.fieldSelector);
144
+ let value2 = getData(item2.data, selector.fieldSelector);
145
+ compareResult = compare(value1, value2);
146
+ if (selector.descending && compareResult !== 0) {
147
+ compareResult *= -1;
148
+ }
149
+ if (compareResult !== 0) {
150
+ break;
151
+ }
152
+ }
153
+ return compareResult;
154
+ });
155
+ }
156
+ return result;
157
+ }));
158
+ }
159
+ }
160
+ //# sourceMappingURL=list-data-in-memory.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-data-in-memory.provider.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,MAAM,MAAM,CAAC;AAEnD,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,OAAO,2BAA4B,SAAQ,gBAAgB;IAa/D,YACE,IAA6B,EAC7B,cAA2D;QAE3D,KAAK,CAAC,IAAI,CAAC,CAAC;QAhBP,UAAK,GAA0C,IAAI,eAAe,CAEvE,EAAE,CAAC,CAAC;QAgBJ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,KAAK,CAAC,GAAG,CACP,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,aAAa,CACf,CAAC,CAAC,EAAE,IAAI,yCAAyC,EAAE,OAAO,EAAE,EAC5D,CAAC,CACF,CACJ,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,GAAG,CAAC,OAA6B;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CACrC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE;gBAC1C,IAAI,SAAS,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAC5D,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAC5B,SAAS,EACT,SAAS,GAAG,OAAO,CAAC,QAAQ,CAC7B,CAAC;gBACF,OAAO,IAAI,qBAAqB,CAAC;oBAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;oBACpB,KAAK,EAAE,WAAW;iBACnB,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,IAAI,qBAAqB,CAAC;oBAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;oBACpB,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,OAA6B;QAE7B,MAAM,cAAc,GAAG,CAAC,eAAe,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;YACtB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5B,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACxB,IAAI,OAAO,GAAsB,OAAO,CAAC,OAAO,CAAC;YAEjD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;gBAC5D,WAAW,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;YAED,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAE/B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrE,cAAc,GAAG,IAAI,CAAC;aACvB;iBAAM;gBACL,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;oBAC/D,aAAa,GAAG,IAAI,CAAC;iBACtB;gBAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;oBAClE,cAAc,GAAG,IAAI,CAAC;iBACvB;aACF;YAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAE3B,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,iBAAiB;YACjB,IACE,CAAC,WAAW;gBACZ,CAAC,cAAc;gBACf,IAAI,CAAC,iBAAiB,KAAK,SAAS,EACpC;gBACA,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;aACjC;iBAAM,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACvC,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxB,IACE,MAAM,CAAC,KAAK,KAAK,SAAS;4BAC1B,MAAM,CAAC,KAAK,KAAK,EAAE;4BACnB,MAAM,CAAC,KAAK,KAAK,KAAK;4BACtB,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,YAAY,EACpC;4BACA,SAAS;yBACV;wBAED,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;4BAC9C,OAAO,KAAK,CAAC;yBACd;qBACF;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;YAED,gBAAgB;YAChB,0BAA0B;YAC1B,IACE,CAAC,WAAW;gBACZ,CAAC,aAAa;gBACd,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBACpC,CAAC,cAAc,EACf;gBACA,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;aACjC;iBAAM,IACL,MAAM;gBACN,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAC5B;gBACA,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,eAAsB,CAAC;gBAC3B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;oBACrC,eAAe,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACzC;qBAAM;oBACL,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;iBACpC;gBAED,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;oBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC/C,IAAI,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;wBAEzD,IACE,CAAC,OAAO,YAAY,KAAK,QAAQ;4BAC/B,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC1C,YAAY,KAAK,IAAI,EACrB;4BACA,OAAO,GAAG,IAAI,CAAC;4BACf,MAAM;yBACP;qBACF;oBAED,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;aACpC;YAED,cAAc;YACd,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,MAAM,GAAG,MAAM;qBACZ,KAAK,EAAE;qBACP,IAAI,CAAC,CAAC,KAAoB,EAAE,KAAoB,EAAE,EAAE;oBACnD,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;wBACzD,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;wBAEzD,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAExC,IAAI,QAAQ,CAAC,UAAU,IAAI,aAAa,KAAK,CAAC,EAAE;4BAC9C,aAAa,IAAI,CAAC,CAAC,CAAC;yBACrB;wBAED,IAAI,aAAa,KAAK,CAAC,EAAE;4BACvB,MAAM;yBACP;qBACF;oBAED,OAAO,aAAa,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\n\nimport { map as observableMap } from 'rxjs/operators';\n\nimport { compare, getData, ListItemModel } from '@skyux/list-builder-common';\n\nimport { ListDataProvider } from '../list/list-data.provider';\nimport { ListDataRequestModel } from '../list/list-data-request.model';\nimport { ListDataResponseModel } from '../list/list-data-response.model';\nimport { ListSearchModel } from '../list/state/search/search.model';\nimport { ListFilterModel } from '../list-filters/filter.model';\n\nlet idIndex = 0;\n\nexport class SkyListInMemoryDataProvider extends ListDataProvider {\n public items: BehaviorSubject<Array<ListItemModel>> = new BehaviorSubject<\n Array<ListItemModel>\n >([]);\n\n private lastItems: ListItemModel[];\n private lastSearch: ListSearchModel;\n private lastSearchResults: ListItemModel[];\n private searchFunction: (data: any, searchText: string) => boolean;\n\n private lastFilters: ListFilterModel[];\n private lastFilterResults: ListItemModel[];\n\n constructor(\n data?: Observable<Array<any>>,\n searchFunction?: (data: any, searchText: string) => boolean\n ) {\n super(data);\n\n this.searchFunction = searchFunction;\n\n if (data) {\n data.subscribe((items) => {\n this.items.next(\n items.map(\n (d) =>\n new ListItemModel(\n d.id || `sky-list-data-in-memory-provider-item-${++idIndex}`,\n d\n )\n )\n );\n });\n }\n }\n\n public count(): Observable<number> {\n return this.items.pipe(observableMap((items) => items.length));\n }\n\n public get(request: ListDataRequestModel): Observable<ListDataResponseModel> {\n return this.filteredItems(request).pipe(\n observableMap((result) => {\n if (request.pageNumber && request.pageSize) {\n let itemStart = (request.pageNumber - 1) * request.pageSize;\n let pagedResult = result.slice(\n itemStart,\n itemStart + request.pageSize\n );\n return new ListDataResponseModel({\n count: result.length,\n items: pagedResult,\n });\n } else {\n return new ListDataResponseModel({\n count: result.length,\n items: result,\n });\n }\n })\n );\n }\n\n private filteredItems(\n request: ListDataRequestModel\n ): Observable<Array<ListItemModel>> {\n const showSelectedId = ['show-selected'];\n\n return this.items.pipe(\n observableMap((items) => {\n let dataChanged = false;\n let search = request.search;\n let sort = request.sort;\n let filters: ListFilterModel[] = request.filters;\n\n if (this.lastItems === undefined || this.lastItems !== items) {\n dataChanged = true;\n this.lastItems = items;\n }\n\n let searchChanged = false;\n let filtersChanged = false;\n\n if (request.isToolbarDisabled) {\n searchChanged = true;\n search = new ListSearchModel();\n\n filters = filters.filter((f) => showSelectedId.indexOf(f.name) >= 0);\n filtersChanged = true;\n } else {\n if (this.lastSearch === undefined || this.lastSearch !== search) {\n searchChanged = true;\n }\n\n if (this.lastFilters === undefined || this.lastFilters !== filters) {\n filtersChanged = true;\n }\n }\n\n this.lastSearch = search;\n this.lastFilters = filters;\n\n let result = items;\n\n // Apply filters.\n if (\n !dataChanged &&\n !filtersChanged &&\n this.lastFilterResults !== undefined\n ) {\n result = this.lastFilterResults;\n } else if (filters && filters.length > 0) {\n result = result.filter((item) => {\n for (let i = 0; i < filters.length; i++) {\n let filter = filters[i];\n if (\n filter.value === undefined ||\n filter.value === '' ||\n filter.value === false ||\n filter.value === filter.defaultValue\n ) {\n continue;\n }\n\n if (!filter.filterFunction(item, filter.value)) {\n return false;\n }\n }\n return true;\n });\n\n this.lastFilterResults = result;\n } else {\n this.lastFilterResults = undefined;\n }\n\n // Apply search.\n /* istanbul ignore next */\n if (\n !dataChanged &&\n !searchChanged &&\n this.lastSearchResults !== undefined &&\n !filtersChanged\n ) {\n result = this.lastSearchResults;\n } else if (\n search &&\n search.searchText !== undefined &&\n search.searchText.length > 0\n ) {\n let searchText = search.searchText.toLowerCase();\n let searchFunctions: any[];\n if (this.searchFunction !== undefined) {\n searchFunctions = [this.searchFunction];\n } else {\n searchFunctions = search.functions;\n }\n\n result = result.filter((item) => {\n let isMatch = false;\n\n for (let i = 0; i < searchFunctions.length; i++) {\n let searchFunction = searchFunctions[i];\n let searchResult = searchFunction(item.data, searchText);\n\n if (\n (typeof searchResult === 'string' &&\n searchResult.indexOf(searchText) !== -1) ||\n searchResult === true\n ) {\n isMatch = true;\n break;\n }\n }\n\n return isMatch;\n });\n\n this.lastSearchResults = result;\n } else {\n this.lastSearchResults = undefined;\n }\n\n // Apply sort.\n if (sort && sort.fieldSelectors.length > 0) {\n result = result\n .slice()\n .sort((item1: ListItemModel, item2: ListItemModel) => {\n let compareResult = 0;\n for (let i = 0; i < sort.fieldSelectors.length; i++) {\n let selector = sort.fieldSelectors[i];\n let value1 = getData(item1.data, selector.fieldSelector);\n let value2 = getData(item2.data, selector.fieldSelector);\n\n compareResult = compare(value1, value2);\n\n if (selector.descending && compareResult !== 0) {\n compareResult *= -1;\n }\n\n if (compareResult !== 0) {\n break;\n }\n }\n\n return compareResult;\n });\n }\n return result;\n })\n );\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ export class ListFilterModel {
2
+ constructor(data) {
3
+ /**
4
+ * Indicates whether users can dismiss the filter's summary item.
5
+ * @default true
6
+ */
7
+ this.dismissible = true;
8
+ if (data) {
9
+ this.name = data.name;
10
+ this.label = data.label;
11
+ this.filterFunction = data.filterFunction;
12
+ this.value = data.value;
13
+ this.dismissible = data.dismissible;
14
+ this.defaultValue = data.defaultValue;
15
+ }
16
+ }
17
+ }
18
+ //# sourceMappingURL=filter.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.model.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/filter.model.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAsC1B,YAAY,IAAU;QAzBtB;;;WAGG;QACI,gBAAW,GAAY,IAAI,CAAC;QAsBjC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACvC;IACH,CAAC;CACF","sourcesContent":["import { ListItemModel } from '@skyux/list-builder-common';\n\nexport class ListFilterModel {\n /**\n * Specifies the name of the filter.\n * @required\n */\n public name: string;\n\n /**\n * Specifies a label for the filter's summary item.\n * The label defaults to the `value` of the filter.\n */\n public label: string;\n\n /**\n * Indicates whether users can dismiss the filter's summary item.\n * @default true\n */\n public dismissible: boolean = true;\n\n /**\n * Specifies the current value of the filter.\n */\n public value: any;\n\n /**\n * Specifies the default value of the filter. When users do not set the\n * default value, the filter does not affect the list.\n */\n public defaultValue: any;\n\n /**\n * Specifies a function to determine whether items are filtered.\n * This property is required when using an in-memory data provider.\n * For information about `ListItemModel`, see the\n * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n */\n public filterFunction: (item: ListItemModel, filter: any) => boolean;\n\n constructor(data?: any) {\n if (data) {\n this.name = data.name;\n this.label = data.label;\n this.filterFunction = data.filterFunction;\n this.value = data.value;\n this.dismissible = data.dismissible;\n this.defaultValue = data.defaultValue;\n }\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ import { Component, TemplateRef, ViewChild, } from '@angular/core';
2
+ import { ListStateDispatcher } from '../list/state/list-state.rxstate';
3
+ import { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../list/state/list-state.rxstate";
6
+ /**
7
+ * Contains a filter button for the list toolbar. Place a
8
+ * [`sky-filter-button`](https://developer.blackbaud.com/skyux/components/filter)
9
+ * component inside this component to open a modal with filtering options.
10
+ * To apply filter options, use the
11
+ * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)
12
+ * `appliedFilters` property.
13
+ */
14
+ export class SkyListFilterButtonComponent {
15
+ constructor(dispatcher) {
16
+ this.dispatcher = dispatcher;
17
+ this.filterButtonItemToolbarIndex = 5000;
18
+ }
19
+ ngAfterViewInit() {
20
+ this.dispatcher.toolbarAddItems([
21
+ new ListToolbarItemModel({
22
+ template: this.filterButtonTemplate,
23
+ location: 'left',
24
+ index: this.filterButtonItemToolbarIndex,
25
+ }),
26
+ ]);
27
+ }
28
+ }
29
+ SkyListFilterButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterButtonComponent, deps: [{ token: i1.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
30
+ SkyListFilterButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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" });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterButtonComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'sky-list-filter-button',
35
+ templateUrl: './list-filter-button.component.html',
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.ListStateDispatcher }]; }, propDecorators: { filterButtonTemplate: [{
38
+ type: ViewChild,
39
+ args: ['filterButton', {
40
+ read: TemplateRef,
41
+ static: true,
42
+ }]
43
+ }] } });
44
+ //# sourceMappingURL=list-filter-button.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-button.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-button.component.ts","../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-button.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;;AAEhF;;;;;;;GAOG;AAKH,MAAM,OAAO,4BAA4B;IASvC,YAAoB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;QAF3C,iCAA4B,GAAW,IAAI,CAAC;IAEE,CAAC;IAEhD,eAAe;QACpB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAC9B,IAAI,oBAAoB,CAAC;gBACvB,QAAQ,EAAE,IAAI,CAAC,oBAAoB;gBACnC,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,IAAI,CAAC,4BAA4B;aACzC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;;0HAnBU,4BAA4B;8GAA5B,4BAA4B,+JAE/B,WAAW,2CCzBrB,4EAGA;4FDoBa,4BAA4B;kBAJxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,qCAAqC;iBACnD;0GAMS,oBAAoB;sBAJ3B,SAAS;uBAAC,cAAc,EAAE;wBACzB,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,IAAI;qBACb","sourcesContent":["import {\n AfterViewInit,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\n\nimport { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model';\n\n/**\n * Contains a filter button for the list toolbar. Place a\n * [`sky-filter-button`](https://developer.blackbaud.com/skyux/components/filter)\n * component inside this component to open a modal with filtering options.\n * To apply filter options, use the\n * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)\n * `appliedFilters` property.\n */\n@Component({\n selector: 'sky-list-filter-button',\n templateUrl: './list-filter-button.component.html',\n})\nexport class SkyListFilterButtonComponent implements AfterViewInit {\n @ViewChild('filterButton', {\n read: TemplateRef,\n static: true,\n })\n private filterButtonTemplate: TemplateRef<any>;\n\n private filterButtonItemToolbarIndex: number = 5000;\n\n constructor(private dispatcher: ListStateDispatcher) {}\n\n public ngAfterViewInit() {\n this.dispatcher.toolbarAddItems([\n new ListToolbarItemModel({\n template: this.filterButtonTemplate,\n location: 'left',\n index: this.filterButtonItemToolbarIndex,\n }),\n ]);\n }\n}\n","<ng-template #filterButton>\n <ng-content></ng-content>\n</ng-template>\n"]}
@@ -0,0 +1,34 @@
1
+ import { Component, ViewContainerRef, ViewChild, Input, TemplateRef, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class SkyListFilterInlineItemRendererComponent {
7
+ ngOnInit() {
8
+ /* istanbul ignore else */
9
+ /* sanity check */
10
+ if (this.template !== undefined) {
11
+ this.container.createEmbeddedView(this.template, this);
12
+ }
13
+ }
14
+ }
15
+ SkyListFilterInlineItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ SkyListFilterInlineItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, decorators: [{
18
+ type: Component,
19
+ args: [{
20
+ selector: 'sky-list-filter-inline-item-renderer',
21
+ template: '<ng-template #container></ng-template>',
22
+ }]
23
+ }], propDecorators: { template: [{
24
+ type: Input
25
+ }], filter: [{
26
+ type: Input
27
+ }], container: [{
28
+ type: ViewChild,
29
+ args: ['container', {
30
+ read: ViewContainerRef,
31
+ static: true,
32
+ }]
33
+ }] } });
34
+ //# sourceMappingURL=list-filter-inline-item-renderer.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-inline-item-renderer.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline-item-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,WAAW,GAEZ,MAAM,eAAe,CAAC;;AAEvB;;GAEG;AAKH,MAAM,OAAO,wCAAwC;IAY5C,QAAQ;QACb,0BAA0B;QAC1B,kBAAkB;QAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACxD;IACH,CAAC;;sIAlBU,wCAAwC;0HAAxC,wCAAwC,mNAO3C,gBAAgB,2CATd,wCAAwC;4FAEvC,wCAAwC;kBAJpD,SAAS;mBAAC;oBACT,QAAQ,EAAE,sCAAsC;oBAChD,QAAQ,EAAE,wCAAwC;iBACnD;8BAGQ,QAAQ;sBADd,KAAK;gBAGC,MAAM;sBADZ,KAAK;gBAOE,SAAS;sBAJhB,SAAS;uBAAC,WAAW,EAAE;wBACtB,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,IAAI;qBACb","sourcesContent":["import {\n Component,\n ViewContainerRef,\n ViewChild,\n Input,\n TemplateRef,\n OnInit,\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-list-filter-inline-item-renderer',\n template: '<ng-template #container></ng-template>',\n})\nexport class SkyListFilterInlineItemRendererComponent implements OnInit {\n @Input()\n public template: TemplateRef<any>;\n @Input()\n public filter: any;\n\n @ViewChild('container', {\n read: ViewContainerRef,\n static: true,\n })\n private container: ViewContainerRef;\n\n public ngOnInit() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.template !== undefined) {\n this.container.createEmbeddedView(this.template, this);\n }\n }\n}\n"]}
@@ -0,0 +1,45 @@
1
+ import { Component, Input, ContentChildren, TemplateRef, QueryList, EventEmitter, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Creates a filter in the list's inline filter area.
5
+ */
6
+ export class SkyListFilterInlineItemComponent {
7
+ constructor() {
8
+ this.onChange = new EventEmitter();
9
+ }
10
+ ngOnInit() {
11
+ if (this.name === undefined || this.name.length === 0) {
12
+ throw new Error('Inline filter requires a name.');
13
+ }
14
+ }
15
+ get template() {
16
+ return this.templates.length > 0
17
+ ? this.templates.first
18
+ : this.templateInput;
19
+ }
20
+ }
21
+ SkyListFilterInlineItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ SkyListFilterInlineItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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 });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineItemComponent, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ selector: 'sky-list-filter-inline-item',
27
+ template: '<ng-content></ng-content>',
28
+ }]
29
+ }], propDecorators: { name: [{
30
+ type: Input
31
+ }], value: [{
32
+ type: Input
33
+ }], defaultValue: [{
34
+ type: Input
35
+ }], filterFunction: [{
36
+ type: Input,
37
+ args: ['filter']
38
+ }], templateInput: [{
39
+ type: Input,
40
+ args: ['template']
41
+ }], templates: [{
42
+ type: ContentChildren,
43
+ args: [TemplateRef]
44
+ }] } });
45
+ //# sourceMappingURL=list-filter-inline-item.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-inline-item.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,EACL,eAAe,EACf,WAAW,EACX,SAAS,EAET,YAAY,GACb,MAAM,eAAe,CAAC;;AAIvB;;GAEG;AAKH,MAAM,OAAO,gCAAgC;IAJ7C;QA6CS,aAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;KAgB9D;IAXQ,QAAQ;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;IACH,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YACtB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IACzB,CAAC;;8HAxDU,gCAAgC;kHAAhC,gCAAgC,iQA2C1B,WAAW,6BA7ClB,2BAA2B;4FAE1B,gCAAgC;kBAJ5C,SAAS;mBAAC;oBACT,QAAQ,EAAE,6BAA6B;oBACvC,QAAQ,EAAE,2BAA2B;iBACtC;8BAOQ,IAAI;sBADV,KAAK;gBAOC,KAAK;sBADX,KAAK;gBAQC,YAAY;sBADlB,KAAK;gBAWC,cAAc;sBADpB,KAAK;uBAAC,QAAQ;gBAWR,aAAa;sBADnB,KAAK;uBAAC,UAAU;gBAMT,SAAS;sBADhB,eAAe;uBAAC,WAAW","sourcesContent":["import {\n Component,\n Input,\n ContentChildren,\n TemplateRef,\n QueryList,\n OnInit,\n EventEmitter,\n} from '@angular/core';\n\nimport { ListItemModel } from '@skyux/list-builder-common';\n\n/**\n * Creates a filter in the list's inline filter area.\n */\n@Component({\n selector: 'sky-list-filter-inline-item',\n template: '<ng-content></ng-content>',\n})\nexport class SkyListFilterInlineItemComponent implements OnInit {\n /**\n * Specifies the name of the filter.\n * @required\n */\n @Input()\n public name: string;\n\n /**\n * Specifies the current value of the filter.\n */\n @Input()\n public value: any;\n\n /**\n * Specifies the default value of the filter. If the value of the filter\n * is set to the default value, then the filter is not applied.\n */\n @Input()\n public defaultValue: any;\n\n /**\n * Specifies the function to apply to determine whether an item is filtered.\n * This property is required when using an in-memory data provider. For information\n * about `ListItemModel`, see the\n * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('filter')\n public filterFunction: (item: ListItemModel, filter: any) => boolean;\n\n /**\n * Specifies the template for the filter. The template can access the `filter`\n * variable that contains the `value` of the filter control, which should be bound to\n * `ngModel`, and the `changed` function, which should be called when the model changes.\n * @required\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('template')\n public templateInput: TemplateRef<any>;\n\n public onChange: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(TemplateRef)\n private templates: QueryList<TemplateRef<any>>;\n\n public ngOnInit() {\n if (this.name === undefined || this.name.length === 0) {\n throw new Error('Inline filter requires a name.');\n }\n }\n\n public get template(): TemplateRef<any> {\n return this.templates.length > 0\n ? this.templates.first\n : this.templateInput;\n }\n}\n"]}
@@ -0,0 +1,74 @@
1
+ import { Component, ContentChildren, QueryList, } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
3
+ import { SkyListFilterInlineItemComponent } from './list-filter-inline-item.component';
4
+ import { ListState } from '../list/state/list-state.state-node';
5
+ import { ListStateDispatcher } from '../list/state/list-state.rxstate';
6
+ import { ListFilterModel } from './filter.model';
7
+ import { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';
8
+ import { SkyListFilterInlineModel } from './list-filter-inline.model';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../list/state/list-state.rxstate";
11
+ import * as i2 from "../list/state/list-state.state-node";
12
+ import * as i3 from "@skyux/lists";
13
+ import * as i4 from "./list-filter-inline-item-renderer.component";
14
+ import * as i5 from "@angular/common";
15
+ /**
16
+ * Creates an inline filter area for the list. Place each filter
17
+ * in a `sky-list-filter-inline-item` component.
18
+ */
19
+ export class SkyListFilterInlineComponent {
20
+ constructor(dispatcher, state) {
21
+ this.dispatcher = dispatcher;
22
+ this.state = state;
23
+ this.inlineFilters = [];
24
+ }
25
+ ngAfterContentInit() {
26
+ this.inlineFilters = this.filters.map((filter) => {
27
+ return new SkyListFilterInlineModel({
28
+ name: filter.name,
29
+ filterFunction: filter.filterFunction,
30
+ template: filter.template,
31
+ value: filter.value,
32
+ defaultValue: filter.defaultValue,
33
+ });
34
+ });
35
+ this.inlineFilters.forEach((filter) => {
36
+ filter.onChange.subscribe((value) => {
37
+ this.applyFilters();
38
+ });
39
+ });
40
+ this.dispatcher.filtersUpdate(this.getFilterModelFromInline(this.inlineFilters));
41
+ }
42
+ applyFilters() {
43
+ this.state.pipe(take(1)).subscribe((currentState) => {
44
+ if (currentState.paging.pageNumber &&
45
+ currentState.paging.pageNumber !== 1) {
46
+ this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
47
+ }
48
+ this.dispatcher.filtersUpdate(this.getFilterModelFromInline(this.inlineFilters));
49
+ });
50
+ }
51
+ getFilterModelFromInline(inlineFilters) {
52
+ return inlineFilters.map((filter) => {
53
+ return new ListFilterModel({
54
+ name: filter.name,
55
+ value: filter.value,
56
+ filterFunction: filter.filterFunction,
57
+ defaultValue: filter.defaultValue,
58
+ });
59
+ });
60
+ }
61
+ }
62
+ SkyListFilterInlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineComponent, deps: [{ token: i1.ListStateDispatcher }, { token: i2.ListState }], target: i0.ɵɵFactoryTarget.Component });
63
+ SkyListFilterInlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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.λ2, selector: "sky-filter-inline" }, { type: i3.λ3, selector: "sky-filter-inline-item" }, { type: i4.SkyListFilterInlineItemRendererComponent, selector: "sky-list-filter-inline-item-renderer", inputs: ["template", "filter"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterInlineComponent, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ selector: 'sky-list-filter-inline',
68
+ templateUrl: './list-filter-inline.component.html',
69
+ }]
70
+ }], ctorParameters: function () { return [{ type: i1.ListStateDispatcher }, { type: i2.ListState }]; }, propDecorators: { filters: [{
71
+ type: ContentChildren,
72
+ args: [SkyListFilterInlineItemComponent]
73
+ }] } });
74
+ //# sourceMappingURL=list-filter-inline.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-inline.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.component.ts","../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,GAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAE5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;;;;;;;AAEtE;;;GAGG;AAKH,MAAM,OAAO,4BAA4B;IAMvC,YACU,UAA+B,EAC/B,KAAgB;QADhB,eAAU,GAAV,UAAU,CAAqB;QAC/B,UAAK,GAAL,KAAK,CAAW;QAPnB,kBAAa,GAAoC,EAAE,CAAC;IAQxD,CAAC;IAEG,kBAAkB;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,OAAO,IAAI,wBAAwB,CAAC;gBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBACvC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,aAAa,CAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAClD,CAAC;IACJ,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAClD,IACE,YAAY,CAAC,MAAM,CAAC,UAAU;gBAC9B,YAAY,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EACpC;gBACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpE;YAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAClD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAC9B,aAA8C;QAE9C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,OAAO,IAAI,eAAe,CAAC;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;0HA3DU,4BAA4B;8GAA5B,4BAA4B,sFAGtB,gCAAgC,6BChCnD,0UAWA;4FDkBa,4BAA4B;kBAJxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,qCAAqC;iBACnD;kIAKS,OAAO;sBADd,eAAe;uBAAC,gCAAgC","sourcesContent":["import {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n} from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyListFilterInlineItemComponent } from './list-filter-inline-item.component';\n\nimport { ListState } from '../list/state/list-state.state-node';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\n\nimport { ListFilterModel } from './filter.model';\n\nimport { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';\n\nimport { SkyListFilterInlineModel } from './list-filter-inline.model';\n\n/**\n * Creates an inline filter area for the list. Place each filter\n * in a `sky-list-filter-inline-item` component.\n */\n@Component({\n selector: 'sky-list-filter-inline',\n templateUrl: './list-filter-inline.component.html',\n})\nexport class SkyListFilterInlineComponent implements AfterContentInit {\n public inlineFilters: Array<SkyListFilterInlineModel> = [];\n\n @ContentChildren(SkyListFilterInlineItemComponent)\n private filters: QueryList<SkyListFilterInlineItemComponent>;\n\n constructor(\n private dispatcher: ListStateDispatcher,\n private state: ListState\n ) {}\n\n public ngAfterContentInit() {\n this.inlineFilters = this.filters.map((filter) => {\n return new SkyListFilterInlineModel({\n name: filter.name,\n filterFunction: filter.filterFunction,\n template: filter.template,\n value: filter.value,\n defaultValue: filter.defaultValue,\n });\n });\n\n this.inlineFilters.forEach((filter) => {\n filter.onChange.subscribe((value: any) => {\n this.applyFilters();\n });\n });\n\n this.dispatcher.filtersUpdate(\n this.getFilterModelFromInline(this.inlineFilters)\n );\n }\n\n public applyFilters() {\n this.state.pipe(take(1)).subscribe((currentState) => {\n if (\n currentState.paging.pageNumber &&\n currentState.paging.pageNumber !== 1\n ) {\n this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n }\n\n this.dispatcher.filtersUpdate(\n this.getFilterModelFromInline(this.inlineFilters)\n );\n });\n }\n\n private getFilterModelFromInline(\n inlineFilters: Array<SkyListFilterInlineModel>\n ) {\n return inlineFilters.map((filter) => {\n return new ListFilterModel({\n name: filter.name,\n value: filter.value,\n filterFunction: filter.filterFunction,\n defaultValue: filter.defaultValue,\n });\n });\n }\n}\n","<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"]}
@@ -0,0 +1,21 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ /**
3
+ * @internal
4
+ */
5
+ export class SkyListFilterInlineModel {
6
+ constructor(data) {
7
+ this.onChange = new EventEmitter();
8
+ if (data) {
9
+ this.name = data.name;
10
+ this.filterFunction = data.filterFunction;
11
+ this.value = data.value;
12
+ this.template = data.template;
13
+ this.defaultValue = data.defaultValue;
14
+ }
15
+ }
16
+ changed(value) {
17
+ this.value = value;
18
+ this.onChange.emit(value);
19
+ }
20
+ }
21
+ //# sourceMappingURL=list-filter-inline.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-inline.model.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAQnC,YAAY,IAAU;QAHf,aAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;QAI3D,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACvC;IACH,CAAC;IAEM,OAAO,CAAC,KAAU;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF","sourcesContent":["import { ListItemModel } from '@skyux/list-builder-common';\n\nimport { EventEmitter, TemplateRef } from '@angular/core';\n\n/**\n * @internal\n */\nexport class SkyListFilterInlineModel {\n public name: string;\n public value: any;\n public defaultValue: any;\n public filterFunction: (item: ListItemModel, filter: any) => boolean;\n public onChange: EventEmitter<any> = new EventEmitter<any>();\n public template: TemplateRef<any>;\n\n constructor(data?: any) {\n if (data) {\n this.name = data.name;\n this.filterFunction = data.filterFunction;\n this.value = data.value;\n this.template = data.template;\n this.defaultValue = data.defaultValue;\n }\n }\n\n public changed(value: any) {\n this.value = value;\n this.onChange.emit(value);\n }\n}\n"]}
@@ -0,0 +1,60 @@
1
+ import { Component, EventEmitter, Output, } from '@angular/core';
2
+ import { map as observableMap, take } from 'rxjs/operators';
3
+ import { ListState } from '../list/state/list-state.state-node';
4
+ import { ListStateDispatcher } from '../list/state/list-state.rxstate';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../list/state/list-state.state-node";
7
+ import * as i2 from "../list/state/list-state.rxstate";
8
+ import * as i3 from "@skyux/lists";
9
+ import * as i4 from "@angular/common";
10
+ /**
11
+ * Creates a filter summary based on the
12
+ * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)
13
+ * `appliedFilters` property. Place this component within the
14
+ * [`sky-list-toolbar`](https://developer.blackbaud.com/skyux/components/list/toolbar) component.
15
+ */
16
+ export class SkyListFilterSummaryComponent {
17
+ constructor(state, dispatcher) {
18
+ this.state = state;
19
+ this.dispatcher = dispatcher;
20
+ /**
21
+ * Emits a `ListFilterModel` when users select a summary item. A common use case is
22
+ * to open a filter modal when this event is received.
23
+ */
24
+ this.summaryItemClick = new EventEmitter();
25
+ }
26
+ ngAfterContentInit() {
27
+ // The setTimeout here is to ensure we avoid any ExpressionChangedAfterItHasBeenCheckedError issues.
28
+ setTimeout(() => {
29
+ this.appliedFilters = this.state.pipe(observableMap((state) => {
30
+ return state.filters.filter((filter) => {
31
+ return (filter.value !== '' &&
32
+ filter.value !== undefined &&
33
+ filter.value !== false &&
34
+ filter.value !== filter.defaultValue);
35
+ });
36
+ }));
37
+ });
38
+ }
39
+ filterSummaryItemDismiss(index) {
40
+ this.appliedFilters.pipe(take(1)).subscribe((filters) => {
41
+ filters.splice(index, 1);
42
+ this.dispatcher.filtersUpdate(filters.slice());
43
+ });
44
+ }
45
+ filterSummaryItemClick(item) {
46
+ this.summaryItemClick.emit(item);
47
+ }
48
+ }
49
+ SkyListFilterSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterSummaryComponent, deps: [{ token: i1.ListState }, { token: i2.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
50
+ SkyListFilterSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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.λ5, selector: "sky-filter-summary" }, { type: i3.λ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 } });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListFilterSummaryComponent, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'sky-list-filter-summary',
55
+ templateUrl: './list-filter-summary.component.html',
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i2.ListStateDispatcher }]; }, propDecorators: { summaryItemClick: [{
58
+ type: Output
59
+ }] } });
60
+ //# sourceMappingURL=list-filter-summary.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-filter-summary.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-summary.component.ts","../../../../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-summary.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,MAAM,GACP,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;;;;;;AAIvE;;;;;GAKG;AAKH,MAAM,OAAO,6BAA6B;IAUxC,YACU,KAAgB,EAChB,UAA+B;QAD/B,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAqB;QAXzC;;;WAGG;QAEI,qBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;IAO3D,CAAC;IAEG,kBAAkB;QACvB,oGAAoG;QACpG,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;oBACrC,OAAO,CACL,MAAM,CAAC,KAAK,KAAK,EAAE;wBACnB,MAAM,CAAC,KAAK,KAAK,SAAS;wBAC1B,MAAM,CAAC,KAAK,KAAK,KAAK;wBACtB,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,YAAY,CACrC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wBAAwB,CAAC,KAAa;QAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,sBAAsB,CAAC,IAAqB;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;;2HA1CU,6BAA6B;+GAA7B,6BAA6B,kHC3B1C,6VAUA;4FDiBa,6BAA6B;kBAJzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;oBACnC,WAAW,EAAE,sCAAsC;iBACpD;kIAOQ,gBAAgB;sBADtB,MAAM","sourcesContent":["import {\n AfterContentInit,\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { map as observableMap, take } from 'rxjs/operators';\n\nimport { ListState } from '../list/state/list-state.state-node';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\n\nimport { ListFilterModel } from './filter.model';\n\n/**\n * Creates a filter summary based on the\n * [list component's](https://developer.blackbaud.com/skyux/components/list/overview#list-properties)\n * `appliedFilters` property. Place this component within the\n * [`sky-list-toolbar`](https://developer.blackbaud.com/skyux/components/list/toolbar) component.\n */\n@Component({\n selector: 'sky-list-filter-summary',\n templateUrl: './list-filter-summary.component.html',\n})\nexport class SkyListFilterSummaryComponent implements AfterContentInit {\n /**\n * Emits a `ListFilterModel` when users select a summary item. A common use case is\n * to open a filter modal when this event is received.\n */\n @Output()\n public summaryItemClick = new EventEmitter<ListFilterModel>();\n\n public appliedFilters: Observable<Array<ListFilterModel>>;\n\n constructor(\n private state: ListState,\n private dispatcher: ListStateDispatcher\n ) {}\n\n public ngAfterContentInit() {\n // The setTimeout here is to ensure we avoid any ExpressionChangedAfterItHasBeenCheckedError issues.\n setTimeout(() => {\n this.appliedFilters = this.state.pipe(\n observableMap((state) => {\n return state.filters.filter((filter) => {\n return (\n filter.value !== '' &&\n filter.value !== undefined &&\n filter.value !== false &&\n filter.value !== filter.defaultValue\n );\n });\n })\n );\n });\n }\n\n public filterSummaryItemDismiss(index: number) {\n this.appliedFilters.pipe(take(1)).subscribe((filters) => {\n filters.splice(index, 1);\n this.dispatcher.filtersUpdate(filters.slice());\n });\n }\n\n public filterSummaryItemClick(item: ListFilterModel) {\n this.summaryItemClick.emit(item);\n }\n}\n","<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"]}