@theseam/ui-common 0.2.9 → 0.2.13

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 (365) 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 +1353 -375
  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 +28 -30
  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 +258 -32
  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 +48 -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 +7 -5
  94. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +7 -1
  95. package/datatable/datatable-footer/datatable-footer-tpl.directive.d.ts +5 -0
  96. package/datatable/datatable-footer/datatable-footer.directive.d.ts +6 -0
  97. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +1 -1
  98. package/datatable/directives/datatable-filter.directive.d.ts +1 -1
  99. package/datatable/models/columns-alteration.d.ts +61 -0
  100. package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +15 -0
  101. package/datatable/models/columns-alterations/order.columns-alteration.d.ts +20 -0
  102. package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +14 -0
  103. package/datatable/models/columns-alterations/width.columns-alteration.d.ts +16 -0
  104. package/datatable/models/datatable-accessor.d.ts +5 -3
  105. package/datatable/models/internal-column-props.d.ts +7 -0
  106. package/datatable/models/page-info.d.ts +12 -0
  107. package/datatable/models/preferences-accessor.d.ts +1 -1
  108. package/datatable/models/preferences.d.ts +11 -3
  109. package/datatable/models/sort-item.d.ts +2 -1
  110. package/datatable/public-api.d.ts +2 -0
  111. package/datatable/services/columns-alterations-manager.service.d.ts +39 -0
  112. package/datatable/services/columns-manager.service.d.ts +55 -0
  113. package/datatable/services/datatable-preferences.service.d.ts +10 -7
  114. package/datatable/theseam-ui-common-datatable.d.ts +2 -0
  115. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  116. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  117. package/datatable/utils/create-action-menu-column.d.ts +3 -0
  118. package/datatable/utils/create-checkbox-column.d.ts +3 -0
  119. package/datatable/utils/get-column-prop.d.ts +5 -0
  120. package/datatable/utils/map-columns-alterations-states.d.ts +2 -0
  121. package/datatable/utils/remove-unused-diffs.d.ts +7 -0
  122. package/datatable/utils/set-column-defaults.d.ts +2 -0
  123. package/datatable/utils/translate-templates.d.ts +2 -0
  124. package/datatable/utils/with-stored-column-info.d.ts +2 -2
  125. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -1
  126. package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +1 -1
  127. package/esm2015/card/card-action/card-action.component.js +1 -1
  128. package/esm2015/card/card-body/card-body.component.js +1 -1
  129. package/esm2015/data-filters/data-filter.js +5 -2
  130. package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +1 -1
  131. package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +1 -1
  132. package/esm2015/datatable/datatable/datatable.component.js +197 -211
  133. package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +1 -1
  134. package/esm2015/datatable/datatable-column/datatable-column.component.js +1 -1
  135. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +42 -19
  136. package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +38 -4
  137. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +1 -1
  138. package/esm2015/datatable/datatable-footer/datatable-footer-tpl.directive.js +15 -0
  139. package/esm2015/datatable/datatable-footer/datatable-footer.directive.js +18 -0
  140. package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +1 -1
  141. package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +1 -1
  142. package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +1 -1
  143. package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +1 -1
  144. package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +1 -1
  145. package/esm2015/datatable/datatable.module.js +7 -1
  146. package/esm2015/datatable/models/columns-alteration.js +38 -0
  147. package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +38 -0
  148. package/esm2015/datatable/models/columns-alterations/order.columns-alteration.js +81 -0
  149. package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +33 -0
  150. package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +41 -0
  151. package/esm2015/datatable/models/datatable-accessor.js +1 -1
  152. package/esm2015/datatable/models/internal-column-props.js +15 -0
  153. package/esm2015/datatable/models/page-info.js +1 -1
  154. package/esm2015/datatable/models/preferences-accessor.js +1 -1
  155. package/esm2015/datatable/models/preferences.js +6 -2
  156. package/esm2015/datatable/models/sort-item.js +1 -1
  157. package/esm2015/datatable/public-api.js +3 -1
  158. package/esm2015/datatable/services/columns-alterations-manager.service.js +134 -0
  159. package/esm2015/datatable/services/columns-manager.service.js +257 -0
  160. package/esm2015/datatable/services/datatable-preferences.service.js +78 -32
  161. package/esm2015/datatable/theseam-ui-common-datatable.js +3 -1
  162. package/esm2015/datatable/tokens/datatable-preferences-accessor.js +2 -2
  163. package/esm2015/datatable/utils/create-action-menu-column.js +18 -0
  164. package/esm2015/datatable/utils/create-checkbox-column.js +15 -0
  165. package/esm2015/datatable/utils/get-column-prop.js +9 -0
  166. package/esm2015/datatable/utils/map-columns-alterations-states.js +39 -0
  167. package/esm2015/datatable/utils/remove-unused-diffs.js +9 -0
  168. package/esm2015/datatable/utils/set-column-defaults.js +10 -0
  169. package/esm2015/datatable/utils/translate-templates.js +12 -0
  170. package/esm2015/datatable/utils/with-stored-column-info.js +1 -1
  171. package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +1 -1
  172. package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +1 -1
  173. package/esm2015/datatable-dynamic/datatable-dynamic.component.js +1 -1
  174. package/esm2015/form-field/form-field.component.js +1 -1
  175. package/esm2015/form-field-error/form-field-error/form-field-error.component.js +1 -1
  176. package/esm2015/framework/base-layout/base-layout.component.js +1 -1
  177. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +1 -1
  178. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +1 -1
  179. package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +1 -1
  180. package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +1 -1
  181. package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +1 -1
  182. package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +1 -1
  183. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +3 -3
  184. package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +1 -1
  185. package/esm2015/framework/side-nav/side-nav.component.js +1 -1
  186. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +1 -1
  187. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +1 -1
  188. package/esm2015/framework/top-bar/top-bar.component.js +1 -1
  189. package/esm2015/graphql/datatable/create-page-info-observable.js +38 -0
  190. package/esm2015/graphql/datatable/datatable-graphql-query-ref.js +236 -0
  191. package/esm2015/graphql/datatable/datatable-graphql.service.js +35 -0
  192. package/esm2015/graphql/datatable/datatable-helpers.js +170 -0
  193. package/esm2015/graphql/datatable/get-page-info.js +11 -0
  194. package/esm2015/graphql/datatable/index.js +7 -0
  195. package/esm2015/graphql/datatable/map-filter-states.js +64 -0
  196. package/esm2015/graphql/datatable/map-page-info.js +14 -0
  197. package/esm2015/graphql/datatable/mapper-context.js +2 -0
  198. package/esm2015/graphql/models/gql-datatable-accessor.js +2 -0
  199. package/esm2015/graphql/models/index.js +2 -1
  200. package/esm2015/graphql/models/query-processing-config.js +1 -1
  201. package/esm2015/graphql/public-api.js +2 -1
  202. package/esm2015/graphql/utils/parse-hints.js +3 -3
  203. package/esm2015/icon/icon/icon.component.js +1 -1
  204. package/esm2015/loading/loading/loading.component.js +1 -1
  205. package/esm2015/menu/menu.component.js +1 -1
  206. package/esm2015/modal/modal-body/modal-body.component.js +1 -1
  207. package/esm2015/modal/modal-container/modal-container.component.js +1 -1
  208. package/esm2015/popover/popover/popover.component.js +1 -1
  209. package/esm2015/progress/progress-circle/progress-circle.component.js +1 -1
  210. package/esm2015/tabbed/tabbed.component.js +1 -1
  211. package/esm2015/table/table/table.component.js +1 -1
  212. package/esm2015/table-cell-types/public-api.js +8 -1
  213. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +2 -0
  214. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +74 -0
  215. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.js +2 -0
  216. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
  217. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +73 -0
  218. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.js +2 -0
  219. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +1 -1
  220. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
  221. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +71 -0
  222. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.js +2 -0
  223. package/esm2015/table-cell-types/table-cell-type-manifests.js +29 -17
  224. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +1 -1
  225. package/esm2015/table-cell-types/table-cell-types.module.js +9 -2
  226. package/esm2015/tel-input/tel-input/tel-input.component.js +1 -1
  227. package/esm2015/testing/current-tick-time.js +16 -0
  228. package/esm2015/testing/fake-toastr.js +29 -0
  229. package/esm2015/testing/get-harness.js +16 -0
  230. package/esm2015/testing/public-api.js +7 -0
  231. package/esm2015/testing/render-story.js +12 -0
  232. package/esm2015/testing/story-expect.js +39 -0
  233. package/esm2015/testing/theseam-ui-common-testing.js +5 -0
  234. package/esm2015/testing/tick-helper.js +74 -0
  235. package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +25 -17
  236. package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +5 -2
  237. package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +1 -1
  238. package/esm2015/tiled-select/public-api.js +2 -1
  239. package/esm2015/tiled-select/tiled-select.models.js +1 -1
  240. package/esm2015/tiled-select/tiled-select.module.js +4 -4
  241. package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +1 -1
  242. package/esm2015/toggle-edit/toggle-edit.component.js +1 -1
  243. package/esm2015/utils/array-move.js +62 -0
  244. package/esm2015/utils/public-api.js +2 -1
  245. package/esm2015/utils/subscriber-count.js +31 -4
  246. package/esm2015/widget/widget/widget.component.js +1 -1
  247. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +1 -1
  248. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +1 -1
  249. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +1 -1
  250. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +1 -1
  251. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +1 -1
  252. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +1 -1
  253. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +1 -1
  254. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +1 -1
  255. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +1 -1
  256. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +1 -1
  257. package/esm2015/widget/widget-footer/widget-footer.component.js +1 -1
  258. package/fesm2015/theseam-ui-common-buttons.js +1 -1
  259. package/fesm2015/theseam-ui-common-card.js +2 -2
  260. package/fesm2015/theseam-ui-common-data-filters.js +6 -3
  261. package/fesm2015/theseam-ui-common-data-filters.js.map +1 -1
  262. package/fesm2015/theseam-ui-common-datatable-dynamic.js +3 -3
  263. package/fesm2015/theseam-ui-common-datatable.js +1136 -316
  264. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  265. package/fesm2015/theseam-ui-common-form-field-error.js +1 -1
  266. package/fesm2015/theseam-ui-common-form-field.js +1 -1
  267. package/fesm2015/theseam-ui-common-framework.js +14 -14
  268. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  269. package/fesm2015/theseam-ui-common-graphql.js +555 -5
  270. package/fesm2015/theseam-ui-common-graphql.js.map +1 -1
  271. package/fesm2015/theseam-ui-common-icon.js +1 -1
  272. package/fesm2015/theseam-ui-common-loading.js +1 -1
  273. package/fesm2015/theseam-ui-common-menu.js +1 -1
  274. package/fesm2015/theseam-ui-common-modal.js +2 -2
  275. package/fesm2015/theseam-ui-common-popover.js +1 -1
  276. package/fesm2015/theseam-ui-common-progress.js +1 -1
  277. package/fesm2015/theseam-ui-common-tabbed.js +1 -1
  278. package/fesm2015/theseam-ui-common-table-cell-types.js +234 -22
  279. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
  280. package/fesm2015/theseam-ui-common-table.js +1 -1
  281. package/fesm2015/theseam-ui-common-tel-input.js +1 -1
  282. package/fesm2015/theseam-ui-common-testing.js +191 -0
  283. package/fesm2015/theseam-ui-common-testing.js.map +1 -0
  284. package/fesm2015/theseam-ui-common-tiled-select.js +34 -21
  285. package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -1
  286. package/fesm2015/theseam-ui-common-toggle-edit.js +2 -2
  287. package/fesm2015/theseam-ui-common-utils.js +92 -4
  288. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  289. package/fesm2015/theseam-ui-common-widget.js +12 -12
  290. package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
  291. package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -1
  292. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +36 -9
  293. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  294. package/graphql/datatable/create-page-info-observable.d.ts +4 -0
  295. package/graphql/datatable/datatable-graphql-query-ref.d.ts +65 -0
  296. package/graphql/datatable/datatable-graphql.service.d.ts +26 -0
  297. package/graphql/datatable/datatable-helpers.d.ts +12 -0
  298. package/graphql/datatable/get-page-info.d.ts +4 -0
  299. package/graphql/datatable/index.d.ts +6 -0
  300. package/graphql/datatable/map-filter-states.d.ts +18 -0
  301. package/graphql/datatable/map-page-info.d.ts +11 -0
  302. package/graphql/datatable/mapper-context.d.ts +6 -0
  303. package/graphql/models/gql-datatable-accessor.d.ts +9 -0
  304. package/graphql/models/index.d.ts +1 -0
  305. package/graphql/models/query-processing-config.d.ts +4 -0
  306. package/graphql/public-api.d.ts +1 -0
  307. package/graphql/theseam-ui-common-graphql.metadata.json +1 -1
  308. package/icon/theseam-ui-common-icon.metadata.json +1 -1
  309. package/loading/theseam-ui-common-loading.metadata.json +1 -1
  310. package/menu/theseam-ui-common-menu.metadata.json +1 -1
  311. package/modal/theseam-ui-common-modal.metadata.json +1 -1
  312. package/package.json +1 -1
  313. package/popover/theseam-ui-common-popover.metadata.json +1 -1
  314. package/progress/theseam-ui-common-progress.metadata.json +1 -1
  315. package/styles/common/_table.scss +0 -5
  316. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +478 -87
  317. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +174 -0
  318. package/styles/vendor/ngx-datatable/_themes/dark/_variables.scss +166 -0
  319. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +165 -0
  320. package/styles/vendor/ngx-datatable/_variables.scss +3 -0
  321. package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -1
  322. package/table/theseam-ui-common-table.metadata.json +1 -1
  323. package/table-cell-types/public-api.d.ts +7 -0
  324. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +39 -0
  325. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +19 -0
  326. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +3 -0
  327. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +31 -1
  328. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +19 -0
  329. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +3 -0
  330. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +23 -1
  331. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +19 -0
  332. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +3 -0
  333. package/table-cell-types/table-cell-type-manifests.d.ts +2 -1
  334. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
  335. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  336. package/testing/current-tick-time.d.ts +13 -0
  337. package/testing/fake-toastr.d.ts +30 -0
  338. package/testing/get-harness.d.ts +7 -0
  339. package/testing/package.json +11 -0
  340. package/testing/public-api.d.ts +6 -0
  341. package/testing/render-story.d.ts +2 -0
  342. package/testing/story-expect.d.ts +5 -0
  343. package/{test-helpers/theseam-ui-common-test-helpers.d.ts → testing/theseam-ui-common-testing.d.ts} +0 -0
  344. package/testing/theseam-ui-common-testing.metadata.json +1 -0
  345. package/{test-helpers → testing}/tick-helper.d.ts +0 -0
  346. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +7 -3
  347. package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +1 -0
  348. package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -1
  349. package/tiled-select/tiled-select.models.d.ts +3 -1
  350. package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -1
  351. package/utils/array-move.d.ts +49 -0
  352. package/utils/public-api.d.ts +1 -0
  353. package/utils/subscriber-count.d.ts +13 -1
  354. package/utils/theseam-ui-common-utils.metadata.json +1 -1
  355. package/widget/theseam-ui-common-widget.metadata.json +1 -1
  356. package/bundles/theseam-ui-common-test-helpers.umd.js +0 -94
  357. package/bundles/theseam-ui-common-test-helpers.umd.js.map +0 -1
  358. package/esm2015/test-helpers/public-api.js +0 -2
  359. package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +0 -5
  360. package/esm2015/test-helpers/tick-helper.js +0 -74
  361. package/fesm2015/theseam-ui-common-test-helpers.js +0 -81
  362. package/fesm2015/theseam-ui-common-test-helpers.js.map +0 -1
  363. package/test-helpers/package.json +0 -11
  364. package/test-helpers/public-api.d.ts +0 -1
  365. package/test-helpers/theseam-ui-common-test-helpers.metadata.json +0 -1
