@skyux/list-builder 5.0.0-beta.0 → 5.0.1

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 (232) hide show
  1. package/LICENSE +21 -0
  2. package/bundles/skyux-list-builder.umd.js +1308 -1130
  3. package/bundles/skyux-list-builder.umd.js.map +1 -1
  4. package/documentation.json +6679 -0
  5. package/esm2015/modules/list/list-data-request.model.js +1 -1
  6. package/esm2015/modules/list/list-data-response.model.js +1 -1
  7. package/esm2015/modules/list/list-data.provider.js +1 -1
  8. package/esm2015/modules/list/list-paging.component.js +1 -1
  9. package/esm2015/modules/list/list-view.component.js +9 -8
  10. package/esm2015/modules/list/list.component.js +81 -87
  11. package/esm2015/modules/list/list.module.js +15 -18
  12. package/esm2015/modules/list/state/filters/filters.orchestrator.js +2 -3
  13. package/esm2015/modules/list/state/filters/update.action.js +1 -1
  14. package/esm2015/modules/list/state/items/items.orchestrator.js +12 -9
  15. package/esm2015/modules/list/state/items/load.action.js +1 -1
  16. package/esm2015/modules/list/state/items/set-items-selected.action.js +4 -2
  17. package/esm2015/modules/list/state/items/set-loading.action.js +1 -1
  18. package/esm2015/modules/list/state/list-state-action.type.js +2 -1
  19. package/esm2015/modules/list/state/list-state.model.js +1 -1
  20. package/esm2015/modules/list/state/list-state.rxstate.js +10 -8
  21. package/esm2015/modules/list/state/list-state.state-node.js +11 -14
  22. package/esm2015/modules/list/state/paging/paging.model.js +1 -1
  23. package/esm2015/modules/list/state/paging/paging.orchestrator.js +2 -3
  24. package/esm2015/modules/list/state/paging/set-items-per-page.action.js +1 -1
  25. package/esm2015/modules/list/state/paging/set-max-pages.action.js +1 -1
  26. package/esm2015/modules/list/state/paging/set-page-number.action.js +1 -1
  27. package/esm2015/modules/list/state/search/search.model.js +1 -1
  28. package/esm2015/modules/list/state/search/search.orchestrator.js +5 -4
  29. package/esm2015/modules/list/state/search/set-field-selectors.action.js +1 -1
  30. package/esm2015/modules/list/state/search/set-functions.action.js +1 -1
  31. package/esm2015/modules/list/state/search/set-options.action.js +1 -1
  32. package/esm2015/modules/list/state/search/set-search-text.action.js +1 -1
  33. package/esm2015/modules/list/state/selected/load.action.js +1 -1
  34. package/esm2015/modules/list/state/selected/selected.model.js +1 -1
  35. package/esm2015/modules/list/state/selected/selected.orchestrator.js +9 -10
  36. package/esm2015/modules/list/state/selected/set-item-selected.action.js +1 -1
  37. package/esm2015/modules/list/state/selected/set-items-selected.action.js +1 -1
  38. package/esm2015/modules/list/state/selected/set-loading.action.js +1 -1
  39. package/esm2015/modules/list/state/sort/label.model.js +1 -1
  40. package/esm2015/modules/list/state/sort/set-available.action.js +1 -1
  41. package/esm2015/modules/list/state/sort/set-field-selectors.action.js +1 -1
  42. package/esm2015/modules/list/state/sort/set-global.action.js +1 -1
  43. package/esm2015/modules/list/state/sort/sort.model.js +1 -1
  44. package/esm2015/modules/list/state/sort/sort.orchestrator.js +4 -5
  45. package/esm2015/modules/list/state/toolbar/disable.action.js +1 -1
  46. package/esm2015/modules/list/state/toolbar/load.action.js +1 -1
  47. package/esm2015/modules/list/state/toolbar/remove.action.js +1 -1
  48. package/esm2015/modules/list/state/toolbar/set-exists.action.js +1 -1
  49. package/esm2015/modules/list/state/toolbar/set-type.action.js +1 -1
  50. package/esm2015/modules/list/state/toolbar/show-multiselect-toolbar.action.js +1 -1
  51. package/esm2015/modules/list/state/toolbar/toolbar-item.model.js +1 -1
  52. package/esm2015/modules/list/state/toolbar/toolbar.model.js +1 -1
  53. package/esm2015/modules/list/state/toolbar/toolbar.orchestrator.js +3 -4
  54. package/esm2015/modules/list/state/views/load.action.js +1 -1
  55. package/esm2015/modules/list/state/views/set-active.action.js +1 -1
  56. package/esm2015/modules/list/state/views/view.model.js +1 -1
  57. package/esm2015/modules/list/state/views/views.model.js +1 -1
  58. package/esm2015/modules/list/state/views/views.orchestrator.js +2 -4
  59. package/esm2015/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +25 -14
  60. package/esm2015/modules/list-filters/filter.model.js +1 -1
  61. package/esm2015/modules/list-filters/list-filter-button.component.js +23 -24
  62. package/esm2015/modules/list-filters/list-filter-inline-item-renderer.component.js +24 -24
  63. package/esm2015/modules/list-filters/list-filter-inline-item.component.js +32 -32
  64. package/esm2015/modules/list-filters/list-filter-inline.component.js +28 -26
  65. package/esm2015/modules/list-filters/list-filter-inline.model.js +1 -1
  66. package/esm2015/modules/list-filters/list-filter-summary.component.js +22 -23
  67. package/esm2015/modules/list-filters/list-filters.module.js +33 -27
  68. package/esm2015/modules/list-paging/list-paging.component.js +37 -40
  69. package/esm2015/modules/list-paging/list-paging.module.js +15 -19
  70. package/esm2015/modules/list-toolbar/list-multiselect-toolbar.component.js +45 -41
  71. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +22 -23
  72. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +2 -1
  73. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +22 -20
  74. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +26 -30
  75. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +34 -23
  76. package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +10 -9
  77. package/esm2015/modules/list-toolbar/list-toolbar-item-renderer.component.js +22 -21
  78. package/esm2015/modules/list-toolbar/list-toolbar-item.component.js +23 -24
  79. package/esm2015/modules/list-toolbar/list-toolbar-search-actions.component.js +15 -13
  80. package/esm2015/modules/list-toolbar/list-toolbar-sort.component.js +21 -23
  81. package/esm2015/modules/list-toolbar/list-toolbar-view-actions.component.js +14 -12
  82. package/esm2015/modules/list-toolbar/list-toolbar.component.js +142 -139
  83. package/esm2015/modules/list-toolbar/list-toolbar.module.js +62 -31
  84. package/esm2015/modules/list-toolbar/state/config/config.model.js +1 -1
  85. package/esm2015/modules/list-toolbar/state/config/config.orchestrator.js +2 -4
  86. package/esm2015/modules/list-toolbar/state/config/set-search-enabled.action.js +1 -1
  87. package/esm2015/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +1 -1
  88. package/esm2015/modules/list-toolbar/state/toolbar-state-action.type.js +2 -1
  89. package/esm2015/modules/list-toolbar/state/toolbar-state.model.js +1 -1
  90. package/esm2015/modules/list-toolbar/state/toolbar-state.rxstate.js +9 -8
  91. package/esm2015/modules/list-toolbar/state/toolbar-state.state-node.js +12 -17
  92. package/esm2015/modules/shared/sky-list-builder-resources.module.js +53 -0
  93. package/esm2015/public-api.js +78 -0
  94. package/esm2015/skyux-list-builder.js +2 -23
  95. package/fesm2015/skyux-list-builder.js +992 -915
  96. package/fesm2015/skyux-list-builder.js.map +1 -1
  97. package/modules/list/list.component.d.ts +3 -0
  98. package/modules/list/list.module.d.ts +6 -0
  99. package/modules/list/state/list-state.rxstate.d.ts +3 -0
  100. package/modules/list/state/list-state.state-node.d.ts +3 -0
  101. package/modules/list-filters/list-filter-button.component.d.ts +3 -0
  102. package/modules/list-filters/list-filter-inline-item-renderer.component.d.ts +3 -0
  103. package/modules/list-filters/list-filter-inline-item.component.d.ts +3 -0
  104. package/modules/list-filters/list-filter-inline.component.d.ts +3 -0
  105. package/modules/list-filters/list-filter-summary.component.d.ts +3 -0
  106. package/modules/list-filters/list-filters.module.d.ts +11 -0
  107. package/modules/list-paging/list-paging.component.d.ts +3 -0
  108. package/modules/list-paging/list-paging.module.d.ts +7 -0
  109. package/modules/list-toolbar/list-multiselect-toolbar.component.d.ts +3 -0
  110. package/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.d.ts +3 -0
  111. package/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.d.ts +3 -0
  112. package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.d.ts +3 -0
  113. package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.d.ts +12 -0
  114. package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.d.ts +3 -0
  115. package/modules/list-toolbar/list-toolbar-item-renderer.component.d.ts +3 -0
  116. package/modules/list-toolbar/list-toolbar-item.component.d.ts +3 -0
  117. package/modules/list-toolbar/list-toolbar-search-actions.component.d.ts +3 -0
  118. package/modules/list-toolbar/list-toolbar-sort.component.d.ts +3 -0
  119. package/modules/list-toolbar/list-toolbar-view-actions.component.d.ts +3 -0
  120. package/modules/list-toolbar/list-toolbar.component.d.ts +3 -0
  121. package/modules/list-toolbar/list-toolbar.module.d.ts +20 -0
  122. package/modules/list-toolbar/state/toolbar-state.rxstate.d.ts +3 -0
  123. package/modules/list-toolbar/state/toolbar-state.state-node.d.ts +3 -0
  124. package/modules/shared/sky-list-builder-resources.module.d.ts +14 -0
  125. package/package.json +16 -31
  126. package/{public_api.d.ts → public-api.d.ts} +11 -0
  127. package/skyux-list-builder.d.ts +2 -22
  128. package/CHANGELOG.md +0 -161
  129. package/bundles/skyux-list-builder.umd.min.js +0 -16
  130. package/bundles/skyux-list-builder.umd.min.js.map +0 -1
  131. package/esm2015/modules/shared/list-builder-resources.module.js +0 -17
  132. package/esm2015/plugin-resources/list-builder-resources-provider.js +0 -16
  133. package/esm2015/public_api.js +0 -63
  134. package/esm5/modules/list/list-data-request.model.js +0 -20
  135. package/esm5/modules/list/list-data-response.model.js +0 -11
  136. package/esm5/modules/list/list-data.provider.js +0 -10
  137. package/esm5/modules/list/list-paging.component.js +0 -15
  138. package/esm5/modules/list/list-view.component.js +0 -38
  139. package/esm5/modules/list/list.component.js +0 -337
  140. package/esm5/modules/list/list.module.js +0 -24
  141. package/esm5/modules/list/state/filters/filters.orchestrator.js +0 -22
  142. package/esm5/modules/list/state/filters/update.action.js +0 -11
  143. package/esm5/modules/list/state/items/items.orchestrator.js +0 -55
  144. package/esm5/modules/list/state/items/load.action.js +0 -16
  145. package/esm5/modules/list/state/items/set-items-selected.action.js +0 -15
  146. package/esm5/modules/list/state/items/set-loading.action.js +0 -12
  147. package/esm5/modules/list/state/list-state-action.type.js +0 -1
  148. package/esm5/modules/list/state/list-state.model.js +0 -26
  149. package/esm5/modules/list/state/list-state.rxstate.js +0 -91
  150. package/esm5/modules/list/state/list-state.state-node.js +0 -42
  151. package/esm5/modules/list/state/paging/paging.model.js +0 -16
  152. package/esm5/modules/list/state/paging/paging.orchestrator.js +0 -33
  153. package/esm5/modules/list/state/paging/set-items-per-page.action.js +0 -11
  154. package/esm5/modules/list/state/paging/set-max-pages.action.js +0 -11
  155. package/esm5/modules/list/state/paging/set-page-number.action.js +0 -11
  156. package/esm5/modules/list/state/search/search.model.js +0 -34
  157. package/esm5/modules/list/state/search/search.orchestrator.js +0 -51
  158. package/esm5/modules/list/state/search/set-field-selectors.action.js +0 -12
  159. package/esm5/modules/list/state/search/set-functions.action.js +0 -12
  160. package/esm5/modules/list/state/search/set-options.action.js +0 -13
  161. package/esm5/modules/list/state/search/set-search-text.action.js +0 -11
  162. package/esm5/modules/list/state/selected/load.action.js +0 -11
  163. package/esm5/modules/list/state/selected/selected.model.js +0 -11
  164. package/esm5/modules/list/state/selected/selected.orchestrator.js +0 -62
  165. package/esm5/modules/list/state/selected/set-item-selected.action.js +0 -12
  166. package/esm5/modules/list/state/selected/set-items-selected.action.js +0 -15
  167. package/esm5/modules/list/state/selected/set-loading.action.js +0 -12
  168. package/esm5/modules/list/state/sort/label.model.js +0 -27
  169. package/esm5/modules/list/state/sort/set-available.action.js +0 -11
  170. package/esm5/modules/list/state/sort/set-field-selectors.action.js +0 -11
  171. package/esm5/modules/list/state/sort/set-global.action.js +0 -11
  172. package/esm5/modules/list/state/sort/sort.model.js +0 -29
  173. package/esm5/modules/list/state/sort/sort.orchestrator.js +0 -36
  174. package/esm5/modules/list/state/toolbar/disable.action.js +0 -11
  175. package/esm5/modules/list/state/toolbar/load.action.js +0 -13
  176. package/esm5/modules/list/state/toolbar/remove.action.js +0 -11
  177. package/esm5/modules/list/state/toolbar/set-exists.action.js +0 -11
  178. package/esm5/modules/list/state/toolbar/set-type.action.js +0 -11
  179. package/esm5/modules/list/state/toolbar/show-multiselect-toolbar.action.js +0 -11
  180. package/esm5/modules/list/state/toolbar/toolbar-item.model.js +0 -18
  181. package/esm5/modules/list/state/toolbar/toolbar.model.js +0 -19
  182. package/esm5/modules/list/state/toolbar/toolbar.orchestrator.js +0 -86
  183. package/esm5/modules/list/state/views/load.action.js +0 -11
  184. package/esm5/modules/list/state/views/set-active.action.js +0 -11
  185. package/esm5/modules/list/state/views/view.model.js +0 -12
  186. package/esm5/modules/list/state/views/views.model.js +0 -15
  187. package/esm5/modules/list/state/views/views.orchestrator.js +0 -28
  188. package/esm5/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +0 -157
  189. package/esm5/modules/list-filters/filter.model.js +0 -20
  190. package/esm5/modules/list-filters/list-filter-button.component.js +0 -45
  191. package/esm5/modules/list-filters/list-filter-inline-item-renderer.component.js +0 -37
  192. package/esm5/modules/list-filters/list-filter-inline-item.component.js +0 -50
  193. package/esm5/modules/list-filters/list-filter-inline.component.js +0 -73
  194. package/esm5/modules/list-filters/list-filter-inline.model.js +0 -23
  195. package/esm5/modules/list-filters/list-filter-summary.component.js +0 -62
  196. package/esm5/modules/list-filters/list-filters.module.js +0 -38
  197. package/esm5/modules/list-paging/list-paging.component.js +0 -102
  198. package/esm5/modules/list-paging/list-paging.module.js +0 -26
  199. package/esm5/modules/list-toolbar/list-multiselect-toolbar.component.js +0 -153
  200. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +0 -34
  201. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +0 -1
  202. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +0 -49
  203. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +0 -49
  204. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +0 -38
  205. package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +0 -36
  206. package/esm5/modules/list-toolbar/list-toolbar-item-renderer.component.js +0 -32
  207. package/esm5/modules/list-toolbar/list-toolbar-item.component.js +0 -53
  208. package/esm5/modules/list-toolbar/list-toolbar-search-actions.component.js +0 -20
  209. package/esm5/modules/list-toolbar/list-toolbar-sort.component.js +0 -30
  210. package/esm5/modules/list-toolbar/list-toolbar-view-actions.component.js +0 -22
  211. package/esm5/modules/list-toolbar/list-toolbar.component.js +0 -375
  212. package/esm5/modules/list-toolbar/list-toolbar.module.js +0 -59
  213. package/esm5/modules/list-toolbar/state/config/config.model.js +0 -16
  214. package/esm5/modules/list-toolbar/state/config/config.orchestrator.js +0 -28
  215. package/esm5/modules/list-toolbar/state/config/set-search-enabled.action.js +0 -11
  216. package/esm5/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +0 -13
  217. package/esm5/modules/list-toolbar/state/toolbar-state-action.type.js +0 -1
  218. package/esm5/modules/list-toolbar/state/toolbar-state.model.js +0 -12
  219. package/esm5/modules/list-toolbar/state/toolbar-state.rxstate.js +0 -29
  220. package/esm5/modules/list-toolbar/state/toolbar-state.state-node.js +0 -29
  221. package/esm5/modules/shared/list-builder-resources.module.js +0 -20
  222. package/esm5/plugin-resources/list-builder-resources-provider.js +0 -17
  223. package/esm5/public_api.js +0 -63
  224. package/esm5/skyux-list-builder.js +0 -26
  225. package/fesm5/skyux-list-builder.js +0 -2884
  226. package/fesm5/skyux-list-builder.js.map +0 -1
  227. package/modules/shared/list-builder-resources.module.d.ts +0 -2
  228. package/plugin-resources/list-builder-resources-provider.d.ts +0 -5
  229. package/skyux-list-builder.metadata.json +0 -1
  230. package/src/assets/img/list-toolbar-context.png +0 -0
  231. package/src/assets/img/toolbar-anatomy.png +0 -0
  232. package/src/assets/locales/resources_en_US.json +0 -22
