@theseam/ui-common 0.4.0-beta.2 → 0.4.0-beta.4
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/breadcrumbs/breadcrumb.d.ts +1 -1
- package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
- package/core/common-behaviors/active.d.ts +1 -1
- package/core/common-behaviors/constructor.d.ts +1 -1
- package/core/common-behaviors/disabled.d.ts +1 -1
- package/core/common-behaviors/initialized.d.ts +1 -1
- package/core/common-behaviors/size.d.ts +1 -1
- package/core/common-behaviors/tabindex.d.ts +1 -1
- package/core/common-behaviors/theme.d.ts +1 -1
- package/data-exporter/data-exporter.d.ts +1 -1
- package/data-filters/data-filter.d.ts +3 -3
- package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
- package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
- package/datatable/models/preferences.d.ts +1 -1
- package/datatable/models/table-column.d.ts +1 -1
- package/datatable/services/columns-manager.service.d.ts +1 -1
- package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
- package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
- package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
- package/dynamic/models/dynamic-value.d.ts +1 -1
- package/dynamic/tokens/api-config.d.ts +1 -1
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
- package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
- package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
- package/esm2020/buttons/button/button.component.mjs +9 -9
- package/esm2020/buttons/buttons.module.mjs +4 -4
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
- package/esm2020/card/card-action/card-action.component.mjs +3 -3
- package/esm2020/card/card-body/card-body.component.mjs +3 -3
- package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
- package/esm2020/card/card-header/card-header.component.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.component.mjs +43 -43
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
- package/esm2020/checkbox/testing/index.mjs +1 -1
- package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
- package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
- package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
- package/esm2020/core/common-behaviors/active.mjs +3 -3
- package/esm2020/core/common-behaviors/disabled.mjs +3 -3
- package/esm2020/core/common-behaviors/size.mjs +6 -6
- package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
- package/esm2020/core/common-behaviors/theme.mjs +6 -6
- package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
- package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
- package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
- package/esm2020/data-filters/data-filters.module.mjs +4 -4
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
- package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
- package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
- package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
- package/esm2020/datatable/datatable.module.mjs +4 -4
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
- package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
- package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
- package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
- package/esm2020/form-field/form-field-error.directive.mjs +6 -6
- package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
- package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
- package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
- package/esm2020/form-field/form-field-tokens.mjs +1 -1
- package/esm2020/form-field/form-field.component.mjs +48 -48
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/input.directive.mjs +43 -43
- package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
- package/esm2020/form-field/testing/index.mjs +1 -1
- package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
- package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
- package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
- package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
- package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
- package/esm2020/framework/dashboard/dashboard-widgets-tokens.mjs +1 -1
- package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav-tokens.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
- package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
- package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
- package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +20 -20
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps.module.mjs +4 -4
- package/esm2020/google-maps/google-maps.service.mjs +5 -5
- package/esm2020/google-maps/map-control.component.mjs +9 -9
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
- package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
- package/esm2020/icon/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.service.mjs +3 -3
- package/esm2020/loading/loading/loading.component.mjs +7 -7
- package/esm2020/loading/loading-overlay.service.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/menu/menu-divider.component.mjs +3 -3
- package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
- package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
- package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu-toggle.directive.mjs +42 -42
- package/esm2020/menu/menu.component.mjs +15 -15
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
- package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
- package/esm2020/modal/directives/modal.directive.mjs +3 -3
- package/esm2020/modal/modal/modal.component.mjs +19 -19
- package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +16 -16
- package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
- package/esm2020/popover/popover/popover.component.mjs +18 -18
- package/esm2020/popover/popover.directive.mjs +32 -32
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/public_api.mjs +1 -42
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/services/asset-loader.service.mjs +3 -3
- package/esm2020/services/font-loader.service.mjs +3 -3
- package/esm2020/services/router-helpers.service.mjs +3 -3
- package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
- package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
- package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
- package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
- package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
- package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
- package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
- package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
- package/esm2020/shared/shared.module.mjs +4 -4
- package/esm2020/storage/local-storage.service.mjs +3 -3
- package/esm2020/story-helpers/initial-route.service.mjs +3 -3
- package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
- package/esm2020/story-helpers/story-empty.component.mjs +3 -3
- package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
- package/esm2020/story-helpers/story-initial-route.mjs +4 -4
- package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
- package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
- package/esm2020/tabbed/tabbed-models.mjs +1 -1
- package/esm2020/tabbed/tabbed.component.mjs +13 -13
- package/esm2020/tabbed/tabbed.module.mjs +4 -4
- package/esm2020/tabbed/tabbed.service.mjs +3 -3
- package/esm2020/table/table/table.component.mjs +11 -11
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
- package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
- package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
- package/esm2020/tel-input/tel-input.directive.mjs +18 -18
- package/esm2020/tel-input/tel-input.module.mjs +4 -4
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
- package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
- package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
- package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
- package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
- package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
- package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
- package/esm2020/utils/geo-json/geo-json-to-area.mjs +1 -1
- package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
- package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
- package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
- package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
- package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget/widget.component.mjs +23 -23
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
- package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
- package/esm2020/widget/widget-registry.service.mjs +3 -3
- package/esm2020/widget/widget.module.mjs +4 -4
- package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-card.mjs +19 -19
- package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-core.mjs +18 -18
- package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +196 -196
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +78 -78
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-icon.mjs +33 -33
- package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +7 -7
- package/fesm2015/theseam-ui-common-loading.mjs +13 -13
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +79 -79
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-modal.mjs +85 -85
- package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +52 -52
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-progress.mjs +12 -12
- package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs +9 -9
- package/fesm2015/theseam-ui-common-shared.mjs +84 -84
- package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-storage.mjs +3 -3
- package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +14 -14
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +175 -175
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2015/theseam-ui-common.mjs +0 -41
- package/fesm2015/theseam-ui-common.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-card.mjs +19 -19
- package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-core.mjs +18 -18
- package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +196 -196
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +78 -78
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-icon.mjs +33 -33
- package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +7 -7
- package/fesm2020/theseam-ui-common-loading.mjs +13 -13
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +77 -77
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-modal.mjs +85 -85
- package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +52 -52
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-progress.mjs +12 -12
- package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs +9 -9
- package/fesm2020/theseam-ui-common-shared.mjs +84 -84
- package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-storage.mjs +3 -3
- package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +14 -14
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +175 -175
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common.mjs +0 -41
- package/fesm2020/theseam-ui-common.mjs.map +1 -1
- package/framework/base-layout/base-layout-action.d.ts +1 -1
- package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
- package/framework/side-nav/side-nav.models.d.ts +1 -1
- package/google-maps/google-maps/google-maps.component.d.ts +0 -1
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +0 -4
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +0 -4
- package/google-maps/google-maps.service.d.ts +0 -2
- package/google-maps/map-controls-service.d.ts +0 -1
- package/google-maps/map-value-manager.service.d.ts +1 -1
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
- package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
- package/graphql/datatable/datatable-helpers.d.ts +2 -2
- package/graphql/datatable/map-filter-states.d.ts +2 -2
- package/graphql/datatable/map-page-info.d.ts +1 -1
- package/graphql/datatable/mapper-context.d.ts +1 -1
- package/graphql/models/gql-datatable-accessor.d.ts +1 -1
- package/graphql/models/hint-transformer.d.ts +1 -1
- package/icon/icon/icon.component.d.ts +1 -1
- package/icon/icon.d.ts +1 -1
- package/layout/breakpoint-aliases.d.ts +1 -1
- package/loading/loading.models.d.ts +1 -1
- package/modal/modal-config.d.ts +1 -1
- package/models/component-type.d.ts +1 -1
- package/models/size-prefixes.d.ts +1 -1
- package/models/size-types.d.ts +1 -1
- package/models/theme-prefixes.d.ts +1 -1
- package/models/theme-types.d.ts +2 -2
- package/package.json +2 -2
- package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
- package/services/font-loader.service.d.ts +1 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-utilities.scss +3 -3
- package/styles/theme.scss +3 -3
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +1 -1
- package/styles/vendor/quill/_quill.scss +3 -3
- package/table/table/table.component.d.ts +1 -1
- package/table-cell-type/table-cell-type-models.d.ts +3 -3
- package/table-cell-type/table-cell-type-name.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
- package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
- package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
- package/tiled-select/tiled-select.models.d.ts +2 -2
- package/utils/polling-ticker.d.ts +1 -1
- package/utils/subscriber-count.d.ts +1 -1
- package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-core.mjs","sources":["../../../projects/ui-common/core/common-behaviors/disabled.ts","../../../projects/ui-common/core/common-behaviors/initialized.ts","../../../projects/ui-common/core/common-behaviors/size.ts","../../../projects/ui-common/core/common-behaviors/tabindex.ts","../../../projects/ui-common/core/common-behaviors/theme.ts","../../../projects/ui-common/core/common-behaviors/active.ts","../../../projects/ui-common/core/input-decorators/input-boolean.decorator.ts","../../../projects/ui-common/core/input-decorators/input-number.decorator.ts","../../../projects/ui-common/core/theseam-ui-common-core.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Constructor } from './constructor'\n\n/** @docs-private */\nexport interface CanDisable {\n /** Whether the component is disabled. */\n disabled: boolean\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable>\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n private _disabled = false\n\n get disabled() { return this._disabled }\n set disabled(value: any) { this._disabled = coerceBooleanProperty(value) }\n\n constructor(...args: any[]) { super(...args) }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Observable, Subscriber } from 'rxjs'\nimport { Constructor } from './constructor'\n\n\n/**\n * Mixin that adds an initialized property to a directive which, when subscribed to, will emit a\n * value once markInitialized has been called, which should be done during the ngOnInit function.\n * If the subscription is made after it has already been marked as initialized, then it will trigger\n * an emit immediately.\n * @docs-private\n */\nexport interface HasInitialized {\n /** Stream that emits once during the directive/component's ngOnInit. */\n initialized: Observable<void>\n\n /**\n * Sets the state as initialized and must be called during ngOnInit to notify subscribers that\n * the directive has been initialized.\n * @docs-private\n */\n _markInitialized: () => void\n}\n\n/** @docs-private */\nexport type HasInitializedCtor = Constructor<HasInitialized>\n\n/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */\nexport function mixinInitialized<T extends Constructor<{}>>(base: T):\n HasInitializedCtor & T {\n return class extends base {\n /** Whether this directive has been marked as initialized. */\n _isInitialized = false\n\n /**\n * List of subscribers that subscribed before the directive was initialized. Should be notified\n * during _markInitialized. Set to null after pending subscribers are notified, and should\n * not expect to be populated after.\n */\n _pendingSubscribers: Subscriber<void>[] | null = []\n\n /**\n * Observable stream that emits when the directive initializes. If already initialized, the\n * subscriber is stored to be notified once _markInitialized is called.\n */\n initialized = new Observable<void>(subscriber => {\n // If initialized, immediately notify the subscriber. Otherwise store the subscriber to notify\n // when _markInitialized is called.\n if (this._isInitialized) {\n this._notifySubscriber(subscriber)\n } else {\n if (this._pendingSubscribers) {\n this._pendingSubscribers.push(subscriber)\n }\n }\n })\n\n constructor(...args: any[]) { super(...args) }\n\n /**\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\n * of ngOnInit.\n * @docs-private\n */\n _markInitialized(): void {\n if (this._isInitialized) {\n throw Error('This directive has already been marked as initialized and ' +\n 'should not be called twice.')\n }\n\n this._isInitialized = true\n\n if (this._pendingSubscribers) {\n this._pendingSubscribers.forEach(this._notifySubscriber)\n }\n this._pendingSubscribers = null\n }\n\n /** Emits and completes the subscriber stream (should only emit once). */\n _notifySubscriber(subscriber: Subscriber<void>): void {\n subscriber.next()\n subscriber.complete()\n }\n }\n}\n","import { SizePrefixes, SizeTypes } from '@theseam/ui-common/models'\n\nimport { Constructor } from './constructor'\nimport { HasElementRef } from './element-ref'\n\nexport interface CanSize {\n size: SizeTypes | undefined\n}\n\nexport type CanSizeCtor = Constructor<CanSize>\n\n/** Mixin to augment a directive with a `size` property. */\nexport function mixinSize<T extends Constructor<HasElementRef>>(\n base: T, sizePrefix: SizePrefixes, defaultSize?: SizeTypes): CanSizeCtor & T {\n return class extends base {\n private _size: SizeTypes | undefined\n\n get size(): SizeTypes | undefined { return this._size }\n set size(value: SizeTypes | undefined) {\n const themePalette = value || defaultSize\n\n if (themePalette !== this._size) {\n if (this._size) {\n this._elementRef.nativeElement.classList.remove(`${sizePrefix}-${this._size}`)\n }\n if (themePalette) {\n this._elementRef.nativeElement.classList.add(`${sizePrefix}-${themePalette}`)\n }\n\n this._size = themePalette\n }\n }\n\n constructor(...args: any[]) {\n super(...args)\n\n // Set the default size that can be specified from the mixin.\n this.size = defaultSize\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Constructor } from './constructor'\nimport { CanDisable } from './disabled'\n\n\n/** @docs-private */\nexport interface HasTabIndex {\n /** Tabindex of the component. */\n tabIndex: number\n}\n\n/** @docs-private */\nexport type HasTabIndexCtor = Constructor<HasTabIndex>\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0)\n : HasTabIndexCtor & T {\n return class extends base {\n private _tabIndex: number = defaultTabIndex\n\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : defaultTabIndex\n }\n\n constructor(...args: any[]) {\n super(...args)\n }\n }\n}\n","import { OutlineThemeTypes, ThemePrefixes, ThemeTypes } from '@theseam/ui-common/models'\n\nimport { Constructor } from './constructor'\nimport { HasElementRef } from './element-ref'\n\nexport interface CanTheme {\n /** Theme palette for the component. */\n theme: ThemeTypes | OutlineThemeTypes | undefined\n}\n\nexport type CanThemeCtor = Constructor<CanTheme>\n\n/** Mixin to augment a directive with a `theme` property. */\nexport function mixinTheme<T extends Constructor<HasElementRef>>(\n base: T, themePrefix: ThemePrefixes, defaultTheme?: ThemeTypes | OutlineThemeTypes): CanThemeCtor & T {\n return class extends base {\n private _theme: ThemeTypes | OutlineThemeTypes | undefined\n\n get theme(): ThemeTypes | OutlineThemeTypes | undefined { return this._theme }\n set theme(value: ThemeTypes | OutlineThemeTypes | undefined) {\n const themePalette = value || defaultTheme\n\n if (themePalette !== this._theme) {\n if (this._theme) {\n this._elementRef.nativeElement.classList.remove(`${themePrefix}-${this._theme}`)\n }\n if (themePalette) {\n this._elementRef.nativeElement.classList.add(`${themePrefix}-${themePalette}`)\n }\n\n this._theme = themePalette\n }\n }\n\n constructor(...args: any[]) {\n super(...args)\n\n // Set the default theme that can be specified from the mixin.\n this.theme = defaultTheme\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Constructor } from './constructor'\n\nexport interface CanBeActive {\n /** Whether the component is active. */\n active: boolean\n}\n\nexport type CanBeActiveCtor = Constructor<CanBeActive>\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinActive<T extends Constructor<{}>>(base: T): CanBeActiveCtor & T {\n return class extends base {\n private _active = false\n\n get active() { return this._active }\n set active(value: any) { this._active = coerceBooleanProperty(value) }\n\n constructor(...args: any[]) { super(...args) }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\n\n/**\n * Use with `@Input()` to coerse the input to a boolean.\n *\n * Example:\n * ```ts\n * @Component({ template: '' })\n * class {\n * @Input() @InputBoolean() b: boolean\n * }\n * ```\n */\nexport function InputBoolean() {\n const cachedValueKey = Symbol()\n // tslint:disable-next-line: only-arrow-functions\n return function(\n target: any,\n propertyKey: string,\n descriptor?: PropertyDescriptor\n ) {\n Object.defineProperty(target, propertyKey, {\n set: function(value: boolean) {\n this[cachedValueKey] = coerceBooleanProperty(value)\n },\n get: function() {\n return this[cachedValueKey]\n },\n })\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion'\n\n/**\n * Use with `@Input()` to coerse the input to a number.\n *\n * Example:\n * ```ts\n * @Component({ template: '' })\n * class {\n * @Input() @InputNumber() b: number\n * }\n * ```\n */\nexport function InputNumber<TFallback>(fallback?: TFallback) {\n const cachedValueKey = Symbol()\n // tslint:disable-next-line: only-arrow-functions\n return function(\n target: any,\n propertyKey: string,\n descriptor?: PropertyDescriptor\n ) {\n Object.defineProperty(target, propertyKey, {\n set: function(value: number) {\n this[cachedValueKey] = coerceNumberProperty(value, fallback)\n },\n get: function() {\n return this[cachedValueKey]\n },\n })\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAAA;;;;;;AAMG;AAcH;AACM,SAAU,aAAa,CAA4B,IAAO,EAAA;IAC9D,OAAO,cAAc,IAAI,CAAA;AAMvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AAAI,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AALpC,YAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;SAKqB;QAH9C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,EAAE;AACxC,QAAA,IAAI,QAAQ,CAAC,KAAU,EAAA,EAAI,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA,EAAE;KAG3E,CAAA;AACH;;AC9BA;;;;;;AAMG;AA4BH;AACM,SAAU,gBAAgB,CAA4B,IAAO,EAAA;IAEjE,OAAO,cAAc,IAAI,CAAA;AA2BvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AAAI,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;;AAzB5C,YAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAA;AAEtB;;;;AAIG;AACH,YAAA,IAAmB,CAAA,mBAAA,GAA8B,EAAE,CAAA;AAEnD;;;AAGG;YACH,IAAA,CAAA,WAAW,GAAG,IAAI,UAAU,CAAO,UAAU,IAAG;;;gBAG9C,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AACnC,iBAAA;AAAM,qBAAA;oBACL,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,wBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC1C,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAA;SAE4C;AAE9C;;;;AAIG;QACH,gBAAgB,GAAA;YACd,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,MAAM,KAAK,CAAC,4DAA4D;AACpE,oBAAA,6BAA6B,CAAC,CAAA;AACnC,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAE1B,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AACzD,aAAA;AACD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;SAChC;;AAGD,QAAA,iBAAiB,CAAC,UAA4B,EAAA;YAC5C,UAAU,CAAC,IAAI,EAAE,CAAA;YACjB,UAAU,CAAC,QAAQ,EAAE,CAAA;SACtB;KACF,CAAA;AACH;;AChFA;SACgB,SAAS,CACrB,IAAO,EAAE,UAAwB,EAAE,WAAuB,EAAA;IAC5D,OAAO,cAAc,IAAI,CAAA;AAmBvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AACxB,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;;AAGd,YAAA,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;SACxB;QArBD,IAAI,IAAI,KAA4B,OAAO,IAAI,CAAC,KAAK,CAAA,EAAE;QACvD,IAAI,IAAI,CAAC,KAA4B,EAAA;AACnC,YAAA,MAAM,YAAY,GAAG,KAAK,IAAI,WAAW,CAAA;AAEzC,YAAA,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAA;AAC/E,iBAAA;AACD,gBAAA,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,CAAC,CAAA;AAC9E,iBAAA;AAED,gBAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;AAC1B,aAAA;SACF;KAQF,CAAA;AACH;;ACxCA;;;;;;AAMG;AAeH;SACgB,aAAa,CAAoC,IAAO,EAAE,eAAe,GAAG,CAAC,EAAA;IAE3F,OAAO,cAAc,IAAI,CAAA;AASvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AACxB,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AATR,YAAA,IAAS,CAAA,SAAA,GAAW,eAAe,CAAA;SAU1C;AARD,QAAA,IAAI,QAAQ,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA,EAAE;QACrE,IAAI,QAAQ,CAAC,KAAa,EAAA;;AAExB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,eAAe,CAAA;SACzD;KAKF,CAAA;AACH;;ACzBA;SACgB,UAAU,CACtB,IAAO,EAAE,WAA0B,EAAE,YAA6C,EAAA;IACpF,OAAO,cAAc,IAAI,CAAA;AAmBvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AACxB,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;;AAGd,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;SAC1B;QArBD,IAAI,KAAK,KAAiD,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;QAC9E,IAAI,KAAK,CAAC,KAAiD,EAAA;AACzD,YAAA,MAAM,YAAY,GAAG,KAAK,IAAI,YAAY,CAAA;AAE1C,YAAA,IAAI,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE;gBAChC,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC,CAAA;AACjF,iBAAA;AACD,gBAAA,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,CAAC,CAAA;AAC/E,iBAAA;AAED,gBAAA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;AAC3B,aAAA;SACF;KAQF,CAAA;AACH;;AC/BA;AACM,SAAU,WAAW,CAA4B,IAAO,EAAA;IAC5D,OAAO,cAAc,IAAI,CAAA;AAMvB,QAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AAAI,YAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AALpC,YAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;SAKuB;QAH9C,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,EAAE;AACpC,QAAA,IAAI,MAAM,CAAC,KAAU,EAAA,EAAI,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA,EAAE;KAGvE,CAAA;AACH;;AClBA;;;;;;;;;;AAUG;SACa,YAAY,GAAA;AAC1B,IAAA,MAAM,cAAc,GAAG,MAAM,EAAE,CAAA;;AAE/B,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA+B,EAAA;AAE/B,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,GAAG,EAAE,UAAS,KAAc,EAAA;gBAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;aACpD;AACD,YAAA,GAAG,EAAE,YAAA;AACH,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAA;aAC5B;AACF,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AACH;;AC5BA;;;;;;;;;;AAUG;AACG,SAAU,WAAW,CAAY,QAAoB,EAAA;AACzD,IAAA,MAAM,cAAc,GAAG,MAAM,EAAE,CAAA;;AAE/B,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA+B,EAAA;AAE/B,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,GAAG,EAAE,UAAS,KAAa,EAAA;gBACzB,IAAI,CAAC,cAAc,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aAC7D;AACD,YAAA,GAAG,EAAE,YAAA;AACH,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAA;aAC5B;AACF,SAAA,CAAC,CAAA;AACJ,KAAC,CAAA;AACH;;AC9BA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-core.mjs","sources":["../../../projects/ui-common/core/common-behaviors/disabled.ts","../../../projects/ui-common/core/common-behaviors/initialized.ts","../../../projects/ui-common/core/common-behaviors/size.ts","../../../projects/ui-common/core/common-behaviors/tabindex.ts","../../../projects/ui-common/core/common-behaviors/theme.ts","../../../projects/ui-common/core/common-behaviors/active.ts","../../../projects/ui-common/core/input-decorators/input-boolean.decorator.ts","../../../projects/ui-common/core/input-decorators/input-number.decorator.ts","../../../projects/ui-common/core/theseam-ui-common-core.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Constructor } from './constructor'\n\n/** @docs-private */\nexport interface CanDisable {\n /** Whether the component is disabled. */\n disabled: boolean\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable>\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n private _disabled = false\n\n get disabled() { return this._disabled }\n set disabled(value: any) { this._disabled = coerceBooleanProperty(value) }\n\n constructor(...args: any[]) { super(...args) }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Observable, Subscriber } from 'rxjs'\nimport { Constructor } from './constructor'\n\n\n/**\n * Mixin that adds an initialized property to a directive which, when subscribed to, will emit a\n * value once markInitialized has been called, which should be done during the ngOnInit function.\n * If the subscription is made after it has already been marked as initialized, then it will trigger\n * an emit immediately.\n * @docs-private\n */\nexport interface HasInitialized {\n /** Stream that emits once during the directive/component's ngOnInit. */\n initialized: Observable<void>\n\n /**\n * Sets the state as initialized and must be called during ngOnInit to notify subscribers that\n * the directive has been initialized.\n * @docs-private\n */\n _markInitialized: () => void\n}\n\n/** @docs-private */\nexport type HasInitializedCtor = Constructor<HasInitialized>\n\n/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */\nexport function mixinInitialized<T extends Constructor<{}>>(base: T):\n HasInitializedCtor & T {\n return class extends base {\n /** Whether this directive has been marked as initialized. */\n _isInitialized = false\n\n /**\n * List of subscribers that subscribed before the directive was initialized. Should be notified\n * during _markInitialized. Set to null after pending subscribers are notified, and should\n * not expect to be populated after.\n */\n _pendingSubscribers: Subscriber<void>[] | null = []\n\n /**\n * Observable stream that emits when the directive initializes. If already initialized, the\n * subscriber is stored to be notified once _markInitialized is called.\n */\n initialized = new Observable<void>(subscriber => {\n // If initialized, immediately notify the subscriber. Otherwise store the subscriber to notify\n // when _markInitialized is called.\n if (this._isInitialized) {\n this._notifySubscriber(subscriber)\n } else {\n if (this._pendingSubscribers) {\n this._pendingSubscribers.push(subscriber)\n }\n }\n })\n\n constructor(...args: any[]) { super(...args) }\n\n /**\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\n * of ngOnInit.\n * @docs-private\n */\n _markInitialized(): void {\n if (this._isInitialized) {\n throw Error('This directive has already been marked as initialized and ' +\n 'should not be called twice.')\n }\n\n this._isInitialized = true\n\n if (this._pendingSubscribers) {\n this._pendingSubscribers.forEach(this._notifySubscriber)\n }\n this._pendingSubscribers = null\n }\n\n /** Emits and completes the subscriber stream (should only emit once). */\n _notifySubscriber(subscriber: Subscriber<void>): void {\n subscriber.next()\n subscriber.complete()\n }\n }\n}\n","import { SizePrefixes, SizeTypes } from '@theseam/ui-common/models'\n\nimport { Constructor } from './constructor'\nimport { HasElementRef } from './element-ref'\n\nexport interface CanSize {\n size: SizeTypes | undefined\n}\n\nexport type CanSizeCtor = Constructor<CanSize>\n\n/** Mixin to augment a directive with a `size` property. */\nexport function mixinSize<T extends Constructor<HasElementRef>>(\n base: T, sizePrefix: SizePrefixes, defaultSize?: SizeTypes): CanSizeCtor & T {\n return class extends base {\n private _size: SizeTypes | undefined\n\n get size(): SizeTypes | undefined { return this._size }\n set size(value: SizeTypes | undefined) {\n const themePalette = value || defaultSize\n\n if (themePalette !== this._size) {\n if (this._size) {\n this._elementRef.nativeElement.classList.remove(`${sizePrefix}-${this._size}`)\n }\n if (themePalette) {\n this._elementRef.nativeElement.classList.add(`${sizePrefix}-${themePalette}`)\n }\n\n this._size = themePalette\n }\n }\n\n constructor(...args: any[]) {\n super(...args)\n\n // Set the default size that can be specified from the mixin.\n this.size = defaultSize\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Constructor } from './constructor'\nimport { CanDisable } from './disabled'\n\n\n/** @docs-private */\nexport interface HasTabIndex {\n /** Tabindex of the component. */\n tabIndex: number\n}\n\n/** @docs-private */\nexport type HasTabIndexCtor = Constructor<HasTabIndex>\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0)\n : HasTabIndexCtor & T {\n return class extends base {\n private _tabIndex: number = defaultTabIndex\n\n get tabIndex(): number { return this.disabled ? -1 : this._tabIndex }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : defaultTabIndex\n }\n\n constructor(...args: any[]) {\n super(...args)\n }\n }\n}\n","import { OutlineThemeTypes, ThemePrefixes, ThemeTypes } from '@theseam/ui-common/models'\n\nimport { Constructor } from './constructor'\nimport { HasElementRef } from './element-ref'\n\nexport interface CanTheme {\n /** Theme palette for the component. */\n theme: ThemeTypes | OutlineThemeTypes | undefined\n}\n\nexport type CanThemeCtor = Constructor<CanTheme>\n\n/** Mixin to augment a directive with a `theme` property. */\nexport function mixinTheme<T extends Constructor<HasElementRef>>(\n base: T, themePrefix: ThemePrefixes, defaultTheme?: ThemeTypes | OutlineThemeTypes): CanThemeCtor & T {\n return class extends base {\n private _theme: ThemeTypes | OutlineThemeTypes | undefined\n\n get theme(): ThemeTypes | OutlineThemeTypes | undefined { return this._theme }\n set theme(value: ThemeTypes | OutlineThemeTypes | undefined) {\n const themePalette = value || defaultTheme\n\n if (themePalette !== this._theme) {\n if (this._theme) {\n this._elementRef.nativeElement.classList.remove(`${themePrefix}-${this._theme}`)\n }\n if (themePalette) {\n this._elementRef.nativeElement.classList.add(`${themePrefix}-${themePalette}`)\n }\n\n this._theme = themePalette\n }\n }\n\n constructor(...args: any[]) {\n super(...args)\n\n // Set the default theme that can be specified from the mixin.\n this.theme = defaultTheme\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Constructor } from './constructor'\n\nexport interface CanBeActive {\n /** Whether the component is active. */\n active: boolean\n}\n\nexport type CanBeActiveCtor = Constructor<CanBeActive>\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinActive<T extends Constructor<{}>>(base: T): CanBeActiveCtor & T {\n return class extends base {\n private _active = false\n\n get active() { return this._active }\n set active(value: any) { this._active = coerceBooleanProperty(value) }\n\n constructor(...args: any[]) { super(...args) }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\n\n/**\n * Use with `@Input()` to coerse the input to a boolean.\n *\n * Example:\n * ```ts\n * @Component({ template: '' })\n * class {\n * @Input() @InputBoolean() b: boolean\n * }\n * ```\n */\nexport function InputBoolean() {\n const cachedValueKey = Symbol()\n // tslint:disable-next-line: only-arrow-functions\n return function(\n target: any,\n propertyKey: string,\n descriptor?: PropertyDescriptor\n ) {\n Object.defineProperty(target, propertyKey, {\n set: function(value: boolean) {\n this[cachedValueKey] = coerceBooleanProperty(value)\n },\n get: function() {\n return this[cachedValueKey]\n },\n })\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion'\n\n/**\n * Use with `@Input()` to coerse the input to a number.\n *\n * Example:\n * ```ts\n * @Component({ template: '' })\n * class {\n * @Input() @InputNumber() b: number\n * }\n * ```\n */\nexport function InputNumber<TFallback>(fallback?: TFallback) {\n const cachedValueKey = Symbol()\n // tslint:disable-next-line: only-arrow-functions\n return function(\n target: any,\n propertyKey: string,\n descriptor?: PropertyDescriptor\n ) {\n Object.defineProperty(target, propertyKey, {\n set: function(value: number) {\n this[cachedValueKey] = coerceNumberProperty(value, fallback)\n },\n get: function() {\n return this[cachedValueKey]\n },\n })\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,9 @@ class CSVDataExporter {
|
|
|
34
34
|
}));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
CSVDataExporter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
38
|
-
CSVDataExporter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
37
|
+
CSVDataExporter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: CSVDataExporter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
CSVDataExporter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: CSVDataExporter });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: CSVDataExporter, decorators: [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}] });
|
|
42
42
|
|
|
@@ -59,21 +59,21 @@ class XLSXDataExporter {
|
|
|
59
59
|
}));
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
XLSXDataExporter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
63
|
-
XLSXDataExporter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
62
|
+
XLSXDataExporter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: XLSXDataExporter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
+
XLSXDataExporter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: XLSXDataExporter });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: XLSXDataExporter, decorators: [{
|
|
65
65
|
type: Injectable
|
|
66
66
|
}] });
|
|
67
67
|
|
|
68
68
|
class TheSeamDataExporterModule {
|
|
69
69
|
}
|
|
70
|
-
TheSeamDataExporterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
71
|
-
TheSeamDataExporterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
72
|
-
TheSeamDataExporterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
70
|
+
TheSeamDataExporterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataExporterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
71
|
+
TheSeamDataExporterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataExporterModule });
|
|
72
|
+
TheSeamDataExporterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataExporterModule, providers: [
|
|
73
73
|
{ provide: THESEAM_DATA_EXPORTER, useClass: CSVDataExporter, multi: true },
|
|
74
74
|
{ provide: THESEAM_DATA_EXPORTER, useClass: XLSXDataExporter, multi: true }
|
|
75
75
|
] });
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataExporterModule, decorators: [{
|
|
77
77
|
type: NgModule,
|
|
78
78
|
args: [{
|
|
79
79
|
declarations: [],
|
|
@@ -96,6 +96,12 @@ function textDataFilter(data, text, options = DefaultTextFilterOptions) {
|
|
|
96
96
|
}
|
|
97
97
|
let _uid$2 = 0;
|
|
98
98
|
class DataFilterTextComponent {
|
|
99
|
+
set value(value) {
|
|
100
|
+
const _value = !isNullOrUndefined(value) ? `${value}` : '';
|
|
101
|
+
if (this._control.value !== _value) {
|
|
102
|
+
this._control.setValue(_value);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
99
105
|
constructor(_filterContainer, _filterOptions) {
|
|
100
106
|
this._filterContainer = _filterContainer;
|
|
101
107
|
this._filterOptions = _filterOptions;
|
|
@@ -108,12 +114,6 @@ class DataFilterTextComponent {
|
|
|
108
114
|
this.caseSensitive = this._optDefault('caseSensitive');
|
|
109
115
|
this.filterStateChanges = this._control.valueChanges.pipe(switchMap(() => of(this.filterState())), shareReplay({ bufferSize: 1, refCount: true }));
|
|
110
116
|
}
|
|
111
|
-
set value(value) {
|
|
112
|
-
const _value = !isNullOrUndefined(value) ? `${value}` : '';
|
|
113
|
-
if (this._control.value !== _value) {
|
|
114
|
-
this._control.setValue(_value);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
117
|
ngOnInit() { this._filterContainer.addFilter(this); }
|
|
118
118
|
ngOnDestroy() { this._filterContainer.removeFilter(this); }
|
|
119
119
|
_optDefault(prop) {
|
|
@@ -146,15 +146,15 @@ class DataFilterTextComponent {
|
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
DataFilterTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
150
|
-
DataFilterTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
149
|
+
DataFilterTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterTextComponent, deps: [{ token: THESEAM_DATA_FILTER_CONTAINER }, { token: THESEAM_DATA_FILTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
+
DataFilterTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: DataFilterTextComponent, selector: "seam-data-filter-text", inputs: { properties: "properties", omitProperties: "omitProperties", exact: "exact", caseSensitive: "caseSensitive", placeholder: "placeholder", iconTpl: "iconTpl", value: "value" }, providers: [DATA_FILTER_TEXT], ngImport: i0, template: "<div class=\"position-relative\"\n [class.data-filter-text-has-icon]=\"iconTpl\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Text filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:block}.data-filter-text-has-icon>input{padding-left:30px}.data-filter-text-has-icon ::ng-deep fa-icon{position:absolute;top:3px;left:10px;bottom:0}.data-filter-text-has-icon ::ng-deep fa-icon .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }] });
|
|
151
151
|
__decorate([
|
|
152
152
|
InputBoolean()
|
|
153
153
|
], DataFilterTextComponent.prototype, "exact", void 0);
|
|
154
154
|
__decorate([
|
|
155
155
|
InputBoolean()
|
|
156
156
|
], DataFilterTextComponent.prototype, "caseSensitive", void 0);
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterTextComponent, decorators: [{
|
|
158
158
|
type: Component,
|
|
159
159
|
args: [{ selector: 'seam-data-filter-text', providers: [DATA_FILTER_TEXT], template: "<div class=\"position-relative\"\n [class.data-filter-text-has-icon]=\"iconTpl\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Text filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:block}.data-filter-text-has-icon>input{padding-left:30px}.data-filter-text-has-icon ::ng-deep fa-icon{position:absolute;top:3px;left:10px;bottom:0}.data-filter-text-has-icon ::ng-deep fa-icon .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
160
160
|
}], ctorParameters: function () {
|
|
@@ -200,6 +200,12 @@ function searchDataFilter(data, values, options = DefaultSearchFilterOptions) {
|
|
|
200
200
|
}
|
|
201
201
|
let _uid$1 = 0;
|
|
202
202
|
class DataFilterSearchComponent {
|
|
203
|
+
set value(value) {
|
|
204
|
+
const _value = !isNullOrUndefined(value) ? `${value}` : '';
|
|
205
|
+
if (this._control.value !== _value) {
|
|
206
|
+
this._control.setValue(_value);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
203
209
|
constructor(_filterContainer, _filterOptions) {
|
|
204
210
|
this._filterContainer = _filterContainer;
|
|
205
211
|
this._filterOptions = _filterOptions;
|
|
@@ -214,12 +220,6 @@ class DataFilterSearchComponent {
|
|
|
214
220
|
this.icon = faSearch;
|
|
215
221
|
this.filterStateChanges = this._control.valueChanges.pipe(switchMap(() => of(this.filterState())), shareReplay({ bufferSize: 1, refCount: true }));
|
|
216
222
|
}
|
|
217
|
-
set value(value) {
|
|
218
|
-
const _value = !isNullOrUndefined(value) ? `${value}` : '';
|
|
219
|
-
if (this._control.value !== _value) {
|
|
220
|
-
this._control.setValue(_value);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
223
|
ngOnInit() { this._filterContainer.addFilter(this); }
|
|
224
224
|
ngOnDestroy() { this._filterContainer.removeFilter(this); }
|
|
225
225
|
_optDefault(prop) {
|
|
@@ -252,15 +252,15 @@ class DataFilterSearchComponent {
|
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
DataFilterSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
256
|
-
DataFilterSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
255
|
+
DataFilterSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterSearchComponent, deps: [{ token: THESEAM_DATA_FILTER_CONTAINER }, { token: THESEAM_DATA_FILTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
256
|
+
DataFilterSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: DataFilterSearchComponent, selector: "seam-data-filter-search", inputs: { properties: "properties", omitProperties: "omitProperties", exact: "exact", caseSensitive: "caseSensitive", placeholder: "placeholder", icon: "icon", iconTpl: "iconTpl", value: "value" }, providers: [DATA_FILTER_SEARCH], ngImport: i0, template: "<div class=\"position-relative\"\n [class.data-filter-search-has-icon]=\"iconTpl || icon\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Search filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl; else searchIconTpl\">\n <div class=\"data-filter-search--icon-wrapper\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </div>\n </ng-container>\n <ng-template #searchIconTpl>\n <ng-container *ngIf=\"icon\">\n <div class=\"data-filter-search--icon-wrapper\">\n <seam-icon [icon]=\"icon\" class=\"text-muted\"></seam-icon>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [":host{display:flex;flex:0 1 300px}.data-filter-search-has-icon{width:100%}.data-filter-search-has-icon>input{padding-left:30px}.data-filter-search-has-icon .data-filter-search--icon-wrapper{position:absolute;top:3px;left:10px;bottom:0}.data-filter-search-has-icon .data-filter-search--icon-wrapper ::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
257
257
|
__decorate([
|
|
258
258
|
InputBoolean()
|
|
259
259
|
], DataFilterSearchComponent.prototype, "exact", void 0);
|
|
260
260
|
__decorate([
|
|
261
261
|
InputBoolean()
|
|
262
262
|
], DataFilterSearchComponent.prototype, "caseSensitive", void 0);
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterSearchComponent, decorators: [{
|
|
264
264
|
type: Component,
|
|
265
265
|
args: [{ selector: 'seam-data-filter-search', providers: [DATA_FILTER_SEARCH], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"position-relative\"\n [class.data-filter-search-has-icon]=\"iconTpl || icon\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Search filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl; else searchIconTpl\">\n <div class=\"data-filter-search--icon-wrapper\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </div>\n </ng-container>\n <ng-template #searchIconTpl>\n <ng-container *ngIf=\"icon\">\n <div class=\"data-filter-search--icon-wrapper\">\n <seam-icon [icon]=\"icon\" class=\"text-muted\"></seam-icon>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [":host{display:flex;flex:0 1 300px}.data-filter-search-has-icon{width:100%}.data-filter-search-has-icon>input{padding-left:30px}.data-filter-search-has-icon .data-filter-search--icon-wrapper{position:absolute;top:3px;left:10px;bottom:0}.data-filter-search-has-icon .data-filter-search--icon-wrapper ::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
266
266
|
}], ctorParameters: function () {
|
|
@@ -349,6 +349,13 @@ function toggleButtonsFilter(data, values, options = DefaultToggleButtonsFilterO
|
|
|
349
349
|
}
|
|
350
350
|
let _uid = 0;
|
|
351
351
|
class DataFilterToggleButtonsComponent {
|
|
352
|
+
set value(value) {
|
|
353
|
+
const _value = !isNullOrUndefined(value) ? coerceArray(value) : undefined;
|
|
354
|
+
// console.log('_value', _value, this._control.value)
|
|
355
|
+
if (this._control.value !== _value) {
|
|
356
|
+
this._control.setValue(_value);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
352
359
|
constructor(_filterContainer, _filterOptions) {
|
|
353
360
|
this._filterContainer = _filterContainer;
|
|
354
361
|
this._filterOptions = _filterOptions;
|
|
@@ -364,13 +371,6 @@ class DataFilterToggleButtonsComponent {
|
|
|
364
371
|
this.caseSensitive = this._optDefault('caseSensitive');
|
|
365
372
|
this.filterStateChanges = this._control.valueChanges.pipe(tap(v => console.log('v', v)), switchMap(() => of(this.filterState())), tap(v => console.log('v2', v)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
366
373
|
}
|
|
367
|
-
set value(value) {
|
|
368
|
-
const _value = !isNullOrUndefined(value) ? coerceArray(value) : undefined;
|
|
369
|
-
// console.log('_value', _value, this._control.value)
|
|
370
|
-
if (this._control.value !== _value) {
|
|
371
|
-
this._control.setValue(_value);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
374
|
ngOnInit() {
|
|
375
375
|
this._filterContainer.addFilter(this);
|
|
376
376
|
if (this._filterOptions && hasProperty(this._filterOptions, 'initialValue')) {
|
|
@@ -410,9 +410,9 @@ class DataFilterToggleButtonsComponent {
|
|
|
410
410
|
};
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
|
-
DataFilterToggleButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
414
|
-
DataFilterToggleButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
413
|
+
DataFilterToggleButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterToggleButtonsComponent, deps: [{ token: THESEAM_DATA_FILTER_CONTAINER }, { token: THESEAM_DATA_FILTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
414
|
+
DataFilterToggleButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: DataFilterToggleButtonsComponent, selector: "seam-data-filter-toggle-buttons", inputs: { properties: "properties", omitProperties: "omitProperties", multiple: "multiple", selectionToggleable: "selectionToggleable", buttons: "buttons", exact: "exact", caseSensitive: "caseSensitive", value: "value" }, providers: [DATA_FILTER_TOGGLE_BUTTON], ngImport: i0, template: "<div class=\"btn-group\" role=\"group\" aria-label=\"Progress Filter\"\n *ngIf=\"options as opts\"\n [formControl]=\"_control\"\n seamToggleGroup\n [multiple]=\"opts.multiple\"\n [selectionToggleable]=\"opts.selectionToggleable\">\n <ng-container *ngFor=\"let btn of buttons\">\n <button type=\"button\" class=\"btn btn-sm px-4\"\n [seamToggleGroupOption]=\"btn.value\"\n #opt=\"seamToggleGroupOption\"\n [class.btn-lightgray]=\"!opt.selected\"\n [class.btn-primary]=\"opt.selected\"\n (click)=\"opt.selected=!opt.selected\">\n {{ btn.name || btn.value }}\n </button>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.ToggleGroupDirective, selector: "[seamToggleGroup]", inputs: ["value", "disabled", "multiple", "selectionToggleable"], outputs: ["change"], exportAs: ["seamToggleGroup"] }, { kind: "directive", type: i3$1.ToggleGroupOptionDirective, selector: "[seamToggleGroupOption]", inputs: ["seamToggleGroupOption", "selected"], outputs: ["selectionChange"], exportAs: ["seamToggleGroupOption"] }] });
|
|
415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DataFilterToggleButtonsComponent, decorators: [{
|
|
416
416
|
type: Component,
|
|
417
417
|
args: [{ selector: 'seam-data-filter-toggle-buttons', providers: [DATA_FILTER_TOGGLE_BUTTON], template: "<div class=\"btn-group\" role=\"group\" aria-label=\"Progress Filter\"\n *ngIf=\"options as opts\"\n [formControl]=\"_control\"\n seamToggleGroup\n [multiple]=\"opts.multiple\"\n [selectionToggleable]=\"opts.selectionToggleable\">\n <ng-container *ngFor=\"let btn of buttons\">\n <button type=\"button\" class=\"btn btn-sm px-4\"\n [seamToggleGroupOption]=\"btn.value\"\n #opt=\"seamToggleGroupOption\"\n [class.btn-lightgray]=\"!opt.selected\"\n [class.btn-primary]=\"opt.selected\"\n (click)=\"opt.selected=!opt.selected\">\n {{ btn.name || btn.value }}\n </button>\n </ng-container>\n</div>\n" }]
|
|
418
418
|
}], ctorParameters: function () {
|
|
@@ -455,8 +455,8 @@ const filterDefProviders = [
|
|
|
455
455
|
];
|
|
456
456
|
class TheSeamDataFiltersModule {
|
|
457
457
|
}
|
|
458
|
-
TheSeamDataFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
459
|
-
TheSeamDataFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
458
|
+
TheSeamDataFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
459
|
+
TheSeamDataFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataFiltersModule, declarations: [DataFilterSearchComponent,
|
|
460
460
|
DataFilterTextComponent,
|
|
461
461
|
DataFilterToggleButtonsComponent], imports: [CommonModule,
|
|
462
462
|
ReactiveFormsModule,
|
|
@@ -466,7 +466,7 @@ TheSeamDataFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
|
|
|
466
466
|
TheSeamIconModule], exports: [DataFilterSearchComponent,
|
|
467
467
|
DataFilterTextComponent,
|
|
468
468
|
DataFilterToggleButtonsComponent] });
|
|
469
|
-
TheSeamDataFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
469
|
+
TheSeamDataFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataFiltersModule, providers: [
|
|
470
470
|
...filterDefProviders
|
|
471
471
|
], imports: [CommonModule,
|
|
472
472
|
ReactiveFormsModule,
|
|
@@ -474,7 +474,7 @@ TheSeamDataFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
|
|
|
474
474
|
FontAwesomeModule,
|
|
475
475
|
TheSeamToggleGroupModule,
|
|
476
476
|
TheSeamIconModule] });
|
|
477
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamDataFiltersModule, decorators: [{
|
|
478
478
|
type: NgModule,
|
|
479
479
|
args: [{
|
|
480
480
|
declarations: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-data-filters.mjs","sources":["../../../projects/ui-common/data-filters/data-filter.ts","../../../projects/ui-common/data-filters/data-filter-def.ts","../../../projects/ui-common/data-filters/data-filter-container.ts","../../../projects/ui-common/data-filters/filters/data-filter-text/data-filter-text.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-text/data-filter-text.component.html","../../../projects/ui-common/data-filters/filters/data-filter-search/data-filter-search.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-search/data-filter-search.component.html","../../../projects/ui-common/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.html","../../../projects/ui-common/data-filters/data-filters.module.ts","../../../projects/ui-common/data-filters/theseam-ui-common-data-filters.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { combineLatest, Observable, of } from 'rxjs'\nimport { map, startWith, switchMap } from 'rxjs/operators'\n\nexport type DataFilterFunction = <T>(data: T[]) => Observable<T[]>\n\n/**\n * State of the filter that would allow an external operation to apply the\n * filtering.\n *\n * This is primarily for server-side filtering.\n */\nexport interface DataFilterState {\n /**\n * DataFilter's name.\n */\n name: string\n\n /**\n * Anything necessary for an external implementation to apply this filter.\n */\n state: { [key: string]: any }\n}\n\n// TODO: Consider adding something, such as a priority or order, to allow the\n// order the filter functions are called in to be declared/influenced\n// externally. This would allow the filters that will most likely filter out\n// many records quickly to be run before the heavy processing filters.\nexport interface DataFilter {\n /**\n * Name used when referencing filter by string.\n */\n name: string\n\n /**\n * Unique value to prevent a filter being used more than once if it ends up\n * being registered more than once.\n */\n uid: string\n\n /**\n *\n */\n filterStateChanges: Observable<DataFilterState>\n\n /**\n * Filters the data based on the conditions of the filter.\n */\n filter<T>(data: T[]): Observable<T[]>\n\n /**\n *\n */\n filterState(): DataFilterState\n}\n\nexport const THESEAM_DATA_FILTER = new InjectionToken<DataFilter>('TheSeamDataFilter')\nexport const THESEAM_DATA_FILTER_OPTIONS = new InjectionToken<{}>('TheSeamDataFilterOptions')\n\nexport function filterOperator<T>(filterFn: DataFilterFunction) {\n return (source$: Observable<T[]>) =>\n source$.pipe(switchMap(filterFn))\n}\n\nexport function composeDataFilters(filters: DataFilter[]) {\n const filterFunctions = filters.map(f => filterOperator(f.filter.bind(f)))\n return (source$: Observable<any>) => {\n let src$ = source$\n for (const f of filterFunctions) {\n src$ = src$.pipe(f)\n }\n return src$\n }\n}\n\nexport function composeDataFilterStates(filters: DataFilter[]): Observable<DataFilterState[]> {\n if (filters.length === 0) {\n return of([])\n }\n\n return combineLatest(filters.map(f => f.filterStateChanges.pipe(\n startWith(undefined),\n map(() => f.filterState())\n )))\n}\n\n\n/** @deprecated Use `DataFilter` instead. */\nexport type IDataFilter = DataFilter\n\n/** @deprecated Use `IDataFilterFunction` instead. */\nexport type IDataFilterFunction = DataFilterFunction\n","import { InjectionToken } from '@angular/core'\n\nimport { IDataFilter } from './data-filter'\n\nexport interface IDataFilterDef<T = any> {\n name: string\n\n /**\n * Component that controls the filter.\n */\n component: IDataFilter\n\n}\n\nexport const THESEAM_DATA_FILTER_DEF = new InjectionToken<IDataFilterDef[]>('TheSeamDataFilter')\n","import { InjectionToken } from '@angular/core'\nimport { IDataFilter } from './data-filter'\n\nexport interface DataFilterContainer {\n filters(): IDataFilter[]\n\n addFilter(dataFilter: IDataFilter): void\n\n removeFilter(dataFilter: IDataFilter): void\n}\n\nexport const THESEAM_DATA_FILTER_CONTAINER = new InjectionToken<DataFilterContainer>(\n 'DataFilterContainer'\n)\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional, TemplateRef } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { ITextFilterOptions } from './text-filter-options'\n\nexport const DATA_FILTER_TEXT: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterTextComponent),\n multi: true,\n}\n\nexport const DefaultTextFilterOptions: ITextFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n exact: false,\n caseSensitive: false,\n}\n\nexport function textDataFilter(data: any[], text: string, options = DefaultTextFilterOptions) {\n if (!data || !text) {\n return data\n }\n\n if (data.length <= 0) {\n return data\n }\n\n let props = options ? options.properties : undefined\n if (!props) {\n props = []\n let keys = Object.keys(data[0])\n if (options && options.omitProperties) {\n keys = keys.filter(key => !(options.omitProperties || []).find(p => p === key))\n }\n for (const key of keys) {\n if (data[0].hasOwnProperty(key)) {\n props.push(key)\n }\n }\n }\n\n const filtered: any[] = []\n\n for (const item of data) {\n for (const p of props) {\n let value1 = `${item[p]}`\n let value2 = text\n\n if (!options.caseSensitive) {\n value1 = value1.toLowerCase()\n value2 = value2.toLowerCase()\n }\n\n if (item[p] && value1.indexOf(value2) !== (options.exact ? 0 : -1)) {\n filtered.push(item)\n break\n }\n }\n }\n\n return filtered\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-text',\n templateUrl: './data-filter-text.component.html',\n styleUrls: ['./data-filter-text.component.scss'],\n providers: [ DATA_FILTER_TEXT ]\n})\nexport class DataFilterTextComponent implements OnInit, OnDestroy, IDataFilter {\n static ngAcceptInputType_exact: BooleanInput\n static ngAcceptInputType_caseSensitive: BooleanInput\n\n public readonly name = 'text'\n public readonly uid = `text__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties: string[] | undefined | null = this._optDefault('properties')\n @Input() omitProperties: string[] | undefined | null = this._optDefault('omitProperties')\n @Input() @InputBoolean() exact: boolean = this._optDefault('exact')\n @Input() @InputBoolean() caseSensitive: boolean = this._optDefault('caseSensitive')\n\n @Input() placeholder: string | undefined | null\n @Input() iconTpl: TemplateRef<HTMLElement> | undefined | null\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? `${value}` : ''\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: ITextFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n switchMap(() => of(this.filterState())),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() { this._filterContainer.addFilter(this) }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof ITextFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultTextFilterOptions[prop]\n }\n\n get options(): ITextFilterOptions {\n return {\n properties: this.properties ?? undefined,\n omitProperties: this.omitProperties ?? undefined,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => textDataFilter(data, v, this.options)),\n startWith(textDataFilter(data, this._control.value, this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"position-relative\"\n [class.data-filter-text-has-icon]=\"iconTpl\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Text filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </ng-container>\n</div>\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional, TemplateRef } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport { faSearch } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { SeamIcon } from '@theseam/ui-common/icon'\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { textDataFilter } from '../data-filter-text/data-filter-text.component'\n\nimport { ISearchFilterOptions } from './search-filter-options'\n\n\nexport const DATA_FILTER_SEARCH: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterSearchComponent),\n multi: true,\n}\n\nexport const DefaultSearchFilterOptions: ISearchFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n exact: false,\n caseSensitive: false\n}\n\nexport function searchDataFilter(data: any[], values: string, options = DefaultSearchFilterOptions) {\n return textDataFilter(data, values, options)\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-search',\n templateUrl: './data-filter-search.component.html',\n styleUrls: ['./data-filter-search.component.scss'],\n providers: [ DATA_FILTER_SEARCH ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataFilterSearchComponent implements OnInit, OnDestroy, IDataFilter {\n static ngAcceptInputType_exact: BooleanInput\n static ngAcceptInputType_caseSensitive: BooleanInput\n\n public readonly name = 'search'\n public readonly uid = `search__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties: string[] | undefined | null = this._optDefault('properties')\n @Input() omitProperties: string[] | undefined | null = this._optDefault('omitProperties')\n @Input() @InputBoolean() exact: boolean = this._optDefault('exact')\n @Input() @InputBoolean() caseSensitive: boolean = this._optDefault('caseSensitive')\n\n @Input() placeholder: string | undefined | null = 'Search...'\n @Input() icon: SeamIcon | undefined | null = faSearch\n @Input() iconTpl?: TemplateRef<HTMLElement>\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? `${value}` : ''\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: ISearchFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n switchMap(() => of(this.filterState())),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() { this._filterContainer.addFilter(this) }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof ISearchFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultSearchFilterOptions[prop]\n }\n\n get options(): ISearchFilterOptions {\n return {\n properties: this.properties ?? undefined,\n omitProperties: this.omitProperties ?? undefined,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => searchDataFilter(data, v, this.options)),\n startWith(searchDataFilter(data, this._control.value, this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"position-relative\"\n [class.data-filter-search-has-icon]=\"iconTpl || icon\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Search filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl; else searchIconTpl\">\n <div class=\"data-filter-search--icon-wrapper\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </div>\n </ng-container>\n <ng-template #searchIconTpl>\n <ng-container *ngIf=\"icon\">\n <div class=\"data-filter-search--icon-wrapper\">\n <seam-icon [icon]=\"icon\" class=\"text-muted\"></seam-icon>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { coerceArray } from '@angular/cdk/coercion'\nimport { Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { hasProperty, isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { textDataFilter } from '../data-filter-text/data-filter-text.component'\nimport { ITextFilterOptions } from '../data-filter-text/text-filter-options'\n\n\nexport const DATA_FILTER_TOGGLE_BUTTON: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterToggleButtonsComponent),\n multi: true,\n}\n\nexport interface IToggleButton {\n name: string\n value: string\n comparator?: (value: any, row: any, index: number) => -1 | 0 | 1\n}\n\nexport interface IToggleButtonsFilterOptions extends ITextFilterOptions {\n selectionToggleable: boolean\n multiple: boolean\n buttons: IToggleButton[]\n initialValue?: any\n}\n\nexport const DefaultToggleButtonsFilterOptions: IToggleButtonsFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n multiple: false,\n selectionToggleable: false,\n buttons: [],\n exact: false,\n caseSensitive: false\n}\n\nexport function toggleButtonsFilter(data: any[], values: string[], options = DefaultToggleButtonsFilterOptions) {\n if (!data || !values) {\n return data\n }\n\n const customComparatorBtns: IToggleButton[] = []\n for (const btn of options.buttons) {\n if (btn.comparator) {\n customComparatorBtns.push(btn)\n }\n }\n\n let _data = data\n for (const val of values) {\n if (val === '') { continue }\n\n let cmp\n for (const btn of customComparatorBtns) {\n if (btn.value === val) {\n cmp = btn.comparator\n }\n }\n if (cmp) {\n const filtered: any[] = []\n for (let i = 0; i < _data.length; i++) {\n if (cmp(val, _data[i], i) !== -1) {\n filtered.push(_data[i])\n }\n }\n _data = filtered\n } else {\n _data = textDataFilter(_data, val, {\n properties: options.properties,\n omitProperties: options.omitProperties,\n exact: options.exact,\n caseSensitive: options.caseSensitive\n })\n }\n }\n return _data\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-toggle-buttons',\n templateUrl: './data-filter-toggle-buttons.component.html',\n styleUrls: ['./data-filter-toggle-buttons.component.scss'],\n providers: [ DATA_FILTER_TOGGLE_BUTTON ]\n})\nexport class DataFilterToggleButtonsComponent implements OnInit, OnDestroy, IDataFilter {\n\n public readonly name = 'toggle-buttons'\n public readonly uid = `toggle-buttons__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties = this._optDefault('properties')\n @Input() omitProperties = this._optDefault('omitProperties')\n @Input() multiple = this._optDefault('multiple')\n @Input() selectionToggleable = this._optDefault('selectionToggleable')\n @Input() buttons = this._optDefault('buttons')\n @Input() exact = this._optDefault('exact')\n @Input() caseSensitive = this._optDefault('caseSensitive')\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? coerceArray(value) : undefined\n // console.log('_value', _value, this._control.value)\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: IToggleButtonsFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n tap(v => console.log('v', v)),\n switchMap(() => of(this.filterState())),\n tap(v => console.log('v2', v)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() {\n this._filterContainer.addFilter(this)\n if (this._filterOptions && hasProperty(this._filterOptions, 'initialValue')) {\n this.value = this._optDefault('initialValue')\n }\n }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof IToggleButtonsFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultToggleButtonsFilterOptions[prop]\n }\n\n get options(): IToggleButtonsFilterOptions {\n return {\n properties: this.properties,\n omitProperties: this.omitProperties,\n multiple: this.multiple,\n selectionToggleable: this.selectionToggleable,\n buttons: this.buttons,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => toggleButtonsFilter(data, coerceArray(v), this.options)),\n startWith(toggleButtonsFilter(data, coerceArray(this._control.value), this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"btn-group\" role=\"group\" aria-label=\"Progress Filter\"\n *ngIf=\"options as opts\"\n [formControl]=\"_control\"\n seamToggleGroup\n [multiple]=\"opts.multiple\"\n [selectionToggleable]=\"opts.selectionToggleable\">\n <ng-container *ngFor=\"let btn of buttons\">\n <button type=\"button\" class=\"btn btn-sm px-4\"\n [seamToggleGroupOption]=\"btn.value\"\n #opt=\"seamToggleGroupOption\"\n [class.btn-lightgray]=\"!opt.selected\"\n [class.btn-primary]=\"opt.selected\"\n (click)=\"opt.selected=!opt.selected\">\n {{ btn.name || btn.value }}\n </button>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamToggleGroupModule } from '@theseam/ui-common/toggle-group'\n\nimport { THESEAM_DATA_FILTER_DEF } from './data-filter-def'\nimport { DataFilterSearchComponent } from './filters/data-filter-search/data-filter-search.component'\nimport { DataFilterTextComponent } from './filters/data-filter-text/data-filter-text.component'\nimport { DataFilterToggleButtonsComponent } from './filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component'\n\nconst filterComponents = [\n DataFilterSearchComponent,\n DataFilterTextComponent,\n DataFilterToggleButtonsComponent\n]\n\nconst filterDefProviders = [\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'search', component: DataFilterSearchComponent }, multi: true },\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'text', component: DataFilterTextComponent }, multi: true },\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'toggle-buttons', component: DataFilterToggleButtonsComponent }, multi: true },\n]\n\n@NgModule({\n declarations: [\n ...filterComponents\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TheSeamFormFieldModule,\n FontAwesomeModule,\n TheSeamToggleGroupModule,\n TheSeamIconModule\n ],\n providers: [\n ...filterDefProviders\n ],\n exports: [\n ...filterComponents\n ]\n})\nexport class TheSeamDataFiltersModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_uid","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-data-filters.mjs","sources":["../../../projects/ui-common/data-filters/data-filter.ts","../../../projects/ui-common/data-filters/data-filter-def.ts","../../../projects/ui-common/data-filters/data-filter-container.ts","../../../projects/ui-common/data-filters/filters/data-filter-text/data-filter-text.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-text/data-filter-text.component.html","../../../projects/ui-common/data-filters/filters/data-filter-search/data-filter-search.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-search/data-filter-search.component.html","../../../projects/ui-common/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.ts","../../../projects/ui-common/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.html","../../../projects/ui-common/data-filters/data-filters.module.ts","../../../projects/ui-common/data-filters/theseam-ui-common-data-filters.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { combineLatest, Observable, of } from 'rxjs'\nimport { map, startWith, switchMap } from 'rxjs/operators'\n\nexport type DataFilterFunction = <T>(data: T[]) => Observable<T[]>\n\n/**\n * State of the filter that would allow an external operation to apply the\n * filtering.\n *\n * This is primarily for server-side filtering.\n */\nexport interface DataFilterState {\n /**\n * DataFilter's name.\n */\n name: string\n\n /**\n * Anything necessary for an external implementation to apply this filter.\n */\n state: { [key: string]: any }\n}\n\n// TODO: Consider adding something, such as a priority or order, to allow the\n// order the filter functions are called in to be declared/influenced\n// externally. This would allow the filters that will most likely filter out\n// many records quickly to be run before the heavy processing filters.\nexport interface DataFilter {\n /**\n * Name used when referencing filter by string.\n */\n name: string\n\n /**\n * Unique value to prevent a filter being used more than once if it ends up\n * being registered more than once.\n */\n uid: string\n\n /**\n *\n */\n filterStateChanges: Observable<DataFilterState>\n\n /**\n * Filters the data based on the conditions of the filter.\n */\n filter<T>(data: T[]): Observable<T[]>\n\n /**\n *\n */\n filterState(): DataFilterState\n}\n\nexport const THESEAM_DATA_FILTER = new InjectionToken<DataFilter>('TheSeamDataFilter')\nexport const THESEAM_DATA_FILTER_OPTIONS = new InjectionToken<{}>('TheSeamDataFilterOptions')\n\nexport function filterOperator<T>(filterFn: DataFilterFunction) {\n return (source$: Observable<T[]>) =>\n source$.pipe(switchMap(filterFn))\n}\n\nexport function composeDataFilters(filters: DataFilter[]) {\n const filterFunctions = filters.map(f => filterOperator(f.filter.bind(f)))\n return (source$: Observable<any>) => {\n let src$ = source$\n for (const f of filterFunctions) {\n src$ = src$.pipe(f)\n }\n return src$\n }\n}\n\nexport function composeDataFilterStates(filters: DataFilter[]): Observable<DataFilterState[]> {\n if (filters.length === 0) {\n return of([])\n }\n\n return combineLatest(filters.map(f => f.filterStateChanges.pipe(\n startWith(undefined),\n map(() => f.filterState())\n )))\n}\n\n\n/** @deprecated Use `DataFilter` instead. */\nexport type IDataFilter = DataFilter\n\n/** @deprecated Use `IDataFilterFunction` instead. */\nexport type IDataFilterFunction = DataFilterFunction\n","import { InjectionToken } from '@angular/core'\n\nimport { IDataFilter } from './data-filter'\n\nexport interface IDataFilterDef<T = any> {\n name: string\n\n /**\n * Component that controls the filter.\n */\n component: IDataFilter\n\n}\n\nexport const THESEAM_DATA_FILTER_DEF = new InjectionToken<IDataFilterDef[]>('TheSeamDataFilter')\n","import { InjectionToken } from '@angular/core'\nimport { IDataFilter } from './data-filter'\n\nexport interface DataFilterContainer {\n filters(): IDataFilter[]\n\n addFilter(dataFilter: IDataFilter): void\n\n removeFilter(dataFilter: IDataFilter): void\n}\n\nexport const THESEAM_DATA_FILTER_CONTAINER = new InjectionToken<DataFilterContainer>(\n 'DataFilterContainer'\n)\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional, TemplateRef } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { ITextFilterOptions } from './text-filter-options'\n\nexport const DATA_FILTER_TEXT: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterTextComponent),\n multi: true,\n}\n\nexport const DefaultTextFilterOptions: ITextFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n exact: false,\n caseSensitive: false,\n}\n\nexport function textDataFilter(data: any[], text: string, options = DefaultTextFilterOptions) {\n if (!data || !text) {\n return data\n }\n\n if (data.length <= 0) {\n return data\n }\n\n let props = options ? options.properties : undefined\n if (!props) {\n props = []\n let keys = Object.keys(data[0])\n if (options && options.omitProperties) {\n keys = keys.filter(key => !(options.omitProperties || []).find(p => p === key))\n }\n for (const key of keys) {\n if (data[0].hasOwnProperty(key)) {\n props.push(key)\n }\n }\n }\n\n const filtered: any[] = []\n\n for (const item of data) {\n for (const p of props) {\n let value1 = `${item[p]}`\n let value2 = text\n\n if (!options.caseSensitive) {\n value1 = value1.toLowerCase()\n value2 = value2.toLowerCase()\n }\n\n if (item[p] && value1.indexOf(value2) !== (options.exact ? 0 : -1)) {\n filtered.push(item)\n break\n }\n }\n }\n\n return filtered\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-text',\n templateUrl: './data-filter-text.component.html',\n styleUrls: ['./data-filter-text.component.scss'],\n providers: [ DATA_FILTER_TEXT ]\n})\nexport class DataFilterTextComponent implements OnInit, OnDestroy, IDataFilter {\n static ngAcceptInputType_exact: BooleanInput\n static ngAcceptInputType_caseSensitive: BooleanInput\n\n public readonly name = 'text'\n public readonly uid = `text__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties: string[] | undefined | null = this._optDefault('properties')\n @Input() omitProperties: string[] | undefined | null = this._optDefault('omitProperties')\n @Input() @InputBoolean() exact: boolean = this._optDefault('exact')\n @Input() @InputBoolean() caseSensitive: boolean = this._optDefault('caseSensitive')\n\n @Input() placeholder: string | undefined | null\n @Input() iconTpl: TemplateRef<HTMLElement> | undefined | null\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? `${value}` : ''\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: ITextFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n switchMap(() => of(this.filterState())),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() { this._filterContainer.addFilter(this) }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof ITextFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultTextFilterOptions[prop]\n }\n\n get options(): ITextFilterOptions {\n return {\n properties: this.properties ?? undefined,\n omitProperties: this.omitProperties ?? undefined,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => textDataFilter(data, v, this.options)),\n startWith(textDataFilter(data, this._control.value, this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"position-relative\"\n [class.data-filter-text-has-icon]=\"iconTpl\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Text filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </ng-container>\n</div>\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional, TemplateRef } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap } from 'rxjs/operators'\n\nimport { faSearch } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { SeamIcon } from '@theseam/ui-common/icon'\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { textDataFilter } from '../data-filter-text/data-filter-text.component'\n\nimport { ISearchFilterOptions } from './search-filter-options'\n\n\nexport const DATA_FILTER_SEARCH: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterSearchComponent),\n multi: true,\n}\n\nexport const DefaultSearchFilterOptions: ISearchFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n exact: false,\n caseSensitive: false\n}\n\nexport function searchDataFilter(data: any[], values: string, options = DefaultSearchFilterOptions) {\n return textDataFilter(data, values, options)\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-search',\n templateUrl: './data-filter-search.component.html',\n styleUrls: ['./data-filter-search.component.scss'],\n providers: [ DATA_FILTER_SEARCH ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataFilterSearchComponent implements OnInit, OnDestroy, IDataFilter {\n static ngAcceptInputType_exact: BooleanInput\n static ngAcceptInputType_caseSensitive: BooleanInput\n\n public readonly name = 'search'\n public readonly uid = `search__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties: string[] | undefined | null = this._optDefault('properties')\n @Input() omitProperties: string[] | undefined | null = this._optDefault('omitProperties')\n @Input() @InputBoolean() exact: boolean = this._optDefault('exact')\n @Input() @InputBoolean() caseSensitive: boolean = this._optDefault('caseSensitive')\n\n @Input() placeholder: string | undefined | null = 'Search...'\n @Input() icon: SeamIcon | undefined | null = faSearch\n @Input() iconTpl?: TemplateRef<HTMLElement>\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? `${value}` : ''\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: ISearchFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n switchMap(() => of(this.filterState())),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() { this._filterContainer.addFilter(this) }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof ISearchFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultSearchFilterOptions[prop]\n }\n\n get options(): ISearchFilterOptions {\n return {\n properties: this.properties ?? undefined,\n omitProperties: this.omitProperties ?? undefined,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => searchDataFilter(data, v, this.options)),\n startWith(searchDataFilter(data, this._control.value, this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"position-relative\"\n [class.data-filter-search-has-icon]=\"iconTpl || icon\"\n (click)=\"inp.focus()\">\n <label [attr.for]=\"inp.id\" class=\"sr-only\">Search filter</label>\n <input seamInput #inp=\"seamInput\" seamInputSize=\"sm\" [formControl]=\"_control\" [placeholder]=\"placeholder\">\n <ng-container *ngIf=\"iconTpl; else searchIconTpl\">\n <div class=\"data-filter-search--icon-wrapper\">\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n </div>\n </ng-container>\n <ng-template #searchIconTpl>\n <ng-container *ngIf=\"icon\">\n <div class=\"data-filter-search--icon-wrapper\">\n <seam-icon [icon]=\"icon\" class=\"text-muted\"></seam-icon>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { coerceArray } from '@angular/cdk/coercion'\nimport { Component, forwardRef, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { Observable, of } from 'rxjs'\nimport { map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { hasProperty, isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { DataFilterState, IDataFilter, THESEAM_DATA_FILTER, THESEAM_DATA_FILTER_OPTIONS } from '../../data-filter'\nimport { THESEAM_DATA_FILTER_CONTAINER } from '../../data-filter-container'\nimport type { DataFilterContainer } from '../../data-filter-container'\nimport { textDataFilter } from '../data-filter-text/data-filter-text.component'\nimport { ITextFilterOptions } from '../data-filter-text/text-filter-options'\n\n\nexport const DATA_FILTER_TOGGLE_BUTTON: any = {\n provide: THESEAM_DATA_FILTER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DataFilterToggleButtonsComponent),\n multi: true,\n}\n\nexport interface IToggleButton {\n name: string\n value: string\n comparator?: (value: any, row: any, index: number) => -1 | 0 | 1\n}\n\nexport interface IToggleButtonsFilterOptions extends ITextFilterOptions {\n selectionToggleable: boolean\n multiple: boolean\n buttons: IToggleButton[]\n initialValue?: any\n}\n\nexport const DefaultToggleButtonsFilterOptions: IToggleButtonsFilterOptions = {\n properties: undefined,\n omitProperties: undefined,\n multiple: false,\n selectionToggleable: false,\n buttons: [],\n exact: false,\n caseSensitive: false\n}\n\nexport function toggleButtonsFilter(data: any[], values: string[], options = DefaultToggleButtonsFilterOptions) {\n if (!data || !values) {\n return data\n }\n\n const customComparatorBtns: IToggleButton[] = []\n for (const btn of options.buttons) {\n if (btn.comparator) {\n customComparatorBtns.push(btn)\n }\n }\n\n let _data = data\n for (const val of values) {\n if (val === '') { continue }\n\n let cmp\n for (const btn of customComparatorBtns) {\n if (btn.value === val) {\n cmp = btn.comparator\n }\n }\n if (cmp) {\n const filtered: any[] = []\n for (let i = 0; i < _data.length; i++) {\n if (cmp(val, _data[i], i) !== -1) {\n filtered.push(_data[i])\n }\n }\n _data = filtered\n } else {\n _data = textDataFilter(_data, val, {\n properties: options.properties,\n omitProperties: options.omitProperties,\n exact: options.exact,\n caseSensitive: options.caseSensitive\n })\n }\n }\n return _data\n}\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-data-filter-toggle-buttons',\n templateUrl: './data-filter-toggle-buttons.component.html',\n styleUrls: ['./data-filter-toggle-buttons.component.scss'],\n providers: [ DATA_FILTER_TOGGLE_BUTTON ]\n})\nexport class DataFilterToggleButtonsComponent implements OnInit, OnDestroy, IDataFilter {\n\n public readonly name = 'toggle-buttons'\n public readonly uid = `toggle-buttons__${_uid++}`\n\n _control = new UntypedFormControl()\n\n @Input() properties = this._optDefault('properties')\n @Input() omitProperties = this._optDefault('omitProperties')\n @Input() multiple = this._optDefault('multiple')\n @Input() selectionToggleable = this._optDefault('selectionToggleable')\n @Input() buttons = this._optDefault('buttons')\n @Input() exact = this._optDefault('exact')\n @Input() caseSensitive = this._optDefault('caseSensitive')\n\n @Input()\n set value(value: string | string[]) {\n const _value = !isNullOrUndefined(value) ? coerceArray(value) : undefined\n // console.log('_value', _value, this._control.value)\n if (this._control.value !== _value) {\n this._control.setValue(_value)\n }\n }\n\n public readonly filterStateChanges: Observable<DataFilterState>\n\n constructor(\n @Inject(THESEAM_DATA_FILTER_CONTAINER) private _filterContainer: DataFilterContainer,\n @Optional() @Inject(THESEAM_DATA_FILTER_OPTIONS) private _filterOptions: IToggleButtonsFilterOptions | null\n ) {\n this.filterStateChanges = this._control.valueChanges.pipe(\n tap(v => console.log('v', v)),\n switchMap(() => of(this.filterState())),\n tap(v => console.log('v2', v)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n ngOnInit() {\n this._filterContainer.addFilter(this)\n if (this._filterOptions && hasProperty(this._filterOptions, 'initialValue')) {\n this.value = this._optDefault('initialValue')\n }\n }\n\n ngOnDestroy() { this._filterContainer.removeFilter(this) }\n\n private _optDefault<K extends keyof IToggleButtonsFilterOptions>(prop: K) {\n if (this._filterOptions && this._filterOptions.hasOwnProperty(prop)) {\n return this._filterOptions[prop]\n }\n return DefaultToggleButtonsFilterOptions[prop]\n }\n\n get options(): IToggleButtonsFilterOptions {\n return {\n properties: this.properties,\n omitProperties: this.omitProperties,\n multiple: this.multiple,\n selectionToggleable: this.selectionToggleable,\n buttons: this.buttons,\n exact: this.exact,\n caseSensitive: this.caseSensitive\n }\n }\n\n public filter<T>(data: T[]): Observable<T[]> {\n return this._control.valueChanges\n .pipe(\n map(v => toggleButtonsFilter(data, coerceArray(v), this.options)),\n startWith(toggleButtonsFilter(data, coerceArray(this._control.value), this.options)),\n )\n }\n\n public filterState(): DataFilterState {\n return {\n // id:\n name: this.name,\n state: {\n value: this._control.value,\n options: this.options\n }\n }\n }\n\n}\n","<div class=\"btn-group\" role=\"group\" aria-label=\"Progress Filter\"\n *ngIf=\"options as opts\"\n [formControl]=\"_control\"\n seamToggleGroup\n [multiple]=\"opts.multiple\"\n [selectionToggleable]=\"opts.selectionToggleable\">\n <ng-container *ngFor=\"let btn of buttons\">\n <button type=\"button\" class=\"btn btn-sm px-4\"\n [seamToggleGroupOption]=\"btn.value\"\n #opt=\"seamToggleGroupOption\"\n [class.btn-lightgray]=\"!opt.selected\"\n [class.btn-primary]=\"opt.selected\"\n (click)=\"opt.selected=!opt.selected\">\n {{ btn.name || btn.value }}\n </button>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamToggleGroupModule } from '@theseam/ui-common/toggle-group'\n\nimport { THESEAM_DATA_FILTER_DEF } from './data-filter-def'\nimport { DataFilterSearchComponent } from './filters/data-filter-search/data-filter-search.component'\nimport { DataFilterTextComponent } from './filters/data-filter-text/data-filter-text.component'\nimport { DataFilterToggleButtonsComponent } from './filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component'\n\nconst filterComponents = [\n DataFilterSearchComponent,\n DataFilterTextComponent,\n DataFilterToggleButtonsComponent\n]\n\nconst filterDefProviders = [\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'search', component: DataFilterSearchComponent }, multi: true },\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'text', component: DataFilterTextComponent }, multi: true },\n { provide: THESEAM_DATA_FILTER_DEF, useValue: { name: 'toggle-buttons', component: DataFilterToggleButtonsComponent }, multi: true },\n]\n\n@NgModule({\n declarations: [\n ...filterComponents\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TheSeamFormFieldModule,\n FontAwesomeModule,\n TheSeamToggleGroupModule,\n TheSeamIconModule\n ],\n providers: [\n ...filterDefProviders\n ],\n exports: [\n ...filterComponents\n ]\n})\nexport class TheSeamDataFiltersModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_uid","i3"],"mappings":"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"}
|