@theseam/ui-common 0.2.12 → 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.
- package/assets/vendor/intl-tel-input/js/utils.js +255 -254
- package/bundles/theseam-ui-common-asset-reader.umd.js +7 -9
- package/bundles/theseam-ui-common-asset-reader.umd.js.map +1 -1
- package/bundles/theseam-ui-common-breadcrumbs.umd.js +6 -8
- package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -1
- package/bundles/theseam-ui-common-buttons.umd.js +5 -5
- package/bundles/theseam-ui-common-buttons.umd.js.map +1 -1
- package/bundles/theseam-ui-common-card.umd.js +6 -6
- package/bundles/theseam-ui-common-card.umd.js.map +1 -1
- package/bundles/theseam-ui-common-checkbox.umd.js +4 -4
- package/bundles/theseam-ui-common-checkbox.umd.js.map +1 -1
- package/bundles/theseam-ui-common-confirm-dialog.umd.js +4 -4
- package/bundles/theseam-ui-common-confirm-dialog.umd.js.map +1 -1
- package/bundles/theseam-ui-common-core.umd.js +4 -4
- package/bundles/theseam-ui-common-core.umd.js.map +1 -1
- package/bundles/theseam-ui-common-data-exporter.umd.js +5 -5
- package/bundles/theseam-ui-common-data-filters.umd.js +9 -6
- package/bundles/theseam-ui-common-data-filters.umd.js.map +1 -1
- package/bundles/theseam-ui-common-datatable-dynamic.umd.js +7 -7
- package/bundles/theseam-ui-common-datatable-dynamic.umd.js.map +1 -1
- package/bundles/theseam-ui-common-datatable.umd.js +1308 -375
- package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
- package/bundles/theseam-ui-common-dynamic-component-loader.umd.js +5 -7
- package/bundles/theseam-ui-common-dynamic-component-loader.umd.js.map +1 -1
- package/bundles/theseam-ui-common-dynamic.umd.js +7 -9
- package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
- package/bundles/theseam-ui-common-footer-bar.umd.js +3 -3
- package/bundles/theseam-ui-common-form-field-error.umd.js +5 -5
- package/bundles/theseam-ui-common-form-field-error.umd.js.map +1 -1
- package/bundles/theseam-ui-common-form-field.umd.js +5 -5
- package/bundles/theseam-ui-common-form-field.umd.js.map +1 -1
- package/bundles/theseam-ui-common-framework.umd.js +27 -29
- package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
- package/bundles/theseam-ui-common-graphql.umd.js +958 -8
- package/bundles/theseam-ui-common-graphql.umd.js.map +1 -1
- package/bundles/theseam-ui-common-icon.umd.js +5 -5
- package/bundles/theseam-ui-common-icon.umd.js.map +1 -1
- package/bundles/theseam-ui-common-layout.umd.js +5 -7
- package/bundles/theseam-ui-common-layout.umd.js.map +1 -1
- package/bundles/theseam-ui-common-loading.umd.js +4 -4
- package/bundles/theseam-ui-common-menu.umd.js +5 -5
- package/bundles/theseam-ui-common-menu.umd.js.map +1 -1
- package/bundles/theseam-ui-common-modal.umd.js +6 -6
- package/bundles/theseam-ui-common-modal.umd.js.map +1 -1
- package/bundles/theseam-ui-common-models.umd.js +3 -3
- package/bundles/theseam-ui-common-popover.umd.js +4 -4
- package/bundles/theseam-ui-common-progress.umd.js +5 -5
- package/bundles/theseam-ui-common-progress.umd.js.map +1 -1
- package/bundles/theseam-ui-common-scrollbar.umd.js +7 -9
- package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
- package/bundles/theseam-ui-common-services.umd.js +6 -8
- package/bundles/theseam-ui-common-services.umd.js.map +1 -1
- package/bundles/theseam-ui-common-shared.umd.js +4 -4
- package/bundles/theseam-ui-common-shared.umd.js.map +1 -1
- package/bundles/theseam-ui-common-storage.umd.js +5 -7
- package/bundles/theseam-ui-common-storage.umd.js.map +1 -1
- package/bundles/theseam-ui-common-story-helpers.umd.js +4 -4
- package/bundles/theseam-ui-common-story-helpers.umd.js.map +1 -1
- package/bundles/theseam-ui-common-tabbed.umd.js +5 -5
- package/bundles/theseam-ui-common-tabbed.umd.js.map +1 -1
- package/bundles/theseam-ui-common-table-cell-type.umd.js +5 -7
- package/bundles/theseam-ui-common-table-cell-type.umd.js.map +1 -1
- package/bundles/theseam-ui-common-table-cell-types.umd.js +16 -16
- package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
- package/bundles/theseam-ui-common-table.umd.js +5 -5
- package/bundles/theseam-ui-common-table.umd.js.map +1 -1
- package/bundles/theseam-ui-common-tel-input.umd.js +6 -6
- package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
- package/bundles/theseam-ui-common-testing.umd.js +568 -0
- package/bundles/theseam-ui-common-testing.umd.js.map +1 -0
- package/bundles/theseam-ui-common-tiled-select.umd.js +56 -39
- package/bundles/theseam-ui-common-tiled-select.umd.js.map +1 -1
- package/bundles/theseam-ui-common-toggle-edit.umd.js +8 -10
- package/bundles/theseam-ui-common-toggle-edit.umd.js.map +1 -1
- package/bundles/theseam-ui-common-toggle-group.umd.js +4 -4
- package/bundles/theseam-ui-common-toggle-group.umd.js.map +1 -1
- package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js +5 -7
- package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js.map +1 -1
- package/bundles/theseam-ui-common-utils.umd.js +174 -81
- package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
- package/bundles/theseam-ui-common-validators.umd.js +3 -3
- package/bundles/theseam-ui-common-viewers.umd.js +6 -8
- package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
- package/bundles/theseam-ui-common-widget.umd.js +18 -20
- package/bundles/theseam-ui-common-widget.umd.js.map +1 -1
- package/bundles/theseam-ui-common.umd.js +2 -2
- package/buttons/theseam-ui-common-buttons.metadata.json +1 -1
- package/card/theseam-ui-common-card.metadata.json +1 -1
- package/data-filters/data-filter.d.ts +10 -6
- package/data-filters/theseam-ui-common-data-filters.metadata.json +1 -1
- package/datatable/datatable/datatable.component.d.ts +46 -32
- package/datatable/datatable-column/datatable-column.component.d.ts +26 -25
- package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +7 -5
- package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +7 -1
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +1 -1
- package/datatable/directives/datatable-filter.directive.d.ts +1 -1
- package/datatable/models/columns-alteration.d.ts +61 -0
- package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +15 -0
- package/datatable/models/columns-alterations/order.columns-alteration.d.ts +20 -0
- package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +14 -0
- package/datatable/models/columns-alterations/width.columns-alteration.d.ts +16 -0
- package/datatable/models/datatable-accessor.d.ts +5 -3
- package/datatable/models/internal-column-props.d.ts +7 -0
- package/datatable/models/page-info.d.ts +12 -0
- package/datatable/models/preferences-accessor.d.ts +1 -1
- package/datatable/models/preferences.d.ts +11 -3
- package/datatable/models/sort-item.d.ts +2 -1
- package/datatable/services/columns-alterations-manager.service.d.ts +39 -0
- package/datatable/services/columns-manager.service.d.ts +55 -0
- package/datatable/services/datatable-preferences.service.d.ts +10 -7
- package/datatable/theseam-ui-common-datatable.d.ts +2 -0
- package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
- package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
- package/datatable/utils/create-action-menu-column.d.ts +3 -0
- package/datatable/utils/create-checkbox-column.d.ts +3 -0
- package/datatable/utils/get-column-prop.d.ts +5 -0
- package/datatable/utils/map-columns-alterations-states.d.ts +2 -0
- package/datatable/utils/remove-unused-diffs.d.ts +7 -0
- package/datatable/utils/set-column-defaults.d.ts +2 -0
- package/datatable/utils/translate-templates.d.ts +2 -0
- package/datatable/utils/with-stored-column-info.d.ts +2 -2
- package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -1
- package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +1 -1
- package/esm2015/card/card-action/card-action.component.js +1 -1
- package/esm2015/card/card-body/card-body.component.js +1 -1
- package/esm2015/data-filters/data-filter.js +5 -2
- package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +1 -1
- package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +1 -1
- package/esm2015/datatable/datatable/datatable.component.js +195 -211
- package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +1 -1
- package/esm2015/datatable/datatable-column/datatable-column.component.js +1 -1
- package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +42 -19
- package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +38 -4
- package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +1 -1
- package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +1 -1
- package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +1 -1
- package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +1 -1
- package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +1 -1
- package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +1 -1
- package/esm2015/datatable/models/columns-alteration.js +38 -0
- package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +38 -0
- package/esm2015/datatable/models/columns-alterations/order.columns-alteration.js +81 -0
- package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +33 -0
- package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +41 -0
- package/esm2015/datatable/models/datatable-accessor.js +1 -1
- package/esm2015/datatable/models/internal-column-props.js +15 -0
- package/esm2015/datatable/models/page-info.js +1 -1
- package/esm2015/datatable/models/preferences-accessor.js +1 -1
- package/esm2015/datatable/models/preferences.js +6 -2
- package/esm2015/datatable/models/sort-item.js +1 -1
- package/esm2015/datatable/services/columns-alterations-manager.service.js +134 -0
- package/esm2015/datatable/services/columns-manager.service.js +257 -0
- package/esm2015/datatable/services/datatable-preferences.service.js +78 -32
- package/esm2015/datatable/theseam-ui-common-datatable.js +3 -1
- package/esm2015/datatable/tokens/datatable-preferences-accessor.js +2 -2
- package/esm2015/datatable/utils/create-action-menu-column.js +18 -0
- package/esm2015/datatable/utils/create-checkbox-column.js +15 -0
- package/esm2015/datatable/utils/get-column-prop.js +9 -0
- package/esm2015/datatable/utils/map-columns-alterations-states.js +39 -0
- package/esm2015/datatable/utils/remove-unused-diffs.js +9 -0
- package/esm2015/datatable/utils/set-column-defaults.js +10 -0
- package/esm2015/datatable/utils/translate-templates.js +12 -0
- package/esm2015/datatable/utils/with-stored-column-info.js +1 -1
- package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +1 -1
- package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +1 -1
- package/esm2015/datatable-dynamic/datatable-dynamic.component.js +1 -1
- package/esm2015/form-field/form-field.component.js +1 -1
- package/esm2015/form-field-error/form-field-error/form-field-error.component.js +1 -1
- package/esm2015/framework/base-layout/base-layout.component.js +1 -1
- package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +1 -1
- package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +1 -1
- package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +1 -1
- package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +1 -1
- package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +1 -1
- package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +1 -1
- package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +1 -1
- package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +1 -1
- package/esm2015/framework/side-nav/side-nav.component.js +1 -1
- package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +1 -1
- package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +1 -1
- package/esm2015/framework/top-bar/top-bar.component.js +1 -1
- package/esm2015/graphql/datatable/create-page-info-observable.js +38 -0
- package/esm2015/graphql/datatable/datatable-graphql-query-ref.js +236 -0
- package/esm2015/graphql/datatable/datatable-graphql.service.js +35 -0
- package/esm2015/graphql/datatable/datatable-helpers.js +170 -0
- package/esm2015/graphql/datatable/get-page-info.js +11 -0
- package/esm2015/graphql/datatable/index.js +7 -0
- package/esm2015/graphql/datatable/map-filter-states.js +64 -0
- package/esm2015/graphql/datatable/map-page-info.js +14 -0
- package/esm2015/graphql/datatable/mapper-context.js +2 -0
- package/esm2015/graphql/models/gql-datatable-accessor.js +2 -0
- package/esm2015/graphql/models/index.js +2 -1
- package/esm2015/graphql/models/query-processing-config.js +1 -1
- package/esm2015/graphql/public-api.js +2 -1
- package/esm2015/graphql/utils/parse-hints.js +3 -3
- package/esm2015/icon/icon/icon.component.js +1 -1
- package/esm2015/loading/loading/loading.component.js +1 -1
- package/esm2015/menu/menu.component.js +1 -1
- package/esm2015/modal/modal-body/modal-body.component.js +1 -1
- package/esm2015/modal/modal-container/modal-container.component.js +1 -1
- package/esm2015/popover/popover/popover.component.js +1 -1
- package/esm2015/progress/progress-circle/progress-circle.component.js +1 -1
- package/esm2015/tabbed/tabbed.component.js +1 -1
- package/esm2015/table/table/table.component.js +1 -1
- package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +1 -1
- package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +1 -1
- package/esm2015/tel-input/tel-input/tel-input.component.js +1 -1
- package/esm2015/testing/current-tick-time.js +16 -0
- package/esm2015/testing/fake-toastr.js +29 -0
- package/esm2015/testing/get-harness.js +16 -0
- package/esm2015/testing/public-api.js +7 -0
- package/esm2015/testing/render-story.js +12 -0
- package/esm2015/testing/story-expect.js +39 -0
- package/esm2015/testing/theseam-ui-common-testing.js +5 -0
- package/esm2015/testing/tick-helper.js +74 -0
- package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +25 -17
- package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +5 -2
- package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +1 -1
- package/esm2015/tiled-select/public-api.js +2 -1
- package/esm2015/tiled-select/tiled-select.models.js +1 -1
- package/esm2015/tiled-select/tiled-select.module.js +4 -4
- package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +1 -1
- package/esm2015/toggle-edit/toggle-edit.component.js +1 -1
- package/esm2015/utils/array-move.js +62 -0
- package/esm2015/utils/public-api.js +2 -1
- package/esm2015/utils/router/is-empty-url-route.js +1 -1
- package/esm2015/utils/subscriber-count.js +31 -4
- package/esm2015/widget/widget/widget.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +1 -1
- package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +1 -1
- package/esm2015/widget/widget-footer/widget-footer.component.js +1 -1
- package/fesm2015/theseam-ui-common-buttons.js +1 -1
- package/fesm2015/theseam-ui-common-card.js +2 -2
- package/fesm2015/theseam-ui-common-data-filters.js +6 -3
- package/fesm2015/theseam-ui-common-data-filters.js.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.js +3 -3
- package/fesm2015/theseam-ui-common-datatable.js +1101 -316
- package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
- package/fesm2015/theseam-ui-common-form-field-error.js +1 -1
- package/fesm2015/theseam-ui-common-form-field.js +1 -1
- package/fesm2015/theseam-ui-common-framework.js +13 -13
- package/fesm2015/theseam-ui-common-graphql.js +555 -5
- package/fesm2015/theseam-ui-common-graphql.js.map +1 -1
- package/fesm2015/theseam-ui-common-icon.js +1 -1
- package/fesm2015/theseam-ui-common-loading.js +1 -1
- package/fesm2015/theseam-ui-common-menu.js +1 -1
- package/fesm2015/theseam-ui-common-modal.js +2 -2
- package/fesm2015/theseam-ui-common-popover.js +1 -1
- package/fesm2015/theseam-ui-common-progress.js +1 -1
- package/fesm2015/theseam-ui-common-tabbed.js +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.js +2 -2
- package/fesm2015/theseam-ui-common-table.js +1 -1
- package/fesm2015/theseam-ui-common-tel-input.js +1 -1
- package/fesm2015/theseam-ui-common-testing.js +191 -0
- package/fesm2015/theseam-ui-common-testing.js.map +1 -0
- package/fesm2015/theseam-ui-common-tiled-select.js +34 -21
- package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.js +2 -2
- package/fesm2015/theseam-ui-common-utils.js +92 -4
- package/fesm2015/theseam-ui-common-utils.js.map +1 -1
- package/fesm2015/theseam-ui-common-widget.js +12 -12
- package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
- package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -1
- package/framework/theseam-ui-common-framework.metadata.json +1 -1
- package/graphql/datatable/create-page-info-observable.d.ts +4 -0
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +65 -0
- package/graphql/datatable/datatable-graphql.service.d.ts +26 -0
- package/graphql/datatable/datatable-helpers.d.ts +12 -0
- package/graphql/datatable/get-page-info.d.ts +4 -0
- package/graphql/datatable/index.d.ts +6 -0
- package/graphql/datatable/map-filter-states.d.ts +18 -0
- package/graphql/datatable/map-page-info.d.ts +11 -0
- package/graphql/datatable/mapper-context.d.ts +6 -0
- package/graphql/models/gql-datatable-accessor.d.ts +9 -0
- package/graphql/models/index.d.ts +1 -0
- package/graphql/models/query-processing-config.d.ts +4 -0
- package/graphql/public-api.d.ts +1 -0
- package/graphql/theseam-ui-common-graphql.metadata.json +1 -1
- package/icon/theseam-ui-common-icon.metadata.json +1 -1
- package/loading/theseam-ui-common-loading.metadata.json +1 -1
- package/menu/theseam-ui-common-menu.metadata.json +1 -1
- package/modal/theseam-ui-common-modal.metadata.json +1 -1
- package/package.json +1 -1
- package/popover/theseam-ui-common-popover.metadata.json +1 -1
- package/progress/theseam-ui-common-progress.metadata.json +1 -1
- package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -1
- package/table/theseam-ui-common-table.metadata.json +1 -1
- package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
- package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
- package/testing/current-tick-time.d.ts +13 -0
- package/testing/fake-toastr.d.ts +30 -0
- package/testing/get-harness.d.ts +7 -0
- package/testing/package.json +11 -0
- package/testing/public-api.d.ts +6 -0
- package/testing/render-story.d.ts +2 -0
- package/testing/story-expect.d.ts +5 -0
- package/{test-helpers/theseam-ui-common-test-helpers.d.ts → testing/theseam-ui-common-testing.d.ts} +0 -0
- package/testing/theseam-ui-common-testing.metadata.json +1 -0
- package/{test-helpers → testing}/tick-helper.d.ts +0 -0
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +7 -3
- package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +1 -0
- package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -1
- package/tiled-select/tiled-select.models.d.ts +3 -1
- package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -1
- package/utils/array-move.d.ts +49 -0
- package/utils/public-api.d.ts +1 -0
- package/utils/subscriber-count.d.ts +13 -1
- package/utils/theseam-ui-common-utils.metadata.json +1 -1
- package/widget/theseam-ui-common-widget.metadata.json +1 -1
- package/bundles/theseam-ui-common-test-helpers.umd.js +0 -94
- package/bundles/theseam-ui-common-test-helpers.umd.js.map +0 -1
- package/esm2015/test-helpers/public-api.js +0 -2
- package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +0 -5
- package/esm2015/test-helpers/tick-helper.js +0 -74
- package/fesm2015/theseam-ui-common-test-helpers.js +0 -81
- package/fesm2015/theseam-ui-common-test-helpers.js.map +0 -1
- package/test-helpers/package.json +0 -11
- package/test-helpers/public-api.d.ts +0 -1
- 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,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFtRCxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJNUgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDdEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFLNUYsK0VBQStFO0FBQy9FLDhFQUE4RTtBQU85RSxNQUFNLE9BQU8sd0JBQXdCO0lBc0RuQywyQkFBMkI7SUFDM0IsMENBQTBDO0lBRTFDLHFGQUFxRjtJQUNyRiwwQ0FBMEM7SUFFMUMsMkNBQTJDO0lBQzNDLG1FQUFtRTtJQUNuRSxJQUFJO0lBRUosK0JBQStCO0lBQy9CLDhDQUE4QztJQUU5QyxvRkFBb0Y7SUFDcEYsOENBQThDO0lBRTlDLCtDQUErQztJQUMvQywyRUFBMkU7SUFDM0UsSUFBSTtJQUVKLFlBQ1UscUJBQW9EO1FBQXBELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBK0I7UUFwQ3RELG1CQUFjLEdBQUcsSUFBSSxDQUFBO0lBcUMxQixDQUFDO0lBMUJKLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUMzRCxDQUFDO0lBMEJELFFBQVEsS0FBSyxDQUFDO0lBRWQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQzNDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtTQUM3QjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7O1lBbkdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxrREFBZ0Q7O2FBRWpEOzs7WUFaUSw2QkFBNkI7OzttQkFlbkMsS0FBSzttQkFDTCxLQUFLO3VCQUVMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBRUwsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7NEJBRUwsS0FBSzt5QkFFTCxLQUFLOzZCQUVMLEtBQUs7MkJBRUwsS0FBSztpQ0FDTCxLQUFLOzBCQUVMLEtBQUs7d0JBQ0wsS0FBSzt5QkFFTCxLQUFLOzBCQUNMLEtBQUs7bUJBRUwsS0FBSzsyQkFFTCxLQUFLOzhCQUNMLEtBQUs7MEJBRUwsS0FBSzs4QkFDTCxLQUFLO3FCQUVMLEtBQUs7K0JBSUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtpQ0FHeEQsS0FBSyxTQUFDLGNBQWM7aUNBR3BCLFlBQVksU0FBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFBpcGVUcmFuc2Zvcm0sIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgQ29sdW1uQ2hhbmdlc1NlcnZpY2UsIFRhYmxlQ29sdW1uUHJvcCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNlbGwtdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5cbi8vIEhBQ0s6IFVuaW9uIHR5cGUgcHJldmVudHMgdGhlIG5vdCBmb3VuZCB3YXJuaW5nXG50eXBlIF9QaXBlVHJhbnNmb3JtID0gUGlwZVRyYW5zZm9ybSB8IFBpcGVUcmFuc2Zvcm1cblxuLy8gVE9ETzogVGhlIGNvbHVtbiBjb21wb25lbnQgc2hvdWxkIGltcGxlbWVudCBgSVRoZVNlYW1EYXRhdGFibGVDb2x1bW5gLCBzaW5jZVxuLy8gcHJvdmlkaW5nIHNvbWUgcHJvcGVydGllcyBieSBpbnB1dCBhbmQgc29tZSBieSB0ZW1wbGF0ZSBjb3VsZCBiZSBjb25mdXNpbmcuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBASW5wdXQoKSBwcm9wPzogVGFibGVDb2x1bW5Qcm9wIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGZsZXhHcm93PzogbnVtYmVyIHwgbnVsbFxuICBASW5wdXQoKSBtaW5XaWR0aD86IG51bWJlciB8IG51bGxcbiAgQElucHV0KCkgbWF4V2lkdGg/OiBudW1iZXIgfCBudWxsXG4gIEBJbnB1dCgpIHdpZHRoPzogbnVtYmVyIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHJlc2l6ZWFibGU/OiBib29sZWFuIHwgbnVsbFxuICBASW5wdXQoKSBzb3J0YWJsZT86IGJvb2xlYW4gfCBudWxsXG4gIEBJbnB1dCgpIGRyYWdnYWJsZT86IGJvb2xlYW4gfCBudWxsXG5cbiAgQElucHV0KCkgY2FuQXV0b1Jlc2l6ZT86IGJvb2xlYW4gfCBudWxsXG5cbiAgQElucHV0KCkgY29tcGFyYXRvcj86ICgodmFsdWVBOiBhbnksIHZhbHVlQjogYW55LCByb3dBPzogYW55LCByb3dCPzogYW55LCBzb3J0RGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYycpID0+IC0xIHwgMCB8IDEpIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcblxuICBASW5wdXQoKSBjaGVja2JveGFibGU/OiBib29sZWFuIHwgbnVsbFxuICBASW5wdXQoKSBoZWFkZXJDaGVja2JveGFibGU/OiBib29sZWFuIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGhlYWRlckNsYXNzPzogc3RyaW5nIHwgKChkYXRhOiBhbnkpID0+IHN0cmluZ3xhbnkpIHwgbnVsbFxuICBASW5wdXQoKSBjZWxsQ2xhc3M/OiBzdHJpbmcgfCAoKGRhdGE6IGFueSkgPT4gc3RyaW5nfGFueSkgfCBudWxsXG5cbiAgQElucHV0KCkgZnJvemVuTGVmdD86IGJvb2xlYW4gfCBudWxsXG4gIEBJbnB1dCgpIGZyb3plblJpZ2h0PzogYm9vbGVhbiB8IG51bGxcblxuICBASW5wdXQoKSBwaXBlPzogX1BpcGVUcmFuc2Zvcm0gfCBudWxsXG5cbiAgQElucHV0KCkgaXNUcmVlQ29sdW1uPzogYm9vbGVhbiB8IG51bGxcbiAgQElucHV0KCkgdHJlZUxldmVsSW5kZW50PzogbnVtYmVyIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHN1bW1hcnlGdW5jPzogKChjZWxsczogYW55W10pID0+IGFueSkgfCBudWxsXG4gIEBJbnB1dCgpIHN1bW1hcnlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG5cbiAgQElucHV0KCkgaGlkZGVuPzogYm9vbGVhbiB8IG51bGxcblxuICBwcml2YXRlIF9pc0ZpcnN0Q2hhbmdlID0gdHJ1ZVxuXG4gIEBDb250ZW50Q2hpbGQoRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgY2VsbFRwbERpcmVjdGl2ZT86IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmVcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NlbGxUZW1wbGF0ZScpXG4gIF9jZWxsVGVtcGxhdGVJbnB1dD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG5cbiAgQENvbnRlbnRDaGlsZChEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX2NlbGxUZW1wbGF0ZVF1ZXJ5PzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGdldCBjZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jZWxsVGVtcGxhdGVJbnB1dCB8fCB0aGlzLl9jZWxsVGVtcGxhdGVRdWVyeVxuICB9XG5cbiAgLy8gQElucHV0KCdoZWFkZXJUZW1wbGF0ZScpXG4gIC8vIF9oZWFkZXJUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX2hlYWRlclRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8gZ2V0IGhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9oZWFkZXJUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX2hlYWRlclRlbXBsYXRlUXVlcnk7XG4gIC8vIH1cblxuICAvLyBASW5wdXQoJ3RyZWVUb2dnbGVUZW1wbGF0ZScpXG4gIC8vIF90cmVlVG9nZ2xlVGVtcGxhdGVJbnB1dDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyBAQ29udGVudENoaWxkKERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgLy8gX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIGdldCB0cmVlVG9nZ2xlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5O1xuICAvLyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29sdW1uQ2hhbmdlc1NlcnZpY2U6IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5faXNGaXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5faXNGaXJzdENoYW5nZSA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbHVtbkNoYW5nZXNTZXJ2aWNlLm9uSW5wdXRDaGFuZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDZWxsRGlyZWN0aXZlKCk6IERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jZWxsVHBsRGlyZWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jZWxsVHBsRGlyZWN0aXZlXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG59XG4iXX0=
|
package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js
CHANGED
|
@@ -2,45 +2,68 @@ 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 { getColumnProp } from '../utils/get-column-prop';
|
|
9
|
+
import { ColumnsAlterationsManagerService } from '../services/columns-alterations-manager.service';
|
|
10
|
+
import { isInternalColumn } from '../models/internal-column-props';
|
|
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();
|
|
17
|
+
this._alphabeticalColumnCompareFn = (a, b) => {
|
|
18
|
+
const aProp = getColumnProp(a);
|
|
19
|
+
const bProp = getColumnProp(b);
|
|
20
|
+
return aProp === bProp ? 0 : aProp > bProp ? 1 : -1;
|
|
21
|
+
};
|
|
12
22
|
this._columns$ = combineLatest([
|
|
13
23
|
(_a = this._datatable.columns$) !== null && _a !== void 0 ? _a : of([]),
|
|
14
24
|
observeControlValue(this._filterControl)
|
|
15
25
|
]).pipe(map(([columns, filter]) => {
|
|
16
26
|
const _filter = (filter || '').trim().toLowerCase();
|
|
17
|
-
return columns
|
|
18
|
-
|
|
27
|
+
return columns
|
|
28
|
+
.filter(c => this._canToggleColumn(c, _filter))
|
|
29
|
+
.sort(this._alphabeticalColumnCompareFn);
|
|
30
|
+
}));
|
|
19
31
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
_canToggleColumn(column, filter, omitInternalColumns = true) {
|
|
33
|
+
if (omitInternalColumns && isInternalColumn(column)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return this._columnMatchesFilter(column, filter);
|
|
37
|
+
}
|
|
38
|
+
_columnMatchesFilter(column, filter) {
|
|
39
|
+
if (filter.length === 0) {
|
|
40
|
+
return true;
|
|
29
41
|
}
|
|
42
|
+
return `${(getColumnProp(column) || '')}`.toLowerCase().indexOf(filter) !== -1;
|
|
30
43
|
}
|
|
31
|
-
|
|
32
|
-
|
|
44
|
+
_onChange(event, col) {
|
|
45
|
+
const columnProp = getColumnProp(col);
|
|
46
|
+
const hidden = !event.checked;
|
|
47
|
+
if (!notNullOrUndefined(columnProp)) {
|
|
48
|
+
throw Error(`Unable to get column prop.`);
|
|
49
|
+
}
|
|
50
|
+
const alteration = new HideColumnColumnsAlteration({
|
|
51
|
+
columnProp,
|
|
52
|
+
hidden
|
|
53
|
+
}, hidden);
|
|
54
|
+
this._columnsAlterationsManager.add([alteration]);
|
|
33
55
|
}
|
|
34
56
|
}
|
|
35
57
|
DatatableColumnPreferencesComponent.decorators = [
|
|
36
58
|
{ type: Component, args: [{
|
|
37
59
|
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",
|
|
60
|
+
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
61
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40
|
-
styles: [":host{display:flex;flex-direction:column}"]
|
|
62
|
+
styles: [":host{display:flex;flex-direction:column}\n"]
|
|
41
63
|
},] }
|
|
42
64
|
];
|
|
43
65
|
DatatableColumnPreferencesComponent.ctorParameters = () => [
|
|
44
|
-
{ type: DatatableComponent, decorators: [{ type: Inject, args: [THESEAM_DATATABLE,] }] }
|
|
66
|
+
{ type: DatatableComponent, decorators: [{ type: Inject, args: [THESEAM_DATATABLE,] }] },
|
|
67
|
+
{ type: ColumnsAlterationsManagerService }
|
|
45
68
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMvZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUE7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBbUIsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUE7QUFDMUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFBO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBUWxFLE1BQU0sT0FBTyxtQ0FBbUM7SUFLOUMsWUFDcUMsVUFBOEIsRUFDaEQsMEJBQTREOztRQUQxQyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUNoRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBSi9FLG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQWlDMUIsaUNBQTRCLEdBQUcsQ0FBQyxDQUF5QixFQUFFLENBQXlCLEVBQUUsRUFBRTtZQUM5RixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDOUIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzlCLE9BQU8sS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVSxLQUFNLEdBQVksS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pFLENBQUMsQ0FBQTtRQS9CQyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztZQUM3QixNQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xDLG1CQUFtQixDQUFTLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDakQsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFFLE9BQU8sRUFBRSxNQUFNLENBQUUsRUFBRSxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ25ELE9BQU8sT0FBTztpQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDNUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUE4QixFQUFFLE1BQWMsRUFBRSxzQkFBK0IsSUFBSTtRQUMxRyxJQUFJLG1CQUFtQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25ELE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQThCLEVBQUUsTUFBYztRQUN6RSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUE7U0FBRTtRQUV4QyxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQVFELFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBMkI7UUFDL0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUU3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtTQUMxQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQTJCLENBQ2hEO1lBQ0UsVUFBVTtZQUNWLE1BQU07U0FDUCxFQUNELE1BQU0sQ0FDUCxDQUFBO1FBRUQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFFLFVBQVUsQ0FBRSxDQUFDLENBQUE7SUFDckQsQ0FBQzs7O1lBakVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUNBQW1DO2dCQUM3Qyw4NEJBQTREO2dCQUU1RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVpRLGtCQUFrQix1QkFtQnRCLE1BQU0sU0FBQyxpQkFBaUI7WUFmcEIsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IERhdGF0YWJsZUNvbXBvbmVudCwgVEhFU0VBTV9EQVRBVEFCTEUgfSBmcm9tICcuLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuaW1wb3J0IHsgSGlkZUNvbHVtbkNvbHVtbnNBbHRlcmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbnMtYWx0ZXJhdGlvbnMvaGlkZS1jb2x1bW4uY29sdW1ucy1hbHRlcmF0aW9uJ1xuaW1wb3J0IHsgZ2V0Q29sdW1uUHJvcCB9IGZyb20gJy4uL3V0aWxzL2dldC1jb2x1bW4tcHJvcCdcbmltcG9ydCB7IENvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sdW1ucy1hbHRlcmF0aW9ucy1tYW5hZ2VyLnNlcnZpY2UnXG5pbXBvcnQgeyBpc0ludGVybmFsQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL2ludGVybmFsLWNvbHVtbi1wcm9wcydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50IHtcbiAgX2NvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICBfZmlsdGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRSkgcHJpdmF0ZSBfZGF0YXRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uc0FsdGVyYXRpb25zTWFuYWdlcjogQ29sdW1uc0FsdGVyYXRpb25zTWFuYWdlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2NvbHVtbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9kYXRhdGFibGUuY29sdW1ucyQgPz8gb2YoW10pLFxuICAgICAgb2JzZXJ2ZUNvbnRyb2xWYWx1ZTxzdHJpbmc+KHRoaXMuX2ZpbHRlckNvbnRyb2wpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoWyBjb2x1bW5zLCBmaWx0ZXIgXSkgPT4ge1xuICAgICAgICBjb25zdCBfZmlsdGVyID0gKGZpbHRlciB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgcmV0dXJuIGNvbHVtbnNcbiAgICAgICAgICAuZmlsdGVyKGMgPT4gdGhpcy5fY2FuVG9nZ2xlQ29sdW1uKGMsIF9maWx0ZXIpKVxuICAgICAgICAgIC5zb3J0KHRoaXMuX2FscGhhYmV0aWNhbENvbHVtbkNvbXBhcmVGbilcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX2NhblRvZ2dsZUNvbHVtbihjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIGZpbHRlcjogc3RyaW5nLCBvbWl0SW50ZXJuYWxDb2x1bW5zOiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChvbWl0SW50ZXJuYWxDb2x1bW5zICYmIGlzSW50ZXJuYWxDb2x1bW4oY29sdW1uKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1hdGNoZXNGaWx0ZXIoY29sdW1uLCBmaWx0ZXIpXG4gIH1cblxuICBwcml2YXRlIF9jb2x1bW5NYXRjaGVzRmlsdGVyKGNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoZmlsdGVyLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgICByZXR1cm4gYCR7KGdldENvbHVtblByb3AoY29sdW1uKSB8fCAnJyl9YC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyKSAhPT0gLTFcbiAgfVxuXG4gIHByaXZhdGUgX2FscGhhYmV0aWNhbENvbHVtbkNvbXBhcmVGbiA9IChhOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uLCBiOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uKSA9PiB7XG4gICAgY29uc3QgYVByb3AgPSBnZXRDb2x1bW5Qcm9wKGEpXG4gICAgY29uc3QgYlByb3AgPSBnZXRDb2x1bW5Qcm9wKGIpXG4gICAgcmV0dXJuIGFQcm9wID09PSBiUHJvcCA/IDAgOiAoPHN0cmluZz5hUHJvcCkgPiAoPHN0cmluZz5iUHJvcCkgPyAxIDogLTFcbiAgfVxuXG4gIF9vbkNoYW5nZShldmVudDogYW55LCBjb2w6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCBjb2x1bW5Qcm9wID0gZ2V0Q29sdW1uUHJvcChjb2wpXG4gICAgY29uc3QgaGlkZGVuID0gIWV2ZW50LmNoZWNrZWRcblxuICAgIGlmICghbm90TnVsbE9yVW5kZWZpbmVkKGNvbHVtblByb3ApKSB7XG4gICAgICB0aHJvdyBFcnJvcihgVW5hYmxlIHRvIGdldCBjb2x1bW4gcHJvcC5gKVxuICAgIH1cblxuICAgIGNvbnN0IGFsdGVyYXRpb24gPSBuZXcgSGlkZUNvbHVtbkNvbHVtbnNBbHRlcmF0aW9uKFxuICAgICAge1xuICAgICAgICBjb2x1bW5Qcm9wLFxuICAgICAgICBoaWRkZW5cbiAgICAgIH0sXG4gICAgICBoaWRkZW5cbiAgICApXG5cbiAgICB0aGlzLl9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyLmFkZChbIGFsdGVyYXRpb24gXSlcbiAgfVxuXG59XG4iXX0=
|
|
@@ -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
|
|
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
|
-
|
|
49
|
+
DatatableColumnPreferencesButtonComponent.ctorParameters = () => [
|
|
50
|
+
{ type: ColumnsAlterationsManagerService }
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDN0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saURBQWlELENBQUE7QUFRbEcsTUFBTSxPQUFPLHlDQUF5QztJQWdDcEQsWUFDbUIsMEJBQTREO1FBQTVELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBa0M7UUEvQi9FLFNBQUksR0FBRyxTQUFTLENBQUE7UUFFaEIsY0FBYztRQUNkLHlCQUFvQixHQUE2QjtZQUMvQztnQkFDRSxPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsUUFBUTthQUNuQjtTQUNGLENBQUE7SUFJRyxDQUFDO0lBRUwsUUFBUSxLQUFLLENBQUM7SUFFZCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDekMsQ0FBQzs7O1lBOUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMENBQTBDO2dCQUNwRCxvN0JBQW1FO2dCQUVuRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVBRLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IGZhQ29sdW1ucyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IENvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sdW1ucy1hbHRlcmF0aW9ucy1tYW5hZ2VyLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaWNvbiA9IGZhQ29sdW1uc1xuXG4gIC8qKiBAaWdub3JlICovXG4gIF9hY3Rpb25NZW51UG9zaXRpb25zOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyOiBDb2x1bW5zQWx0ZXJhdGlvbnNNYW5hZ2VyU2VydmljZSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIF9yZXNldENvbHVtbnMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX2NvbHVtbnNBbHRlcmF0aW9uc01hbmFnZXIuY2xlYXIoKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -82,7 +82,7 @@ DatatableExportButtonComponent.decorators = [
|
|
|
82
82
|
selector: 'seam-datatable-export-button',
|
|
83
83
|
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
84
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
85
|
-
styles: [":host{display:inline-block}"]
|
|
85
|
+
styles: [":host{display:inline-block}\n"]
|
|
86
86
|
},] }
|
|
87
87
|
];
|
|
88
88
|
DatatableExportButtonComponent.ctorParameters = () => [
|
|
@@ -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 = () => [];
|
package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js
CHANGED
|
@@ -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
|
+
.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuY29sdW1ucy1hbHRlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9vcmRlci5jb2x1bW5zLWFsdGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFekQsT0FBTyxFQUF5QixnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBZ0JsRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQThDO0lBS3hGLFlBQ0UsS0FBa0MsRUFDbEMsVUFBbUI7UUFFbkIsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQTtRQU5WLFNBQUksR0FBVyxPQUFPLENBQUE7UUFRcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQTJDLEVBQUUsU0FBbUM7UUFDM0YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU07U0FDUDtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUV6Qyw0RUFBNEU7UUFDNUUsMEVBQTBFO1FBQzFFLDBFQUEwRTtRQUMxRSxrQ0FBa0M7UUFDbEMsRUFBRTtRQUNGLDJFQUEyRTtRQUMzRSxpQkFBaUI7UUFDakIsTUFBTSxlQUFlLEdBQUcsT0FBTzthQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU5QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRTtZQUM1QixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM5RSxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDbkQsb0NBQW9DO2dCQUNwQyx1RUFBdUU7Z0JBQ3ZFLHdEQUF3RDtnQkFDeEQsU0FBUTthQUNUO1lBRUQsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDakQ7UUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGVBQWUsRUFBRTtZQUMvQixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMvRCxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDakQ7aUJBQU07Z0JBQ0wsSUFBSSxTQUFTLEVBQUUsRUFBRTtvQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG1GQUFtRixDQUFDLENBQUE7aUJBQ2xHO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBa0M7UUFDdEQsd0VBQXdFO1FBQ3hFLG9FQUFvRTtRQUNwRSxXQUFXO1FBRVgsd0VBQXdFO1FBQ3hFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCw0RUFBNEU7UUFDNUUscUVBQXFFO1FBQ3JFLG1DQUFtQztRQUVuQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxXQUE4QjtRQUM5RCxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUYsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxTQUFTLEVBQUUsRUFBRTtvQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFBO2lCQUMvQztnQkFDRCxPQUFPLEtBQUssQ0FBQTthQUNiO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uUHJvcCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcclxuaW1wb3J0IHsgYXJyYXlNb3ZlTXV0YWJsZSwgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9DT0xVTU5fUFJPUCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyZWF0ZS1jaGVja2JveC1jb2x1bW4nXHJcblxyXG5pbXBvcnQgeyBnZXRDb2x1bW5Qcm9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LWNvbHVtbi1wcm9wJ1xyXG5pbXBvcnQgeyBDb2x1bW5zQWx0ZXJhdGlvbiB9IGZyb20gJy4uL2NvbHVtbnMtYWx0ZXJhdGlvbidcclxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUFjY2Vzc29yIH0gZnJvbSAnLi4vZGF0YXRhYmxlLWFjY2Vzc29yJ1xyXG5pbXBvcnQgeyBJTlRFUk5BTF9DT0xVTU5fUFJPUFMsIGlzSW50ZXJuYWxDb2x1bW4gfSBmcm9tICcuLi9pbnRlcm5hbC1jb2x1bW4tcHJvcHMnXHJcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi90YWJsZS1jb2x1bW4nXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9yZGVyUmVjb3JkIHtcclxuICBjb2x1bW5Qcm9wOiBUYWJsZUNvbHVtblByb3BcclxuICBpbmRleDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlIHtcclxuICAvLyBOT1RFOiBUaGlzIHN0b3JlcyB0aGUgY29sdW1uIGluZGV4IG9mIHJlb3JkZXJlZCBjb2x1bW5zIG9ubHksIHRvIGF2b2lkIGFueVxyXG4gIC8vIG5ldyBjb2x1bW5zIGZyb20gYWx3YXlzIGJlaW5nIHBsYWNlZCBhdCB0aGUgZW5kLiBUaGUgbW92ZWQgY29sdW1ucyBzaG91bGRcclxuICAvLyBhbHdheXMgYmUgYWNjdXJhdGUgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciwgYnV0IGlmIHRoaXMgYmVjb21lcyBhbiBpc3N1ZVxyXG4gIC8vIHRoZW4gd2UgY2FuIGp1c3Qgc3RvcmUgYWxsIHRoZSBjb2x1bW5zIHBvc2l0aW9ucy5cclxuICBjb2x1bW5zOiBDb2x1bW5PcmRlclJlY29yZFtdXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcmRlckNvbHVtbnNBbHRlcmF0aW9uIGV4dGVuZHMgQ29sdW1uc0FsdGVyYXRpb248T3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmdcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICdvcmRlcidcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzdGF0ZTogT3JkZXJDb2x1bW5zQWx0ZXJhdGlvblN0YXRlLFxyXG4gICAgcGVyc2lzdGVudDogYm9vbGVhblxyXG4gICkge1xyXG4gICAgc3VwZXIoc3RhdGUsIHBlcnNpc3RlbnQpXHJcblxyXG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkU3RhdGUoc3RhdGUpKSB7XHJcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHN0YXRlOiAke0pTT04uc3RyaW5naWZ5KHN0YXRlKX1gKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaWQgPSBgJHt0aGlzLnR5cGV9YFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5KGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW48YW55LCBhbnk+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,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgRGF0YUZpbHRlclN0YXRlLCBEYXRhRmlsdGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcblxuaW1wb3J0IHsgVGhlU2VhbVBhZ2VJbmZvIH0gZnJvbSAnLi9wYWdlLWluZm8nXG5pbXBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL3NvcnQtZXZlbnQnXG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gJy4vc29ydC1pdGVtJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4vdGFibGUtY29sdW1uJ1xuaW1wb3J0IHsgU29ydFR5cGUgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5cbi8vIFRPRE86IFJlcGxhY2UgQmVoYXZpb3JTdWJqZWN0IGJhc2VkIG9ic2VydmFibGVzIHdpdGggY2hhbmdlIG9ubHkgZW1pdHRpbmdcbi8vIG9ic2VydmFibGVzLlxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3Ige1xuXG4gIGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXVxuXG4gIHJlYWRvbmx5IGNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICByb3dzOiBhbnlbXVxuXG4gIHJlYWRvbmx5IHJvd3MkOiBPYnNlcnZhYmxlPGFueVtdPlxuXG4gIGZpbHRlcnM6IERhdGFGaWx0ZXJbXVxuXG4gIHJlYWRvbmx5IGZpbHRlcnMkOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJbXT5cblxuICBzb3J0VHlwZTogU29ydFR5cGVcblxuICBzb3J0czogU29ydEl0ZW1bXVxuXG4gIC8vIHJlYWRvbmx5IHNvcnRzJDogT2JzZXJ2YWJsZTxTb3J0SXRlbVtdPlxuXG4gIHNvcnQ6IE9ic2VydmFibGU8U29ydEV2ZW50PlxuXG4gIHJlYWRvbmx5IGZpbHRlclN0YXRlczogT2JzZXJ2YWJsZTxEYXRhRmlsdGVyU3RhdGVbXT5cblxuICByZWFkb25seSBwYWdlOiBPYnNlcnZhYmxlPFRoZVNlYW1QYWdlSW5mbz5cblxuICBwYWdlSW5mbzogVGhlU2VhbVBhZ2VJbmZvXG59XG4iXX0=
|