@@ -15,4 +15,4 @@ export class ListDataRequestModel {
15
15
  }
16
16
  }
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxvQkFBb0I7SUErQi9CLFlBQVksSUFBVTtRQU50Qjs7O1dBR0c7UUFDSSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHeEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUNqRDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RGaWx0ZXJNb2RlbCB9IGZyb20gJy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFNlYXJjaE1vZGVsIH0gZnJvbSAnLi9zdGF0ZS9zZWFyY2gvc2VhcmNoLm1vZGVsJztcbmltcG9ydCB7IExpc3RTb3J0TW9kZWwgfSBmcm9tICcuL3N0YXRlL3NvcnQvc29ydC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBMaXN0RGF0YVJlcXVlc3RNb2RlbCB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciBpdGVtcyBhcmUgZmlsdGVyZWQuXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgd2hlbiB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YSBwcm92aWRlci5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXTtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRvIGRpc3BsYXkgcGVyIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgcGFnZVNpemU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY3VycmVudCBwYWdlIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBwYWdlTnVtYmVyOiBudW1iZXI7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBtYW5hZ2UgdGhlIGRhdGEgc291cmNlIHdoZW4gdXNlcnNcbiAgICogY2hhbmdlIHRoZSB0ZXh0IGluIHRoZSBsaXN0IGZpZWxkLiBUaGUgc2VhcmNoIGZ1bmN0aW9uIG11c3QgcmV0dXJuIGFuXG4gICAqIGFycmF5IG9yIGEgcHJvbWlzZSBvZiBhbiBhcnJheS4gVGhlIGBzZWFyY2hgIHByb3BlcnR5IGlzIHBhcnRpY3VsYXJseSB1c2VmdWxcbiAgICogd2hlbiB0aGUgZGF0YSBzb3VyY2UgZG9lcyBub3QgbGl2ZSBpbiB0aGUgc291cmNlIGNvZGUuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoOiBMaXN0U2VhcmNoTW9kZWw7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmllbGRzIHRvIHNvcnQgYnkuXG4gICAqL1xuICBwdWJsaWMgc29ydDogTGlzdFNvcnRNb2RlbDtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHNlYXJjaCBiYXIgYW5kIGZpbHRlciBidXR0b24uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwdWJsaWMgaXNUb29sYmFyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5maWx0ZXJzID0gZGF0YS5maWx0ZXJzO1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IGRhdGEucGFnZVNpemU7XG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSBkYXRhLnBhZ2VOdW1iZXI7XG4gICAgICB0aGlzLnNlYXJjaCA9IGRhdGEuc2VhcmNoO1xuICAgICAgdGhpcy5zb3J0ID0gZGF0YS5zb3J0O1xuICAgICAgdGhpcy5pc1Rvb2xiYXJEaXNhYmxlZCA9IGRhdGEuaXNUb29sYmFyRGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9saXN0LWRhdGEtcmVxdWVzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sb0JBQW9CO0lBK0IvQixZQUFZLElBQVU7UUFOdEI7OztXQUdHO1FBQ0ksc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBR3hDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDakQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IExpc3RTZWFyY2hNb2RlbCB9IGZyb20gJy4vc3RhdGUvc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0U29ydE1vZGVsIH0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NvcnQubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGlzdERhdGFSZXF1ZXN0TW9kZWwge1xuICAvKipcbiAgICogU3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXRlbXMgYXJlIGZpbHRlcmVkLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGEgcHJvdmlkZXIuXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW107XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBpdGVtcyB0byBkaXNwbGF5IHBlciBwYWdlLlxuICAgKi9cbiAgcHVibGljIHBhZ2VTaXplOiBudW1iZXI7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIuXG4gICAqL1xuICBwdWJsaWMgcGFnZU51bWJlcjogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gZHluYW1pY2FsbHkgbWFuYWdlIHRoZSBkYXRhIHNvdXJjZSB3aGVuIHVzZXJzXG4gICAqIGNoYW5nZSB0aGUgdGV4dCBpbiB0aGUgbGlzdCBmaWVsZC4gVGhlIHNlYXJjaCBmdW5jdGlvbiBtdXN0IHJldHVybiBhblxuICAgKiBhcnJheSBvciBhIHByb21pc2Ugb2YgYW4gYXJyYXkuIFRoZSBgc2VhcmNoYCBwcm9wZXJ0eSBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsXG4gICAqIHdoZW4gdGhlIGRhdGEgc291cmNlIGRvZXMgbm90IGxpdmUgaW4gdGhlIHNvdXJjZSBjb2RlLlxuICAgKi9cbiAgcHVibGljIHNlYXJjaDogTGlzdFNlYXJjaE1vZGVsO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2V0IG9mIGZpZWxkcyB0byBzb3J0IGJ5LlxuICAgKi9cbiAgcHVibGljIHNvcnQ6IExpc3RTb3J0TW9kZWw7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBzZWFyY2ggYmFyIGFuZCBmaWx0ZXIgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIGlzVG9vbGJhckRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IGRhdGEuZmlsdGVycztcbiAgICAgIHRoaXMucGFnZVNpemUgPSBkYXRhLnBhZ2VTaXplO1xuICAgICAgdGhpcy5wYWdlTnVtYmVyID0gZGF0YS5wYWdlTnVtYmVyO1xuICAgICAgdGhpcy5zZWFyY2ggPSBkYXRhLnNlYXJjaDtcbiAgICAgIHRoaXMuc29ydCA9IGRhdGEuc29ydDtcbiAgICAgIHRoaXMuaXNUb29sYmFyRGlzYWJsZWQgPSBkYXRhLmlzVG9vbGJhckRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -6,4 +6,4 @@ export class ListDataResponseModel {
6
6
  }
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LWRhdGEtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUMsTUFBTSxPQUFPLHFCQUFxQjtJQVdoQyxZQUFZLElBQVU7UUFDcEIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMaXN0SXRlbU1vZGVsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuIGV4cG9ydCBjbGFzcyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwge1xuICAgLyoqXG4gICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGxpc3QuXG4gICAgKi9cbiAgIHB1YmxpYyBjb3VudDogbnVtYmVyO1xuICAgLyoqXG4gICAgKiBBbiBhcnJheSBvZiB0aGUgaXRlbXMgcmV0dXJuZWQuIEZvciBpbmZvcm1hdGlvbiBhYm91dCBgTGlzdEl0ZW1Nb2RlbGAsIHNlZSB0aGVcbiAgICAqIFtzaGFyZWQgY2xhc3NlcyBmb3IgbGlzdHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtbGlzdC1idWlsZGVyLWNvbW1vbi9kb2NzL2xpc3QtYnVpbGRlci1jb21tb24pLlxuICAgICovXG4gICBwdWJsaWMgaXRlbXM6IExpc3RJdGVtTW9kZWxbXTtcblxuICAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgdGhpcy5jb3VudCA9IGRhdGEuY291bnQ7XG4gICAgICAgdGhpcy5pdGVtcyA9IGRhdGEuaXRlbXM7XG4gICAgIH1cbiAgIH1cbiB9XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBWSxJQUFVO1FBQ3BCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdEl0ZW1Nb2RlbCB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIExpc3REYXRhUmVzcG9uc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgY291bnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHRoZSBpdGVtcyByZXR1cm5lZC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IGBMaXN0SXRlbU1vZGVsYCwgc2VlIHRoZVxuICAgKiBbc2hhcmVkIGNsYXNzZXMgZm9yIGxpc3RzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LWxpc3QtYnVpbGRlci1jb21tb24vZG9jcy9saXN0LWJ1aWxkZXItY29tbW9uKS5cbiAgICovXG4gIHB1YmxpYyBpdGVtczogTGlzdEl0ZW1Nb2RlbFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgIHRoaXMuaXRlbXMgPSBkYXRhLml0ZW1zO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -4,4 +4,4 @@
4
4
  export class ListDataProvider {
5
5
  constructor(data) { }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LWRhdGEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGdCQUFnQjtJQUNwQyxZQUFZLElBQTZCLElBQUcsQ0FBQztDQUs5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9ic2VydmFibGVcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExpc3REYXRhUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi9saXN0LWRhdGEtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXNwb25zZS5tb2RlbCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0RGF0YVByb3ZpZGVyIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IE9ic2VydmFibGU8QXJyYXk8YW55Pj4pIHt9XG5cbiAgcHVibGljIGFic3RyYWN0IGdldChyZXF1ZXN0OiBMaXN0RGF0YVJlcXVlc3RNb2RlbCk6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgY291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+O1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1kYXRhLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixnQkFBZ0I7SUFDcEMsWUFBWSxJQUE2QixJQUFHLENBQUM7Q0FPOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExpc3REYXRhUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi9saXN0LWRhdGEtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXNwb25zZS5tb2RlbCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0RGF0YVByb3ZpZGVyIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IE9ic2VydmFibGU8QXJyYXk8YW55Pj4pIHt9XG5cbiAgcHVibGljIGFic3RyYWN0IGdldChcbiAgICByZXF1ZXN0OiBMaXN0RGF0YVJlcXVlc3RNb2RlbFxuICApOiBPYnNlcnZhYmxlPExpc3REYXRhUmVzcG9uc2VNb2RlbD47XG5cbiAgcHVibGljIGFic3RyYWN0IGNvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPjtcbn1cbiJdfQ==
@@ -10,4 +10,4 @@ export class ListPagingComponent {
10
10
  this.dispatcher = dispatcher;
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LXBhZ2luZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSxNQUFNLENBQUM7QUFLZDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtJQUt2QyxZQUFZLEtBQWdCLEVBQUUsVUFBK0I7UUFKbkQsZ0JBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLM0UsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMaXN0U3RhdGUgfSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUuc3RhdGUtbm9kZSc7XG5pbXBvcnQgeyBMaXN0U3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnJ4c3RhdGUnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgU0tZIFVYLXRoZW1lZCBwYWdpbmF0aW9uIGNvbnRyb2wgdG8gZGlzcGxheSBsaXN0IGRhdGEgYWNyb3NzIG11bHRpcGxlIHBhZ2VzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0UGFnaW5nQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHN0YXRlOiBMaXN0U3RhdGU7XG4gIHByb3RlY3RlZCBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXRlOiBMaXN0U3RhdGUsIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXIpIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgfVxufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyL3NyYy9tb2R1bGVzL2xpc3QvbGlzdC1wYWdpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLdkM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixtQkFBbUI7SUFLdkMsWUFBWSxLQUFnQixFQUFFLFVBQStCO1FBSm5ELGdCQUFXLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSzNFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMaXN0U3RhdGUgfSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUuc3RhdGUtbm9kZSc7XG5pbXBvcnQgeyBMaXN0U3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnJ4c3RhdGUnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgU0tZIFVYLXRoZW1lZCBwYWdpbmF0aW9uIGNvbnRyb2wgdG8gZGlzcGxheSBsaXN0IGRhdGEgYWNyb3NzIG11bHRpcGxlIHBhZ2VzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0UGFnaW5nQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHN0YXRlOiBMaXN0U3RhdGU7XG4gIHByb3RlY3RlZCBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXRlOiBMaXN0U3RhdGUsIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXIpIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgfVxufVxuIl19
@@ -8,9 +8,12 @@ export class ListViewComponent {
8
8
  this.viewId = `sky-list-view-cmp-${++idIndex}`;
9
9
  this.state = state;
10
10
  this.viewName = defaultName;
11
- this.hasToolbar = this.state.pipe(observableMap(s => s.toolbar.exists));
12
- this.active = this.state.pipe(observableMap(s => s.views.active === this.viewId));
13
- this.active.pipe(distinctUntilChanged()).subscribe(isActive => isActive ? this.onViewActive() : this.onViewInactive());
11
+ /* istanbul ignore next */
12
+ this.hasToolbar = this.state.pipe(observableMap((s) => s.toolbar.exists));
13
+ this.active = this.state.pipe(observableMap((s) => s.views.active === this.viewId));
14
+ this.active
15
+ .pipe(distinctUntilChanged())
16
+ .subscribe((isActive) => isActive ? this.onViewActive() : this.onViewInactive());
14
17
  }
15
18
  get id() {
16
19
  return this.viewId;
@@ -19,9 +22,7 @@ export class ListViewComponent {
19
22
  return this.viewName;
20
23
  }
21
24
  /* istanbul ignore next */
22
- onViewActive() {
23
- }
24
- onViewInactive() {
25
- }
25
+ onViewActive() { }
26
+ onViewInactive() { }
26
27
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9saXN0LWJ1aWxkZXIvIiwic291cmNlcyI6WyJtb2R1bGVzL2xpc3QvbGlzdC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsSUFBSSxhQUFhLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixpQkFBaUI7SUFTckMsWUFBWSxLQUFnQixFQUFFLFdBQW1CO1FBRnpDLFdBQU0sR0FBVyxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUd4RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUU1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMvQixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUNyQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDM0IsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNuRCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQyxTQUFTLENBQ1QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsWUFBWTtJQUNuQixDQUFDO0lBRU0sY0FBYztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMaXN0U3RhdGUgfSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUuc3RhdGUtbm9kZSc7XG5pbXBvcnQgeyBTa3lMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbGlzdC9saXN0LmNvbXBvbmVudCc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3RWaWV3Q29tcG9uZW50IHtcbiAgcHVibGljIGFjdGl2ZTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcm90ZWN0ZWQgdmlld05hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHN0YXRlOiBMaXN0U3RhdGU7XG4gIHByb3RlY3RlZCBsaXN0OiBTa3lMaXN0Q29tcG9uZW50O1xuICBwcm90ZWN0ZWQgaGFzVG9vbGJhcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSB2aWV3SWQ6IHN0cmluZyA9IGBza3ktbGlzdC12aWV3LWNtcC0keysraWRJbmRleH1gO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXRlOiBMaXN0U3RhdGUsIGRlZmF1bHROYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy52aWV3TmFtZSA9IGRlZmF1bHROYW1lO1xuXG4gICAgdGhpcy5oYXNUb29sYmFyID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcChzID0+IHMudG9vbGJhci5leGlzdHMpXG4gICAgKTtcblxuICAgIHRoaXMuYWN0aXZlID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcChzID0+IHMudmlld3MuYWN0aXZlID09PSB0aGlzLnZpZXdJZClcbiAgICApO1xuXG4gICAgdGhpcy5hY3RpdmUucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGlzQWN0aXZlID0+IGlzQWN0aXZlID8gdGhpcy5vblZpZXdBY3RpdmUoKSA6IHRoaXMub25WaWV3SW5hY3RpdmUoKVxuICAgICk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlld0lkO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdOYW1lO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIG9uVmlld0FjdGl2ZSgpIHtcbiAgfVxuXG4gIHB1YmxpYyBvblZpZXdJbmFjdGl2ZSgpIHtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L2xpc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1RSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFFaEI7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFpQjtJQVNyQyxZQUFZLEtBQWdCLEVBQUUsV0FBbUI7UUFGekMsV0FBTSxHQUFXLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBR3hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBRTVCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzNCLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU07YUFDUixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN0QixRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUN2RCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsWUFBWSxLQUFJLENBQUM7SUFFakIsY0FBYyxLQUFJLENBQUM7Q0FDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgYXMgb2JzZXJ2YWJsZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTGlzdFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgU2t5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0Vmlld0NvbXBvbmVudCB7XG4gIHB1YmxpYyBhY3RpdmU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJvdGVjdGVkIHZpZXdOYW1lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBzdGF0ZTogTGlzdFN0YXRlO1xuICBwcm90ZWN0ZWQgbGlzdDogU2t5TGlzdENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIGhhc1Rvb2xiYXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgdmlld0lkOiBzdHJpbmcgPSBgc2t5LWxpc3Qtdmlldy1jbXAtJHsrK2lkSW5kZXh9YDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZTogTGlzdFN0YXRlLCBkZWZhdWx0TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMudmlld05hbWUgPSBkZWZhdWx0TmFtZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdGhpcy5oYXNUb29sYmFyID0gdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAoKHMpID0+IHMudG9vbGJhci5leGlzdHMpKTtcblxuICAgIHRoaXMuYWN0aXZlID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy52aWV3cy5hY3RpdmUgPT09IHRoaXMudmlld0lkKVxuICAgICk7XG5cbiAgICB0aGlzLmFjdGl2ZVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGlzQWN0aXZlKSA9PlxuICAgICAgICBpc0FjdGl2ZSA/IHRoaXMub25WaWV3QWN0aXZlKCkgOiB0aGlzLm9uVmlld0luYWN0aXZlKClcbiAgICAgICk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlld0lkO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdOYW1lO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIG9uVmlld0FjdGl2ZSgpIHt9XG5cbiAgcHVibGljIG9uVmlld0luYWN0aXZlKCkge31cbn1cbiJdfQ==
@@ -1,7 +1,6 @@
1
- import { __decorate } from "tslib";
2
- import { combineLatest as observableCombineLatest, of as observableOf, Subject } from 'rxjs';
3
- import { distinctUntilChanged, flatMap, map as observableMap, skip, take, takeUntil } from 'rxjs/operators';
4
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
1
+ import { combineLatest as observableCombineLatest, of as observableOf, Subject, } from 'rxjs';
2
+ import { distinctUntilChanged, flatMap, map as observableMap, skip, take, takeUntil, } from 'rxjs/operators';
3
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
5
4
  import { getValue } from '@skyux/list-builder-common';
6
5
  import { ListItemsLoadAction } from './state/items/load.action';
7
6
  import { ListItemsSetLoadingAction } from './state/items/set-loading.action';
@@ -14,14 +13,17 @@ import { ListDataResponseModel } from './list-data-response.model';
14
13
  import { SkyListInMemoryDataProvider } from '../list-data-provider-in-memory/list-data-in-memory.provider';
15
14
  import { ListState } from './state/list-state.state-node';
16
15
  import { ListStateDispatcher } from './state/list-state.rxstate';
17
- import { isObservable, ListItemModel } from '@skyux/list-builder-common';
16
+ import { isObservable, ListItemModel, } from '@skyux/list-builder-common';
18
17
  import { ListViewComponent } from './list-view.component';
19
18
  import { ListPagingSetPageNumberAction } from './state/paging/set-page-number.action';
20
19
  import { ListViewsLoadAction } from './state/views/load.action';
21
20
  import { ListViewsSetActiveAction } from './state/views/set-active.action';
22
21
  import { ListViewModel } from './state/views/view.model';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "./state/list-state.state-node";
24
+ import * as i2 from "./state/list-state.rxstate";
23
25
  let idIndex = 0;
24
- let SkyListComponent = class SkyListComponent {
26
+ export class SkyListComponent {
25
27
  constructor(state, dispatcher) {
26
28
  this.state = state;
27
29
  this.dispatcher = dispatcher;
@@ -50,7 +52,6 @@ let SkyListComponent = class SkyListComponent {
50
52
  * Emits the filters applied to the list.
51
53
  */
52
54
  this.appliedFiltersChange = new EventEmitter();
53
- /* tslint:enable */
54
55
  this.dataFirstLoad = false;
55
56
  this.lastSelectedIds = [];
56
57
  this.lastFilters = [];
@@ -61,8 +62,10 @@ let SkyListComponent = class SkyListComponent {
61
62
  this.dataFirstLoad = true;
62
63
  }
63
64
  if (this.listViews.length > 0) {
64
- let defaultView = (this.defaultView === undefined) ? this.listViews.first : this.defaultView;
65
- this.dispatcher.next(new ListViewsLoadAction(this.listViews.map(v => new ListViewModel(v.id, v.label))));
65
+ let defaultView = this.defaultView === undefined
66
+ ? this.listViews.first
67
+ : this.defaultView;
68
+ this.dispatcher.next(new ListViewsLoadAction(this.listViews.map((v) => new ListViewModel(v.id, v.label))));
66
69
  // activate the default view
67
70
  this.dispatcher.next(new ListViewsSetActiveAction(defaultView.id));
68
71
  }
@@ -80,14 +83,14 @@ let SkyListComponent = class SkyListComponent {
80
83
  }
81
84
  this.dispatcher.next(new ListSortSetFieldSelectorsAction(sortArray || []));
82
85
  });
83
- this.displayedItems.subscribe(result => {
86
+ this.displayedItems.subscribe((result) => {
84
87
  this.dispatcher.next(new ListItemsSetLoadingAction());
85
88
  this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
86
89
  });
87
90
  // Watch for selection changes.
88
91
  this.state
89
- .pipe(observableMap(current => current.selected), takeUntil(this.ngUnsubscribe), distinctUntilChanged())
90
- .subscribe(selected => {
92
+ .pipe(observableMap((current) => current.selected), takeUntil(this.ngUnsubscribe), distinctUntilChanged())
93
+ .subscribe((selected) => {
91
94
  // Update lastSelectedIds to help us retain user selections.
92
95
  let selectedIdsList = [];
93
96
  selected.item.selectedIdMap.forEach((value, key) => {
@@ -104,7 +107,7 @@ let SkyListComponent = class SkyListComponent {
104
107
  });
105
108
  if (this.appliedFiltersChange.observers.length > 0) {
106
109
  this.state
107
- .pipe(observableMap(current => current.filters), takeUntil(this.ngUnsubscribe), skip(1))
110
+ .pipe(observableMap((current) => current.filters), takeUntil(this.ngUnsubscribe), skip(1))
108
111
  .subscribe((filters) => {
109
112
  /**
110
113
  * We are doing this instead of a distinctUntilChange due to memory allocation issues
@@ -120,9 +123,11 @@ let SkyListComponent = class SkyListComponent {
120
123
  }
121
124
  ngOnChanges(changes) {
122
125
  if (changes['appliedFilters'] &&
123
- changes['appliedFilters'].currentValue !== changes['appliedFilters'].previousValue) {
126
+ changes['appliedFilters'].currentValue !==
127
+ changes['appliedFilters'].previousValue) {
124
128
  this.state.pipe(take(1)).subscribe((currentState) => {
125
- if (currentState.paging.pageNumber && currentState.paging.pageNumber !== 1) {
129
+ if (currentState.paging.pageNumber &&
130
+ currentState.paging.pageNumber !== 1) {
126
131
  this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
127
132
  }
128
133
  this.dispatcher.filtersUpdate(this.appliedFilters);
@@ -167,17 +172,17 @@ let SkyListComponent = class SkyListComponent {
167
172
  // with adding a debounce time to the Observable which watches for state changes.
168
173
  let cancelLastRequest = new Subject();
169
174
  return observableCombineLatest([
170
- this.state.pipe(observableMap(s => s.filters), distinctUntilChanged()),
171
- this.state.pipe(observableMap(s => s.search), distinctUntilChanged()),
172
- this.state.pipe(observableMap(s => s.sort.fieldSelectors), distinctUntilChanged()),
173
- this.state.pipe(observableMap(s => s.paging.itemsPerPage), distinctUntilChanged()),
174
- this.state.pipe(observableMap(s => s.paging.pageNumber), distinctUntilChanged()),
175
- this.state.pipe(observableMap(s => s.toolbar.disabled), distinctUntilChanged()),
176
- selectedIds.pipe(distinctUntilChanged(), observableMap(selected => {
175
+ this.state.pipe(observableMap((s) => s.filters), distinctUntilChanged()),
176
+ this.state.pipe(observableMap((s) => s.search), distinctUntilChanged()),
177
+ this.state.pipe(observableMap((s) => s.sort.fieldSelectors), distinctUntilChanged()),
178
+ this.state.pipe(observableMap((s) => s.paging.itemsPerPage), distinctUntilChanged()),
179
+ this.state.pipe(observableMap((s) => s.paging.pageNumber), distinctUntilChanged()),
180
+ this.state.pipe(observableMap((s) => s.toolbar.disabled), distinctUntilChanged()),
181
+ selectedIds.pipe(distinctUntilChanged(), observableMap((selected) => {
177
182
  selectedChanged = true;
178
183
  return selected;
179
184
  })),
180
- data.pipe(distinctUntilChanged())
185
+ data.pipe(distinctUntilChanged()),
181
186
  ], (filters, search, sortFieldSelectors, itemsPerPage, pageNumber, isToolbarDisabled, selected, itemsData) => {
182
187
  cancelLastRequest.next();
183
188
  cancelLastRequest.complete();
@@ -190,44 +195,44 @@ let SkyListComponent = class SkyListComponent {
190
195
  let response;
191
196
  if (this.dataFirstLoad) {
192
197
  this.dataFirstLoad = false;
193
- let initialItems = itemsData.map(d => new ListItemModel(d.id || `sky-list-item-model-${++idIndex}`, d));
198
+ let initialItems = itemsData.map((d) => new ListItemModel(d.id || `sky-list-item-model-${++idIndex}`, d));
194
199
  response = observableOf(new ListDataResponseModel({
195
200
  count: this.initialTotal,
196
- items: initialItems
201
+ items: initialItems,
197
202
  })).pipe(takeUntil(cancelLastRequest));
198
203
  }
199
204
  else {
200
- response = this.dataProvider.get(new ListDataRequestModel({
205
+ response = this.dataProvider
206
+ .get(new ListDataRequestModel({
201
207
  filters: filters,
202
208
  pageSize: itemsPerPage,
203
209
  pageNumber: pageNumber,
204
210
  search: search,
205
211
  sort: new ListSortModel({ fieldSelectors: sortFieldSelectors }),
206
- isToolbarDisabled: isToolbarDisabled
207
- })).pipe(takeUntil(cancelLastRequest));
212
+ isToolbarDisabled: isToolbarDisabled,
213
+ }))
214
+ .pipe(takeUntil(cancelLastRequest));
208
215
  }
209
216
  return response;
210
- })
211
- .pipe(takeUntil(this.ngUnsubscribe),
217
+ }).pipe(takeUntil(this.ngUnsubscribe),
212
218
  // Retain user selections from previous state.
213
219
  // This is only necessary for grids component (based on item.isSelected).
214
- observableMap(response => {
215
- return response.pipe(observableMap(listDataResponseModel => {
220
+ observableMap((response) => {
221
+ return response.pipe(observableMap((listDataResponseModel) => {
216
222
  return new ListDataResponseModel({
217
223
  count: listDataResponseModel.count,
218
- items: this.getItemsAndRetainSelections(listDataResponseModel.items, this.lastSelectedIds)
224
+ items: this.getItemsAndRetainSelections(listDataResponseModel.items, this.lastSelectedIds),
219
225
  });
220
226
  }));
221
- }), flatMap(value => value));
227
+ }), flatMap((value) => value));
222
228
  }
223
229
  get selectedItems() {
224
- return observableCombineLatest(this.state.pipe(observableMap(current => current.items.items), distinctUntilChanged()), this.state.pipe(observableMap(current => current.selected), distinctUntilChanged()), (items, selected) => {
225
- return items.filter(i => selected.item.selectedIdMap.get(i.id));
230
+ return observableCombineLatest(this.state.pipe(observableMap((current) => current.items.items), distinctUntilChanged()), this.state.pipe(observableMap((current) => current.selected), distinctUntilChanged()), (items, selected) => {
231
+ return items.filter((i) => selected.item.selectedIdMap.get(i.id));
226
232
  }).pipe(takeUntil(this.ngUnsubscribe));
227
233
  }
228
234
  get lastUpdate() {
229
- return this.state
230
- .pipe(takeUntil(this.ngUnsubscribe), observableMap(s => s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined));
235
+ return this.state.pipe(takeUntil(this.ngUnsubscribe), observableMap((s) => s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined));
231
236
  }
232
237
  get views() {
233
238
  return this.listViews.toArray();
@@ -237,7 +242,7 @@ let SkyListComponent = class SkyListComponent {
237
242
  }
238
243
  getItemsAndRetainSelections(newList, selectedIds) {
239
244
  let updatedListModel = newList.slice();
240
- updatedListModel.forEach(item => {
245
+ updatedListModel.forEach((item) => {
241
246
  item.isSelected = selectedIds.indexOf(item.id) > -1 ? true : false;
242
247
  });
243
248
  return updatedListModel;
@@ -260,51 +265,40 @@ let SkyListComponent = class SkyListComponent {
260
265
  }
261
266
  return true;
262
267
  }
263
- };
264
- SkyListComponent.ctorParameters = () => [
265
- { type: ListState },
266
- { type: ListStateDispatcher }
267
- ];
268
- __decorate([
269
- Input()
270
- ], SkyListComponent.prototype, "data", void 0);
271
- __decorate([
272
- Input()
273
- ], SkyListComponent.prototype, "dataProvider", void 0);
274
- __decorate([
275
- Input()
276
- ], SkyListComponent.prototype, "defaultView", void 0);
277
- __decorate([
278
- Input()
279
- ], SkyListComponent.prototype, "initialTotal", void 0);
280
- __decorate([
281
- Input()
282
- ], SkyListComponent.prototype, "selectedIds", void 0);
283
- __decorate([
284
- Input()
285
- ], SkyListComponent.prototype, "sortFields", void 0);
286
- __decorate([
287
- Input()
288
- ], SkyListComponent.prototype, "appliedFilters", void 0);
289
- __decorate([
290
- Output()
291
- ], SkyListComponent.prototype, "selectedIdsChange", void 0);
292
- __decorate([
293
- Output()
294
- ], SkyListComponent.prototype, "appliedFiltersChange", void 0);
295
- __decorate([
296
- Input('search')
297
- ], SkyListComponent.prototype, "searchFunction", void 0);
298
- __decorate([
299
- ContentChildren(ListViewComponent)
300
- ], SkyListComponent.prototype, "listViews", void 0);
301
- SkyListComponent = __decorate([
302
- Component({
303
- selector: 'sky-list',
304
- template: '<ng-content></ng-content>',
305
- providers: [ListState, ListStateDispatcher],
306
- changeDetection: ChangeDetectionStrategy.OnPush
307
- })
308
- ], SkyListComponent);
309
- export { SkyListComponent };
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsYUFBYSxJQUFJLHVCQUF1QixFQUV4QyxFQUFFLElBQUksWUFBWSxFQUNsQixPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFLUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUwsUUFBUSxFQUNULE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLHFDQUFxQyxDQUFDO0FBTTdDLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0seUNBQXlDLENBQUM7QUFNakQsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQU1wQyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0sOERBQThELENBQUM7QUFFdEUsT0FBTyxF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bWJpbmVMYXRlc3QgYXMgb2JzZXJ2YWJsZUNvbWJpbmVMYXRlc3QsXG4gIE9ic2VydmFibGUsXG4gIG9mIGFzIG9ic2VydmFibGVPZixcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZsYXRNYXAsXG4gIG1hcCBhcyBvYnNlcnZhYmxlTWFwLFxuICBza2lwLFxuICB0YWtlLFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQXN5bmNJdGVtLFxuICBnZXRWYWx1ZVxufSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc0xvYWRBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9zZXQtbG9hZGluZy5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VsZWN0ZWRMb2FkQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvbG9hZC5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvc2V0LWxvYWRpbmcuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFNlbGVjdGVkTW9kZWxcbn0gZnJvbSAnLi9zdGF0ZS9zZWxlY3RlZC9zZWxlY3RlZC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3RTb3J0TW9kZWxcbn0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NvcnQubW9kZWwnO1xuXG5pbXBvcnQge1xuICBMaXN0U29ydFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvc29ydC9zZXQtZmllbGQtc2VsZWN0b3JzLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RGaWx0ZXJNb2RlbFxufSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdERhdGFSZXF1ZXN0TW9kZWxcbn0gZnJvbSAnLi9saXN0LWRhdGEtcmVxdWVzdC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3REYXRhUmVzcG9uc2VNb2RlbFxufSBmcm9tICcuL2xpc3QtZGF0YS1yZXNwb25zZS5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3REYXRhUHJvdmlkZXJcbn0gZnJvbSAnLi9saXN0LWRhdGEucHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXJcbn0gZnJvbSAnLi4vbGlzdC1kYXRhLXByb3ZpZGVyLWluLW1lbW9yeS9saXN0LWRhdGEtaW4tbWVtb3J5LnByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgTGlzdFN0YXRlXG59IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcblxuaW1wb3J0IHtcbiAgTGlzdFN0YXRlRGlzcGF0Y2hlclxufSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5cbmltcG9ydCB7XG4gIGlzT2JzZXJ2YWJsZSxcbiAgTGlzdEl0ZW1Nb2RlbCxcbiAgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQge1xuICBMaXN0Vmlld0NvbXBvbmVudFxufSBmcm9tICcuL2xpc3Qtdmlldy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBMaXN0UGFnaW5nU2V0UGFnZU51bWJlckFjdGlvblxufSBmcm9tICcuL3N0YXRlL3BhZ2luZy9zZXQtcGFnZS1udW1iZXIuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFNlYXJjaE1vZGVsXG59IGZyb20gJy4vc3RhdGUvc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3RWaWV3c0xvYWRBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS92aWV3cy9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RWaWV3c1NldEFjdGl2ZUFjdGlvblxufSBmcm9tICcuL3N0YXRlL3ZpZXdzL3NldC1hY3RpdmUuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFZpZXdNb2RlbFxufSBmcm9tICcuL3N0YXRlL3ZpZXdzL3ZpZXcubW9kZWwnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0JyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgcHJvdmlkZXJzOiBbTGlzdFN0YXRlLCBMaXN0U3RhdGVEaXNwYXRjaGVyXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHVibGljIGlkOiBzdHJpbmcgPSBgc2t5LWxpc3QtY21wLSR7KytpZEluZGV4fWA7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRhdGEgdG8gZGlzcGxheS4gVGhlIGxpc3QgY29tcG9uZW50IHJlcXVpcmVzIHRoaXMgcHJvcGVydHkgb3IgdGhlXG4gICAqIGBkYXRhUHJvdmlkZXJgIHByb3BlcnR5LiBGb3IgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWRzLCBlYWNoIHJvdyByZXF1aXJlcyBhblxuICAgKiBgaWRgIHByb3BlcnR5IHRvIG1hbmFnZSBzZWxlY3RlZCBpdGVtcyB3aXRoIHRoZSBgc2VsZWN0ZWRJZHNgIGlucHV0IGFuZCB0aGVcbiAgICogYHNlbGVjdGVkSWRzQ2hhbmdlYCBldmVudC4gSWYgeW91IGRvIG5vdCBwcm92aWRlIGFuIGBpZGAsIHRoZSBsaXN0IGF1dG9tYXRpY2FsbHlcbiAgICogZ2VuZXJhdGVzIG9uZS4gVG8gdXBkYXRlIGRhdGEgaW4geW91ciB2aWV3IG91dHNpZGUgb2YgYSBgZGF0YVByb3ZpZGVyYCwgeW91IG11c3QgdXNlXG4gICAqIGFuIG9ic2VydmFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBhcnJheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhPzogQXJyYXk8YW55PiB8IE9ic2VydmFibGU8QXJyYXk8YW55Pj4gPSBbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgZGF0YSBwcm92aWRlciB0byBvYnRhaW4gdGhlIGRhdGEgdG8gZGlzcGxheS4gVGhlIGxpc3QgY29tcG9uZW50IHJlcXVpcmVzXG4gICAqIHRoaXMgcHJvcGVydHkgb3IgdGhlIGBkYXRhYCBwcm9wZXJ0eS4gRm9yIGxpc3RzIHRoYXQgdXNlIGBkYXRhUHJvdmlkZXJgIGluc3RlYWQgb2YgYGRhdGFgLFxuICAgKiBjb25zdW1lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhbGwgYExpc3REYXRhUmVxdWVzdE1vZGVsYCBwcm9wZXJ0aWVzLlxuICAgKiBAZGVmYXVsdCBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBMaXN0RGF0YVByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Vmlldz86IExpc3RWaWV3Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBmb3IgdGhlIGluaXRpYWwgZGF0YSBzZXQgd2hlbiBpbml0aWFsaXplZC4gV2hlblxuICAgKiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYGRhdGFgIGFuZCBgZGF0YVByb3ZpZGVyYCwgaXQgYWxsb3dzIGFuIGluaXRpYWwgZGF0YSB0byBiZVxuICAgKiBzZXQgd2l0aCB0aGUgbmVlZCB0byBjYWxsIHRoZSBgZGF0YVByb3ZpZGVyYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbml0aWFsVG90YWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBJRHMgZm9yIHRoZSBpdGVtcyB0byBzZWxlY3QgaW4gYSBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZC5cbiAgICogVGhlIElEcyBtYXRjaCB0aGUgYGlkYCBwcm9wZXJ0aWVzIG9mIHRoZSBgZGF0YWAgb2JqZWN0cy4gSXRlbXMgd2l0aCBJRHMgdGhhdCBhcmUgbm90XG4gICAqIGluY2x1ZGVkIGFyZSBkZS1zZWxlY3RlZCBpbiB0aGUgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRJZHM/OiBBcnJheTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2V0IG9mIGZpZWxkcyB0byBzb3J0IGJ5LiBJZiBhcnJheSBvZiBmaWVsZHMgdGhlbiBzb3J0ZWQgYnkgb3JkZXIgb2YgYXJyYXkuXG4gICAqIEZvciBpbmZvcm1hdGlvbiBhYm91dCBgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxgLCBzZWUgdGhlXG4gICAqIFtzaGFyZWQgY2xhc3NlcyBmb3IgbGlzdHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtbGlzdC1idWlsZGVyLWNvbW1vbi9kb2NzL2xpc3QtYnVpbGRlci1jb21tb24pLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNvcnRGaWVsZHM/OiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbCB8XG4gICAgQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+IHxcbiAgICBPYnNlcnZhYmxlPEFycmF5PExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPj4gfFxuICAgIE9ic2VydmFibGU8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmlsdGVycyB0byBhcHBseSB0byBsaXN0IGRhdGEuXG4gICAqIFRoZXNlIGZpbHRlcnMgY3JlYXRlIGEgZmlsdGVyIHN1bW1hcnkgd2hlbiB0aGUgbGlzdCBpbmNsdWRlcyB0aGVcbiAgICogW2Bza3ktbGlzdC1maWx0ZXItc3VtbWFyeWBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9saXN0L2ZpbHRlcnMpXG4gICAqIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBsaWVkRmlsdGVyczogQXJyYXk8TGlzdEZpbHRlck1vZGVsPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBGb3IgbGlzdCB2aWV3cyB0aGF0IHN1cHBvcnQgaXRlbSBzZWxlY3Rpb24sIGVtaXRzIHRoZSBzZWxlY3RlZCBlbnRyaWVzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZElkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWFwPHN0cmluZywgYm9vbGVhbj4+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBmaWx0ZXJzIGFwcGxpZWQgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0RmlsdGVyTW9kZWw+PigpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0byBhcHBseSBhcyBhIGdsb2JhbCBzb3J0IG9uIHRoZSBsaXN0LlxuICAgKi9cbiAgLyogdHNsaW50OmRpc2FibGUgKi9cbiAgQElucHV0KCdzZWFyY2gnKVxuICBwdWJsaWMgc2VhcmNoRnVuY3Rpb246IChkYXRhOiBhbnksIHNlYXJjaFRleHQ6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xuXG4gIHByaXZhdGUgZGF0YUZpcnN0TG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdFZpZXdDb21wb25lbnQpXG4gIHByaXZhdGUgbGlzdFZpZXdzOiBRdWVyeUxpc3Q8TGlzdFZpZXdDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgbGFzdEZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdID0gW107XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlOiBMaXN0U3RhdGUsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyXG4gICkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMuaW5pdGlhbFRvdGFsKSB7XG4gICAgICB0aGlzLmRhdGFGaXJzdExvYWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpc3RWaWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmYXVsdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50ID1cbiAgICAgICAgKHRoaXMuZGVmYXVsdFZpZXcgPT09IHVuZGVmaW5lZCkgPyB0aGlzLmxpc3RWaWV3cy5maXJzdCA6IHRoaXMuZGVmYXVsdFZpZXc7XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdFZpZXdzTG9hZEFjdGlvbih0aGlzLmxpc3RWaWV3cy5tYXAodiA9PiBuZXcgTGlzdFZpZXdNb2RlbCh2LmlkLCB2LmxhYmVsKSkpXG4gICAgICApO1xuXG4gICAgICAvLyBhY3RpdmF0ZSB0aGUgZGVmYXVsdCB2aWV3XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uKGRlZmF1bHRWaWV3LmlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzZXQgc29ydCBmaWVsZHNcbiAgICBnZXRWYWx1ZSh0aGlzLnNvcnRGaWVsZHMsXG4gICAgICAoc29ydEZpZWxkczogTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXSB8IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsKSA9PiB7XG4gICAgICAgIGxldCBzb3J0QXJyYXk6IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsW107XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzb3J0RmllbGRzKSAmJiBzb3J0RmllbGRzKSB7XG4gICAgICAgICAgc29ydEFycmF5ID0gW3NvcnRGaWVsZHNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNvcnRBcnJheSA9IHNvcnRGaWVsZHMgYXMgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNvcnRTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbihzb3J0QXJyYXkgfHwgW10pKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0SXRlbXNTZXRMb2FkaW5nQWN0aW9uKCkpO1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc0xvYWRBY3Rpb24ocmVzdWx0Lml0ZW1zLCB0cnVlLCB0cnVlLCByZXN1bHQuY291bnQpKTtcbiAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcChjdXJyZW50ID0+IGN1cnJlbnQuc2VsZWN0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZCA9PiB7XG5cbiAgICAgICAgLy8gVXBkYXRlIGxhc3RTZWxlY3RlZElkcyB0byBoZWxwIHVzIHJldGFpbiB1c2VyIHNlbGVjdGlvbnMuXG4gICAgICAgIGxldCBzZWxlY3RlZElkc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHNlbGVjdGVkLml0ZW0uc2VsZWN0ZWRJZE1hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZElkc0xpc3QucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSWYgY2hhbmdlcyBhcmUgZGlzdGluY3QsIGVtaXQgc2VsZWN0ZWRJZHNDaGFuZ2UuXG4gICAgICAgIGNvbnN0IGRpc3RpbmN0Q2hhbmdlcyA9ICF0aGlzLmFycmF5c0VxdWFsKHRoaXMubGFzdFNlbGVjdGVkSWRzLCBzZWxlY3RlZElkc0xpc3QpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiBkaXN0aW5jdENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLmVtaXQoc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHNMaXN0O1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdGF0ZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKGN1cnJlbnQgPT4gY3VycmVudC5maWx0ZXJzKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICBza2lwKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFdlIGFyZSBkb2luZyB0aGlzIGluc3RlYWQgb2YgYSBkaXN0aW5jdFVudGlsQ2hhbmdlIGR1ZSB0byBtZW1vcnkgYWxsb2NhdGlvbiBpc3N1ZXNcbiAgICAgICAgICAgKiB3aXRoIHRoZSBqYXZhc2NyaXB0IGFycmF5LiBUbyBmaXggZnVsbHkgdGhlIGFycmF5IHNob3VsZCBiZSBjaGFuZ2VkIHRvIGFuIG9iamVjdCBpblxuICAgICAgICAgICAqIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChmaWx0ZXJzLCB0aGlzLmxhc3RGaWx0ZXJzKSkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RmlsdGVycyA9IGZpbHRlcnMuc2xpY2UoMCk7XG4gICAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzQ2hhbmdlLmVtaXQoZmlsdGVycyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10gJiZcbiAgICAgIGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMuc3RhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGN1cnJlbnRTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAoY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICYmIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAhPT0gMSkge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgbmV3IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uKE51bWJlcigxKSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLmZpbHRlcnNVcGRhdGUodGhpcy5hcHBsaWVkRmlsdGVycyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10pIHtcbiAgICAgIC8vIE9ubHkgc2VuZCBzZWxlY3Rpb24gY2hhbmdlcyB0byBkaXNwYXRjaGVyIGlmIGNoYW5nZXMgYXJlIGRpc3RpbmN0LlxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHMgPSBjaGFuZ2VzWydzZWxlY3RlZElkcyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChuZXdTZWxlY3RlZElkcywgdGhpcy5sYXN0U2VsZWN0ZWRJZHMpKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZXRTZWxlY3RlZChuZXdTZWxlY3RlZElkcywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaERpc3BsYXllZEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24oKSk7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXllZEl0ZW1zKCk6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPiB7XG4gICAgaWYgKCF0aGlzLmRhdGEgJiYgIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpc3QgcmVxdWlyZXMgZGF0YSBvciBkYXRhUHJvdmlkZXIgdG8gYmUgc2V0LicpO1xuICAgIH1cblxuICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLmRhdGE7XG4gICAgaWYgKCFpc09ic2VydmFibGUoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBvYnNlcnZhYmxlT2YodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmRhdGFQcm92aWRlciA9IG5ldyBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXIoZGF0YSwgdGhpcy5zZWFyY2hGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZElkcyB8fCBvYnNlcnZhYmxlT2YoW10pO1xuICAgIGlmICghaXNPYnNlcnZhYmxlKHNlbGVjdGVkSWRzKSkge1xuICAgICAgc2VsZWN0ZWRJZHMgPSBvYnNlcnZhYmxlT2Yoc2VsZWN0ZWRJZHMpO1xuICAgIH1cblxuICAgIGxldCBzZWxlY3RlZENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFRoaXMgc3ViamVjdCBpcyB1c2VkIHRvIGNhbmNlbCBwcmV2aW91cyByZXF1ZXN0IHRvIHRoZSBsaXN0J3MgZGF0YSBwcm92aWRlciB3aGVuIGEgbmV3IGNoYW5nZVxuICAgIC8vIHRvIHRoZSBsaXN0J3Mgc3RhdGUgb2NjdXJzLiBJbiBhIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgdGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgb3IgY291cGxlZFxuICAgIC8vIHdpdGggYWRkaW5nIGEgZGVib3VuY2UgdGltZSB0byB0aGUgT2JzZXJ2YWJsZSB3aGljaCB3YXRjaGVzIGZvciBzdGF0ZSBjaGFuZ2VzLlxuICAgIGxldCBjYW5jZWxMYXN0UmVxdWVzdCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLmZpbHRlcnMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy5zZWFyY2gpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMucGFnaW5nLml0ZW1zUGVyUGFnZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLnBhZ2luZy5wYWdlTnVtYmVyKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMudG9vbGJhci5kaXNhYmxlZCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgc2VsZWN0ZWRJZHMucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgb2JzZXJ2YWJsZU1hcChzZWxlY3RlZCA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgZGF0YS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgXSwgKFxuICAgICAgZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10sXG4gICAgICBzZWFyY2g6IExpc3RTZWFyY2hNb2RlbCxcbiAgICAgIHNvcnRGaWVsZFNlbGVjdG9yczogQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+LFxuICAgICAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gICAgICBwYWdlTnVtYmVyOiBudW1iZXIsXG4gICAgICBpc1Rvb2xiYXJEaXNhYmxlZDogYm9vbGVhbixcbiAgICAgIHNlbGVjdGVkOiBBcnJheTxzdHJpbmc+LFxuICAgICAgaXRlbXNEYXRhOiBBcnJheTxhbnk+XG4gICAgKSA9PiB7XG4gICAgICBjYW5jZWxMYXN0UmVxdWVzdC5uZXh0KCk7XG4gICAgICBjYW5jZWxMYXN0UmVxdWVzdC5jb21wbGV0ZSgpO1xuICAgICAgaWYgKHNlbGVjdGVkQ2hhbmdlZCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RTZWxlY3RlZExvYWRBY3Rpb24oc2VsZWN0ZWQpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24oZmFsc2UpKTtcbiAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGxldCByZXNwb25zZTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+O1xuICAgICAgaWYgKHRoaXMuZGF0YUZpcnN0TG9hZCkge1xuICAgICAgICB0aGlzLmRhdGFGaXJzdExvYWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGluaXRpYWxJdGVtcyA9IGl0ZW1zRGF0YS5tYXAoZCA9PiBuZXcgTGlzdEl0ZW1Nb2RlbChcbiAgICAgICAgICBkLmlkIHx8IGBza3ktbGlzdC1pdGVtLW1vZGVsLSR7KytpZEluZGV4fWAsIGRcbiAgICAgICAgKSk7XG4gICAgICAgIHJlc3BvbnNlID0gb2JzZXJ2YWJsZU9mKG5ldyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwoe1xuICAgICAgICAgIGNvdW50OiB0aGlzLmluaXRpYWxUb3RhbCxcbiAgICAgICAgICBpdGVtczogaW5pdGlhbEl0ZW1zXG4gICAgICAgIH0pKS5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChjYW5jZWxMYXN0UmVxdWVzdClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlID0gdGhpcy5kYXRhUHJvdmlkZXIuZ2V0KG5ldyBMaXN0RGF0YVJlcXVlc3RNb2RlbCh7XG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgICAgICBwYWdlU2l6ZTogaXRlbXNQZXJQYWdlLFxuICAgICAgICAgIHBhZ2VOdW1iZXI6IHBhZ2VOdW1iZXIsXG4gICAgICAgICAgc2VhcmNoOiBzZWFyY2gsXG4gICAgICAgICAgc29ydDogbmV3IExpc3RTb3J0TW9kZWwoeyBmaWVsZFNlbGVjdG9yczogc29ydEZpZWxkU2VsZWN0b3JzIH0pLFxuICAgICAgICAgIGlzVG9vbGJhckRpc2FibGVkOiBpc1Rvb2xiYXJEaXNhYmxlZFxuICAgICAgICB9KSkucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoY2FuY2VsTGFzdFJlcXVlc3QpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuXG4gICAgICAgIC8vIFJldGFpbiB1c2VyIHNlbGVjdGlvbnMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgICAgLy8gVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgZ3JpZHMgY29tcG9uZW50IChiYXNlZCBvbiBpdGVtLmlzU2VsZWN0ZWQpLlxuICAgICAgICBvYnNlcnZhYmxlTWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucGlwZShvYnNlcnZhYmxlTWFwKGxpc3REYXRhUmVzcG9uc2VNb2RlbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IExpc3REYXRhUmVzcG9uc2VNb2RlbCh7XG4gICAgICAgICAgICAgIGNvdW50OiBsaXN0RGF0YVJlc3BvbnNlTW9kZWwuY291bnQsXG4gICAgICAgICAgICAgIGl0ZW1zOiB0aGlzLmdldEl0ZW1zQW5kUmV0YWluU2VsZWN0aW9ucyhsaXN0RGF0YVJlc3BvbnNlTW9kZWwuaXRlbXMsIHRoaXMubGFzdFNlbGVjdGVkSWRzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmxhdE1hcCh2YWx1ZSA9PiB2YWx1ZSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSXRlbXMoKTogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbU1vZGVsPj4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdChcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKGN1cnJlbnQgPT4gY3VycmVudC5pdGVtcy5pdGVtcyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAoY3VycmVudCA9PiBjdXJyZW50LnNlbGVjdGVkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICAoaXRlbXM6IEFycmF5PExpc3RJdGVtTW9kZWw+LCBzZWxlY3RlZDogQXN5bmNJdGVtPExpc3RTZWxlY3RlZE1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGkgPT4gc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwLmdldChpLmlkKSk7XG4gICAgICB9XG4gICAgKS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFVwZGF0ZSgpOiBPYnNlcnZhYmxlPERhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBvYnNlcnZhYmxlTWFwKHMgPT5cbiAgICAgICAgICBzLml0ZW1zLmxhc3RVcGRhdGUgPyBuZXcgRGF0ZShzLml0ZW1zLmxhc3RVcGRhdGUpIDogdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdzKCk6IEFycmF5PExpc3RWaWV3Q29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFZpZXdzLnRvQXJyYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbUNvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVByb3ZpZGVyLmNvdW50KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1zQW5kUmV0YWluU2VsZWN0aW9ucyhuZXdMaXN0OiBMaXN0SXRlbU1vZGVsW10sIHNlbGVjdGVkSWRzOiBzdHJpbmdbXSk6IExpc3RJdGVtTW9kZWxbXSB7XG4gICAgbGV0IHVwZGF0ZWRMaXN0TW9kZWwgPSBuZXdMaXN0LnNsaWNlKCk7XG4gICAgdXBkYXRlZExpc3RNb2RlbC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihpdGVtLmlkKSA+IC0xID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiB1cGRhdGVkTGlzdE1vZGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheXNFcXVhbChhcnJheUE6IGFueVtdLCBhcnJheUI6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoYXJyYXlBID09PSBhcnJheUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBID09PSB1bmRlZmluZWQgfHwgYXJyYXlCID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheUEubGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChhcnJheUFbaV0gIT09IGFycmF5QltpXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
268
+ }
269
+ SkyListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListComponent, deps: [{ token: i1.ListState }, { token: i2.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
270
+ SkyListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 });
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListComponent, decorators: [{
272
+ type: Component,
273
+ args: [{
274
+ selector: 'sky-list',
275
+ template: '<ng-content></ng-content>',
276
+ providers: [ListState, ListStateDispatcher],
277
+ changeDetection: ChangeDetectionStrategy.OnPush,
278
+ }]
279
+ }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i2.ListStateDispatcher }]; }, propDecorators: { data: [{
280
+ type: Input
281
+ }], dataProvider: [{
282
+ type: Input
283
+ }], defaultView: [{
284
+ type: Input
285
+ }], initialTotal: [{
286
+ type: Input
287
+ }], selectedIds: [{
288
+ type: Input
289
+ }], sortFields: [{
290
+ type: Input
291
+ }], appliedFilters: [{
292
+ type: Input
293
+ }], selectedIdsChange: [{
294
+ type: Output
295
+ }], appliedFiltersChange: [{
296
+ type: Output
297
+ }], searchFunction: [{
298
+ type: Input,
299
+ args: ['search']
300
+ }], listViews: [{
301
+ type: ContentChildren,
302
+ args: [ListViewComponent]
303
+ }] } });
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxJQUFJLHVCQUF1QixFQUV4QyxFQUFFLElBQUksWUFBWSxFQUNsQixPQUFPLEdBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FLUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFJbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSW5FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRTNH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Szt1QkFBQyxRQUFRO2dCQU1QLFNBQVM7c0JBRGhCLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCBhcyBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mLFxuICBTdWJqZWN0LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZsYXRNYXAsXG4gIG1hcCBhcyBvYnNlcnZhYmxlTWFwLFxuICBza2lwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBc3luY0l0ZW0sIGdldFZhbHVlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBMaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24gfSBmcm9tICcuL3N0YXRlL2l0ZW1zL3NldC1sb2FkaW5nLmFjdGlvbic7XG5cbmltcG9ydCB7IExpc3RTZWxlY3RlZExvYWRBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL2xvYWQuYWN0aW9uJztcblxuaW1wb3J0IHsgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbiB9IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvc2V0LWxvYWRpbmcuYWN0aW9uJztcblxuaW1wb3J0IHsgTGlzdFNlbGVjdGVkTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NlbGVjdGVkLm1vZGVsJztcblxuaW1wb3J0IHsgTGlzdFNvcnRNb2RlbCB9IGZyb20gJy4vc3RhdGUvc29ydC9zb3J0Lm1vZGVsJztcblxuaW1wb3J0IHsgTGlzdFNvcnRTZXRGaWVsZFNlbGVjdG9yc0FjdGlvbiB9IGZyb20gJy4vc3RhdGUvc29ydC9zZXQtZmllbGQtc2VsZWN0b3JzLmFjdGlvbic7XG5cbmltcG9ydCB7IExpc3RGaWx0ZXJNb2RlbCB9IGZyb20gJy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuXG5pbXBvcnQgeyBMaXN0RGF0YVJlcXVlc3RNb2RlbCB9IGZyb20gJy4vbGlzdC1kYXRhLXJlcXVlc3QubW9kZWwnO1xuXG5pbXBvcnQgeyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXNwb25zZS5tb2RlbCc7XG5cbmltcG9ydCB7IExpc3REYXRhUHJvdmlkZXIgfSBmcm9tICcuL2xpc3QtZGF0YS5wcm92aWRlcic7XG5cbmltcG9ydCB7IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlciB9IGZyb20gJy4uL2xpc3QtZGF0YS1wcm92aWRlci1pbi1tZW1vcnkvbGlzdC1kYXRhLWluLW1lbW9yeS5wcm92aWRlcic7XG5cbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcblxuaW1wb3J0IHsgTGlzdFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5yeHN0YXRlJztcblxuaW1wb3J0IHtcbiAgaXNPYnNlcnZhYmxlLFxuICBMaXN0SXRlbU1vZGVsLFxuICBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbCxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9wYWdpbmcvc2V0LXBhZ2UtbnVtYmVyLmFjdGlvbic7XG5cbmltcG9ydCB7IExpc3RTZWFyY2hNb2RlbCB9IGZyb20gJy4vc3RhdGUvc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5cbmltcG9ydCB7IExpc3RWaWV3c0xvYWRBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3ZpZXdzL2xvYWQuYWN0aW9uJztcblxuaW1wb3J0IHsgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS92aWV3cy9zZXQtYWN0aXZlLmFjdGlvbic7XG5cbmltcG9ydCB7IExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL3N0YXRlL3ZpZXdzL3ZpZXcubW9kZWwnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0JyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgcHJvdmlkZXJzOiBbTGlzdFN0YXRlLCBMaXN0U3RhdGVEaXNwYXRjaGVyXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBza3ktbGlzdC1jbXAtJHsrK2lkSW5kZXh9YDtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZGF0YSB0byBkaXNwbGF5LiBUaGUgbGlzdCBjb21wb25lbnQgcmVxdWlyZXMgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAgICogYGRhdGFQcm92aWRlcmAgcHJvcGVydHkuIEZvciBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZHMsIGVhY2ggcm93IHJlcXVpcmVzIGFuXG4gICAqIGBpZGAgcHJvcGVydHkgdG8gbWFuYWdlIHNlbGVjdGVkIGl0ZW1zIHdpdGggdGhlIGBzZWxlY3RlZElkc2AgaW5wdXQgYW5kIHRoZVxuICAgKiBgc2VsZWN0ZWRJZHNDaGFuZ2VgIGV2ZW50LiBJZiB5b3UgZG8gbm90IHByb3ZpZGUgYW4gYGlkYCwgdGhlIGxpc3QgYXV0b21hdGljYWxseVxuICAgKiBnZW5lcmF0ZXMgb25lLiBUbyB1cGRhdGUgZGF0YSBpbiB5b3VyIHZpZXcgb3V0c2lkZSBvZiBhIGBkYXRhUHJvdmlkZXJgLCB5b3UgbXVzdCB1c2VcbiAgICogYW4gb2JzZXJ2YWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIGFycmF5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE/OiBBcnJheTxhbnk+IHwgT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiA9IFtdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBkYXRhIHByb3ZpZGVyIHRvIG9idGFpbiB0aGUgZGF0YSB0byBkaXNwbGF5LiBUaGUgbGlzdCBjb21wb25lbnQgcmVxdWlyZXNcbiAgICogdGhpcyBwcm9wZXJ0eSBvciB0aGUgYGRhdGFgIHByb3BlcnR5LiBGb3IgbGlzdHMgdGhhdCB1c2UgYGRhdGFQcm92aWRlcmAgaW5zdGVhZCBvZiBgZGF0YWAsXG4gICAqIGNvbnN1bWVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGFsbCBgTGlzdERhdGFSZXF1ZXN0TW9kZWxgIHByb3BlcnRpZXMuXG4gICAqIEBkZWZhdWx0IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFQcm92aWRlcj86IExpc3REYXRhUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlZmF1bHRWaWV3PzogTGlzdFZpZXdDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGZvciB0aGUgaW5pdGlhbCBkYXRhIHNldCB3aGVuIGluaXRpYWxpemVkLiBXaGVuXG4gICAqIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgZGF0YWAgYW5kIGBkYXRhUHJvdmlkZXJgLCBpdCBhbGxvd3MgYW4gaW5pdGlhbCBkYXRhIHRvIGJlXG4gICAqIHNldCB3aXRoIHRoZSBuZWVkIHRvIGNhbGwgdGhlIGBkYXRhUHJvdmlkZXJgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluaXRpYWxUb3RhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2V0IG9mIElEcyBmb3IgdGhlIGl0ZW1zIHRvIHNlbGVjdCBpbiBhIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkLlxuICAgKiBUaGUgSURzIG1hdGNoIHRoZSBgaWRgIHByb3BlcnRpZXMgb2YgdGhlIGBkYXRhYCBvYmplY3RzLiBJdGVtcyB3aXRoIElEcyB0aGF0IGFyZSBub3RcbiAgICogaW5jbHVkZWQgYXJlIGRlLXNlbGVjdGVkIGluIHRoZSBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZElkcz86IEFycmF5PHN0cmluZz4gfCBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmllbGRzIHRvIHNvcnQgYnkuIElmIGFycmF5IG9mIGZpZWxkcyB0aGVuIHNvcnRlZCBieSBvcmRlciBvZiBhcnJheS5cbiAgICogRm9yIGluZm9ybWF0aW9uIGFib3V0IGBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbGAsIHNlZSB0aGVcbiAgICogW3NoYXJlZCBjbGFzc2VzIGZvciBsaXN0c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC1saXN0LWJ1aWxkZXItY29tbW9uL2RvY3MvbGlzdC1idWlsZGVyLWNvbW1vbikuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydEZpZWxkcz86XG4gICAgfCBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFxuICAgIHwgQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+XG4gICAgfCBPYnNlcnZhYmxlPEFycmF5PExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPj5cbiAgICB8IE9ic2VydmFibGU8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmlsdGVycyB0byBhcHBseSB0byBsaXN0IGRhdGEuXG4gICAqIFRoZXNlIGZpbHRlcnMgY3JlYXRlIGEgZmlsdGVyIHN1bW1hcnkgd2hlbiB0aGUgbGlzdCBpbmNsdWRlcyB0aGVcbiAgICogW2Bza3ktbGlzdC1maWx0ZXItc3VtbWFyeWBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9saXN0L2ZpbHRlcnMpXG4gICAqIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBsaWVkRmlsdGVyczogQXJyYXk8TGlzdEZpbHRlck1vZGVsPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBGb3IgbGlzdCB2aWV3cyB0aGF0IHN1cHBvcnQgaXRlbSBzZWxlY3Rpb24sIGVtaXRzIHRoZSBzZWxlY3RlZCBlbnRyaWVzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZElkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWFwPHN0cmluZywgYm9vbGVhbj4+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBmaWx0ZXJzIGFwcGxpZWQgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0RmlsdGVyTW9kZWw+PigpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0byBhcHBseSBhcyBhIGdsb2JhbCBzb3J0IG9uIHRoZSBsaXN0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzZWFyY2gnKVxuICBwdWJsaWMgc2VhcmNoRnVuY3Rpb246IChkYXRhOiBhbnksIHNlYXJjaFRleHQ6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuICBwcml2YXRlIGRhdGFGaXJzdExvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAQ29udGVudENoaWxkcmVuKExpc3RWaWV3Q29tcG9uZW50KVxuICBwcml2YXRlIGxpc3RWaWV3czogUXVlcnlMaXN0PExpc3RWaWV3Q29tcG9uZW50PjtcblxuICBwcml2YXRlIGxhc3RTZWxlY3RlZElkczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIGxhc3RGaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSA9IFtdO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdGF0ZTogTGlzdFN0YXRlLFxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlclxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMuaW5pdGlhbFRvdGFsKSB7XG4gICAgICB0aGlzLmRhdGFGaXJzdExvYWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpc3RWaWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmYXVsdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50ID1cbiAgICAgICAgdGhpcy5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB0aGlzLmxpc3RWaWV3cy5maXJzdFxuICAgICAgICAgIDogdGhpcy5kZWZhdWx0VmlldztcblxuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0Vmlld3NMb2FkQWN0aW9uKFxuICAgICAgICAgIHRoaXMubGlzdFZpZXdzLm1hcCgodikgPT4gbmV3IExpc3RWaWV3TW9kZWwodi5pZCwgdi5sYWJlbCkpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIC8vIGFjdGl2YXRlIHRoZSBkZWZhdWx0IHZpZXdcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24oZGVmYXVsdFZpZXcuaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBzb3J0IGZpZWxkc1xuICAgIGdldFZhbHVlKFxuICAgICAgdGhpcy5zb3J0RmllbGRzLFxuICAgICAgKFxuICAgICAgICBzb3J0RmllbGRzOiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdIHwgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxcbiAgICAgICkgPT4ge1xuICAgICAgICBsZXQgc29ydEFycmF5OiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc29ydEZpZWxkcykgJiYgc29ydEZpZWxkcykge1xuICAgICAgICAgIHNvcnRBcnJheSA9IFtzb3J0RmllbGRzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzb3J0QXJyYXkgPSBzb3J0RmllbGRzIGFzIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb24oc29ydEFycmF5IHx8IFtdKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3Igc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKGN1cnJlbnQpID0+IGN1cnJlbnQuc2VsZWN0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgLy8gVXBkYXRlIGxhc3RTZWxlY3RlZElkcyB0byBoZWxwIHVzIHJldGFpbiB1c2VyIHNlbGVjdGlvbnMuXG4gICAgICAgIGxldCBzZWxlY3RlZElkc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHNlbGVjdGVkLml0ZW0uc2VsZWN0ZWRJZE1hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZElkc0xpc3QucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSWYgY2hhbmdlcyBhcmUgZGlzdGluY3QsIGVtaXQgc2VsZWN0ZWRJZHNDaGFuZ2UuXG4gICAgICAgIGNvbnN0IGRpc3RpbmN0Q2hhbmdlcyA9ICF0aGlzLmFycmF5c0VxdWFsKFxuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzLFxuICAgICAgICAgIHNlbGVjdGVkSWRzTGlzdFxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiBkaXN0aW5jdENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLmVtaXQoc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHNMaXN0O1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc0NoYW5nZS5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdGF0ZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChjdXJyZW50KSA9PiBjdXJyZW50LmZpbHRlcnMpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHNraXAoMSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogV2UgYXJlIGRvaW5nIHRoaXMgaW5zdGVhZCBvZiBhIGRpc3RpbmN0VW50aWxDaGFuZ2UgZHVlIHRvIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3Vlc1xuICAgICAgICAgICAqIHdpdGggdGhlIGphdmFzY3JpcHQgYXJyYXkuIFRvIGZpeCBmdWxseSB0aGUgYXJyYXkgc2hvdWxkIGJlIGNoYW5nZWQgdG8gYW4gb2JqZWN0IGluXG4gICAgICAgICAgICogYSBicmVha2luZyBjaGFuZ2UuXG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKGZpbHRlcnMsIHRoaXMubGFzdEZpbHRlcnMpKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RGaWx0ZXJzID0gZmlsdGVycy5zbGljZSgwKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNDaGFuZ2UuZW1pdChmaWx0ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXSAmJlxuICAgICAgY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXS5jdXJyZW50VmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10ucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5zdGF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgJiZcbiAgICAgICAgICBjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uKE51bWJlcigxKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLmZpbHRlcnNVcGRhdGUodGhpcy5hcHBsaWVkRmlsdGVycyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10pIHtcbiAgICAgIC8vIE9ubHkgc2VuZCBzZWxlY3Rpb24gY2hhbmdlcyB0byBkaXNwYXRjaGVyIGlmIGNoYW5nZXMgYXJlIGRpc3RpbmN0LlxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHMgPSBjaGFuZ2VzWydzZWxlY3RlZElkcyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChuZXdTZWxlY3RlZElkcywgdGhpcy5sYXN0U2VsZWN0ZWRJZHMpKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZXRTZWxlY3RlZChuZXdTZWxlY3RlZElkcywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaERpc3BsYXllZEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24oKSk7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChcbiAgICAgICAgbmV3IExpc3RJdGVtc0xvYWRBY3Rpb24ocmVzdWx0Lml0ZW1zLCB0cnVlLCB0cnVlLCByZXN1bHQuY291bnQpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXllZEl0ZW1zKCk6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPiB7XG4gICAgaWYgKCF0aGlzLmRhdGEgJiYgIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpc3QgcmVxdWlyZXMgZGF0YSBvciBkYXRhUHJvdmlkZXIgdG8gYmUgc2V0LicpO1xuICAgIH1cblxuICAgIGxldCBkYXRhOiBhbnkgPSB0aGlzLmRhdGE7XG4gICAgaWYgKCFpc09ic2VydmFibGUoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBvYnNlcnZhYmxlT2YodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmRhdGFQcm92aWRlciA9IG5ldyBTa3lMaXN0SW5NZW1vcnlEYXRhUHJvdmlkZXIoXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHRoaXMuc2VhcmNoRnVuY3Rpb25cbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZElkcyB8fCBvYnNlcnZhYmxlT2YoW10pO1xuICAgIGlmICghaXNPYnNlcnZhYmxlKHNlbGVjdGVkSWRzKSkge1xuICAgICAgc2VsZWN0ZWRJZHMgPSBvYnNlcnZhYmxlT2Yoc2VsZWN0ZWRJZHMpO1xuICAgIH1cblxuICAgIGxldCBzZWxlY3RlZENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIFRoaXMgc3ViamVjdCBpcyB1c2VkIHRvIGNhbmNlbCBwcmV2aW91cyByZXF1ZXN0IHRvIHRoZSBsaXN0J3MgZGF0YSBwcm92aWRlciB3aGVuIGEgbmV3IGNoYW5nZVxuICAgIC8vIHRvIHRoZSBsaXN0J3Mgc3RhdGUgb2NjdXJzLiBJbiBhIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgdGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgb3IgY291cGxlZFxuICAgIC8vIHdpdGggYWRkaW5nIGEgZGVib3VuY2UgdGltZSB0byB0aGUgT2JzZXJ2YWJsZSB3aGljaCB3YXRjaGVzIGZvciBzdGF0ZSBjaGFuZ2VzLlxuICAgIGxldCBjYW5jZWxMYXN0UmVxdWVzdCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmZpbHRlcnMpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuc2VhcmNoKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNvcnQuZmllbGRTZWxlY3RvcnMpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMucGFnaW5nLml0ZW1zUGVyUGFnZSksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5wYWdpbmcucGFnZU51bWJlciksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy50b29sYmFyLmRpc2FibGVkKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHNlbGVjdGVkSWRzLnBpcGUoXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzZWxlY3RlZCkgPT4ge1xuICAgICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBkYXRhLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICBdLFxuICAgICAgKFxuICAgICAgICBmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSxcbiAgICAgICAgc2VhcmNoOiBMaXN0U2VhcmNoTW9kZWwsXG4gICAgICAgIHNvcnRGaWVsZFNlbGVjdG9yczogQXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+LFxuICAgICAgICBpdGVtc1BlclBhZ2U6IG51bWJlcixcbiAgICAgICAgcGFnZU51bWJlcjogbnVtYmVyLFxuICAgICAgICBpc1Rvb2xiYXJEaXNhYmxlZDogYm9vbGVhbixcbiAgICAgICAgc2VsZWN0ZWQ6IEFycmF5PHN0cmluZz4sXG4gICAgICAgIGl0ZW1zRGF0YTogQXJyYXk8YW55PlxuICAgICAgKSA9PiB7XG4gICAgICAgIGNhbmNlbExhc3RSZXF1ZXN0Lm5leHQoKTtcbiAgICAgICAgY2FuY2VsTGFzdFJlcXVlc3QuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uKCkpO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U2VsZWN0ZWRMb2FkQWN0aW9uKHNlbGVjdGVkKSk7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24oZmFsc2UpKTtcbiAgICAgICAgICBzZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXNwb25zZTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+O1xuICAgICAgICBpZiAodGhpcy5kYXRhRmlyc3RMb2FkKSB7XG4gICAgICAgICAgdGhpcy5kYXRhRmlyc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgbGV0IGluaXRpYWxJdGVtcyA9IGl0ZW1zRGF0YS5tYXAoXG4gICAgICAgICAgICAoZCkgPT5cbiAgICAgICAgICAgICAgbmV3IExpc3RJdGVtTW9kZWwoZC5pZCB8fCBgc2t5LWxpc3QtaXRlbS1tb2RlbC0keysraWRJbmRleH1gLCBkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UgPSBvYnNlcnZhYmxlT2YoXG4gICAgICAgICAgICBuZXcgTGlzdERhdGFSZXNwb25zZU1vZGVsKHtcbiAgICAgICAgICAgICAgY291bnQ6IHRoaXMuaW5pdGlhbFRvdGFsLFxuICAgICAgICAgICAgICBpdGVtczogaW5pdGlhbEl0ZW1zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgbmV3IExpc3REYXRhUmVxdWVzdE1vZGVsKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBpdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcjogcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgICAgICAgICAgICBzb3J0OiBuZXcgTGlzdFNvcnRNb2RlbCh7IGZpZWxkU2VsZWN0b3JzOiBzb3J0RmllbGRTZWxlY3RvcnMgfSksXG4gICAgICAgICAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGlzVG9vbGJhckRpc2FibGVkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG5cbiAgICAgIC8vIFJldGFpbiB1c2VyIHNlbGVjdGlvbnMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgIC8vIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgZm9yIGdyaWRzIGNvbXBvbmVudCAoYmFzZWQgb24gaXRlbS5pc1NlbGVjdGVkKS5cbiAgICAgIG9ic2VydmFibGVNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKGxpc3REYXRhUmVzcG9uc2VNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwoe1xuICAgICAgICAgICAgICBjb3VudDogbGlzdERhdGFSZXNwb25zZU1vZGVsLmNvdW50LFxuICAgICAgICAgICAgICBpdGVtczogdGhpcy5nZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgICAgICAgICAgICAgbGlzdERhdGFSZXNwb25zZU1vZGVsLml0ZW1zLFxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBmbGF0TWFwKCh2YWx1ZSkgPT4gdmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtcygpOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtTW9kZWw+PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChjdXJyZW50KSA9PiBjdXJyZW50Lml0ZW1zLml0ZW1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoY3VycmVudCkgPT4gY3VycmVudC5zZWxlY3RlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICksXG4gICAgICAoaXRlbXM6IEFycmF5PExpc3RJdGVtTW9kZWw+LCBzZWxlY3RlZDogQXN5bmNJdGVtPExpc3RTZWxlY3RlZE1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpKSA9PiBzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXAuZ2V0KGkuaWQpKTtcbiAgICAgIH1cbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0VXBkYXRlKCk6IE9ic2VydmFibGU8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+XG4gICAgICAgIHMuaXRlbXMubGFzdFVwZGF0ZSA/IG5ldyBEYXRlKHMuaXRlbXMubGFzdFVwZGF0ZSkgOiB1bmRlZmluZWRcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3cygpOiBBcnJheTxMaXN0Vmlld0NvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RWaWV3cy50b0FycmF5KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1Db3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQcm92aWRlci5jb3VudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgbmV3TGlzdDogTGlzdEl0ZW1Nb2RlbFtdLFxuICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXVxuICApOiBMaXN0SXRlbU1vZGVsW10ge1xuICAgIGxldCB1cGRhdGVkTGlzdE1vZGVsID0gbmV3TGlzdC5zbGljZSgpO1xuICAgIHVwZGF0ZWRMaXN0TW9kZWwuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0ZWRJZHMuaW5kZXhPZihpdGVtLmlkKSA+IC0xID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiB1cGRhdGVkTGlzdE1vZGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheXNFcXVhbChhcnJheUE6IGFueVtdLCBhcnJheUI6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoYXJyYXlBID09PSBhcnJheUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBID09PSB1bmRlZmluZWQgfHwgYXJyYXlCID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFycmF5QS5sZW5ndGggIT09IGFycmF5Qi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheUEubGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChhcnJheUFbaV0gIT09IGFycmF5QltpXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -1,21 +1,18 @@
1
- import { __decorate } from "tslib";
2
1
  import { NgModule } from '@angular/core';
3
2
  import { CommonModule } from '@angular/common';
4
3
  import { SkyListComponent } from './list.component';
5
- let SkyListModule = class SkyListModule {
6
- };
7
- SkyListModule = __decorate([
8
- NgModule({
9
- declarations: [
10
- SkyListComponent
11
- ],
12
- imports: [
13
- CommonModule
14
- ],
15
- exports: [
16
- SkyListComponent
17
- ]
18
- })
19
- ], SkyListModule);
20
- export { SkyListModule };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWFwRCxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0NBQ3pCLENBQUE7QUFEWSxhQUFhO0lBWHpCLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRTtZQUNaLGdCQUFnQjtTQUNqQjtRQUNELE9BQU8sRUFBRTtZQUNQLFlBQVk7U0FDYjtRQUNELE9BQU8sRUFBRTtZQUNQLGdCQUFnQjtTQUNqQjtLQUNGLENBQUM7R0FDVyxhQUFhLENBQ3pCO1NBRFksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2t5TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lMaXN0Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUxpc3RDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0TW9kdWxlIHtcbn1cbiJdfQ==
4
+ import * as i0 from "@angular/core";
5
+ export class SkyListModule {
6
+ }
7
+ SkyListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ SkyListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListModule, declarations: [SkyListComponent], imports: [CommonModule], exports: [SkyListComponent] });
9
+ SkyListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListModule, imports: [[CommonModule]] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [SkyListComponent],
14
+ imports: [CommonModule],
15
+ exports: [SkyListComponent],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7NEdBQWIsYUFBYSxpQkFKVCxnQkFBZ0IsYUFDckIsWUFBWSxhQUNaLGdCQUFnQjs0R0FFZixhQUFhLFlBSGYsQ0FBQyxZQUFZLENBQUM7NEZBR1osYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNreUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5TGlzdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5TGlzdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RNb2R1bGUge31cbiJdfQ==
@@ -7,11 +7,10 @@ export class ListFiltersOrchestrator extends ListStateOrchestrator {
7
7
  /* istanbul ignore next */
8
8
  constructor() {
9
9
  super();
10
- this
11
- .register(ListFiltersUpdateAction, this.update);
10
+ this.register(ListFiltersUpdateAction, this.update);
12
11
  }
13
12
  update(state, action) {
14
13
  return [...action.filters];
15
14
  }
16
15
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5vcmNoZXN0cmF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L3N0YXRlL2ZpbHRlcnMvZmlsdGVycy5vcmNoZXN0cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHFCQUF3QztJQUNuRiwwQkFBMEI7SUFDMUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUk7YUFDRCxRQUFRLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBELENBQUM7SUFFTyxNQUFNLENBQUMsS0FBd0IsRUFBRSxNQUErQjtRQUN0RSxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFN0YXRlT3JjaGVzdHJhdG9yIH0gZnJvbSAnLi4vbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgTGlzdEZpbHRlcnNVcGRhdGVBY3Rpb25cbn0gZnJvbSAnLi91cGRhdGUuYWN0aW9uJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJzT3JjaGVzdHJhdG9yIGV4dGVuZHMgTGlzdFN0YXRlT3JjaGVzdHJhdG9yPExpc3RGaWx0ZXJNb2RlbFtdPiB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzXG4gICAgICAucmVnaXN0ZXIoTGlzdEZpbHRlcnNVcGRhdGVBY3Rpb24sIHRoaXMudXBkYXRlKTtcblxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoc3RhdGU6IExpc3RGaWx0ZXJNb2RlbFtdLCBhY3Rpb246IExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uKTogTGlzdEZpbHRlck1vZGVsW10ge1xuICAgIHJldHVybiBbLi4uYWN0aW9uLmZpbHRlcnNdO1xuICB9XG59XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5vcmNoZXN0cmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0LWJ1aWxkZXIvc3JjL21vZHVsZXMvbGlzdC9zdGF0ZS9maWx0ZXJzL2ZpbHRlcnMub3JjaGVzdHJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHFCQUU1QztJQUNDLDBCQUEwQjtJQUMxQjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLE1BQU0sQ0FDWixLQUF3QixFQUN4QixNQUErQjtRQUUvQixPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFN0YXRlT3JjaGVzdHJhdG9yIH0gZnJvbSAnLi4vbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgTGlzdEZpbHRlcnNVcGRhdGVBY3Rpb24gfSBmcm9tICcuL3VwZGF0ZS5hY3Rpb24nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgTGlzdEZpbHRlcnNPcmNoZXN0cmF0b3IgZXh0ZW5kcyBMaXN0U3RhdGVPcmNoZXN0cmF0b3I8XG4gIExpc3RGaWx0ZXJNb2RlbFtdXG4+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoTGlzdEZpbHRlcnNVcGRhdGVBY3Rpb24sIHRoaXMudXBkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKFxuICAgIHN0YXRlOiBMaXN0RmlsdGVyTW9kZWxbXSxcbiAgICBhY3Rpb246IExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uXG4gICk6IExpc3RGaWx0ZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gWy4uLmFjdGlvbi5maWx0ZXJzXTtcbiAgfVxufVxuIl19
@@ -6,4 +6,4 @@ export class ListFiltersUpdateAction {
6
6
  this.filters = filters;
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9saXN0LWJ1aWxkZXIvIiwic291cmNlcyI6WyJtb2R1bGVzL2xpc3Qvc3RhdGUvZmlsdGVycy91cGRhdGUuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFtQixPQUEwQjtRQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUFHLENBQUM7Q0FDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdKSB7fVxufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci9zcmMvbW9kdWxlcy9saXN0L3N0YXRlL2ZpbHRlcnMvdXBkYXRlLmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBbUIsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFBRyxDQUFDO0NBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbGlzdC1maWx0ZXJzL2ZpbHRlci5tb2RlbCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSkge31cbn1cbiJdfQ==