@@ -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
+ .filter(c => isInternalColumn(c))
29
+ .map((column, index) => ({ column, index }));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9vcmRlci5jb2x1bW5zLWFsdGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFekQsT0FBTyxFQUF5QixnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBZ0JsRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQThDO0lBS3hGLFlBQ0UsS0FBa0MsRUFDbEMsVUFBbUI7UUFFbkIsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQTtRQU5WLFNBQUksR0FBVyxPQUFPLENBQUE7UUFRcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQTJDLEVBQUUsU0FBbUM7UUFDM0YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU07U0FDUDtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FB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LENBQUE7SUFDekUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uUHJvcCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcclxuaW1wb3J0IHsgYXJyYXlNb3ZlTXV0YWJsZSwgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9DT0xVTU5fUFJPUCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyZWF0ZS1jaGVja2JveC1jb2x1bW4nXHJcblxyXG5pbXBvcnQgeyBnZXRDb2x1bW5Qcm9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LWNvbHVtbi1wcm9wJ1xyXG5pbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL2NvbHVtbnMtYWx0ZXJhdGlvbidcclxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUFjY2Vzc29yIH0gZnJvbSAnLi4vZGF0YXRhYmxlLWFjY2Vzc29yJ1xyXG5pbXBvcnQgeyBJTlRFUk5BTF9DT0xVTU5fUFJPUFMsIGlzSW50ZXJuYWxDb2x1bW4gfSBmcm9tICcuLi9pbnRlcm5hbC1jb2x1bW4tcHJvcHMnXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi90YWJsZS1jb2x1bW4nXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9yZGVyUmVjb3JkIHtcclxuICBjb2x1bW5Qcm9wOiBUYWJsZUNvbHVtblByb3BcclxuICBpbmRleDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlIHtcclxuICAvLyBOT1RFOiBUaGlzIHN0b3JlcyB0aGUgY29sdW1uIGluZGV4IG9mIHJlb3JkZXJlZCBjb2x1bW5zIG9ubHksIHRvIGF2b2lkIGFueVxyXG4gIC8vIG5ldyBjb2x1bW5zIGZyb20gYWx3YXlzIGJlaW5nIHBsYWNlZCBhdCB0aGUgZW5kLiBUaGUgbW92ZWQgY29sdW1ucyBzaG91bGRcclxuICAvLyBhbHdheXMgYmUgYWNjdXJhdGUgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciwgYnV0IGlmIHRoaXMgYmVjb21lcyBhbiBpc3N1ZVxyXG4gIC8vIHRoZW4gd2UgY2FuIGp1c3Qgc3RvcmUgYWxsIHRoZSBjb2x1bW5zIHBvc2l0aW9ucy5cclxuICBjb2x1bW5zOiBDb2x1bW5PcmRlclJlY29yZFtdXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcmRlckNvbHVtbnNBbHRlcmF0aW9uIGV4dGVuZHMgQ29sdW1uc0FsdGVyYXRpb248T3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmdcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICdvcmRlcidcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzdGF0ZTogT3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlLFxyXG4gICAgcGVyc2lzdGVudDogYm9vbGVhblxyXG4gICkge1xyXG4gICAgc3VwZXIoc3RhdGUsIHBlcnNpc3RlbnQpXHJcblxyXG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkU3RhdGUoc3RhdGUpKSB7XHJcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHN0YXRlOiAke0pTT04uc3RyaW5naWZ5KHN0YXRlKX1gKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaWQgPSBgJHt0aGlzLnR5cGV9YFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5KGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW48YW55LCBhbnk+W10sIGRhdGF0YWJsZTogVGhlU2VhbURhdGF0YWJsZUFjY2Vzc29yKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5jb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdGF0ZUNvbHVtbnMgPSB0aGlzLl9zdGF0ZUNvbHVtbnMoKVxyXG5cclxuICAgIC8vIFRoZSBpbnRlcm5hbCBjb2x1bW5zIGFyZSBub3QgaW50ZW5kZWQgZm9yIGEgdXNlciB0byBiZSBhYmxlIHRvIG1vdmUgdGhlbS5cclxuICAgIC8vIFN0b3JlIHRoZSBpbnRlcm5hbCBjb2x1bW5zIGN1cnJlbnQgaW5kZXgsIHNvIGl0IGNhbiBiZSBtb3ZlZCBiYWNrIG9mdGVyXHJcbiAgICAvLyBzb3J0aW5nLiBUaGlzIG1heSBub3QgYmUgdGhlIGJlc3Qgd2F5IHRvIGRvIHRoaXMsIGJ1dCBpdCBpcyBlYXNpZXIgdGhhblxyXG4gICAgLy8gbWFraW5nIGEgc29ydCB0aGF0IGF2b2lkcyB0aGVtLlxyXG4gICAgLy9cclxuICAgIC8vIE5PVEU6IElmIHdlIGFkZCBhbiBpbnRlcm5hbCBjb2x1bW4gdGhhdCBjYW4gYmUgbW92ZWQgdGhlbiB0aGlzIHdpbGwgbmVlZFxyXG4gICAgLy8gdG8gYmUgY2hhbmdlZC5cclxuICAgIGNvbnN0IGludGVybmFsQ29sdW1ucyA9IGNvbHVtbnNcclxuICAgICAgLmZpbHRlcihjID0+IGlzSW50ZXJuYWxDb2x1bW4oYykpXHJcbiAgICAgIC5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7IGNvbHVtbiwgaW5kZXggfSkpXHJcblxyXG4gICAgZm9yIChjb25zdCBjIG9mIHN0YXRlQ29sdW1ucykge1xyXG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjb2x1bW5zLmZpbmRJbmRleCh4ID0+IGdldENvbHVtblByb3AoeCkgPT09IGMuY29sdW1uUHJvcClcclxuICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gYy5pbmRleCB8fCBjdXJyZW50SW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgLy8gU2tpcCBpZiBhbHJlYWR5IGF0IGNvcnJlY3QgaW5kZXguXHJcbiAgICAgICAgLy8gU2tpcCBjb2x1bW5zIG5vdCBmb3VuZC4gSXQgbWF5IGJlIGEgY29sdW1uIHRoYXQgd2FzIHJlbW92ZWQgZnJvbSB0aGVcclxuICAgICAgICAvLyB0YWJsZSwgYnV0IHdlIHN0aWxsIHdhbnQgdG8gaGFuZGxlIHRoZSBvdGhlciBjb2x1bW5zLlxyXG4gICAgICAgIGNvbnRpbnVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFycmF5TW92ZU11dGFibGUoY29sdW1ucywgY3VycmVudEluZGV4LCBjLmluZGV4KVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgYyBvZiBpbnRlcm5hbENvbHVtbnMpIHtcclxuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY29sdW1ucy5maW5kSW5kZXgoY29sID0+IGNvbCA9PT0gYy5jb2x1bW4pXHJcbiAgICAgIGlmIChjdXJyZW50SW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgYXJyYXlNb3ZlTXV0YWJsZShjb2x1bW5zLCBjdXJyZW50SW5kZXgsIGMuaW5kZXgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oYEludGVybmFsIGNvbHVtbiBjb3VsZCBub3QgYmUgZm91bmQgYWZ0ZXIgc29ydGluZy4gV2FzIGl0IGxvc3QgZHVyaW5nIHRoZSBzb3J0aW5nP2ApXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZhbGlkU3RhdGUoc3RhdGU6IE9yZGVyQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgLy8gTk9URTogQ2hlY2tpbmcgbnVsbCBvciB1bmRlZmluZWQsIGV2ZW4gdGhvdWdoIHRoZSB0eXBlIGRvZXNuJ3QgYWxsb3csXHJcbiAgICAvLyBiZWNhdXNlIHRoZSBzdGF0ZSBtYXkgaGF2ZSBiZWVuIGxvYWRlZCBmcm9tIGFuIGludmFsaWQgcGVyc2lzdGFudFxyXG4gICAgLy8gc3RvcmFnZS5cclxuXHJcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2hlbiBzdGF0ZSB2YWxpZGF0aW9uL21pZ3JhdGlvbiBpcyBpbXBsZW1lbnRlZCB0byBoYXBwZW5cclxuICAgIC8vIHdoZW4gcmV0cmlldmVkIGZyb20gc3RvcmFnZS5cclxuICAgIGlmICghbm90TnVsbE9yVW5kZWZpbmVkKHN0YXRlLmNvbHVtbnMpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIE5PVEU6IERpZG4ndCBpdGVyYXRlIGVhY2ggY29sdW1uIHJlY29yZCwgYmVjYXVzZSBpdCBpcyBwcm9iYWJseSBiZXR0ZXIgdG9cclxuICAgIC8vIGp1c3Qgc2tpcCB0byBpbnZhbGlkIGNvbHVtbiByZWNvcmRzLiBJdCBkb2VzIHByZXZlbnQgYmVpbmcgYWJsZSB0b1xyXG4gICAgLy8gdmFsaWRhdGUgdGhlIHdob2xlIHN0YXRlIHRob3VnaC5cclxuXHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNDb2x1bW5PcmRlclJlY29yZFZhbGlkKGNvbHVtbk9yZGVyOiBDb2x1bW5PcmRlclJlY29yZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5vdE51bGxPclVuZGVmaW5lZChjb2x1bW5PcmRlci5jb2x1bW5Qcm9wKSAmJiBub3ROdWxsT3JVbmRlZmluZWQoY29sdW1uT3JkZXIuaW5kZXgpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGF0ZUNvbHVtbnMoKTogQ29sdW1uT3JkZXJSZWNvcmRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5jb2x1bW5zLmZpbHRlcihjID0+IHtcclxuICAgICAgaWYgKCF0aGlzLl9pc0NvbHVtbk9yZGVyUmVjb3JkVmFsaWQoYykpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBjb2x1bW4gb3JkZXIgcmVjb3JkJywgYylcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH0pLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggPT09IGIuaW5kZXggPyAwIDogYS5pbmRleCA+IGIuaW5kZXggPyAxIDogLTEpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -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
@@ -0,0 +1,41 @@
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 WidthColumnsAlteration extends ColumnsAlteration {
5
+ constructor(state, persistent) {
6
+ super(state, persistent);
7
+ this.type = 'width';
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.canAutoResize = this.state.canAutoResize;
18
+ if (notNullOrUndefined(this.state.width)) {
19
+ col.width = this.state.width;
20
+ }
21
+ }
22
+ }
23
+ }
24
+ _isValidState(state) {
25
+ // NOTE: Checking null or undefined, even though the type doesn't allow,
26
+ // because the state may have been loaded from an invalid persistant
27
+ // storage.
28
+ // TODO: Remove when state validation/migration is implemented to happen
29
+ // when retrieved from storage.
30
+ if (!notNullOrUndefined(state.columnProp)) {
31
+ return false;
32
+ }
33
+ // TODO: Remove when state validation/migration is implemented to happen
34
+ // when retrieved from storage.
35
+ if (!notNullOrUndefined(state.canAutoResize)) {
36
+ return false;
37
+ }
38
+ return true;
39
+ }
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkdGguY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy93aWR0aC5jb2x1bW5zLWFsdGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBVXpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxpQkFBOEM7SUFLeEYsWUFDRSxLQUFrQyxFQUNsQyxVQUFtQjtRQUVuQixLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBTlYsU0FBSSxHQUFXLE9BQU8sQ0FBQTtRQVFwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDdkQ7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUEyQyxFQUFFLFNBQW1DO1FBQzNGLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMvQixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDbEMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQTtnQkFDNUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUN4QyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFBO2lCQUM3QjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWtDO1FBQ3RELHdFQUF3RTtRQUN4RSxvRUFBb0U7UUFDcEUsV0FBVztRQUVYLHdFQUF3RTtRQUN4RSwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBRUQsd0VBQXdFO1FBQ3hFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29sdW1uUHJvcCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xyXG5cclxuaW1wb3J0IHsgZ2V0Q29sdW1uUHJvcCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1jb2x1bW4tcHJvcCdcclxuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9jb2x1bW5zLWFsdGVyYXRpb24nXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciB9IGZyb20gJy4uL2RhdGF0YWJsZS1hY2Nlc3NvcidcclxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL3RhYmxlLWNvbHVtbidcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2lkdGhDb2x1bW5zQWx0ZXJhdGlvblN0YXRlIHtcclxuICBjb2x1bW5Qcm9wOiBUYWJsZUNvbHVtblByb3BcclxuICB3aWR0aD86IG51bWJlclxyXG4gIGNhbkF1dG9SZXNpemU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFdpZHRoQ29sdW1uc0FsdGVyYXRpb24gZXh0ZW5kcyBDb2x1bW5zQWx0ZXJhdGlvbjxXaWR0aENvbHVtbnNBbHRlcmF0aW9uU3RhdGU+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZ1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gJ3dpZHRoJ1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHN0YXRlOiBXaWR0aENvbHVtbnNBbHRlcmF0aW9uU3RhdGUsXHJcbiAgICBwZXJzaXN0ZW50OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzdGF0ZSwgcGVyc2lzdGVudClcclxuXHJcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWRTdGF0ZShzdGF0ZSkpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUpfWApXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pZCA9IGAke3RoaXMudHlwZX0tLSR7c3RhdGUuY29sdW1uUHJvcH1gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHkoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbjxhbnksIGFueT5bXSwgZGF0YXRhYmxlOiBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcclxuICAgICAgY29uc3QgcHJvcCA9IGdldENvbHVtblByb3AoY29sKVxyXG4gICAgICBpZiAocHJvcCA9PT0gdGhpcy5zdGF0ZS5jb2x1bW5Qcm9wKSB7XHJcbiAgICAgICAgY29sLmNhbkF1dG9SZXNpemUgPSB0aGlzLnN0YXRlLmNhbkF1dG9SZXNpemVcclxuICAgICAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuc3RhdGUud2lkdGgpKSB7XHJcbiAgICAgICAgICBjb2wud2lkdGggPSB0aGlzLnN0YXRlLndpZHRoXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZhbGlkU3RhdGUoc3RhdGU6IFdpZHRoQ29sdW1uc0FsdGVyYXRpb25TdGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgLy8gTk9URTogQ2hlY2tpbmcgbnVsbCBvciB1bmRlZmluZWQsIGV2ZW4gdGhvdWdoIHRoZSB0eXBlIGRvZXNuJ3QgYWxsb3csXHJcbiAgICAvLyBiZWNhdXNlIHRoZSBzdGF0ZSBtYXkgaGF2ZSBiZWVuIGxvYWRlZCBmcm9tIGFuIGludmFsaWQgcGVyc2lzdGFudFxyXG4gICAgLy8gc3RvcmFnZS5cclxuXHJcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2hlbiBzdGF0ZSB2YWxpZGF0aW9uL21pZ3JhdGlvbiBpcyBpbXBsZW1lbnRlZCB0byBoYXBwZW5cclxuICAgIC8vIHdoZW4gcmV0cmlldmVkIGZyb20gc3RvcmFnZS5cclxuICAgIGlmICghbm90TnVsbE9yVW5kZWZpbmVkKHN0YXRlLmNvbHVtblByb3ApKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IFJlbW92ZSB3aGVuIHN0YXRlIHZhbGlkYXRpb24vbWlncmF0aW9uIGlzIGltcGxlbWVudGVkIHRvIGhhcHBlblxyXG4gICAgLy8gd2hlbiByZXRyaWV2ZWQgZnJvbSBzdG9yYWdlLlxyXG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQoc3RhdGUuY2FuQXV0b1Jlc2l6ZSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgRGF0YUZpbHRlclN0YXRlLCBJRGF0YUZpbHRlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9kYXRhLWZpbHRlcnMnXG5cbmltcG9ydCB7IFRoZVNlYW1QYWdlSW5mbyB9IGZyb20gJy4vcGFnZS1pbmZvJ1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAnLi9zb3J0LWV2ZW50J1xuaW1wb3J0IHsgU29ydEl0ZW0gfSBmcm9tICcuL3NvcnQtaXRlbSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLWNvbHVtbidcblxuLy8gVE9ETzogUmVwbGFjZSBCZWhhdmlvclN1YmplY3QgYmFzZWQgb2JzZXJ2YWJsZXMgd2l0aCBjaGFuZ2Ugb25seSBlbWl0dGluZ1xuLy8gb2JzZXJ2YWJsZXMuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciB7XG5cbiAgY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdXG5cbiAgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPlxuXG4gIHJvd3M6IGFueVtdXG5cbiAgcmVhZG9ubHkgcm93cyQ6IE9ic2VydmFibGU8YW55W10+XG5cbiAgZmlsdGVyczogSURhdGFGaWx0ZXJbXVxuXG4gIHJlYWRvbmx5IGZpbHRlcnMkOiBPYnNlcnZhYmxlPElEYXRhRmlsdGVyW10+XG5cbiAgc29ydHM6IFNvcnRJdGVtW11cblxuICAvLyByZWFkb25seSBzb3J0cyQ6IE9ic2VydmFibGU8U29ydEl0ZW1bXT5cblxuICBzb3J0OiBPYnNlcnZhYmxlPFNvcnRFdmVudD5cblxuICByZWFkb25seSBmaWx0ZXJTdGF0ZXM6IE9ic2VydmFibGU8RGF0YUZpbHRlclN0YXRlW10+XG5cbiAgcmVhZG9ubHkgcGFnZTogT2JzZXJ2YWJsZTxUaGVTZWFtUGFnZUluZm8+XG5cbiAgcGFnZUluZm86IFRoZVNlYW1QYWdlSW5mb1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgRGF0YUZpbHRlclN0YXRlLCBEYXRhRmlsdGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcblxuaW1wb3J0IHsgVGhlU2VhbVBhZ2VJbmZvIH0gZnJvbSAnLi9wYWdlLWluZm8nXG5pbXBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL3NvcnQtZXZlbnQnXG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gJy4vc29ydC1pdGVtJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4vdGFibGUtY29sdW1uJ1xuaW1wb3J0IHsgU29ydFR5cGUgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5cbi8vIFRPRE86IFJlcGxhY2UgQmVoYXZpb3JTdWJqZWN0IGJhc2VkIG9ic2VydmFibGVzIHdpdGggY2hhbmdlIG9ubHkgZW1pdHRpbmdcbi8vIG9ic2VydmFibGVzLlxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3Ige1xuXG4gIGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXVxuXG4gIHJlYWRvbmx5IGNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICByb3dzOiBhbnlbXVxuXG4gIHJlYWRvbmx5IHJvd3MkOiBPYnNlcnZhYmxlPGFueVtdPlxuXG4gIGZpbHRlcnM6IERhdGFGaWx0ZXJbXVxuXG4gIHJlYWRvbmx5IGZpbHRlcnMkOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJbXT5cblxuICBzb3J0VHlwZTogU29ydFR5cGVcblxuICBzb3J0czogU29ydEl0ZW1bXVxuXG4gIC8vIHJlYWRvbmx5IHNvcnRzJDogT2JzZXJ2YWJsZTxTb3J0SXRlbVtdPlxuXG4gIHNvcnQ6IE9ic2VydmFibGU8U29ydEV2ZW50PlxuXG4gIHJlYWRvbmx5IGZpbHRlclN0YXRlczogT2JzZXJ2YWJsZTxEYXRhRmlsdGVyU3RhdGVbXT5cblxuICByZWFkb25seSBwYWdlOiBPYnNlcnZhYmxlPFRoZVNlYW1QYWdlSW5mbz5cblxuICBwYWdlSW5mbzogVGhlU2VhbVBhZ2VJbmZvXG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { ACTION_MENU_COLUMN_PROP } from '../utils/create-action-menu-column';
2
+ import { CHECKBOX_COLUMN_PROP } from '../utils/create-checkbox-column';
3
+ import { getColumnProp } from '../utils/get-column-prop';
4
+ /**
5
+ * Strings used for columns created and managed
6
+ * by the datatable.
7
+ */
8
+ export const INTERNAL_COLUMN_PROPS = [
9
+ ACTION_MENU_COLUMN_PROP,
10
+ CHECKBOX_COLUMN_PROP
11
+ ];
12
+ export function isInternalColumn(column) {
13
+ return INTERNAL_COLUMN_PROPS.findIndex(p => getColumnProp(column) === p) !== -1;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtY29sdW1uLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvaW50ZXJuYWwtY29sdW1uLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUd4RDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBYTtJQUM3Qyx1QkFBdUI7SUFDdkIsb0JBQW9CO0NBQ3JCLENBQUE7QUFHRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBOEI7SUFDN0QsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFDVElPTl9NRU5VX0NPTFVNTl9QUk9QIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlLWFjdGlvbi1tZW51LWNvbHVtbidcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfQ09MVU1OX1BST1AgfSBmcm9tICcuLi91dGlscy9jcmVhdGUtY2hlY2tib3gtY29sdW1uJ1xyXG5pbXBvcnQgeyBnZXRDb2x1bW5Qcm9wIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LWNvbHVtbi1wcm9wJ1xyXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nXHJcblxyXG4vKipcclxuICogU3RyaW5ncyB1c2VkIGZvciBjb2x1bW5zIGNyZWF0ZWQgYW5kIG1hbmFnZWRcclxuICogYnkgdGhlIGRhdGF0YWJsZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBJTlRFUk5BTF9DT0xVTU5fUFJPUFM6IHN0cmluZ1tdID0gW1xyXG4gIEFDVElPTl9NRU5VX0NPTFVNTl9QUk9QLFxyXG4gIENIRUNLQk9YX0NPTFVNTl9QUk9QXHJcbl1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcm5hbENvbHVtbihjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pOiBib29sZWFuIHtcclxuICByZXR1cm4gSU5URVJOQUxfQ09MVU1OX1BST1BTLmZpbmRJbmRleChwID0+IGdldENvbHVtblByb3AoY29sdW1uKSA9PT0gcCkgIT09IC0xXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvcGFnZS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1QYWdlSW5mbyB7XG4gIG9mZnNldDogbnVtYmVyXG4gIHBhZ2VTaXplOiBudW1iZXJcbiAgbGltaXQ/OiBudW1iZXJcbiAgY291bnQ6IG51bWJlclxufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvcGFnZS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1QYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBJbmRleCBvZiBwYWdlLlxuICAgKi9cbiAgb2Zmc2V0OiBudW1iZXJcbiAgLyoqXG4gICAqIFNpemUgb2YgYSBwYWdlLlxuICAgKi9cbiAgcGFnZVNpemU6IG51bWJlclxuICAvKipcbiAgICogTWF4IHBhZ2Ugc2l6ZS5cbiAgICovXG4gIGxpbWl0PzogbnVtYmVyXG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygcm93cy5cbiAgICovXG4gIGNvdW50OiBudW1iZXJcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9wcmVmZXJlbmNlcy1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlc0FjY2Vzc29yIHtcblxuICAvKipcbiAgICogR2V0cyBhIHByZWZlcmVuY2UuXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhIHByZWZlcmVuY2UuXG4gICAqL1xuICB1cGRhdGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHByZWZlcmVuY2UuXG4gICAqL1xuICBkZWxldGUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9wcmVmZXJlbmNlcy1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzQWNjZXNzb3Ige1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgcHJlZmVyZW5jZS5cbiAgICovXG4gIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICAvKipcbiAgICogVXBkYXRlIGEgcHJlZmVyZW5jZS5cbiAgICovXG4gIHVwZGF0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICAvKipcbiAgICogRGVsZXRlIGEgcHJlZmVyZW5jZS5cbiAgICovXG4gIGRlbGV0ZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbn1cbiJdfQ==
@@ -1,2 +1,6 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9wcmVmZXJlbmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzQ29sdW1uIHtcbiAgcHJvcDogc3RyaW5nXG4gIHdpZHRoPzogbnVtYmVyXG4gIGNhbkF1dG9SZXNpemU/OiBib29sZWFuXG4gIGhpZGRlbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzIHtcbiAgY29sdW1ucz86IElUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXNDb2x1bW5bXVxufVxuIl19
1
+ export const CURRENT_DATATABLE_PREFERENCES_VERSION = 2;
2
+ export const EMPTY_DATATABLE_PREFERENCES = {
3
+ version: 2,
4
+ alterations: []
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL21vZGVscy9wcmVmZXJlbmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsQ0FBQyxDQUFBO0FBRXRELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFnQztJQUN0RSxPQUFPLEVBQUUsQ0FBQztJQUNWLFdBQVcsRUFBRSxFQUFFO0NBQ2hCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvblN0YXRlIH0gZnJvbSAnLi9jb2x1bW5zLWFsdGVyYXRpb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzQ29sdW1uIHtcbiAgcHJvcDogc3RyaW5nXG4gIHdpZHRoPzogbnVtYmVyXG4gIGNhbkF1dG9SZXNpemU/OiBib29sZWFuXG4gIGhpZGRlbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXNfdjEge1xuICBjb2x1bW5zPzogVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzQ29sdW1uW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXNfdjIge1xuICB2ZXJzaW9uOiAyXG4gIGFsdGVyYXRpb25zOiBDb2x1bW5zQWx0ZXJhdGlvblN0YXRlW11cbn1cblxuZXhwb3J0IHR5cGUgVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzID0gVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzX3YyXG5cbmV4cG9ydCBjb25zdCBDVVJSRU5UX0RBVEFUQUJMRV9QUkVGRVJFTkNFU19WRVJTSU9OID0gMlxuXG5leHBvcnQgY29uc3QgRU1QVFlfREFUQVRBQkxFX1BSRUZFUkVOQ0VTOiBUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXMgPSB7XG4gIHZlcnNpb246IDIsXG4gIGFsdGVyYXRpb25zOiBbXVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvc29ydC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNvcnRJdGVtIHsgcHJvcDogc3RyaW5nLCAgZGlyOiAnYXNjJyB8ICdkZXNjJyB9XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvc29ydC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbHVtblByb3AgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydEl0ZW0geyBwcm9wOiBUYWJsZUNvbHVtblByb3AsICBkaXI6ICdhc2MnIHwgJ2Rlc2MnIH1cbiJdfQ==
@@ -5,6 +5,8 @@ export * from './datatable-column/datatable-column.component';
5
5
  export * from './datatable-column-preferences/datatable-column-preferences.component';
6
6
  export * from './datatable-column-preferences-button/datatable-column-preferences-button.component';
7
7
  export * from './datatable-export-button/datatable-export-button.component';
8
+ export * from './datatable-footer/datatable-footer-tpl.directive';
9
+ export * from './datatable-footer/datatable-footer.directive';
8
10
  export * from './datatable-menu-bar/datatable-menu-bar.component';
9
11
  export * from './datatable-menu-bar-column-center/datatable-menu-bar-column-center.component';
10
12
  export * from './datatable-menu-bar-column-left/datatable-menu-bar-column-left.component';
@@ -36,4 +38,4 @@ export * from './tokens/datatable-preferences-accessor';
36
38
  export * from './tokens/menubar-item-data';
37
39
  export * from './utils/with-stored-column-info';
38
40
  export * from './datatable.module';
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywrRUFBK0UsQ0FBQTtBQUM3RixjQUFjLDJFQUEyRSxDQUFBO0FBQ3pGLGNBQWMsNkVBQTZFLENBQUE7QUFDM0YsY0FBYywyREFBMkQsQ0FBQTtBQUN6RSxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyx1REFBdUQsQ0FBQTtBQUVyRSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsa0RBQWtELENBQUE7QUFFaEUsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHVCQUF1QixDQUFBO0FBRXJDLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLCtDQUErQyxDQUFBO0FBRTdELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw0QkFBNEIsQ0FBQTtBQUUxQyxjQUFjLGlDQUFpQyxDQUFBO0FBRS9DLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS9kYXRhdGFibGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUvZGF0YXRhYmxlLWFjdGlvbi1tZW51LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0vZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uL2RhdGF0YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1leHBvcnQtYnV0dG9uL2RhdGF0YWJsZS1leHBvcnQtYnV0dG9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tY2VudGVyL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tY2VudGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1yb3cvZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci10ZXh0L2RhdGF0YWJsZS1tZW51LWJhci10ZXh0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwtdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0uZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS10b2dnbGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWZpbHRlci5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLXJvdy1hY3Rpb24taXRlbS5kaXJlY3RpdmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2RhdGF0YWJsZS1hY2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2RhdGF0YWJsZS1kYXRhLXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2RhdGF0YWJsZS1ncWwtZGF0YS1zb3VyY2UnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9tZW51YmFyLWl0ZW0tZGF0YSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3BhZ2UtaW5mbydcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3ByZWZlcmVuY2VzLWFjY2Vzc29yJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcHJlZmVyZW5jZXMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90YWJsZS1jb2x1bW4nXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zb3J0LWV2ZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvc29ydC1pdGVtJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtcHJlZmVyZW5jZXMuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YXRhYmxlLXNjcm9sbGJhci1oZWxwZXIuc2VydmljZSdcblxuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvZGF0YXRhYmxlLXByZWZlcmVuY2VzLWFjY2Vzc29yJ1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvbWVudWJhci1pdGVtLWRhdGEnXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvd2l0aC1zdG9yZWQtY29sdW1uLWluZm8nXG5cbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLm1vZHVsZSdcbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsK0VBQStFLENBQUE7QUFDN0YsY0FBYywyRUFBMkUsQ0FBQTtBQUN6RixjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsdURBQXVELENBQUE7QUFFckUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLGtEQUFrRCxDQUFBO0FBRWhFLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUVyQyxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQTtBQUU3RCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsNEJBQTRCLENBQUE7QUFFMUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1hY3Rpb24tbWVudS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXIuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXIvZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWxlZnQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLXJpZ2h0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy9kYXRhdGFibGUtbWVudS1iYXItcm93LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQvZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC5kaXJlY3RpdmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNlbGwtdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtZmlsdGVyLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWRhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWdxbC1kYXRhLXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL21lbnViYXItaXRlbS1kYXRhJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcGFnZS1pbmZvJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wcmVmZXJlbmNlcydcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbHVtbidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NvcnQtZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zb3J0LWl0ZW0nXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtc2Nyb2xsYmFyLWhlbHBlci5zZXJ2aWNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9kYXRhdGFibGUtcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9tZW51YmFyLWl0ZW0tZGF0YSdcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy93aXRoLXN0b3JlZC1jb2x1bW4taW5mbydcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUubW9kdWxlJ1xuIl19
@@ -0,0 +1,134 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration';
5
+ import { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration';
6
+ import { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration';
7
+ export class ColumnsAlterationsManagerService {
8
+ constructor() {
9
+ this._changesSubject = new Subject();
10
+ this._alterations = [];
11
+ this.changes = this._changesSubject.asObservable();
12
+ }
13
+ get() {
14
+ return [...this._alterations];
15
+ }
16
+ /**
17
+ * Adds alterations to be applied to columns.
18
+ *
19
+ * If an alteration with the same `id` already exists then the existing
20
+ * alteration will be removed and the new one added.
21
+ *
22
+ * NOTE: When there is a duplicate alteration the old alteration is removed,
23
+ * instead of updated, to maintain the order alterations are applied.
24
+ */
25
+ add(alterations, options) {
26
+ // console.log('add', alterations)
27
+ const removed = this.remove(alterations, { emitEvent: false });
28
+ this._alterations = [...this._alterations, ...alterations];
29
+ const changes = [
30
+ ...removed,
31
+ ...alterations.map(a => {
32
+ const record = {
33
+ type: 'added',
34
+ alteration: a
35
+ };
36
+ return record;
37
+ })
38
+ ];
39
+ if (notNullOrUndefined(options === null || options === void 0 ? void 0 : options.emitEvent) && !(options === null || options === void 0 ? void 0 : options.emitEvent)) {
40
+ return changes;
41
+ }
42
+ this._emitChanges(changes);
43
+ return changes;
44
+ }
45
+ remove(alterations, options) {
46
+ // console.log('remove', alterations)
47
+ const removed = [];
48
+ this._alterations = this._alterations.filter(x => {
49
+ const found = alterations.findIndex(y => y.id === x.id) !== -1;
50
+ if (found) {
51
+ const eventRecord = {
52
+ type: 'removed',
53
+ alteration: x
54
+ };
55
+ removed.push(eventRecord);
56
+ }
57
+ return !found;
58
+ });
59
+ // console.log('removed', removed, this._alterations)
60
+ if (notNullOrUndefined(options === null || options === void 0 ? void 0 : options.emitEvent) && !(options === null || options === void 0 ? void 0 : options.emitEvent)) {
61
+ return removed;
62
+ }
63
+ this._emitChanges(removed);
64
+ return removed;
65
+ }
66
+ apply(columns, datatable) {
67
+ for (const a of this._alterations) {
68
+ a.apply(columns, datatable);
69
+ }
70
+ this._removeNonPersistant();
71
+ }
72
+ // TODO: Make aware of original column order and properties. This is tricky,
73
+ // because the datatable does not deal with immutable column/row records and
74
+ // it is hard to know where changes happened. Just serializing the columns
75
+ // input is not enough, because the columns input is called anytime the user
76
+ // makes a column change. We can probably come up with a mostly accurate
77
+ // implementation, such as "reset original columns cache when preferencesKey
78
+ // changes" or "number of columns change". There are issues with those rules,
79
+ // but with some testing/experimenting I think there should be a "good enough"
80
+ // solution.
81
+ //
82
+ // TODO: Find a generic way to clear alterations. I would like to add an
83
+ // `unapply` method to `ColumnsAlteration`, but since the alterations
84
+ // themselves are not too generic it may be tricky.
85
+ clear(options) {
86
+ const changes = [];
87
+ for (const colAlt of this._alterations) {
88
+ switch (colAlt.type) {
89
+ case 'hide-column': {
90
+ const alteration = new HideColumnColumnsAlteration({ columnProp: colAlt.state.columnProp, hidden: false }, false);
91
+ changes.push(...this.add([alteration]));
92
+ break;
93
+ }
94
+ case 'order': {
95
+ changes.push(...this.remove([colAlt]));
96
+ break;
97
+ }
98
+ case 'sort': {
99
+ const alteration = new SortColumnsAlteration({ sorts: [] }, false);
100
+ changes.push(...this.add([alteration]));
101
+ break;
102
+ }
103
+ case 'width': {
104
+ const alteration = new WidthColumnsAlteration({ columnProp: colAlt.state.columnProp, canAutoResize: true }, false);
105
+ changes.push(...this.add([alteration]));
106
+ break;
107
+ }
108
+ }
109
+ }
110
+ if (notNullOrUndefined(options === null || options === void 0 ? void 0 : options.emitEvent) && !(options === null || options === void 0 ? void 0 : options.emitEvent)) {
111
+ return changes;
112
+ }
113
+ this._emitChanges(changes);
114
+ return changes;
115
+ }
116
+ _removeNonPersistant() {
117
+ const nonPersistent = this._alterations.filter(x => !x.persistent);
118
+ this.remove(nonPersistent, { emitEvent: false });
119
+ }
120
+ _emitChanges(changes) {
121
+ if (changes.length === 0) {
122
+ return;
123
+ }
124
+ const event = {
125
+ changes
126
+ };
127
+ this._changesSubject.next(event);
128
+ }
129
+ }
130
+ ColumnsAlterationsManagerService.decorators = [
131
+ { type: Injectable }
132
+ ];
133
+ ColumnsAlterationsManagerService.ctorParameters = () => [];
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1hbHRlcmF0aW9ucy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3NlcnZpY2VzL2NvbHVtbnMtYWx0ZXJhdGlvbnMtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUs3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQTtBQUM3RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQVkvRixNQUFNLE9BQU8sZ0NBQWdDO0lBTzNDO1FBTGlCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWtDLENBQUE7UUFDeEUsaUJBQVksR0FBd0IsRUFBRSxDQUFBO1FBSzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNwRCxDQUFDO0lBRU0sR0FBRztRQUNSLE9BQU8sQ0FBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxHQUFHLENBQUMsV0FBZ0MsRUFBRSxPQUFpQztRQUM1RSxrQ0FBa0M7UUFDbEMsTUFBTSxPQUFPLEdBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDakcsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVks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LE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQTBDO1FBQzdELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTTtTQUNQO1FBRUQsTUFBTSxLQUFLLEdBQW1DO1lBQzVDLE9BQU87U0FDUixDQUFBO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEMsQ0FBQzs7O1lBbkpGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXHJcblxyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXHJcblxyXG5pbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb24nXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xyXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IgfSBmcm9tICcuLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xyXG5pbXBvcnQgeyBIaWRlQ29sdW1uQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9oaWRlLWNvbHVtbi5jb2x1bW5zLWFsdGVyYXRpb24nXHJcbmltcG9ydCB7IFNvcnRDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWFsdGVyYXRpb25zL3NvcnQuY29sdW1ucy1hbHRlcmF0aW9uJ1xyXG5pbXBvcnQgeyBXaWR0aENvbHVtbnNBbHRlcmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbnMtYWx0ZXJhdGlvbnMvd2lkdGguY29sdW1ucy1hbHRlcmF0aW9uJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkIHtcclxuICB0eXBlOiAnYWRkZWQnIHwgJ3JlbW92ZWQnXHJcbiAgYWx0ZXJhdGlvbjogQ29sdW1uc0FsdGVyYXRpb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkRXZlbnQge1xyXG4gIGNoYW5nZXM6IENvbHVtbnNBbHRlcmF0aW9uc0NoYW5nZWRSZWNvcmRbXVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZXNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8Q29sdW1uc0FsdGVyYXRpb25zQ2hhbmdlZEV2ZW50PigpXHJcbiAgcHJpdmF0ZSBfYWx0ZXJhdGlvbnM6IENvbHVtbnNBbHRlcmF0aW9uW10gPSBbXVxyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlczogT2JzZXJ2YWJsZTxDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkRXZlbnQ+XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5jaGFuZ2VzID0gdGhpcy5fY2hhbmdlc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoKTogQ29sdW1uc0FsdGVyYXRpb25bXSB7XHJcbiAgICByZXR1cm4gWyAuLi50aGlzLl9hbHRlcmF0aW9ucyBdXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGFsdGVyYXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gY29sdW1ucy5cclxuICAgKlxyXG4gICAqIElmIGFuIGFsdGVyYXRpb24gd2l0aCB0aGUgc2FtZSBgaWRgIGFscmVhZHkgZXhpc3RzIHRoZW4gdGhlIGV4aXN0aW5nXHJcbiAgICogYWx0ZXJhdGlvbiB3aWxsIGJlIHJlbW92ZWQgYW5kIHRoZSBuZXcgb25lIGFkZGVkLlxyXG4gICAqXHJcbiAgICogTk9URTogV2hlbiB0aGVyZSBpcyBhIGR1cGxpY2F0ZSBhbHRlcmF0aW9uIHRoZSBvbGQgYWx0ZXJhdGlvbiBpcyByZW1vdmVkLFxyXG4gICAqIGluc3RlYWQgb2YgdXBkYXRlZCwgdG8gbWFpbnRhaW4gdGhlIG9yZGVyIGFsdGVyYXRpb25zIGFyZSBhcHBsaWVkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGQoYWx0ZXJhdGlvbnM6IENvbHVtbnNBbHRlcmF0aW9uW10sIG9wdGlvbnM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IENvbHVtbnNBbHRlcmF0aW9uc0NoYW5nZWRSZWNvcmRbXSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnYWRkJywgYWx0ZXJhdGlvbnMpXHJcbiAgICBjb25zdCByZW1vdmVkOiBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkW10gPSB0aGlzLnJlbW92ZShhbHRlcmF0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICB0aGlzLl9hbHRlcmF0aW9ucyA9IFsgLi4udGhpcy5fYWx0ZXJhdGlvbnMsIC4uLmFsdGVyYXRpb25zIF1cclxuXHJcbiAgICBjb25zdCBjaGFuZ2VzOiBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkW10gPSBbXHJcbiAgICAgIC4uLnJlbW92ZWQsXHJcbiAgICAgIC4uLmFsdGVyYXRpb25zLm1hcChhID0+IHtcclxuICAgICAgICBjb25zdCByZWNvcmQ6IENvbHVtbnNBbHRlcmF0aW9uc0NoYW5nZWRSZWNvcmQgPSB7XHJcbiAgICAgICAgICB0eXBlOiAnYWRkZWQnLFxyXG4gICAgICAgICAgYWx0ZXJhdGlvbjogYVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVjb3JkXHJcbiAgICAgIH0pXHJcbiAgICBdXHJcblxyXG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZChvcHRpb25zPy5lbWl0RXZlbnQpICYmICFvcHRpb25zPy5lbWl0RXZlbnQpIHtcclxuICAgICAgcmV0dXJuIGNoYW5nZXNcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlcyhjaGFuZ2VzKVxyXG5cclxuICAgIHJldHVybiBjaGFuZ2VzXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlKGFsdGVyYXRpb25zOiBDb2x1bW5zQWx0ZXJhdGlvbltdLCBvcHRpb25zPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pOiBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkW10ge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3JlbW92ZScsIGFsdGVyYXRpb25zKVxyXG4gICAgY29uc3QgcmVtb3ZlZDogQ29sdW1uc0FsdGVyYXRpb25zQ2hhbmdlZFJlY29yZFtdID0gW11cclxuICAgIHRoaXMuX2FsdGVyYXRpb25zID0gdGhpcy5fYWx0ZXJhdGlvbnMuZmlsdGVyKHggPT4ge1xyXG4gICAgICBjb25zdCBmb3VuZCA9IGFsdGVyYXRpb25zLmZpbmRJbmRleCh5ID0+IHkuaWQgPT09IHguaWQpICE9PSAtMVxyXG4gICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICBjb25zdCBldmVudFJlY29yZDogQ29sdW1uc0FsdGVyYXRpb25zQ2hhbmdlZFJlY29yZCA9IHtcclxuICAgICAgICAgIHR5cGU6ICdyZW1vdmVkJyxcclxuICAgICAgICAgIGFsdGVyYXRpb246IHhcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVtb3ZlZC5wdXNoKGV2ZW50UmVjb3JkKVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAhZm91bmRcclxuICAgIH0pXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coJ3JlbW92ZWQnLCByZW1vdmVkLCB0aGlzLl9hbHRlcmF0aW9ucylcclxuXHJcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKG9wdGlvbnM/LmVtaXRFdmVudCkgJiYgIW9wdGlvbnM/LmVtaXRFdmVudCkge1xyXG4gICAgICByZXR1cm4gcmVtb3ZlZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2VtaXRDaGFuZ2VzKHJlbW92ZWQpXHJcblxyXG4gICAgcmV0dXJuIHJlbW92ZWRcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseShjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10sIGRhdGF0YWJsZTogVGhlU2VhbURhdGF0YWJsZUFjY2Vzc29yKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGEgb2YgdGhpcy5fYWx0ZXJhdGlvbnMpIHtcclxuICAgICAgYS5hcHBseShjb2x1bW5zLCBkYXRhdGFibGUpXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcmVtb3ZlTm9uUGVyc2lzdGFudCgpXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBNYWtlIGF3YXJlIG9mIG9yaWdpbmFsIGNvbHVtbiBvcmRlciBhbmQgcHJvcGVydGllcy4gVGhpcyBpcyB0cmlja3ksXHJcbiAgLy8gYmVjYXVzZSB0aGUgZGF0YXRhYmxlIGRvZXMgbm90IGRlYWwgd2l0aCBpbW11dGFibGUgY29sdW1uL3JvdyByZWNvcmRzIGFuZFxyXG4gIC8vIGl0IGlzIGhhcmQgdG8ga25vdyB3aGVyZSBjaGFuZ2VzIGhhcHBlbmVkLiBKdXN0IHNlcmlhbGl6aW5nIHRoZSBjb2x1bW5zXHJcbiAgLy8gaW5wdXQgaXMgbm90IGVub3VnaCwgYmVjYXVzZSB0aGUgY29sdW1ucyBpbnB1dCBpcyBjYWxsZWQgYW55dGltZSB0aGUgdXNlclxyXG4gIC8vIG1ha2VzIGEgY29sdW1uIGNoYW5nZS4gV2UgY2FuIHByb2JhYmx5IGNvbWUgdXAgd2l0aCBhIG1vc3RseSBhY2N1cmF0ZVxyXG4gIC8vIGltcGxlbWVudGF0aW9uLCBzdWNoIGFzIFwicmVzZXQgb3JpZ2luYWwgY29sdW1ucyBjYWNoZSB3aGVuIHByZWZlcmVuY2VzS2V5XHJcbiAgLy8gY2hhbmdlc1wiIG9yIFwibnVtYmVyIG9mIGNvbHVtbnMgY2hhbmdlXCIuIFRoZXJlIGFyZSBpc3N1ZXMgd2l0aCB0aG9zZSBydWxlcyxcclxuICAvLyBidXQgd2l0aCBzb21lIHRlc3RpbmcvZXhwZXJpbWVudGluZyBJIHRoaW5rIHRoZXJlIHNob3VsZCBiZSBhIFwiZ29vZCBlbm91Z2hcIlxyXG4gIC8vIHNvbHV0aW9uLlxyXG4gIC8vXHJcbiAgLy8gVE9ETzogRmluZCBhIGdlbmVyaWMgd2F5IHRvIGNsZWFyIGFsdGVyYXRpb25zLiBJIHdvdWxkIGxpa2UgdG8gYWRkIGFuXHJcbiAgLy8gYHVuYXBwbHlgIG1ldGhvZCB0byBgQ29sdW1uc0FsdGVyYXRpb25gLCBidXQgc2luY2UgdGhlIGFsdGVyYXRpb25zXHJcbiAgLy8gdGhlbXNlbHZlcyBhcmUgbm90IHRvbyBnZW5lcmljIGl0IG1heSBiZSB0cmlja3kuXHJcbiAgcHVibGljIGNsZWFyKG9wdGlvbnM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IENvbHVtbnNBbHRlcmF0aW9uc0NoYW5nZWRSZWNvcmRbXSB7XHJcbiAgICBjb25zdCBjaGFuZ2VzOiBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkW10gPSBbXVxyXG4gICAgZm9yIChjb25zdCBjb2xBbHQgb2YgdGhpcy5fYWx0ZXJhdGlvbnMpIHtcclxuICAgICAgc3dpdGNoIChjb2xBbHQudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2hpZGUtY29sdW1uJzoge1xyXG4gICAgICAgICAgY29uc3QgYWx0ZXJhdGlvbiA9IG5ldyBIaWRlQ29sdW1uQ29sdW1uc0FsdGVyYXRpb24oeyBjb2x1bW5Qcm9wOiBjb2xBbHQuc3RhdGUuY29sdW1uUHJvcCwgaGlkZGVuOiBmYWxzZSB9LCBmYWxzZSlcclxuICAgICAgICAgIGNoYW5nZXMucHVzaCguLi50aGlzLmFkZChbIGFsdGVyYXRpb24gXSkpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnb3JkZXInOiB7XHJcbiAgICAgICAgICBjaGFuZ2VzLnB1c2goLi4udGhpcy5yZW1vdmUoWyBjb2xBbHQgXSkpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnc29ydCc6IHtcclxuICAgICAgICAgIGNvbnN0IGFsdGVyYXRpb24gPSBuZXcgU29ydENvbHVtbnNBbHRlcmF0aW9uKHsgc29ydHM6IFtdIH0sIGZhbHNlKVxyXG4gICAgICAgICAgY2hhbmdlcy5wdXNoKC4uLnRoaXMuYWRkKFsgYWx0ZXJhdGlvbiBdKSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICd3aWR0aCc6IHtcclxuICAgICAgICAgIGNvbnN0IGFsdGVyYXRpb24gPSBuZXcgV2lkdGhDb2x1bW5zQWx0ZXJhdGlvbih7IGNvbHVtblByb3A6IGNvbEFsdC5zdGF0ZS5jb2x1bW5Qcm9wLCBjYW5BdXRvUmVzaXplOiB0cnVlIH0sIGZhbHNlKVxyXG4gICAgICAgICAgY2hhbmdlcy5wdXNoKC4uLnRoaXMuYWRkKFsgYWx0ZXJhdGlvbiBdKSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQob3B0aW9ucz8uZW1pdEV2ZW50KSAmJiAhb3B0aW9ucz8uZW1pdEV2ZW50KSB7XHJcbiAgICAgIHJldHVybiBjaGFuZ2VzXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZW1pdENoYW5nZXMoY2hhbmdlcylcclxuXHJcbiAgICByZXR1cm4gY2hhbmdlc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlTm9uUGVyc2lzdGFudCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5vblBlcnNpc3RlbnQgPSB0aGlzLl9hbHRlcmF0aW9ucy5maWx0ZXIoeCA9PiAheC5wZXJzaXN0ZW50KVxyXG4gICAgdGhpcy5yZW1vdmUobm9uUGVyc2lzdGVudCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9lbWl0Q2hhbmdlcyhjaGFuZ2VzOiBDb2x1bW5zQWx0ZXJhdGlvbnNDaGFuZ2VkUmVjb3JkW10pOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBldmVudDogQ29sdW1uc0FsdGVyYXRpb25zQ2hhbmdlZEV2ZW50ID0ge1xyXG4gICAgICBjaGFuZ2VzXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fY2hhbmdlc1N1YmplY3QubmV4dChldmVudClcclxuICB9XHJcblxyXG59XHJcbiJdfQ==