@theseam/ui-common 0.2.12 → 0.2.16

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 (328) hide show
  1. package/assets/vendor/intl-tel-input/js/utils.js +255 -254
  2. package/bundles/theseam-ui-common-asset-reader.umd.js +7 -9
  3. package/bundles/theseam-ui-common-asset-reader.umd.js.map +1 -1
  4. package/bundles/theseam-ui-common-breadcrumbs.umd.js +6 -8
  5. package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -1
  6. package/bundles/theseam-ui-common-buttons.umd.js +5 -5
  7. package/bundles/theseam-ui-common-buttons.umd.js.map +1 -1
  8. package/bundles/theseam-ui-common-card.umd.js +6 -6
  9. package/bundles/theseam-ui-common-card.umd.js.map +1 -1
  10. package/bundles/theseam-ui-common-checkbox.umd.js +4 -4
  11. package/bundles/theseam-ui-common-checkbox.umd.js.map +1 -1
  12. package/bundles/theseam-ui-common-confirm-dialog.umd.js +4 -4
  13. package/bundles/theseam-ui-common-confirm-dialog.umd.js.map +1 -1
  14. package/bundles/theseam-ui-common-core.umd.js +4 -4
  15. package/bundles/theseam-ui-common-core.umd.js.map +1 -1
  16. package/bundles/theseam-ui-common-data-exporter.umd.js +5 -5
  17. package/bundles/theseam-ui-common-data-filters.umd.js +9 -6
  18. package/bundles/theseam-ui-common-data-filters.umd.js.map +1 -1
  19. package/bundles/theseam-ui-common-datatable-dynamic.umd.js +7 -7
  20. package/bundles/theseam-ui-common-datatable-dynamic.umd.js.map +1 -1
  21. package/bundles/theseam-ui-common-datatable.umd.js +1308 -378
  22. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
  23. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js +5 -7
  24. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js.map +1 -1
  25. package/bundles/theseam-ui-common-dynamic.umd.js +7 -9
  26. package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
  27. package/bundles/theseam-ui-common-footer-bar.umd.js +3 -3
  28. package/bundles/theseam-ui-common-form-field-error.umd.js +5 -5
  29. package/bundles/theseam-ui-common-form-field-error.umd.js.map +1 -1
  30. package/bundles/theseam-ui-common-form-field.umd.js +5 -5
  31. package/bundles/theseam-ui-common-form-field.umd.js.map +1 -1
  32. package/bundles/theseam-ui-common-framework.umd.js +27 -29
  33. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  34. package/bundles/theseam-ui-common-graphql.umd.js +958 -8
  35. package/bundles/theseam-ui-common-graphql.umd.js.map +1 -1
  36. package/bundles/theseam-ui-common-icon.umd.js +5 -5
  37. package/bundles/theseam-ui-common-icon.umd.js.map +1 -1
  38. package/bundles/theseam-ui-common-layout.umd.js +5 -7
  39. package/bundles/theseam-ui-common-layout.umd.js.map +1 -1
  40. package/bundles/theseam-ui-common-loading.umd.js +4 -4
  41. package/bundles/theseam-ui-common-menu.umd.js +5 -5
  42. package/bundles/theseam-ui-common-menu.umd.js.map +1 -1
  43. package/bundles/theseam-ui-common-modal.umd.js +6 -6
  44. package/bundles/theseam-ui-common-modal.umd.js.map +1 -1
  45. package/bundles/theseam-ui-common-models.umd.js +3 -3
  46. package/bundles/theseam-ui-common-popover.umd.js +4 -4
  47. package/bundles/theseam-ui-common-progress.umd.js +5 -5
  48. package/bundles/theseam-ui-common-progress.umd.js.map +1 -1
  49. package/bundles/theseam-ui-common-scrollbar.umd.js +7 -9
  50. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
  51. package/bundles/theseam-ui-common-services.umd.js +6 -8
  52. package/bundles/theseam-ui-common-services.umd.js.map +1 -1
  53. package/bundles/theseam-ui-common-shared.umd.js +4 -4
  54. package/bundles/theseam-ui-common-shared.umd.js.map +1 -1
  55. package/bundles/theseam-ui-common-storage.umd.js +5 -7
  56. package/bundles/theseam-ui-common-storage.umd.js.map +1 -1
  57. package/bundles/theseam-ui-common-story-helpers.umd.js +4 -4
  58. package/bundles/theseam-ui-common-story-helpers.umd.js.map +1 -1
  59. package/bundles/theseam-ui-common-tabbed.umd.js +5 -5
  60. package/bundles/theseam-ui-common-tabbed.umd.js.map +1 -1
  61. package/bundles/theseam-ui-common-table-cell-type.umd.js +5 -7
  62. package/bundles/theseam-ui-common-table-cell-type.umd.js.map +1 -1
  63. package/bundles/theseam-ui-common-table-cell-types.umd.js +16 -16
  64. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
  65. package/bundles/theseam-ui-common-table.umd.js +5 -5
  66. package/bundles/theseam-ui-common-table.umd.js.map +1 -1
  67. package/bundles/theseam-ui-common-tel-input.umd.js +6 -6
  68. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
  69. package/bundles/theseam-ui-common-testing.umd.js +568 -0
  70. package/bundles/theseam-ui-common-testing.umd.js.map +1 -0
  71. package/bundles/theseam-ui-common-tiled-select.umd.js +56 -39
  72. package/bundles/theseam-ui-common-tiled-select.umd.js.map +1 -1
  73. package/bundles/theseam-ui-common-toggle-edit.umd.js +8 -10
  74. package/bundles/theseam-ui-common-toggle-edit.umd.js.map +1 -1
  75. package/bundles/theseam-ui-common-toggle-group.umd.js +4 -4
  76. package/bundles/theseam-ui-common-toggle-group.umd.js.map +1 -1
  77. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js +5 -7
  78. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js.map +1 -1
  79. package/bundles/theseam-ui-common-utils.umd.js +174 -81
  80. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  81. package/bundles/theseam-ui-common-validators.umd.js +3 -3
  82. package/bundles/theseam-ui-common-viewers.umd.js +6 -8
  83. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
  84. package/bundles/theseam-ui-common-widget.umd.js +18 -20
  85. package/bundles/theseam-ui-common-widget.umd.js.map +1 -1
  86. package/bundles/theseam-ui-common.umd.js +2 -2
  87. package/buttons/theseam-ui-common-buttons.metadata.json +1 -1
  88. package/card/theseam-ui-common-card.metadata.json +1 -1
  89. package/data-filters/data-filter.d.ts +10 -6
  90. package/data-filters/theseam-ui-common-data-filters.metadata.json +1 -1
  91. package/datatable/datatable/datatable.component.d.ts +46 -32
  92. package/datatable/datatable-column/datatable-column.component.d.ts +26 -25
  93. package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +6 -5
  94. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +7 -1
  95. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +1 -1
  96. package/datatable/directives/datatable-filter.directive.d.ts +1 -1
  97. package/datatable/models/columns-alteration.d.ts +61 -0
  98. package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +15 -0
  99. package/datatable/models/columns-alterations/order.columns-alteration.d.ts +20 -0
  100. package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +14 -0
  101. package/datatable/models/columns-alterations/width.columns-alteration.d.ts +16 -0
  102. package/datatable/models/datatable-accessor.d.ts +5 -3
  103. package/datatable/models/internal-column-props.d.ts +7 -0
  104. package/datatable/models/page-info.d.ts +12 -0
  105. package/datatable/models/preferences-accessor.d.ts +1 -1
  106. package/datatable/models/preferences.d.ts +11 -3
  107. package/datatable/models/sort-item.d.ts +2 -1
  108. package/datatable/services/columns-alterations-manager.service.d.ts +39 -0
  109. package/datatable/services/columns-manager.service.d.ts +55 -0
  110. package/datatable/services/datatable-preferences.service.d.ts +10 -7
  111. package/datatable/theseam-ui-common-datatable.d.ts +2 -0
  112. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  113. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  114. package/datatable/utils/create-action-menu-column.d.ts +3 -0
  115. package/datatable/utils/create-checkbox-column.d.ts +3 -0
  116. package/datatable/utils/get-column-prop.d.ts +5 -0
  117. package/datatable/utils/map-columns-alterations-states.d.ts +2 -0
  118. package/datatable/utils/remove-unused-diffs.d.ts +7 -0
  119. package/datatable/utils/set-column-defaults.d.ts +2 -0
  120. package/datatable/utils/translate-templates.d.ts +2 -0
  121. package/datatable/utils/with-stored-column-info.d.ts +2 -2
  122. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -1
  123. package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +1 -1
  124. package/esm2015/card/card-action/card-action.component.js +1 -1
  125. package/esm2015/card/card-body/card-body.component.js +1 -1
  126. package/esm2015/data-filters/data-filter.js +5 -2
  127. package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +1 -1
  128. package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +1 -1
  129. package/esm2015/datatable/datatable/datatable.component.js +195 -211
  130. package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +1 -1
  131. package/esm2015/datatable/datatable-column/datatable-column.component.js +1 -1
  132. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +36 -19
  133. package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +38 -4
  134. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +9 -6
  135. package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +1 -1
  136. package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +1 -1
  137. package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +1 -1
  138. package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +1 -1
  139. package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +1 -1
  140. package/esm2015/datatable/models/columns-alteration.js +38 -0
  141. package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +38 -0
  142. package/esm2015/datatable/models/columns-alterations/order.columns-alteration.js +81 -0
  143. package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +33 -0
  144. package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +41 -0
  145. package/esm2015/datatable/models/datatable-accessor.js +1 -1
  146. package/esm2015/datatable/models/internal-column-props.js +15 -0
  147. package/esm2015/datatable/models/page-info.js +1 -1
  148. package/esm2015/datatable/models/preferences-accessor.js +1 -1
  149. package/esm2015/datatable/models/preferences.js +6 -2
  150. package/esm2015/datatable/models/sort-item.js +1 -1
  151. package/esm2015/datatable/services/columns-alterations-manager.service.js +134 -0
  152. package/esm2015/datatable/services/columns-manager.service.js +257 -0
  153. package/esm2015/datatable/services/datatable-preferences.service.js +78 -32
  154. package/esm2015/datatable/theseam-ui-common-datatable.js +3 -1
  155. package/esm2015/datatable/tokens/datatable-preferences-accessor.js +2 -2
  156. package/esm2015/datatable/utils/create-action-menu-column.js +18 -0
  157. package/esm2015/datatable/utils/create-checkbox-column.js +15 -0
  158. package/esm2015/datatable/utils/get-column-prop.js +9 -0
  159. package/esm2015/datatable/utils/map-columns-alterations-states.js +39 -0
  160. package/esm2015/datatable/utils/remove-unused-diffs.js +9 -0
  161. package/esm2015/datatable/utils/set-column-defaults.js +10 -0
  162. package/esm2015/datatable/utils/translate-templates.js +12 -0
  163. package/esm2015/datatable/utils/with-stored-column-info.js +1 -1
  164. package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +1 -1
  165. package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +1 -1
  166. package/esm2015/datatable-dynamic/datatable-dynamic.component.js +1 -1
  167. package/esm2015/form-field/form-field.component.js +1 -1
  168. package/esm2015/form-field-error/form-field-error/form-field-error.component.js +1 -1
  169. package/esm2015/framework/base-layout/base-layout.component.js +1 -1
  170. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +1 -1
  171. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +1 -1
  172. package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +1 -1
  173. package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +1 -1
  174. package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +1 -1
  175. package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +1 -1
  176. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +1 -1
  177. package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +1 -1
  178. package/esm2015/framework/side-nav/side-nav.component.js +1 -1
  179. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +1 -1
  180. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +1 -1
  181. package/esm2015/framework/top-bar/top-bar.component.js +1 -1
  182. package/esm2015/graphql/datatable/create-page-info-observable.js +38 -0
  183. package/esm2015/graphql/datatable/datatable-graphql-query-ref.js +236 -0
  184. package/esm2015/graphql/datatable/datatable-graphql.service.js +35 -0
  185. package/esm2015/graphql/datatable/datatable-helpers.js +170 -0
  186. package/esm2015/graphql/datatable/get-page-info.js +11 -0
  187. package/esm2015/graphql/datatable/index.js +7 -0
  188. package/esm2015/graphql/datatable/map-filter-states.js +64 -0
  189. package/esm2015/graphql/datatable/map-page-info.js +14 -0
  190. package/esm2015/graphql/datatable/mapper-context.js +2 -0
  191. package/esm2015/graphql/models/gql-datatable-accessor.js +2 -0
  192. package/esm2015/graphql/models/index.js +2 -1
  193. package/esm2015/graphql/models/query-processing-config.js +1 -1
  194. package/esm2015/graphql/public-api.js +2 -1
  195. package/esm2015/graphql/utils/parse-hints.js +3 -3
  196. package/esm2015/icon/icon/icon.component.js +1 -1
  197. package/esm2015/loading/loading/loading.component.js +1 -1
  198. package/esm2015/menu/menu.component.js +1 -1
  199. package/esm2015/modal/modal-body/modal-body.component.js +1 -1
  200. package/esm2015/modal/modal-container/modal-container.component.js +1 -1
  201. package/esm2015/popover/popover/popover.component.js +1 -1
  202. package/esm2015/progress/progress-circle/progress-circle.component.js +1 -1
  203. package/esm2015/tabbed/tabbed.component.js +1 -1
  204. package/esm2015/table/table/table.component.js +1 -1
  205. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +1 -1
  206. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +1 -1
  207. package/esm2015/tel-input/tel-input/tel-input.component.js +1 -1
  208. package/esm2015/testing/current-tick-time.js +16 -0
  209. package/esm2015/testing/fake-toastr.js +29 -0
  210. package/esm2015/testing/get-harness.js +16 -0
  211. package/esm2015/testing/public-api.js +7 -0
  212. package/esm2015/testing/render-story.js +12 -0
  213. package/esm2015/testing/story-expect.js +39 -0
  214. package/esm2015/testing/theseam-ui-common-testing.js +5 -0
  215. package/esm2015/testing/tick-helper.js +74 -0
  216. package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +25 -17
  217. package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +5 -2
  218. package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +1 -1
  219. package/esm2015/tiled-select/public-api.js +2 -1
  220. package/esm2015/tiled-select/tiled-select.models.js +1 -1
  221. package/esm2015/tiled-select/tiled-select.module.js +4 -4
  222. package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +1 -1
  223. package/esm2015/toggle-edit/toggle-edit.component.js +1 -1
  224. package/esm2015/utils/array-move.js +62 -0
  225. package/esm2015/utils/public-api.js +2 -1
  226. package/esm2015/utils/router/is-empty-url-route.js +1 -1
  227. package/esm2015/utils/subscriber-count.js +31 -4
  228. package/esm2015/widget/widget/widget.component.js +1 -1
  229. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +1 -1
  230. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +1 -1
  231. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +1 -1
  232. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +1 -1
  233. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +1 -1
  234. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +1 -1
  235. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +1 -1
  236. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +1 -1
  237. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +1 -1
  238. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +1 -1
  239. package/esm2015/widget/widget-footer/widget-footer.component.js +1 -1
  240. package/fesm2015/theseam-ui-common-buttons.js +1 -1
  241. package/fesm2015/theseam-ui-common-card.js +2 -2
  242. package/fesm2015/theseam-ui-common-data-filters.js +6 -3
  243. package/fesm2015/theseam-ui-common-data-filters.js.map +1 -1
  244. package/fesm2015/theseam-ui-common-datatable-dynamic.js +3 -3
  245. package/fesm2015/theseam-ui-common-datatable.js +1100 -319
  246. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  247. package/fesm2015/theseam-ui-common-form-field-error.js +1 -1
  248. package/fesm2015/theseam-ui-common-form-field.js +1 -1
  249. package/fesm2015/theseam-ui-common-framework.js +13 -13
  250. package/fesm2015/theseam-ui-common-graphql.js +555 -5
  251. package/fesm2015/theseam-ui-common-graphql.js.map +1 -1
  252. package/fesm2015/theseam-ui-common-icon.js +1 -1
  253. package/fesm2015/theseam-ui-common-loading.js +1 -1
  254. package/fesm2015/theseam-ui-common-menu.js +1 -1
  255. package/fesm2015/theseam-ui-common-modal.js +2 -2
  256. package/fesm2015/theseam-ui-common-popover.js +1 -1
  257. package/fesm2015/theseam-ui-common-progress.js +1 -1
  258. package/fesm2015/theseam-ui-common-tabbed.js +1 -1
  259. package/fesm2015/theseam-ui-common-table-cell-types.js +2 -2
  260. package/fesm2015/theseam-ui-common-table.js +1 -1
  261. package/fesm2015/theseam-ui-common-tel-input.js +1 -1
  262. package/fesm2015/theseam-ui-common-testing.js +191 -0
  263. package/fesm2015/theseam-ui-common-testing.js.map +1 -0
  264. package/fesm2015/theseam-ui-common-tiled-select.js +34 -21
  265. package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -1
  266. package/fesm2015/theseam-ui-common-toggle-edit.js +2 -2
  267. package/fesm2015/theseam-ui-common-utils.js +92 -4
  268. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  269. package/fesm2015/theseam-ui-common-widget.js +12 -12
  270. package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
  271. package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -1
  272. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  273. package/graphql/datatable/create-page-info-observable.d.ts +4 -0
  274. package/graphql/datatable/datatable-graphql-query-ref.d.ts +65 -0
  275. package/graphql/datatable/datatable-graphql.service.d.ts +26 -0
  276. package/graphql/datatable/datatable-helpers.d.ts +12 -0
  277. package/graphql/datatable/get-page-info.d.ts +4 -0
  278. package/graphql/datatable/index.d.ts +6 -0
  279. package/graphql/datatable/map-filter-states.d.ts +18 -0
  280. package/graphql/datatable/map-page-info.d.ts +11 -0
  281. package/graphql/datatable/mapper-context.d.ts +6 -0
  282. package/graphql/models/gql-datatable-accessor.d.ts +9 -0
  283. package/graphql/models/index.d.ts +1 -0
  284. package/graphql/models/query-processing-config.d.ts +4 -0
  285. package/graphql/public-api.d.ts +1 -0
  286. package/graphql/theseam-ui-common-graphql.metadata.json +1 -1
  287. package/icon/theseam-ui-common-icon.metadata.json +1 -1
  288. package/loading/theseam-ui-common-loading.metadata.json +1 -1
  289. package/menu/theseam-ui-common-menu.metadata.json +1 -1
  290. package/modal/theseam-ui-common-modal.metadata.json +1 -1
  291. package/package.json +1 -1
  292. package/popover/theseam-ui-common-popover.metadata.json +1 -1
  293. package/progress/theseam-ui-common-progress.metadata.json +1 -1
  294. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +54 -52
  295. package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -1
  296. package/table/theseam-ui-common-table.metadata.json +1 -1
  297. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
  298. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  299. package/testing/current-tick-time.d.ts +13 -0
  300. package/testing/fake-toastr.d.ts +30 -0
  301. package/testing/get-harness.d.ts +7 -0
  302. package/testing/package.json +11 -0
  303. package/testing/public-api.d.ts +6 -0
  304. package/testing/render-story.d.ts +2 -0
  305. package/testing/story-expect.d.ts +5 -0
  306. package/{test-helpers/theseam-ui-common-test-helpers.d.ts → testing/theseam-ui-common-testing.d.ts} +0 -0
  307. package/testing/theseam-ui-common-testing.metadata.json +1 -0
  308. package/{test-helpers → testing}/tick-helper.d.ts +0 -0
  309. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +7 -3
  310. package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +1 -0
  311. package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -1
  312. package/tiled-select/tiled-select.models.d.ts +3 -1
  313. package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -1
  314. package/utils/array-move.d.ts +49 -0
  315. package/utils/public-api.d.ts +1 -0
  316. package/utils/subscriber-count.d.ts +13 -1
  317. package/utils/theseam-ui-common-utils.metadata.json +1 -1
  318. package/widget/theseam-ui-common-widget.metadata.json +1 -1
  319. package/bundles/theseam-ui-common-test-helpers.umd.js +0 -94
  320. package/bundles/theseam-ui-common-test-helpers.umd.js.map +0 -1
  321. package/esm2015/test-helpers/public-api.js +0 -2
  322. package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +0 -5
  323. package/esm2015/test-helpers/tick-helper.js +0 -74
  324. package/fesm2015/theseam-ui-common-test-helpers.js +0 -81
  325. package/fesm2015/theseam-ui-common-test-helpers.js.map +0 -1
  326. package/test-helpers/package.json +0 -11
  327. package/test-helpers/public-api.d.ts +0 -1
  328. package/test-helpers/theseam-ui-common-test-helpers.metadata.json +0 -1
@@ -88,7 +88,7 @@ DatatableActionMenuComponent.decorators = [
88
88
  { type: Component, args: [{
89
89
  selector: 'seam-datatable-action-menu',
90
90
  template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n",
91
- styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}"]
91
+ styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"]
92
92
  },] }
93
93
  ];
94
94
  DatatableActionMenuComponent.ctorParameters = () => [
@@ -80,4 +80,4 @@ DatatableColumnComponent.propDecorators = {
80
80
  _cellTemplateInput: [{ type: Input, args: ['cellTemplate',] }],
81
81
  _cellTemplateQuery: [{ type: ContentChild, args: [DatatableCellTplDirective, { read: TemplateRef, static: true },] }]
82
82
  };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFtRCxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJNUgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDdEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFLNUYsK0VBQStFO0FBQy9FLDhFQUE4RTtBQU85RSxNQUFNLE9BQU8sd0JBQXdCO0lBc0RuQywyQkFBMkI7SUFDM0IsMENBQTBDO0lBRTFDLHFGQUFxRjtJQUNyRiwwQ0FBMEM7SUFFMUMsMkNBQTJDO0lBQzNDLG1FQUFtRTtJQUNuRSxJQUFJO0lBRUosK0JBQStCO0lBQy9CLDhDQUE4QztJQUU5QyxvRkFBb0Y7SUFDcEYsOENBQThDO0lBRTlDLCtDQUErQztJQUMvQywyRUFBMkU7SUFDM0UsSUFBSTtJQUVKLFlBQ1UscUJBQW9EO1FBQXBELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBK0I7UUFwQ3RELG1CQUFjLEdBQUcsSUFBSSxDQUFBO0lBcUMxQixDQUFDO0lBMUJKLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUMzRCxDQUFDO0lBMEJELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQzNDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtTQUM3QjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7O1lBbkdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxrREFBZ0Q7O2FBRWpEOzs7WUFaUSw2QkFBNkI7OzttQkFlbkMsS0FBSzttQkFDTCxLQUFLO3VCQUVMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBRUwsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7NEJBRUwsS0FBSzt5QkFFTCxLQUFLOzZCQUVMLEtBQUs7MkJBRUwsS0FBSztpQ0FDTCxLQUFLOzBCQUVMLEtBQUs7d0JBQ0wsS0FBSzt5QkFFTCxLQUFLOzBCQUNMLEtBQUs7bUJBRUwsS0FBSzsyQkFFTCxLQUFLOzhCQUNMLEtBQUs7MEJBRUwsS0FBSzs4QkFDTCxLQUFLO3FCQUVMLEtBQUs7K0JBSUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtpQ0FHeEQsS0FBSyxTQUFDLGNBQWM7aUNBR3BCLFlBQVksU0FBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFBpcGVUcmFuc2Zvcm0sIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgQ29sdW1uQ2hhbmdlc1NlcnZpY2UgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5cbmltcG9ydCB7IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5DaGFuZ2VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlJ1xuXG4vLyBIQUNLOiBVbmlvbiB0eXBlIHByZXZlbnRzIHRoZSBub3QgZm91bmQgd2FybmluZ1xudHlwZSBfUGlwZVRyYW5zZm9ybSA9IFBpcGVUcmFuc2Zvcm0gfCBQaXBlVHJhbnNmb3JtXG5cbi8vIFRPRE86IFRoZSBjb2x1bW4gY29tcG9uZW50IHNob3VsZCBpbXBsZW1lbnQgYElUaGVTZWFtRGF0YXRhYmxlQ29sdW1uYCwgc2luY2Vcbi8vIHByb3ZpZGluZyBzb21lIHByb3BlcnRpZXMgYnkgaW5wdXQgYW5kIHNvbWUgYnkgdGVtcGxhdGUgY291bGQgYmUgY29uZnVzaW5nLlxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGF0YWJsZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBwcm9wOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgZmxleEdyb3c6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgbWluV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgbWF4V2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSByZXNpemVhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZHJhZ2dhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGNhbkF1dG9SZXNpemU6IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgY29tcGFyYXRvcjogKCh2YWx1ZUE6IGFueSwgdmFsdWVCOiBhbnksIHJvd0E/OiBhbnksIHJvd0I/OiBhbnksIHNvcnREaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJykgPT4gLTEgfCAwIHwgMSkgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgY2hlY2tib3hhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBoZWFkZXJDaGVja2JveGFibGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgaGVhZGVyQ2xhc3M6IHN0cmluZyB8ICgoZGF0YTogYW55KSA9PiBzdHJpbmd8YW55KSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgY2VsbENsYXNzOiBzdHJpbmcgfCAoKGRhdGE6IGFueSkgPT4gc3RyaW5nfGFueSkgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgZnJvemVuTGVmdDogYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZnJvemVuUmlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgcGlwZTogX1BpcGVUcmFuc2Zvcm0gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgaXNUcmVlQ29sdW1uOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSB0cmVlTGV2ZWxJbmRlbnQ6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBzdW1tYXJ5RnVuYzogKChjZWxsczogYW55W10pID0+IGFueSkgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBoaWRkZW46IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHJpdmF0ZSBfaXNGaXJzdENoYW5nZSA9IHRydWVcblxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGNlbGxUcGxEaXJlY3RpdmU/OiBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlXG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjZWxsVGVtcGxhdGUnKVxuICBfY2VsbFRlbXBsYXRlSW5wdXQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQENvbnRlbnRDaGlsZChEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX2NlbGxUZW1wbGF0ZVF1ZXJ5PzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGdldCBjZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jZWxsVGVtcGxhdGVJbnB1dCB8fCB0aGlzLl9jZWxsVGVtcGxhdGVRdWVyeVxuICB9XG5cbiAgLy8gQElucHV0KCdoZWFkZXJUZW1wbGF0ZScpXG4gIC8vIF9oZWFkZXJUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX2hlYWRlclRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8gZ2V0IGhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9oZWFkZXJUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX2hlYWRlclRlbXBsYXRlUXVlcnk7XG4gIC8vIH1cblxuICAvLyBASW5wdXQoJ3RyZWVUb2dnbGVUZW1wbGF0ZScpXG4gIC8vIF90cmVlVG9nZ2xlVGVtcGxhdGVJbnB1dDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyBAQ29udGVudENoaWxkKERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIGdldCB0cmVlVG9nZ2xlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5O1xuICAvLyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29sdW1uQ2hhbmdlc1NlcnZpY2U6IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5faXNGaXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5faXNGaXJzdENoYW5nZSA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbHVtbkNoYW5nZXNTZXJ2aWNlLm9uSW5wdXRDaGFuZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDZWxsRGlyZWN0aXZlKCk6IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jZWxsVHBsRGlyZWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jZWxsVHBsRGlyZWN0aXZlXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFtRCxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJNUgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDdEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFLNUYsK0VBQStFO0FBQy9FLDhFQUE4RTtBQU85RSxNQUFNLE9BQU8sd0JBQXdCO0lBc0RuQywyQkFBMkI7SUFDM0IsMENBQTBDO0lBRTFDLHFGQUFxRjtJQUNyRiwwQ0FBMEM7SUFFMUMsMkNBQTJDO0lBQzNDLG1FQUFtRTtJQUNuRSxJQUFJO0lBRUosK0JBQStCO0lBQy9CLDhDQUE4QztJQUU5QyxvRkFBb0Y7SUFDcEYsOENBQThDO0lBRTlDLCtDQUErQztJQUMvQywyRUFBMkU7SUFDM0UsSUFBSTtJQUVKLFlBQ1UscUJBQW9EO1FBQXBELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBK0I7UUFwQ3RELG1CQUFjLEdBQUcsSUFBSSxDQUFBO0lBcUMxQixDQUFDO0lBMUJKLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUMzRCxDQUFDO0lBMEJELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQzNDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtTQUM3QjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7O1lBbkdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxrREFBZ0Q7O2FBRWpEOzs7WUFaUSw2QkFBNkI7OzttQkFlbkMsS0FBSzttQkFDTCxLQUFLO3VCQUVMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBRUwsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7NEJBRUwsS0FBSzt5QkFFTCxLQUFLOzZCQUVMLEtBQUs7MkJBRUwsS0FBSztpQ0FDTCxLQUFLOzBCQUVMLEtBQUs7d0JBQ0wsS0FBSzt5QkFFTCxLQUFLOzBCQUNMLEtBQUs7bUJBRUwsS0FBSzsyQkFFTCxLQUFLOzhCQUNMLEtBQUs7MEJBRUwsS0FBSzs4QkFDTCxLQUFLO3FCQUVMLEtBQUs7K0JBSUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtpQ0FHeEQsS0FBSyxTQUFDLGNBQWM7aUNBR3BCLFlBQVksU0FBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFBpcGVUcmFuc2Zvcm0sIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgQ29sdW1uQ2hhbmdlc1NlcnZpY2UsIFRhYmxlQ29sdW1uUHJvcCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNlbGwtdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5cbi8vIEhBQ0s6IFVuaW9uIHR5cGUgcHJldmVudHMgdGhlIG5vdCBmb3VuZCB3YXJuaW5nXG50eXBlIF9QaXBlVHJhbnNmb3JtID0gUGlwZVRyYW5zZm9ybSB8IFBpcGVUcmFuc2Zvcm1cblxuLy8gVE9ETzogVGhlIGNvbHVtbiBjb21wb25lbnQgc2hvdWxkIGltcGxlbWVudCBgSVRoZVNlYW1EYXRhdGFibGVDb2x1bW5gLCBzaW5jZVxuLy8gcHJvdmlkaW5nIHNvbWUgcHJvcGVydGllcyBieSBpbnB1dCBhbmQgc29tZSBieSB0ZW1wbGF0ZSBjb3VsZCBiZSBjb25mdXNpbmcuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBASW5wdXQoKSBwcm9wPzogVGFibGVDb2x1bW5Qcm9wIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGZsZXhHcm93PzogbnVtYmVyIHwgbnVsbFxuICBASW5wdXQoKSBtaW5XaWR0aD86IG51bWJlciB8IG51bGxcbiAgQElucHV0KCkgbWF4V2lkdGg/OiBudW1iZXIgfCBudWxsXG4gIEBJbnB1dCgpIHdpZHRoPzogbnVtYmVyIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHJlc2l6ZWFibGU/OiBib29sZWFuIHwgbnVsbFxuICBASW5wdXQoKSBzb3J0YWJsZT86IGJvb2xlYW4gfCBudWxsXG4gIEBJbnB1dCgpIGRyYWdnYWJsZT86IGJvb2xlYW4gfCBudWxsXG5cbiAgQElucHV0KCkgY2FuQXV0b1Jlc2l6ZT86IGJvb2xlYW4gfCBudWxsXG5cbiAgQElucHV0KCkgY29tcGFyYXRvcj86ICgodmFsdWVBOiBhbnksIHZhbHVlQjogYW55LCByb3dBPzogYW55LCByb3dCPzogYW55LCBzb3J0RGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYycpID0+IC0xIHwgMCB8IDEpIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcblxuICBASW5wdXQoKSBjaGVja2JveGFibGU/OiBib29sZWFuIHwgbnVsbFxuICBASW5wdXQoKSBoZWFkZXJDaGVja2JveGFibGU/OiBib29sZWFuIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGhlYWRlckNsYXNzPzogc3RyaW5nIHwgKChkYXRhOiBhbnkpID0+IHN0cmluZ3xhbnkpIHwgbnVsbFxuICBASW5wdXQoKSBjZWxsQ2xhc3M/OiBzdHJpbmcgfCAoKGRhdGE6IGFueSkgPT4gc3RyaW5nfGFueSkgfCBudWxsXG5cbiAgQElucHV0KCkgZnJvemVuTGVmdD86IGJvb2xlYW4gfCBudWxsXG4gIEBJbnB1dCgpIGZyb3plblJpZ2h0PzogYm9vbGVhbiB8IG51bGxcblxuICBASW5wdXQoKSBwaXBlPzogX1BpcGVUcmFuc2Zvcm0gfCBudWxsXG5cbiAgQElucHV0KCkgaXNUcmVlQ29sdW1uPzogYm9vbGVhbiB8IG51bGxcbiAgQElucHV0KCkgdHJlZUxldmVsSW5kZW50PzogbnVtYmVyIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHN1bW1hcnlGdW5jPzogKChjZWxsczogYW55W10pID0+IGFueSkgfCBudWxsXG4gIEBJbnB1dCgpIHN1bW1hcnlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG5cbiAgQElucHV0KCkgaGlkZGVuPzogYm9vbGVhbiB8IG51bGxcblxuICBwcml2YXRlIF9pc0ZpcnN0Q2hhbmdlID0gdHJ1ZVxuXG4gIEBDb250ZW50Q2hpbGQoRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgY2VsbFRwbERpcmVjdGl2ZT86IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmVcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NlbGxUZW1wbGF0ZScpXG4gIF9jZWxsVGVtcGxhdGVJbnB1dD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG5cbiAgQENvbnRlbnRDaGlsZChEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX2NlbGxUZW1wbGF0ZVF1ZXJ5PzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGdldCBjZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jZWxsVGVtcGxhdGVJbnB1dCB8fCB0aGlzLl9jZWxsVGVtcGxhdGVRdWVyeVxuICB9XG5cbiAgLy8gQElucHV0KCdoZWFkZXJUZW1wbGF0ZScpXG4gIC8vIF9oZWFkZXJUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX2hlYWRlclRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8gZ2V0IGhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9oZWFkZXJUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX2hlYWRlclRlbXBsYXRlUXVlcnk7XG4gIC8vIH1cblxuICAvLyBASW5wdXQoJ3RyZWVUb2dnbGVUZW1wbGF0ZScpXG4gIC8vIF90cmVlVG9nZ2xlVGVtcGxhdGVJbnB1dDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyBAQ29udGVudENoaWxkKERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIGdldCB0cmVlVG9nZ2xlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5O1xuICAvLyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29sdW1uQ2hhbmdlc1NlcnZpY2U6IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5faXNGaXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5faXNGaXJzdENoYW5nZSA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbHVtbkNoYW5nZXNTZXJ2aWNlLm9uSW5wdXRDaGFuZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDZWxsRGlyZWN0aXZlKCk6IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jZWxsVHBsRGlyZWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jZWxsVHBsRGlyZWN0aXZlXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG59XG4iXX0=
@@ -2,45 +2,62 @@ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { combineLatest, of } from 'rxjs';
4
4
  import { map } from 'rxjs/operators';
5
- import { observeControlValue } from '@theseam/ui-common/utils';
5
+ import { notNullOrUndefined, observeControlValue } from '@theseam/ui-common/utils';
6
6
  import { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component';
7
+ import { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration';
8
+ import { isInternalColumn } from '../models/internal-column-props';
9
+ import { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service';
10
+ import { getColumnProp } from '../utils/get-column-prop';
7
11
  export class DatatableColumnPreferencesComponent {
8
- constructor(_datatable) {
12
+ constructor(_datatable, _columnsAlterationsManager) {
9
13
  var _a;
10
14
  this._datatable = _datatable;
15
+ this._columnsAlterationsManager = _columnsAlterationsManager;
11
16
  this._filterControl = new FormControl();
12
17
  this._columns$ = combineLatest([
13
18
  (_a = this._datatable.columns$) !== null && _a !== void 0 ? _a : of([]),
14
19
  observeControlValue(this._filterControl)
15
20
  ]).pipe(map(([columns, filter]) => {
16
21
  const _filter = (filter || '').trim().toLowerCase();
17
- return columns.filter(c => `${(c.name || c.prop || '')}`.toLowerCase().indexOf(_filter) !== -1);
18
- }), map(cols => cols.sort((a, b) => a.prop === b.prop ? 0 : a.prop > b.prop ? 1 : -1)));
22
+ return columns
23
+ .filter(c => this._canToggleColumn(c, _filter));
24
+ }));
19
25
  }
20
- ngOnInit() { }
21
- _onChange(event, col) {
22
- // TODO: Figure out the right way to update this value. If it is set by
23
- // column component input this may not work right.
24
- const columns = this._datatable.columns || [];
25
- const column = columns.find(c => c.prop === col.prop);
26
- if (column) {
27
- column.hidden = !event.checked;
28
- this._datatable.columns = [...columns];
26
+ _canToggleColumn(column, filter, omitInternalColumns = true) {
27
+ if (omitInternalColumns && isInternalColumn(column)) {
28
+ return false;
29
+ }
30
+ return this._columnMatchesFilter(column, filter);
31
+ }
32
+ _columnMatchesFilter(column, filter) {
33
+ if (filter.length === 0) {
34
+ return true;
29
35
  }
36
+ return `${(getColumnProp(column) || '')}`.toLowerCase().indexOf(filter) !== -1;
30
37
  }
31
- _onCloseClick() {
32
- // TODO: Implement when PopoverRef is implemented.
38
+ _onChange(event, col) {
39
+ const columnProp = getColumnProp(col);
40
+ const hidden = !event.checked;
41
+ if (!notNullOrUndefined(columnProp)) {
42
+ throw Error(`Unable to get column prop.`);
43
+ }
44
+ const alteration = new HideColumnColumnsAlteration({
45
+ columnProp,
46
+ hidden
47
+ }, hidden);
48
+ this._columnsAlterationsManager.add([alteration]);
33
49
  }
34
50
  }
35
51
  DatatableColumnPreferencesComponent.decorators = [
36
52
  { type: Component, args: [{
37
53
  selector: 'seam-datatable-column-preferences',
38
- template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\">\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n",
54
+ template: "<h3>Columns</h3>\n\n<seam-form-field [numPaddingErrors]=\"0\" >\n <input seamInput [formControl]=\"_filterControl\" seamInputSize=\"sm\" placeholder=\"Search\" seamAutoFocus>\n</seam-form-field>\n\n<div seamOverlayScrollbar style=\"min-height: 200px; max-height: 600px; min-width: 250px;\" class=\"flex-grow-1 mb-2\">\n <div class=\"p-2\">\n <ng-container *ngFor=\"let col of _columns$ | async\">\n <seam-checkbox [checked]=\"!col.hidden\" (change)=\"_onChange($event, col)\">{{ col.name || col.prop }}</seam-checkbox>\n </ng-container>\n </div>\n\n</div>\n<div class=\"d-flex flex-row justify-content-end\">\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" (click)=\"_onCloseClick()\">Close</button> -->\n <!-- <button seamButton size=\"sm\" theme=\"lightgray\" class=\"mr-1\">Cancel</button>\n <button seamButton size=\"sm\" theme=\"success\">Done</button> -->\n</div>\n",
39
55
  changeDetection: ChangeDetectionStrategy.OnPush,
40
- styles: [":host{display:flex;flex-direction:column}"]
56
+ styles: [":host{display:flex;flex-direction:column}\n"]
41
57
  },] }
42
58
  ];
43
59
  DatatableColumnPreferencesComponent.ctorParameters = () => [
44
- { type: DatatableComponent, decorators: [{ type: Inject, args: [THESEAM_DATATABLE,] }] }
60
+ { type: DatatableComponent, decorators: [{ type: Inject, args: [THESEAM_DATATABLE,] }] },
61
+ { type: ColumnsAlterationsManagerService }
45
62
  ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMvZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQVN4RixNQUFNLE9BQU8sbUNBQW1DO0lBTTlDLFlBQ3FDLFVBQThCOztRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUhuRSxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUE7UUFLaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7WUFDN0IsTUFBQSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsbUNBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxtQkFBbUIsQ0FBUyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ2pELENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBRSxPQUFPLEVBQUUsTUFBTSxDQUFFLEVBQUUsRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNuRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakcsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVSxDQUFDLENBQUMsSUFBSyxHQUFZLENBQUMsQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN2RyxDQUFBO0lBQ0gsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUEyQjtRQUMvQyx1RUFBdUU7UUFDdkUsa0RBQWtEO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckQsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFFLEdBQUcsT0FBTyxDQUFFLENBQUE7U0FDekM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLGtEQUFrRDtJQUNwRCxDQUFDOzs7WUExQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQ0FBbUM7Z0JBQzdDLGc0QkFBNEQ7Z0JBRTVELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBUlEsa0JBQWtCLHVCQWdCdEIsTUFBTSxTQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgb2JzZXJ2ZUNvbnRyb2xWYWx1ZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRGF0YXRhYmxlQ29tcG9uZW50LCBUSEVTRUFNX0RBVEFUQUJMRSB9IGZyb20gJy4uL2RhdGF0YWJsZS9kYXRhdGFibGUuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgX2NvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICBfZmlsdGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRSkgcHJpdmF0ZSBfZGF0YXRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQsXG4gICkge1xuICAgIHRoaXMuX2NvbHVtbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9kYXRhdGFibGUuY29sdW1ucyQgPz8gb2YoW10pLFxuICAgICAgb2JzZXJ2ZUNvbnRyb2xWYWx1ZTxzdHJpbmc+KHRoaXMuX2ZpbHRlckNvbnRyb2wpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoWyBjb2x1bW5zLCBmaWx0ZXIgXSkgPT4ge1xuICAgICAgICBjb25zdCBfZmlsdGVyID0gKGZpbHRlciB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgcmV0dXJuIGNvbHVtbnMuZmlsdGVyKGMgPT4gYCR7KGMubmFtZSB8fCBjLnByb3AgfHwgJycpfWAudG9Mb3dlckNhc2UoKS5pbmRleE9mKF9maWx0ZXIpICE9PSAtMSlcbiAgICAgIH0pLFxuICAgICAgbWFwKGNvbHMgPT4gY29scy5zb3J0KChhLCBiKSA9PiBhLnByb3AgPT09IGIucHJvcCA/IDAgOiAoPHN0cmluZz5hLnByb3ApID4gKDxzdHJpbmc+Yi5wcm9wKSA/IDEgOiAtMSkpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICBfb25DaGFuZ2UoZXZlbnQ6IGFueSwgY29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uKSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCB0aGUgcmlnaHQgd2F5IHRvIHVwZGF0ZSB0aGlzIHZhbHVlLiBJZiBpdCBpcyBzZXQgYnlcbiAgICAvLyBjb2x1bW4gY29tcG9uZW50IGlucHV0IHRoaXMgbWF5IG5vdCB3b3JrIHJpZ2h0LlxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9kYXRhdGFibGUuY29sdW1ucyB8fCBbXVxuICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZChjID0+IGMucHJvcCA9PT0gY29sLnByb3ApXG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgY29sdW1uLmhpZGRlbiA9ICFldmVudC5jaGVja2VkXG4gICAgICB0aGlzLl9kYXRhdGFibGUuY29sdW1ucyA9IFsgLi4uY29sdW1ucyBdXG4gICAgfVxuICB9XG5cbiAgX29uQ2xvc2VDbGljaygpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2hlbiBQb3BvdmVyUmVmIGlzIGltcGxlbWVudGVkLlxuICB9XG5cbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMvZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN4RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUMxRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQTtBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFReEQsTUFBTSxPQUFPLG1DQUFtQztJQUs5QyxZQUNxQyxVQUE4QixFQUNoRCwwQkFBNEQ7O1FBRDFDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQ2hELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBa0M7UUFKL0UsbUJBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO1FBTWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQzdCLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLG1DQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsbUJBQW1CLENBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNqRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBRSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDbkQsT0FBTyxPQUFPO2lCQUNYLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQThCLEVBQUUsTUFBYyxFQUFFLHNCQUErQixJQUFJO1FBQzFHLElBQUksbUJBQW1CLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkQsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBOEIsRUFBRSxNQUFjO1FBQ3pFLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQTtTQUFFO1FBRXhDLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUEyQjtRQUMvQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBRTdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuQyxNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1NBQzFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBMkIsQ0FDaEQ7WUFDRSxVQUFVO1lBQ1YsTUFBTTtTQUNQLEVBQ0QsTUFBTSxDQUNQLENBQUE7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUUsVUFBVSxDQUFFLENBQUMsQ0FBQTtJQUNyRCxDQUFDOzs7WUExREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQ0FBbUM7Z0JBQzdDLDg0QkFBNEQ7Z0JBRTVELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBWlEsa0JBQWtCLHVCQW1CdEIsTUFBTSxTQUFDLGlCQUFpQjtZQWZwQixnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IERhdGF0YWJsZUNvbXBvbmVudCwgVEhFU0VBTV9EQVRBVEFCTEUgfSBmcm9tICcuLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IEhpZGVDb2x1bW5Db2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb25zL2hpZGUtY29sdW1uLmNvbHVtbnMtYWx0ZXJhdGlvbidcbmltcG9ydCB7IGlzSW50ZXJuYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwtY29sdW1uLXByb3BzJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5pbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbHVtbnMtYWx0ZXJhdGlvbnMtbWFuYWdlci5zZXJ2aWNlJ1xuaW1wb3J0IHsgZ2V0Q29sdW1uUHJvcCB9IGZyb20gJy4uL3V0aWxzL2dldC1jb2x1bW4tcHJvcCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50IHtcbiAgX2NvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICBfZmlsdGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRSkgcHJpdmF0ZSBfZGF0YXRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uc0FsdGVyYXRpb25zTWFuYWdlcjogQ29sdW1uc0FsdGVyYXRpb25zTWFuYWdlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2NvbHVtbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9kYXRhdGFibGUuY29sdW1ucyQgPz8gb2YoW10pLFxuICAgICAgb2JzZXJ2ZUNvbnRyb2xWYWx1ZTxzdHJpbmc+KHRoaXMuX2ZpbHRlckNvbnRyb2wpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoWyBjb2x1bW5zLCBmaWx0ZXIgXSkgPT4ge1xuICAgICAgICBjb25zdCBfZmlsdGVyID0gKGZpbHRlciB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgcmV0dXJuIGNvbHVtbnNcbiAgICAgICAgICAuZmlsdGVyKGMgPT4gdGhpcy5fY2FuVG9nZ2xlQ29sdW1uKGMsIF9maWx0ZXIpKVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FuVG9nZ2xlQ29sdW1uKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgZmlsdGVyOiBzdHJpbmcsIG9taXRJbnRlcm5hbENvbHVtbnM6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgaWYgKG9taXRJbnRlcm5hbENvbHVtbnMgJiYgaXNJbnRlcm5hbENvbHVtbihjb2x1bW4pKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29sdW1uTWF0Y2hlc0ZpbHRlcihjb2x1bW4sIGZpbHRlcilcbiAgfVxuXG4gIHByaXZhdGUgX2NvbHVtbk1hdGNoZXNGaWx0ZXIoY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uLCBmaWx0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAwKSB7IHJldHVybiB0cnVlIH1cblxuICAgIHJldHVybiBgJHsoZ2V0Q29sdW1uUHJvcChjb2x1bW4pIHx8ICcnKX1gLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIpICE9PSAtMVxuICB9XG5cbiAgX29uQ2hhbmdlKGV2ZW50OiBhbnksIGNvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbikge1xuICAgIGNvbnN0IGNvbHVtblByb3AgPSBnZXRDb2x1bW5Qcm9wKGNvbClcbiAgICBjb25zdCBoaWRkZW4gPSAhZXZlbnQuY2hlY2tlZFxuXG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQoY29sdW1uUHJvcCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBVbmFibGUgdG8gZ2V0IGNvbHVtbiBwcm9wLmApXG4gICAgfVxuXG4gICAgY29uc3QgYWx0ZXJhdGlvbiA9IG5ldyBIaWRlQ29sdW1uQ29sdW1uc0FsdGVyYXRpb24oXG4gICAgICB7XG4gICAgICAgIGNvbHVtblByb3AsXG4gICAgICAgIGhpZGRlblxuICAgICAgfSxcbiAgICAgIGhpZGRlblxuICAgIClcblxuICAgIHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuYWRkKFsgYWx0ZXJhdGlvbiBdKVxuICB9XG5cbn1cbiJdfQ==
@@ -1,18 +1,52 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { faColumns } from '@fortawesome/free-solid-svg-icons';
3
+ import { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service';
3
4
  export class DatatableColumnPreferencesButtonComponent {
4
- constructor() {
5
+ constructor(_columnsAlterationsManager) {
6
+ this._columnsAlterationsManager = _columnsAlterationsManager;
5
7
  this.icon = faColumns;
8
+ /** @ignore */
9
+ this._actionMenuPositions = [
10
+ {
11
+ originX: 'start',
12
+ originY: 'bottom',
13
+ overlayX: 'end',
14
+ overlayY: 'top',
15
+ },
16
+ {
17
+ originX: 'start',
18
+ originY: 'top',
19
+ overlayX: 'end',
20
+ overlayY: 'bottom',
21
+ },
22
+ {
23
+ originX: 'end',
24
+ originY: 'bottom',
25
+ overlayX: 'start',
26
+ overlayY: 'top',
27
+ },
28
+ {
29
+ originX: 'end',
30
+ originY: 'top',
31
+ overlayX: 'start',
32
+ overlayY: 'bottom',
33
+ },
34
+ ];
6
35
  }
7
36
  ngOnInit() { }
37
+ _resetColumns(event) {
38
+ this._columnsAlterationsManager.clear();
39
+ }
8
40
  }
9
41
  DatatableColumnPreferencesButtonComponent.decorators = [
10
42
  { type: Component, args: [{
11
43
  selector: 'seam-datatable-column-preferences-button',
12
- template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n\n<button\n seamButton\n [seamPopover]=\"colPrefsTpl\"\n theme=\"lightgray\"\n size=\"sm\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\"\n >\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n",
44
+ template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n",
13
45
  changeDetection: ChangeDetectionStrategy.OnPush,
14
46
  styles: [""]
15
47
  },] }
16
48
  ];
17
- DatatableColumnPreferencesButtonComponent.ctorParameters = () => [];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFRN0QsTUFBTSxPQUFPLHlDQUF5QztJQUlwRDtRQUZBLFNBQUksR0FBRyxTQUFTLENBQUE7SUFFQSxDQUFDO0lBRWpCLFFBQVEsS0FBSyxDQUFDOzs7WUFaZixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztnQkFDcEQsMmFBQW1FO2dCQUVuRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBmYUNvbHVtbnMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaWNvbiA9IGZhQ29sdW1uc1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxufVxuIl19
49
+ DatatableColumnPreferencesButtonComponent.ctorParameters = () => [
50
+ { type: ColumnsAlterationsManagerService }
51
+ ];
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDN0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saURBQWlELENBQUE7QUFRbEcsTUFBTSxPQUFPLHlDQUF5QztJQWdDcEQsWUFDbUIsMEJBQTREO1FBQTVELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBa0M7UUEvQi9FLFNBQUksR0FBRyxTQUFTLENBQUE7UUFFaEIsY0FBYztRQUNkLHlCQUFvQixHQUE2QjtZQUMvQztnQkFDRSxPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsUUFBUTthQUNuQjtTQUNGLENBQUE7SUFJRyxDQUFDO0lBRUwsUUFBUSxLQUFLLENBQUM7SUFFZCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDekMsQ0FBQzs7O1lBOUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMENBQTBDO2dCQUNwRCxvN0JBQW1FO2dCQUVuRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVBRLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IGZhQ29sdW1ucyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IENvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sdW1ucy1hbHRlcmF0aW9ucy1tYW5hZ2VyLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaWNvbiA9IGZhQ29sdW1uc1xuXG4gIC8qKiBAaWdub3JlICovXG4gIF9hY3Rpb25NZW51UG9zaXRpb25zOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyOiBDb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyU2VydmljZSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIF9yZXNldENvbHVtbnMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuY2xlYXIoKVxuICB9XG5cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, Inject, Input, isDevMode, Optional } from '@angular/core';
2
- import { of } from 'rxjs';
2
+ import { combineLatest, of } from 'rxjs';
3
3
  import { catchError, concatMap, map, take, tap } from 'rxjs/operators';
4
4
  import { faFileDownload } from '@fortawesome/free-solid-svg-icons';
5
5
  import { ToastrService } from 'ngx-toastr';
@@ -7,6 +7,7 @@ import { DynamicValueHelperService, THESEAM_DYNAMIC_DATA } from '@theseam/ui-com
7
7
  import { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading';
8
8
  import { hasProperty } from '@theseam/ui-common/utils';
9
9
  import { DatatableComponent, THESEAM_DATATABLE } from '../datatable/datatable.component';
10
+ import { isInternalColumn } from '../models/internal-column-props';
10
11
  export class DatatableExportButtonComponent {
11
12
  constructor(_datatable, _toastr, _loading, _valueHelper, _data) {
12
13
  this._datatable = _datatable;
@@ -30,12 +31,14 @@ export class DatatableExportButtonComponent {
30
31
  : `${exporter.label} export is not available.`;
31
32
  this._toastr.error(msg, 'Data Export');
32
33
  }
33
- const export$ = this._datatable.rows$
34
- .pipe(take(1), map(rows => {
34
+ const export$ = combineLatest([
35
+ this._datatable.rows$,
36
+ this._datatable.columns$.pipe(map(cols => cols.filter(c => !isInternalColumn(c))))
37
+ ]).pipe(take(1), map(([rows, columns]) => {
35
38
  if (exporter.skipDataMapping) {
36
39
  return rows;
37
40
  }
38
- return this._mapExportData(this._datatable.columns || [], rows);
41
+ return this._mapExportData(columns || [], rows);
39
42
  }), concatMap(data => exporter.export(data)), catchError(err => {
40
43
  console.error(err);
41
44
  return of(false);
@@ -82,7 +85,7 @@ DatatableExportButtonComponent.decorators = [
82
85
  selector: 'seam-datatable-export-button',
83
86
  template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n",
84
87
  changeDetection: ChangeDetectionStrategy.OnPush,
85
- styles: [":host{display:inline-block}"]
88
+ styles: [":host{display:inline-block}\n"]
86
89
  },] }
87
90
  ];
88
91
  DatatableExportButtonComponent.ctorParameters = () => [
@@ -95,4 +98,4 @@ DatatableExportButtonComponent.ctorParameters = () => [
95
98
  DatatableExportButtonComponent.propDecorators = {
96
99
  exporters: [{ type: Input }]
97
100
  };
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRzFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQWF4RixNQUFNLE9BQU8sOEJBQThCO0lBVXpDLFlBQzhDLFVBQThCLEVBQ3pELE9BQXNCLEVBQ3RCLFFBQXNDLEVBQ3RDLFlBQXVDLEVBQ0csS0FBa0M7UUFKakQsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDekQsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUN0QyxpQkFBWSxH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QUMsTUFBTSxDQUFDLENBQUE7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBOEIsRUFBRSxHQUFRO1FBQ3hELElBQUksV0FBVyxDQUFDLE1BQWEsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUE7WUFDMUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBRSxNQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1NBQ3hFO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUMzQixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3BCO1FBQ0QsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQzs7O1lBaEdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxzZkFBdUQ7Z0JBRXZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBWlEsa0JBQWtCLHVCQXdCdEIsTUFBTSxTQUFDLGlCQUFpQjtZQS9CcEIsYUFBYTtZQUliLDRCQUE0QjtZQUQ1Qix5QkFBeUI7NENBZ0M3QixRQUFRLFlBQUksTUFBTSxTQUFDLG9CQUFvQjs7O3dCQVh6QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFGaWxlRG93bmxvYWQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cidcblxuaW1wb3J0IHsgSURhdGFFeHBvcnRlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9kYXRhLWV4cG9ydGVyJ1xuaW1wb3J0IHsgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSwgVEhFU0VBTV9EWU5BTUlDX0RBVEEgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYydcbmltcG9ydCB7IFRoZVNlYW1Mb2FkaW5nT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbG9hZGluZydcbmltcG9ydCB7IGhhc1Byb3BlcnR5IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVDb21wb25lbnQsIFRIRVNFQU1fREFUQVRBQkxFIH0gZnJvbSAnLi4vZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YXRhYmxlRXhwb3J0QnV0dG9uRGF0YSB7XG4gIGV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWV4cG9ydC1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGljb24gPSBmYUZpbGVEb3dubG9hZFxuXG4gIEBJbnB1dCgpIGV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gISh0aGlzLmV4cG9ydGVycyAmJiB0aGlzLmV4cG9ydGVycy5sZW5ndGggPiAwKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRSkgcHJpdmF0ZSByZWFkb25seSBfZGF0YXRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmc6IFRoZVNlYW1Mb2FkaW5nT3ZlcmxheVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0RZTkFNSUNfREFUQSkgcHJpdmF0ZSByZWFkb25seSBfZGF0YT86IElEYXRhdGFibGVFeHBvcnRCdXR0b25EYXRhXG4gICkge1xuICAgIGlmICh0aGlzLl9kYXRhICYmIHRoaXMuX2RhdGEuZXhwb3J0ZXJzKSB7XG4gICAgICB0aGlzLmV4cG9ydGVycyA9IHRoaXMuX2RhdGEuZXhwb3J0ZXJzXG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICBfb25FeHBvcnRlckNsaWNrZWQoZXhwb3J0ZXI6IElEYXRhRXhwb3J0ZXIpIHtcbiAgICBpZiAoIWV4cG9ydGVyLmV4cG9ydCkge1xuICAgICAgY29uc3QgbXNnID0gaXNEZXZNb2RlKClcbiAgICAgICAgPyBgRXhwb3J0ZXIgJyR7ZXhwb3J0ZXIubmFtZX0nIGlzIG1pc3NpbmcgYW4gZXhwb3J0IG1ldGhvZC5gXG4gICAgICAgIDogYCR7ZXhwb3J0ZXIubGFiZWx9IGV4cG9ydCBpcyBub3QgYXZhaWxhYmxlLmBcbiAgICAgIHRoaXMuX3RvYXN0ci5lcnJvcihtc2csICdEYXRhIEV4cG9ydCcpXG4gICAgfVxuXG4gICAgY29uc3QgZXhwb3J0JCA9IHRoaXMuX2RhdGF0YWJsZS5yb3dzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChyb3dzID0+IHtcbiAgICAgICAgICBpZiAoZXhwb3J0ZXIuc2tpcERhdGFNYXBwaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93c1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5fbWFwRXhwb3J0RGF0YSh0aGlzLl9kYXRhdGFibGUuY29sdW1ucyB8fCBbXSwgcm93cylcbiAgICAgICAgfSksXG4gICAgICAgIGNvbmNhdE1hcChkYXRhID0+IGV4cG9ydGVyLmV4cG9ydChkYXRhKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpXG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoc3VjY2VzcyA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0ci5zdWNjZXNzKGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgY29tcGxldGUuYCwgJ0RhdGEgRXhwb3J0JylcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RyLmVycm9yKGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgZmFpbGVkLmAsICdEYXRhIEV4cG9ydCcpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgdGhpcy5fbG9hZGluZy53aGlsZShleHBvcnQkKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfbWFwRXhwb3J0RGF0YShjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10sIHJvd3M6IGFueVtdKSB7XG4gICAgY29uc3QgZGF0YTogYW55W10gPSBbXVxuXG4gICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgY29uc3QgbmV3Um93OiBhbnkgPSB7fVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmICghY29sLmV4cG9ydElnbm9yZSkge1xuICAgICAgICAgIGNvbnN0IGNvbE5hbWUgPSBjb2wuZXhwb3J0SGVhZGVyIHx8IGNvbC5uYW1lIHx8IGNvbC5wcm9wXG4gICAgICAgICAgaWYgKGNvbE5hbWUpIHtcbiAgICAgICAgICAgIG5ld1Jvd1tjb2xOYW1lXSA9IHRoaXMuX3Jvd1ZhbHVlKGNvbCwgcm93KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkYXRhLnB1c2gobmV3Um93KVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhXG4gIH1cblxuICBwcml2YXRlIF9yb3dWYWx1ZShjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIHJvdzogYW55KSB7XG4gICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiBhcyBhbnksICdleHBvcnRWYWx1ZScpKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0geyB2YWx1ZTogY29sdW1uLnByb3AgPyByb3dbY29sdW1uLnByb3BdIDogdW5kZWZpbmVkLCByb3cgfVxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKChjb2x1bW4gYXMgYW55KS5leHBvcnRWYWx1ZSwgY29udGV4dClcbiAgICB9XG5cbiAgICBjb25zdCBjb2xQcm9wID0gY29sdW1uLnByb3BcbiAgICBpZiAoY29sUHJvcCkge1xuICAgICAgcmV0dXJuIHJvd1tjb2xQcm9wXVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUcxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFhbEUsTUFBTSxPQUFPLDhCQUE4QjtJQVV6QyxZQUM4QyxVQUE4QixFQUN6RCxPQUFzQixFQUN0QixRQUFzQyxFQUN0QyxZQUF1QyxFQUNHLEtBQWtDO1FBSmpELGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQ3pELFlBQU8s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Q0FpQzdCLFFBQVEsWUFBSSxNQUFNLFNBQUMsb0JBQW9COzs7d0JBWHpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBpc0Rldk1vZGUsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBtYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBmYUZpbGVEb3dubG9hZCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJ1xuXG5pbXBvcnQgeyBJRGF0YUV4cG9ydGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZXhwb3J0ZXInXG5pbXBvcnQgeyBEeW5hbWljVmFsdWVIZWxwZXJTZXJ2aWNlLCBUSEVTRUFNX0RZTkFNSUNfREFUQSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9keW5hbWljJ1xuaW1wb3J0IHsgVGhlU2VhbUxvYWRpbmdPdmVybGF5U2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sb2FkaW5nJ1xuaW1wb3J0IHsgaGFzUHJvcGVydHkgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IERhdGF0YWJsZUNvbXBvbmVudCwgVEhFU0VBTV9EQVRBVEFCTEUgfSBmcm9tICcuLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IGlzSW50ZXJuYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwtY29sdW1uLXByb3BzJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGF0YWJsZUV4cG9ydEJ1dHRvbkRhdGEge1xuICBleHBvcnRlcnM6IElEYXRhRXhwb3J0ZXJbXVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1leHBvcnQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1leHBvcnQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBpY29uID0gZmFGaWxlRG93bmxvYWRcblxuICBASW5wdXQoKSBleHBvcnRlcnM6IElEYXRhRXhwb3J0ZXJbXSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICEodGhpcy5leHBvcnRlcnMgJiYgdGhpcy5leHBvcnRlcnMubGVuZ3RoID4gMClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVEhFU0VBTV9EQVRBVEFCTEUpIHByaXZhdGUgcmVhZG9ubHkgX2RhdGF0YWJsZTogRGF0YXRhYmxlQ29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBUaGVTZWFtTG9hZGluZ092ZXJsYXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZhbHVlSGVscGVyOiBEeW5hbWljVmFsdWVIZWxwZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9EWU5BTUlDX0RBVEEpIHByaXZhdGUgcmVhZG9ubHkgX2RhdGE/OiBJRGF0YXRhYmxlRXhwb3J0QnV0dG9uRGF0YVxuICApIHtcbiAgICBpZiAodGhpcy5fZGF0YSAmJiB0aGlzLl9kYXRhLmV4cG9ydGVycykge1xuICAgICAgdGhpcy5leHBvcnRlcnMgPSB0aGlzLl9kYXRhLmV4cG9ydGVyc1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgX29uRXhwb3J0ZXJDbGlja2VkKGV4cG9ydGVyOiBJRGF0YUV4cG9ydGVyKSB7XG4gICAgaWYgKCFleHBvcnRlci5leHBvcnQpIHtcbiAgICAgIGNvbnN0IG1zZyA9IGlzRGV2TW9kZSgpXG4gICAgICAgID8gYEV4cG9ydGVyICcke2V4cG9ydGVyLm5hbWV9JyBpcyBtaXNzaW5nIGFuIGV4cG9ydCBtZXRob2QuYFxuICAgICAgICA6IGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgaXMgbm90IGF2YWlsYWJsZS5gXG4gICAgICB0aGlzLl90b2FzdHIuZXJyb3IobXNnLCAnRGF0YSBFeHBvcnQnKVxuICAgIH1cblxuICAgIGNvbnN0IGV4cG9ydCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX2RhdGF0YWJsZS5yb3dzJCxcbiAgICAgIHRoaXMuX2RhdGF0YWJsZS5jb2x1bW5zJC5waXBlKG1hcChjb2xzID0+IGNvbHMuZmlsdGVyKGMgPT4gIWlzSW50ZXJuYWxDb2x1bW4oYykpKSlcbiAgICBdKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoWyByb3dzLCBjb2x1bW5zIF0pID0+IHtcbiAgICAgICAgaWYgKGV4cG9ydGVyLnNraXBEYXRhTWFwcGluZykge1xuICAgICAgICAgIHJldHVybiByb3dzXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcEV4cG9ydERhdGEoY29sdW1ucyB8fCBbXSwgcm93cylcbiAgICAgIH0pLFxuICAgICAgY29uY2F0TWFwKGRhdGEgPT4gZXhwb3J0ZXIuZXhwb3J0KGRhdGEpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgIHJldHVybiBvZihmYWxzZSlcbiAgICAgIH0pLFxuICAgICAgdGFwKHN1Y2Nlc3MgPT4ge1xuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuX3RvYXN0ci5zdWNjZXNzKGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgY29tcGxldGUuYCwgJ0RhdGEgRXhwb3J0JylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl90b2FzdHIuZXJyb3IoYCR7ZXhwb3J0ZXIubGFiZWx9IGV4cG9ydCBmYWlsZWQuYCwgJ0RhdGEgRXhwb3J0JylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICB0aGlzLl9sb2FkaW5nLndoaWxlKGV4cG9ydCQpLnN1YnNjcmliZSgpXG4gIH1cblxuICBwcml2YXRlIF9tYXBFeHBvcnREYXRhKGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSwgcm93czogYW55W10pIHtcbiAgICBjb25zdCBkYXRhOiBhbnlbXSA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBjb25zdCBuZXdSb3c6IGFueSA9IHt9XG5cbiAgICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcbiAgICAgICAgaWYgKCFjb2wuZXhwb3J0SWdub3JlKSB7XG4gICAgICAgICAgY29uc3QgY29sTmFtZSA9IGNvbC5leHBvcnRIZWFkZXIgfHwgY29sLm5hbWUgfHwgY29sLnByb3BcbiAgICAgICAgICBpZiAoY29sTmFtZSkge1xuICAgICAgICAgICAgbmV3Um93W2NvbE5hbWVdID0gdGhpcy5fcm93VmFsdWUoY29sLCByb3cpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRhdGEucHVzaChuZXdSb3cpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd1ZhbHVlKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgcm93OiBhbnkpIHtcbiAgICBpZiAoaGFzUHJvcGVydHkoY29sdW1uIGFzIGFueSwgJ2V4cG9ydFZhbHVlJykpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB7IHZhbHVlOiBjb2x1bW4ucHJvcCA/IHJvd1tjb2x1bW4ucHJvcF0gOiB1bmRlZmluZWQsIHJvdyB9XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWVIZWxwZXIuZXZhbFN5bmMoKGNvbHVtbiBhcyBhbnkpLmV4cG9ydFZhbHVlLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGNvbnN0IGNvbFByb3AgPSBjb2x1bW4ucHJvcFxuICAgIGlmIChjb2xQcm9wKSB7XG4gICAgICByZXR1cm4gcm93W2NvbFByb3BdXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG59XG4iXX0=
@@ -45,7 +45,7 @@ DatatableMenuBarComponent.decorators = [
45
45
  selector: 'seam-datatable-menu-bar',
46
46
  template: "<div class=\"bg-light border rounded p-2\">\n <ng-content></ng-content>\n</div>\n",
47
47
  providers: [_THESEAM_DATA_FILTER_CONTAINER],
48
- styles: [":host{display:block}"]
48
+ styles: [":host{display:block}\n"]
49
49
  },] }
50
50
  ];
51
51
  DatatableMenuBarComponent.ctorParameters = () => [];
@@ -9,7 +9,7 @@ DatatableMenuBarColumnCenterComponent.decorators = [
9
9
  selector: 'seam-datatable-menu-bar-column-center',
10
10
  template: "<ng-content></ng-content>\n",
11
11
  changeDetection: ChangeDetectionStrategy.OnPush,
12
- styles: [":host{display:flex;flex-direction:row;flex:1 1 auto;justify-content:center}"]
12
+ styles: [":host{display:flex;flex-direction:row;flex:1 1 auto;justify-content:center}\n"]
13
13
  },] }
14
14
  ];
15
15
  DatatableMenuBarColumnCenterComponent.ctorParameters = () => [];
@@ -9,7 +9,7 @@ DatatableMenuBarColumnLeftComponent.decorators = [
9
9
  selector: 'seam-datatable-menu-bar-column-left',
10
10
  template: "<ng-content></ng-content>\n",
11
11
  changeDetection: ChangeDetectionStrategy.OnPush,
12
- styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-start}"]
12
+ styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-start}\n"]
13
13
  },] }
14
14
  ];
15
15
  DatatableMenuBarColumnLeftComponent.ctorParameters = () => [];
@@ -9,7 +9,7 @@ DatatableMenuBarColumnRightComponent.decorators = [
9
9
  selector: 'seam-datatable-menu-bar-column-right',
10
10
  template: "<ng-content></ng-content>\n",
11
11
  changeDetection: ChangeDetectionStrategy.OnPush,
12
- styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-end}"]
12
+ styles: [":host{display:flex;flex-direction:row;flex:1 1 0%;justify-content:flex-end}\n"]
13
13
  },] }
14
14
  ];
15
15
  DatatableMenuBarColumnRightComponent.ctorParameters = () => [];
@@ -9,7 +9,7 @@ DatatableMenuBarRowComponent.decorators = [
9
9
  selector: 'seam-datatable-menu-bar-row',
10
10
  template: "<ng-content></ng-content>\n",
11
11
  changeDetection: ChangeDetectionStrategy.OnPush,
12
- styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}"]
12
+ styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}\n"]
13
13
  },] }
14
14
  ];
15
15
  DatatableMenuBarRowComponent.ctorParameters = () => [];
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Alteration applied to a column or columns that can be persisted.
3
+ *
4
+ * Tracking if a column was altered by user or library code can be confusing.
5
+ * This allows us to store a list of replayable alterations on columns. By
6
+ * having a defined way to implement alterations, the datatable should be easier
7
+ * to support external features that want to provide an alteration.
8
+ *
9
+ * NOTE: Current, to unapply an alteration you can create an alteration with
10
+ * `persistent` set to false and the alteration will be removed after `apply()`
11
+ * is called.
12
+ */
13
+ export class ColumnsAlteration {
14
+ constructor(
15
+ /**
16
+ * Persistable state.
17
+ *
18
+ * Returned value should be JSON stringifyable.
19
+ */
20
+ state,
21
+ /**
22
+ * If false, the state will not be persisted to a persistent storage and
23
+ * will be removed after applied.
24
+ */
25
+ persistent) {
26
+ this.state = state;
27
+ this.persistent = persistent;
28
+ this.state = state;
29
+ }
30
+ toJSON() {
31
+ return {
32
+ id: this.id,
33
+ type: this.type,
34
+ state: this.state
35
+ };
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFnQixpQkFBaUI7SUFlckM7SUFDRTs7OztPQUlHO0lBQ0ksS0FBYTtJQUNwQjs7O09BR0c7SUFDYSxVQUFtQjtRQUw1QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBS0osZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUVuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBT00sTUFBTTtRQUNYLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciB9IGZyb20gJy4vZGF0YXRhYmxlLWFjY2Vzc29yJztcclxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4vdGFibGUtY29sdW1uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uc0FsdGVyYXRpb25TdGF0ZTxUU3RhdGUgPSBhbnk+IHtcclxuICByZWFkb25seSBpZDogc3RyaW5nXHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nXHJcbiAgcmVhZG9ubHkgc3RhdGU6IFRTdGF0ZVxyXG59XHJcblxyXG4vKipcclxuICogQWx0ZXJhdGlvbiBhcHBsaWVkIHRvIGEgY29sdW1uIG9yIGNvbHVtbnMgdGhhdCBjYW4gYmUgcGVyc2lzdGVkLlxyXG4gKlxyXG4gKiBUcmFja2luZyBpZiBhIGNvbHVtbiB3YXMgYWx0ZXJlZCBieSB1c2VyIG9yIGxpYnJhcnkgY29kZSBjYW4gYmUgY29uZnVzaW5nLlxyXG4gKiBUaGlzIGFsbG93cyB1cyB0byBzdG9yZSBhIGxpc3Qgb2YgcmVwbGF5YWJsZSBhbHRlcmF0aW9ucyBvbiBjb2x1bW5zLiBCeVxyXG4gKiBoYXZpbmcgYSBkZWZpbmVkIHdheSB0byBpbXBsZW1lbnQgYWx0ZXJhdGlvbnMsIHRoZSBkYXRhdGFibGUgc2hvdWxkIGJlIGVhc2llclxyXG4gKiB0byBzdXBwb3J0IGV4dGVybmFsIGZlYXR1cmVzIHRoYXQgd2FudCB0byBwcm92aWRlIGFuIGFsdGVyYXRpb24uXHJcbiAqXHJcbiAqIE5PVEU6IEN1cnJlbnQsIHRvIHVuYXBwbHkgYW4gYWx0ZXJhdGlvbiB5b3UgY2FuIGNyZWF0ZSBhbiBhbHRlcmF0aW9uIHdpdGhcclxuICogYHBlcnNpc3RlbnRgIHNldCB0byBmYWxzZSBhbmQgdGhlIGFsdGVyYXRpb24gd2lsbCBiZSByZW1vdmVkIGFmdGVyIGBhcHBseSgpYFxyXG4gKiBpcyBjYWxsZWQuXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29sdW1uc0FsdGVyYXRpb248VFN0YXRlID0gYW55PiB7XHJcbiAgLyoqXHJcbiAgICogVGhpcyBzaG91bGQgYmUgdW5pcXVlIHRvIHRoZSBhbHRlcmF0aW9uLCBidXQgZGV0ZXJtaW5hYmxlLiBXaGVuIGFuIGFwcCBpc1xyXG4gICAqIHJlbG9hZGVkIGFuZCBhbHRlcmF0aW9ucyBhcmUgcmVzdG9yZWQgZnJvbSBhIHBlcnNpc3RhYmxlIHN0b3JhZ2UgdGhpc1xyXG4gICAqIHNob3VsZCBzdGlsbCBiZSByZWNvZ25pemFibGUuXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGlkOiBzdHJpbmdcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGFsdGVyYXRpb24gdHlwZS5cclxuICAgKlxyXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gZ3JvdXAgYWx0ZXJhY3Rpb24gZnJvbSBhIGNvbW1vbiBmZWF0dXJlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBzdHJpbmdcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvKipcclxuICAgICAqIFBlcnNpc3RhYmxlIHN0YXRlLlxyXG4gICAgICpcclxuICAgICAqIFJldHVybmVkIHZhbHVlIHNob3VsZCBiZSBKU09OIHN0cmluZ2lmeWFibGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0ZTogVFN0YXRlLFxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBmYWxzZSwgdGhlIHN0YXRlIHdpbGwgbm90IGJlIHBlcnNpc3RlZCB0byBhIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmRcclxuICAgICAqIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciBhcHBsaWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGVyc2lzdGVudDogYm9vbGVhblxyXG4gICkge1xyXG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBhbHRlcmF0aW9uIHRvIGNvbHVtbi5cclxuICAgKi9cclxuICBwdWJsaWMgYWJzdHJhY3QgYXBwbHkoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdLCBkYXRhdGFibGU6IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3Nvcik6IHZvaWRcclxuXHJcbiAgcHVibGljIHRvSlNPTigpOiBDb2x1bW5zQWx0ZXJhdGlvblN0YXRlPFRTdGF0ZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcclxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGVcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
2
+ import { getColumnProp } from '../../utils/get-column-prop';
3
+ import { ColumnsAlteration } from '../columns-alteration';
4
+ export class HideColumnColumnsAlteration extends ColumnsAlteration {
5
+ constructor(state, persistent) {
6
+ super(state, persistent);
7
+ this.type = 'hide-column';
8
+ if (!this._isValidState(state)) {
9
+ throw Error(`Invalid state: ${JSON.stringify(state)}`);
10
+ }
11
+ this.id = `${this.type}--${state.columnProp}`;
12
+ }
13
+ apply(columns, datatable) {
14
+ for (const col of columns) {
15
+ const prop = getColumnProp(col);
16
+ if (prop === this.state.columnProp) {
17
+ col.hidden = this.state.hidden;
18
+ }
19
+ }
20
+ }
21
+ _isValidState(state) {
22
+ // NOTE: Checking null or undefined, even though the type doesn't allow,
23
+ // because the state may have been loaded from an invalid persistant
24
+ // storage.
25
+ // TODO: Remove when state validation/migration is implemented to happen
26
+ // when retrieved from storage.
27
+ if (!notNullOrUndefined(state.columnProp)) {
28
+ return false;
29
+ }
30
+ // TODO: Remove when state validation/migration is implemented to happen
31
+ // when retrieved from storage.
32
+ if (!notNullOrUndefined(state.hidden)) {
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1jb2x1bW4uY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9oaWRlLWNvbHVtbi5jb2x1bW5zLWFsdGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBU3pELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBbUQ7SUFLbEcsWUFDRSxLQUF1QyxFQUN2QyxVQUFtQjtRQUVuQixLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBTlYsU0FBSSxHQUFXLGFBQWEsQ0FBQTtRQVExQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDdkQ7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUEyQyxFQUFFLFNBQW1DO1FBQzNGLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMvQixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDbEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTthQUMvQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUF1QztRQUMzRCx3RUFBd0U7UUFDeEUsb0VBQW9FO1FBQ3BFLFdBQVc7UUFFWCx3RUFBd0U7UUFDeEUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDekMsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELHdFQUF3RTtRQUN4RSwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbHVtblByb3AgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXHJcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcclxuXHJcbmltcG9ydCB7IGdldENvbHVtblByb3AgfSBmcm9tICcuLi8uLi91dGlscy9nZXQtY29sdW1uLXByb3AnXHJcbmltcG9ydCB7IENvbHVtbnNBbHRlcmF0aW9uIH0gZnJvbSAnLi4vY29sdW1ucy1hbHRlcmF0aW9uJ1xyXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IgfSBmcm9tICcuLi9kYXRhdGFibGUtYWNjZXNzb3InXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi90YWJsZS1jb2x1bW4nXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhpZGVDb2x1bW5Db2x1bW5zQWx0ZXJhdGlvblN0YXRlIHtcclxuICBjb2x1bW5Qcm9wOiBUYWJsZUNvbHVtblByb3BcclxuICBoaWRkZW46IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEhpZGVDb2x1bW5Db2x1bW5zQWx0ZXJhdGlvbiBleHRlbmRzIENvbHVtbnNBbHRlcmF0aW9uPEhpZGVDb2x1bW5Db2x1bW5zQWx0ZXJhdGlvblN0YXRlPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmdcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICdoaWRlLWNvbHVtbidcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzdGF0ZTogSGlkZUNvbHVtbkNvbHVtbnNBbHRlcmF0aW9uU3RhdGUsXHJcbiAgICBwZXJzaXN0ZW50OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzdGF0ZSwgcGVyc2lzdGVudClcclxuXHJcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWRTdGF0ZShzdGF0ZSkpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUpfWApXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pZCA9IGAke3RoaXMudHlwZX0tLSR7c3RhdGUuY29sdW1uUHJvcH1gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHkoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbjxhbnksIGFueT5bXSwgZGF0YXRhYmxlOiBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcclxuICAgICAgY29uc3QgcHJvcCA9IGdldENvbHVtblByb3AoY29sKVxyXG4gICAgICBpZiAocHJvcCA9PT0gdGhpcy5zdGF0ZS5jb2x1bW5Qcm9wKSB7XHJcbiAgICAgICAgY29sLmhpZGRlbiA9IHRoaXMuc3RhdGUuaGlkZGVuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzVmFsaWRTdGF0ZShzdGF0ZTogSGlkZUNvbHVtbkNvbHVtbnNBbHRlcmF0aW9uU3RhdGUpOiBib29sZWFuIHtcclxuICAgIC8vIE5PVEU6IENoZWNraW5nIG51bGwgb3IgdW5kZWZpbmVkLCBldmVuIHRob3VnaCB0aGUgdHlwZSBkb2Vzbid0IGFsbG93LFxyXG4gICAgLy8gYmVjYXVzZSB0aGUgc3RhdGUgbWF5IGhhdmUgYmVlbiBsb2FkZWQgZnJvbSBhbiBpbnZhbGlkIHBlcnNpc3RhbnRcclxuICAgIC8vIHN0b3JhZ2UuXHJcblxyXG4gICAgLy8gVE9ETzogUmVtb3ZlIHdoZW4gc3RhdGUgdmFsaWRhdGlvbi9taWdyYXRpb24gaXMgaW1wbGVtZW50ZWQgdG8gaGFwcGVuXHJcbiAgICAvLyB3aGVuIHJldHJpZXZlZCBmcm9tIHN0b3JhZ2UuXHJcbiAgICBpZiAoIW5vdE51bGxPclVuZGVmaW5lZChzdGF0ZS5jb2x1bW5Qcm9wKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2hlbiBzdGF0ZSB2YWxpZGF0aW9uL21pZ3JhdGlvbiBpcyBpbXBsZW1lbnRlZCB0byBoYXBwZW5cclxuICAgIC8vIHdoZW4gcmV0cmlldmVkIGZyb20gc3RvcmFnZS5cclxuICAgIGlmICghbm90TnVsbE9yVW5kZWZpbmVkKHN0YXRlLmhpZGRlbikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,81 @@
1
+ import { isDevMode } from '@angular/core';
2
+ import { arrayMoveMutable, notNullOrUndefined } from '@theseam/ui-common/utils';
3
+ import { getColumnProp } from '../../utils/get-column-prop';
4
+ import { ColumnsAlteration } from '../columns-alteration';
5
+ import { isInternalColumn } from '../internal-column-props';
6
+ export class OrderColumnsAlteration extends ColumnsAlteration {
7
+ constructor(state, persistent) {
8
+ super(state, persistent);
9
+ this.type = 'order';
10
+ if (!this._isValidState(state)) {
11
+ throw Error(`Invalid state: ${JSON.stringify(state)}`);
12
+ }
13
+ this.id = `${this.type}`;
14
+ }
15
+ apply(columns, datatable) {
16
+ if (this.state.columns.length === 0) {
17
+ return;
18
+ }
19
+ const stateColumns = this._stateColumns();
20
+ // The internal columns are not intended for a user to be able to move them.
21
+ // Store the internal columns current index, so it can be moved back ofter
22
+ // sorting. This may not be the best way to do this, but it is easier than
23
+ // making a sort that avoids them.
24
+ //
25
+ // NOTE: If we add an internal column that can be moved then this will need
26
+ // to be changed.
27
+ const internalColumns = columns
28
+ .map((column, index) => ({ column, index }))
29
+ .filter(x => isInternalColumn(x.column));
30
+ for (const c of stateColumns) {
31
+ const currentIndex = columns.findIndex(x => getColumnProp(x) === c.columnProp);
32
+ if (currentIndex === c.index || currentIndex === -1) {
33
+ // Skip if already at correct index.
34
+ // Skip columns not found. It may be a column that was removed from the
35
+ // table, but we still want to handle the other columns.
36
+ continue;
37
+ }
38
+ arrayMoveMutable(columns, currentIndex, c.index);
39
+ }
40
+ for (const c of internalColumns) {
41
+ const currentIndex = columns.findIndex(col => col === c.column);
42
+ if (currentIndex !== -1) {
43
+ arrayMoveMutable(columns, currentIndex, c.index);
44
+ }
45
+ else {
46
+ if (isDevMode()) {
47
+ console.warn(`Internal column could not be found after sorting. Was it lost during the sorting?`);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ _isValidState(state) {
53
+ // NOTE: Checking null or undefined, even though the type doesn't allow,
54
+ // because the state may have been loaded from an invalid persistant
55
+ // storage.
56
+ // TODO: Remove when state validation/migration is implemented to happen
57
+ // when retrieved from storage.
58
+ if (!notNullOrUndefined(state.columns)) {
59
+ return false;
60
+ }
61
+ // NOTE: Didn't iterate each column record, because it is probably better to
62
+ // just skip to invalid column records. It does prevent being able to
63
+ // validate the whole state though.
64
+ return true;
65
+ }
66
+ _isColumnOrderRecordValid(columnOrder) {
67
+ return notNullOrUndefined(columnOrder.columnProp) && notNullOrUndefined(columnOrder.index);
68
+ }
69
+ _stateColumns() {
70
+ return this.state.columns.filter(c => {
71
+ if (!this._isColumnOrderRecordValid(c)) {
72
+ if (isDevMode()) {
73
+ console.warn('Invalid column order record', c);
74
+ }
75
+ return false;
76
+ }
77
+ return true;
78
+ }).sort((a, b) => a.index === b.index ? 0 : a.index > b.index ? 1 : -1);
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9vcmRlci5jb2x1bW5zLWFsdGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUUvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFnQjNELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxpQkFBOEM7SUFLeEYsWUFDRSxLQUFrQyxFQUNsQyxVQUFtQjtRQUVuQixLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBTlYsU0FBSSxHQUFXLE9BQU8sQ0FBQTtRQVFwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDdkQ7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBMkMsRUFBRSxTQUFtQztRQUMzRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkMsT0FBTTtTQUNQO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFD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Q0FBQyxDQUFDLENBQUE7SUFDekUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgVGFibGVDb2x1bW5Qcm9wIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuaW1wb3J0IHsgYXJyYXlNb3ZlTXV0YWJsZSwgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBnZXRDb2x1bW5Qcm9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LWNvbHVtbi1wcm9wJ1xuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9jb2x1bW5zLWFsdGVyYXRpb24nXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IgfSBmcm9tICcuLi9kYXRhdGFibGUtYWNjZXNzb3InXG5pbXBvcnQgeyBpc0ludGVybmFsQ29sdW1uIH0gZnJvbSAnLi4vaW50ZXJuYWwtY29sdW1uLXByb3BzJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcmRlclJlY29yZCB7XG4gIGNvbHVtblByb3A6IFRhYmxlQ29sdW1uUHJvcFxuICBpbmRleDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlIHtcbiAgLy8gTk9URTogVGhpcyBzdG9yZXMgdGhlIGNvbHVtbiBpbmRleCBvZiByZW9yZGVyZWQgY29sdW1ucyBvbmx5LCB0byBhdm9pZCBhbnlcbiAgLy8gbmV3IGNvbHVtbnMgZnJvbSBhbHdheXMgYmVpbmcgcGxhY2VkIGF0IHRoZSBlbmQuIFRoZSBtb3ZlZCBjb2x1bW5zIHNob3VsZFxuICAvLyBhbHdheXMgYmUgYWNjdXJhdGUgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciwgYnV0IGlmIHRoaXMgYmVjb21lcyBhbiBpc3N1ZVxuICAvLyB0aGVuIHdlIGNhbiBqdXN0IHN0b3JlIGFsbCB0aGUgY29sdW1ucyBwb3NpdGlvbnMuXG4gIGNvbHVtbnM6IENvbHVtbk9yZGVyUmVjb3JkW11cbn1cblxuZXhwb3J0IGNsYXNzIE9yZGVyQ29sdW1uc0FsdGVyYXRpb24gZXh0ZW5kcyBDb2x1bW5zQWx0ZXJhdGlvbjxPcmRlckNvbHVtbnNBbHRlcmF0aW9uU3RhdGU+IHtcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmdcblxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gJ29yZGVyJ1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXRlOiBPcmRlckNvbHVtbnNBbHRlcmF0aW9uU3RhdGUsXG4gICAgcGVyc2lzdGVudDogYm9vbGVhblxuICApIHtcbiAgICBzdXBlcihzdGF0ZSwgcGVyc2lzdGVudClcblxuICAgIGlmICghdGhpcy5faXNWYWxpZFN0YXRlKHN0YXRlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUpfWApXG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IGAke3RoaXMudHlwZX1gXG4gIH1cblxuICBwdWJsaWMgYXBwbHkoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbjxhbnksIGFueT5bXSwgZGF0YXRhYmxlOiBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5jb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdGVDb2x1bW5zID0gdGhpcy5fc3RhdGVDb2x1bW5zKClcblxuICAgIC8vIFRoZSBpbnRlcm5hbCBjb2x1bW5zIGFyZSBub3QgaW50ZW5kZWQgZm9yIGEgdXNlciB0byBiZSBhYmxlIHRvIG1vdmUgdGhlbS5cbiAgICAvLyBTdG9yZSB0aGUgaW50ZXJuYWwgY29sdW1ucyBjdXJyZW50IGluZGV4LCBzbyBpdCBjYW4gYmUgbW92ZWQgYmFjayBvZnRlclxuICAgIC8vIHNvcnRpbmcuIFRoaXMgbWF5IG5vdCBiZSB0aGUgYmVzdCB3YXkgdG8gZG8gdGhpcywgYnV0IGl0IGlzIGVhc2llciB0aGFuXG4gICAgLy8gbWFraW5nIGEgc29ydCB0aGF0IGF2b2lkcyB0aGVtLlxuICAgIC8vXG4gICAgLy8gTk9URTogSWYgd2UgYWRkIGFuIGludGVybmFsIGNvbHVtbiB0aGF0IGNhbiBiZSBtb3ZlZCB0aGVuIHRoaXMgd2lsbCBuZWVkXG4gICAgLy8gdG8gYmUgY2hhbmdlZC5cbiAgICBjb25zdCBpbnRlcm5hbENvbHVtbnMgPSBjb2x1bW5zXG4gICAgICAubWFwKChjb2x1bW4sIGluZGV4KSA9PiAoeyBjb2x1bW4sIGluZGV4IH0pKVxuICAgICAgLmZpbHRlcih4ID0+IGlzSW50ZXJuYWxDb2x1bW4oeC5jb2x1bW4pKVxuXG4gICAgZm9yIChjb25zdCBjIG9mIHN0YXRlQ29sdW1ucykge1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY29sdW1ucy5maW5kSW5kZXgoeCA9PiBnZXRDb2x1bW5Qcm9wKHgpID09PSBjLmNvbHVtblByb3ApXG4gICAgICBpZiAoY3VycmVudEluZGV4ID09PSBjLmluZGV4IHx8IGN1cnJlbnRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgLy8gU2tpcCBpZiBhbHJlYWR5IGF0IGNvcnJlY3QgaW5kZXguXG4gICAgICAgIC8vIFNraXAgY29sdW1ucyBub3QgZm91bmQuIEl0IG1heSBiZSBhIGNvbHVtbiB0aGF0IHdhcyByZW1vdmVkIGZyb20gdGhlXG4gICAgICAgIC8vIHRhYmxlLCBidXQgd2Ugc3RpbGwgd2FudCB0byBoYW5kbGUgdGhlIG90aGVyIGNvbHVtbnMuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGFycmF5TW92ZU11dGFibGUoY29sdW1ucywgY3VycmVudEluZGV4LCBjLmluZGV4KVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYyBvZiBpbnRlcm5hbENvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGNvbHVtbnMuZmluZEluZGV4KGNvbCA9PiBjb2wgPT09IGMuY29sdW1uKVxuICAgICAgaWYgKGN1cnJlbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgYXJyYXlNb3ZlTXV0YWJsZShjb2x1bW5zLCBjdXJyZW50SW5kZXgsIGMuaW5kZXgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYEludGVybmFsIGNvbHVtbiBjb3VsZCBub3QgYmUgZm91bmQgYWZ0ZXIgc29ydGluZy4gV2FzIGl0IGxvc3QgZHVyaW5nIHRoZSBzb3J0aW5nP2ApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkU3RhdGUoc3RhdGU6IE9yZGVyQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSk6IGJvb2xlYW4ge1xuICAgIC8vIE5PVEU6IENoZWNraW5nIG51bGwgb3IgdW5kZWZpbmVkLCBldmVuIHRob3VnaCB0aGUgdHlwZSBkb2Vzbid0IGFsbG93LFxuICAgIC8vIGJlY2F1c2UgdGhlIHN0YXRlIG1heSBoYXZlIGJlZW4gbG9hZGVkIGZyb20gYW4gaW52YWxpZCBwZXJzaXN0YW50XG4gICAgLy8gc3RvcmFnZS5cblxuICAgIC8vIFRPRE86IFJlbW92ZSB3aGVuIHN0YXRlIHZhbGlkYXRpb24vbWlncmF0aW9uIGlzIGltcGxlbWVudGVkIHRvIGhhcHBlblxuICAgIC8vIHdoZW4gcmV0cmlldmVkIGZyb20gc3RvcmFnZS5cbiAgICBpZiAoIW5vdE51bGxPclVuZGVmaW5lZChzdGF0ZS5jb2x1bW5zKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gTk9URTogRGlkbid0IGl0ZXJhdGUgZWFjaCBjb2x1bW4gcmVjb3JkLCBiZWNhdXNlIGl0IGlzIHByb2JhYmx5IGJldHRlciB0b1xuICAgIC8vIGp1c3Qgc2tpcCB0byBpbnZhbGlkIGNvbHVtbiByZWNvcmRzLiBJdCBkb2VzIHByZXZlbnQgYmVpbmcgYWJsZSB0b1xuICAgIC8vIHZhbGlkYXRlIHRoZSB3aG9sZSBzdGF0ZSB0aG91Z2guXG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNDb2x1bW5PcmRlclJlY29yZFZhbGlkKGNvbHVtbk9yZGVyOiBDb2x1bW5PcmRlclJlY29yZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub3ROdWxsT3JVbmRlZmluZWQoY29sdW1uT3JkZXIuY29sdW1uUHJvcCkgJiYgbm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtbk9yZGVyLmluZGV4KVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RhdGVDb2x1bW5zKCk6IENvbHVtbk9yZGVyUmVjb3JkW10ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNvbHVtbnMuZmlsdGVyKGMgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc0NvbHVtbk9yZGVyUmVjb3JkVmFsaWQoYykpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIGNvbHVtbiBvcmRlciByZWNvcmQnLCBjKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9KS5zb3J0KChhLCBiKSA9PiBhLmluZGV4ID09PSBiLmluZGV4ID8gMCA6IGEuaW5kZXggPiBiLmluZGV4ID8gMSA6IC0xKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { SortType } from '@marklb/ngx-datatable';
2
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
3
+ import { ColumnsAlteration } from '../columns-alteration';
4
+ export class SortColumnsAlteration extends ColumnsAlteration {
5
+ constructor(state, persistent) {
6
+ super(state, persistent);
7
+ this.type = 'sort';
8
+ if (!this._isValidState(state)) {
9
+ throw Error(`Invalid state: ${JSON.stringify(state)}`);
10
+ }
11
+ this.id = `${this.type}`;
12
+ }
13
+ apply(columns, datatable) {
14
+ if (datatable.sortType === SortType.single) {
15
+ datatable.sorts = this.state.sorts.length > 0 ? [this.state.sorts[0]] : [];
16
+ }
17
+ else {
18
+ datatable.sorts = this.state.sorts;
19
+ }
20
+ }
21
+ _isValidState(state) {
22
+ // NOTE: Checking null or undefined, even though the type doesn't allow,
23
+ // because the state may have been loaded from an invalid persistant
24
+ // storage.
25
+ // TODO: Remove when state validation/migration is implemented to happen
26
+ // when retrieved from storage.
27
+ if (!notNullOrUndefined(state.sorts)) {
28
+ return false;
29
+ }
30
+ return true;
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jb2x1bW5zLWFsdGVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb25zL3NvcnQuY29sdW1ucy1hbHRlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUc3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQWF6RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQTZDO0lBS3RGLFlBQ0UsS0FBaUMsRUFDakMsVUFBbUI7UUFFbkIsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQTtRQU5WLFNBQUksR0FBVyxNQUFNLENBQUE7UUFRbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQTJDLEVBQUUsU0FBbUM7UUFDM0YsSUFBSSxTQUFTLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDMUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtTQUM3RTthQUFNO1lBQ0wsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQTtTQUNuQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBaUM7UUFDckQsd0VBQXdFO1FBQ3hFLG9FQUFvRTtRQUNwRSxXQUFXO1FBRVgsd0VBQXdFO1FBQ3hFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnRUeXBlIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXHJcblxyXG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gJy4uL3NvcnQtaXRlbSdcclxuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9jb2x1bW5zLWFsdGVyYXRpb24nXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciB9IGZyb20gJy4uL2RhdGF0YWJsZS1hY2Nlc3NvcidcclxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL3RhYmxlLWNvbHVtbidcclxuXHJcbi8vIE5PVEU6IFRoaXMgZG9lc24ndCBhY3Qgb24gYSBzaW5nbGUgU29ydEl0ZW0sIGJlY2F1c2UgZGVhbGluZyB3aXRoIGNvbmZsaWN0c1xyXG4vLyBiZXR3ZWVuIGlmIGEgc29ydCB3YXMgYWRkZWQgYnkgYW4gYWx0ZXJhdGlvbiBvciBkYXRhdGFibGUgaW5wdXQgaXMgZGlmZmljdWx0XHJcbi8vIHRvIGRldGVybWluZS4gVGhlcmUgbWF5IGJlIHNvbWUgZ29vZCBhc3N1bXB0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIGlzc3VlcywgYnV0XHJcbi8vIGZvciBub3cgSSB0aGluayBpdCBpcyBzYWZlc3QgdG8ganVzdCBzdG9yZSB0aGUgd2hvbGUgc29ydHMgYXJyYXkgYXMgYW5cclxuLy8gYWx0ZXJhdGlvbi5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0Q29sdW1uc0FsdGVyYXRpb25TdGF0ZSB7XHJcbiAgc29ydHM6IFNvcnRJdGVtW11cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNvcnRDb2x1bW5zQWx0ZXJhdGlvbiBleHRlbmRzIENvbHVtbnNBbHRlcmF0aW9uPFNvcnRDb2x1bW5zQWx0ZXJhdGlvblN0YXRlPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmdcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICdzb3J0J1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHN0YXRlOiBTb3J0Q29sdW1uc0FsdGVyYXRpb25TdGF0ZSxcclxuICAgIHBlcnNpc3RlbnQ6IGJvb2xlYW5cclxuICApIHtcclxuICAgIHN1cGVyKHN0YXRlLCBwZXJzaXN0ZW50KVxyXG5cclxuICAgIGlmICghdGhpcy5faXNWYWxpZFN0YXRlKHN0YXRlKSkge1xyXG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBzdGF0ZTogJHtKU09OLnN0cmluZ2lmeShzdGF0ZSl9YClcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlkID0gYCR7dGhpcy50eXBlfWBcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseShjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uPGFueSwgYW55PltdLCBkYXRhdGFibGU6IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3Nvcik6IHZvaWQge1xyXG4gICAgaWYgKGRhdGF0YWJsZS5zb3J0VHlwZSA9PT0gU29ydFR5cGUuc2luZ2xlKSB7XHJcbiAgICAgIGRhdGF0YWJsZS5zb3J0cyA9IHRoaXMuc3RhdGUuc29ydHMubGVuZ3RoID4gMCA/IFsgdGhpcy5zdGF0ZS5zb3J0c1swXSBdIDogW11cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGF0YWJsZS5zb3J0cyA9IHRoaXMuc3RhdGUuc29ydHNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzVmFsaWRTdGF0ZShzdGF0ZTogU29ydENvbHVtbnNBbHRlcmF0aW9uU3RhdGUpOiBib29sZWFuIHtcclxuICAgIC8vIE5PVEU6IENoZWNraW5nIG51bGwgb3IgdW5kZWZpbmVkLCBldmVuIHRob3VnaCB0aGUgdHlwZSBkb2Vzbid0IGFsbG93LFxyXG4gICAgLy8gYmVjYXVzZSB0aGUgc3RhdGUgbWF5IGhhdmUgYmVlbiBsb2FkZWQgZnJvbSBhbiBpbnZhbGlkIHBlcnNpc3RhbnRcclxuICAgIC8vIHN0b3JhZ2UuXHJcblxyXG4gICAgLy8gVE9ETzogUmVtb3ZlIHdoZW4gc3RhdGUgdmFsaWRhdGlvbi9taWdyYXRpb24gaXMgaW1wbGVtZW50ZWQgdG8gaGFwcGVuXHJcbiAgICAvLyB3aGVuIHJldHJpZXZlZCBmcm9tIHN0b3JhZ2UuXHJcbiAgICBpZiAoIW5vdE51bGxPclVuZGVmaW5lZChzdGF0ZS5zb3J0cykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbn1cclxuIl19