@theseam/ui-common 0.4.0-beta.6 → 0.4.2
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/breadcrumbs/breadcrumbs.component.d.ts +1 -3
- package/card/card-body/card-body.component.d.ts +2 -4
- package/card/card-footer/card-footer.component.d.ts +1 -4
- package/card/card-header/card-header.component.d.ts +1 -4
- package/card/card.component.d.ts +1 -4
- package/carousel/carousel-slide.directive.d.ts +8 -0
- package/carousel/carousel.component.d.ts +85 -0
- package/carousel/carousel.module.d.ts +11 -0
- package/carousel/index.d.ts +5 -0
- package/carousel/public-api.d.ts +3 -0
- package/checkbox/checkbox.component.d.ts +2 -4
- package/core/common-behaviors/active.d.ts +1 -1
- package/core/common-behaviors/disabled.d.ts +1 -1
- package/core/common-behaviors/initialized.d.ts +1 -1
- package/data-filters/data-filter.d.ts +1 -1
- package/datatable/datatable-column/datatable-column.component.d.ts +2 -3
- package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
- package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
- package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
- package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
- package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
- package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
- package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
- package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
- package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
- package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
- package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
- package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
- package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
- package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
- package/esm2020/buttons/button/button.component.mjs +12 -10
- package/esm2020/buttons/buttons.module.mjs +4 -4
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +6 -6
- package/esm2020/card/card-action/card-action.component.mjs +4 -4
- package/esm2020/card/card-body/card-body.component.mjs +5 -6
- package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
- package/esm2020/card/card-header/card-header.component.mjs +5 -7
- package/esm2020/card/card.component.mjs +5 -7
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
- package/esm2020/carousel/carousel.component.mjs +211 -0
- package/esm2020/carousel/carousel.module.mjs +38 -0
- package/esm2020/carousel/public-api.mjs +4 -0
- package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
- package/esm2020/checkbox/checkbox.component.mjs +5 -6
- 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 +6 -6
- 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 +2 -1
- package/esm2020/core/common-behaviors/disabled.mjs +2 -1
- package/esm2020/core/common-behaviors/initialized.mjs +2 -1
- package/esm2020/core/common-behaviors/tabindex.mjs +2 -1
- package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
- package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
- 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-filter.mjs +1 -1
- package/esm2020/data-filters/data-filters.module.mjs +4 -4
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +5 -5
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +6 -6
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -8
- package/esm2020/datatable/datatable/datatable.component.mjs +11 -6
- 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 +5 -4
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -5
- 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 +4 -5
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +5 -5
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +9 -13
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
- 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 +5 -5
- package/esm2020/datatable/datatable.module.mjs +4 -4
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
- 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/models/columns-alteration.mjs +1 -1
- package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
- package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
- package/esm2020/datatable/models/internal-column-props.mjs +1 -1
- package/esm2020/datatable/models/sort-item.mjs +1 -1
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
- package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-preferences.service.mjs +5 -4
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
- package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
- package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +5 -6
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -7
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +4 -6
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +6 -6
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
- package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
- package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
- package/esm2020/form-field/form-field-error.directive.mjs +4 -4
- 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 +4 -4
- package/esm2020/form-field/form-field.component.mjs +5 -5
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/input.directive.mjs +10 -9
- 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 +5 -7
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
- 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 +8 -8
- package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
- package/esm2020/framework/base-layout/base-layout.component.mjs +5 -4
- package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
- 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 +3 -3
- 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 +5 -7
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +7 -5
- package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
- package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
- 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 +5 -4
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +5 -5
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
- package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
- package/esm2020/framework/side-nav/side-nav.component.mjs +6 -7
- 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 +4 -6
- 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 +5 -7
- package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
- package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +53 -32
- package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
- package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
- package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
- package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
- package/esm2020/google-maps/google-maps-feature-helpers.mjs +13 -1
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +9 -10
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +9 -9
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +6 -6
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +6 -6
- package/esm2020/google-maps/google-maps.module.mjs +8 -6
- package/esm2020/google-maps/google-maps.service.mjs +103 -32
- package/esm2020/google-maps/map-control.component.mjs +3 -3
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
- package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +1 -27
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
- package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
- package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
- package/esm2020/graphql/utils/inline-variables.mjs +2 -1
- package/esm2020/graphql/utils/parse-hints.mjs +3 -3
- package/esm2020/graphql/utils/to-gql.mjs +3 -3
- package/esm2020/icon/icon/icon.component.mjs +5 -5
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -5
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/utils/get-known-icon.mjs +71 -71
- package/esm2020/layout/breakpoint-aliases.mjs +1 -1
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.service.mjs +3 -3
- package/esm2020/layout/observe-media-query.mjs +1 -1
- package/esm2020/loading/loading/loading.component.mjs +8 -9
- 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 +4 -4
- package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
- package/esm2020/menu/menu-item.component.mjs +44 -17
- package/esm2020/menu/menu-toggle.directive.mjs +203 -44
- package/esm2020/menu/menu.component.mjs +39 -16
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
- 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 +5 -5
- package/esm2020/modal/modal/modal.component.mjs +6 -7
- package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
- package/esm2020/modal/modal-config.mjs +1 -1
- package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
- package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
- package/esm2020/modal/modal-ref.mjs +1 -1
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +26 -23
- package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
- package/esm2020/popover/popover/popover.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +4 -4
- package/esm2020/popover/popover.module.mjs +5 -5
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +10 -10
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -5
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/services/asset-loader.service.mjs +5 -6
- package/esm2020/services/font-loader.service.mjs +5 -6
- 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 +3 -3
- package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
- package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
- package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +7 -7
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +5 -5
- 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 +8 -8
- package/esm2020/storage/localstorage-memory.mjs +4 -4
- package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
- package/esm2020/story-helpers/initial-route.service.mjs +3 -3
- package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
- package/esm2020/story-helpers/public-api.mjs +2 -2
- 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 +4 -4
- package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
- package/esm2020/tabbed/tabbed.component.mjs +4 -4
- package/esm2020/tabbed/tabbed.module.mjs +4 -4
- package/esm2020/tabbed/tabbed.service.mjs +5 -5
- package/esm2020/table/table/table.component.mjs +5 -6
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
- package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
- package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
- 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 +12 -12
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +10 -10
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -7
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +11 -8
- package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
- package/esm2020/tel-input/intl-tel-input.mjs +2 -2
- package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +5 -6
- package/esm2020/tel-input/tel-input.directive.mjs +4 -4
- package/esm2020/tel-input/tel-input.module.mjs +4 -4
- package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
- package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
- package/esm2020/testing/story-expect.mjs +2 -1
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +5 -6
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -5
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +12 -13
- 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/testing/index.mjs +1 -1
- package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
- 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 +7 -7
- package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
- package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
- package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
- package/esm2020/utils/array-move.mjs +1 -1
- package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
- package/esm2020/utils/file-utils.mjs +2 -2
- package/esm2020/utils/form/get-control-path.mjs +6 -5
- package/esm2020/utils/geo-json/close-polygons.mjs +38 -0
- package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
- package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
- package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
- package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
- package/esm2020/utils/has-property.mjs +2 -2
- package/esm2020/utils/load-style-sheet.mjs +2 -2
- package/esm2020/utils/load-style.mjs +2 -2
- package/esm2020/utils/obj-utils.mjs +2 -2
- package/esm2020/utils/polling-ticker.mjs +2 -2
- package/esm2020/utils/public-api.mjs +2 -1
- package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
- package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
- package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
- package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
- package/esm2020/utils/subscriber-count.mjs +2 -1
- package/esm2020/utils/toggle-attribute.mjs +6 -5
- package/esm2020/utils/wait-on-condition-async.mjs +5 -5
- package/esm2020/vertical-list-filter/public-api.mjs +3 -0
- package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
- package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
- package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
- package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +5 -4
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +5 -4
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +7 -7
- 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 +56 -35
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
- 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 +5 -8
- 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 +6 -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 +5 -7
- 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 +5 -8
- 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 +5 -5
- 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 +16 -19
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
- 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 +5 -5
- 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 +6 -9
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +5 -6
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +9 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
- 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 +5 -7
- package/esm2020/widget/widget-registry.service.mjs +6 -5
- package/esm2020/widget/widget.module.mjs +7 -7
- package/fesm2015/theseam-ui-common-asset-reader.mjs +13 -11
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-buttons.mjs +31 -27
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-card.mjs +23 -31
- package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
- package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
- package/fesm2015/theseam-ui-common-checkbox.mjs +8 -9
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +15 -15
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-core.mjs +10 -8
- 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 +23 -20
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +34 -38
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +115 -123
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
- package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
- package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field-error.mjs +21 -23
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +29 -28
- package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +153 -160
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +221 -113
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +10 -34
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-icon.mjs +84 -85
- package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +7 -7
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-loading.mjs +14 -15
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +460 -247
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-modal.mjs +71 -76
- package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +10 -10
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-progress.mjs +13 -13
- package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -11
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs +11 -13
- package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-shared.mjs +42 -42
- package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-storage.mjs +10 -10
- package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -100
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +27 -29
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
- package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +87 -89
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +8 -9
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +21 -25
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +31 -34
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +20 -23
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +12 -12
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-utils.mjs +75 -33
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
- package/fesm2015/theseam-ui-common-viewers.mjs +22 -20
- package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +211 -217
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +13 -11
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-buttons.mjs +31 -27
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-card.mjs +23 -31
- package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
- package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
- package/fesm2020/theseam-ui-common-checkbox.mjs +8 -9
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +15 -15
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-core.mjs +10 -8
- 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 +23 -20
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +34 -38
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +115 -123
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
- package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
- package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field-error.mjs +21 -23
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +29 -28
- package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +153 -160
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +223 -117
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +10 -34
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-icon.mjs +84 -85
- package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +16 -8
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-loading.mjs +14 -15
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +450 -244
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-modal.mjs +71 -76
- package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-models.mjs +2 -1
- package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +10 -10
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-progress.mjs +13 -13
- package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -11
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs +11 -13
- package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-shared.mjs +42 -42
- package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-storage.mjs +10 -10
- package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -96
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +27 -29
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
- package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +87 -89
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +8 -9
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +21 -25
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-testing.mjs +1 -0
- package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +31 -34
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +20 -23
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +12 -12
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-utils.mjs +75 -33
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
- package/fesm2020/theseam-ui-common-viewers.mjs +22 -20
- package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +211 -217
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
- package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
- package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
- package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
- package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
- package/framework/dashboard/dashboard.component.d.ts +0 -1
- package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
- package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
- package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
- package/framework/top-bar/top-bar.component.d.ts +2 -4
- package/google-maps/google-maps/google-maps.component.d.ts +11 -7
- package/google-maps/google-maps-feature-helpers.d.ts +3 -0
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
- package/google-maps/google-maps.module.d.ts +1 -1
- package/google-maps/google-maps.service.d.ts +7 -0
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -1
- package/icon/icon-btn/icon-btn.component.d.ts +2 -3
- package/loading/loading/loading.component.d.ts +1 -4
- package/menu/menu-item.component.d.ts +20 -10
- package/menu/menu-toggle.directive.d.ts +34 -11
- package/menu/menu.component.d.ts +16 -2
- package/modal/modal/modal.component.d.ts +3 -4
- package/modal/modal-body/modal-body.component.d.ts +1 -4
- package/modal/modal-footer/modal-footer.component.d.ts +1 -4
- package/modal/modal-header/modal-header.component.d.ts +1 -4
- package/modal/route-modal/route-modal.component.d.ts +2 -3
- package/package.json +17 -1
- package/progress/progress-circle/progress-circle.component.d.ts +0 -1
- package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
- package/services/asset-loader.service.d.ts +0 -1
- package/services/font-loader.service.d.ts +0 -1
- package/story-helpers/public-api.d.ts +0 -1
- package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
- package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
- package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
- package/tabbed/tabbed.service.d.ts +0 -1
- package/table/table/table.component.d.ts +2 -3
- package/table-cell-type/table-cell-type-models.d.ts +1 -1
- package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +2 -3
- package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
- package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
- package/toggle-group/toggle-group.directive.d.ts +0 -1
- package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
- package/utils/geo-json/close-polygons.d.ts +9 -0
- package/utils/obj-utils.d.ts +2 -2
- package/utils/public-api.d.ts +1 -0
- package/vertical-list-filter/index.d.ts +5 -0
- package/vertical-list-filter/public-api.d.ts +2 -0
- package/vertical-list-filter/testing/index.d.ts +1 -0
- package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
- package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
- package/widget/widget/widget.component.d.ts +10 -11
- package/widget/widget/widget.component.scss +12 -1
- package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
- package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
- package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
- package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
- package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
- package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
- package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
- package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
- package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
- package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
- package/widget/widget-footer/widget-footer.component.d.ts +1 -4
- package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
- package/story-helpers/args-to-tpl.d.ts +0 -24
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { animation, style, group, animate, query, useAnimation, trigger, transition } from '@angular/animations';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Component, ChangeDetectionStrategy, InjectionToken, Inject, Optional, Input, HostListener,
|
|
3
|
+
import { Component, ChangeDetectionStrategy, InjectionToken, Inject, Optional, Input, HostListener, forwardRef, EventEmitter, TemplateRef, ViewChild, Output, inject, ChangeDetectorRef, Directive, Self, HostBinding, NgModule } from '@angular/core';
|
|
4
4
|
import * as i2 from '@angular/common';
|
|
5
5
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
6
|
-
import { Subject, Subscription, of, merge,
|
|
6
|
+
import { Subject, BehaviorSubject, Subscription, fromEvent, of, merge, filter, delay, asapScheduler, take, takeUntil as takeUntil$1 } from 'rxjs';
|
|
7
|
+
import { faCaretRight } from '@fortawesome/free-solid-svg-icons';
|
|
7
8
|
import { mixinDisabled } from '@theseam/ui-common/core';
|
|
8
9
|
import * as i1 from '@angular/cdk/a11y';
|
|
9
|
-
import {
|
|
10
|
+
import { FocusKeyManager, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';
|
|
10
11
|
import * as i3 from '@theseam/ui-common/icon';
|
|
11
12
|
import { TheSeamIconModule } from '@theseam/ui-common/icon';
|
|
12
|
-
import { UP_ARROW, DOWN_ARROW,
|
|
13
|
+
import { UP_ARROW, DOWN_ARROW, END, hasModifierKey, HOME, RIGHT_ARROW, LEFT_ARROW, ESCAPE, ENTER, SPACE } from '@angular/cdk/keycodes';
|
|
13
14
|
import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
|
|
14
15
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
15
|
-
import * as i1$1 from '@angular/cdk/overlay';
|
|
16
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
17
16
|
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
18
17
|
import { map, switchMap, startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
18
|
+
import * as i1$1 from '@angular/cdk/overlay';
|
|
19
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
20
|
+
import * as i4 from '@angular/cdk/bidi';
|
|
19
21
|
|
|
20
22
|
const menuDropdownPanelSlideIn = animation([
|
|
21
23
|
style({
|
|
@@ -76,9 +78,9 @@ const menuDropdownPanelOut = animation([
|
|
|
76
78
|
|
|
77
79
|
class MenuDividerComponent {
|
|
78
80
|
}
|
|
79
|
-
MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
80
|
-
MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
81
|
+
MenuDividerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
MenuDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuDividerComponent, selector: "seam-menu-divider", host: { classAttribute: "dropdown-divider d-block" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDividerComponent, decorators: [{
|
|
82
84
|
type: Component,
|
|
83
85
|
args: [{ selector: 'seam-menu-divider', template: ``, host: {
|
|
84
86
|
'class': 'dropdown-divider d-block'
|
|
@@ -94,31 +96,30 @@ class TheSeamMenuItemBase {
|
|
|
94
96
|
}
|
|
95
97
|
const _seamMenuItemMixinBase = mixinDisabled(TheSeamMenuItemBase);
|
|
96
98
|
class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
97
|
-
constructor(_elementRef,
|
|
99
|
+
constructor(_elementRef, _document, _focusMonitor, _changeDetectorRef, _parentMenu) {
|
|
98
100
|
super();
|
|
99
101
|
this._elementRef = _elementRef;
|
|
100
|
-
this.
|
|
102
|
+
this._document = _document;
|
|
101
103
|
this._focusMonitor = _focusMonitor;
|
|
104
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
102
105
|
this._parentMenu = _parentMenu;
|
|
103
106
|
/** ARIA role for the menu item. */
|
|
104
107
|
this.role = 'menuitem';
|
|
108
|
+
this.sublevelIcon = faCaretRight;
|
|
105
109
|
this.badgeTheme = 'danger';
|
|
106
110
|
/** Stream that emits when the menu item is hovered. */
|
|
107
111
|
this._hovered = new Subject();
|
|
112
|
+
/** Stream that emits when the menu item is focused. */
|
|
113
|
+
this._focused = new Subject();
|
|
108
114
|
/** Whether the menu item is highlighted. */
|
|
109
115
|
this._highlighted = false;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// to show the focus style for menu items only when the focus was not caused by a
|
|
113
|
-
// mouse or touch interaction.
|
|
114
|
-
_focusMonitor.monitor(this._elementRef, false);
|
|
115
|
-
}
|
|
116
|
+
/** Whether the menu item acts as a trigger for a sub-menu. */
|
|
117
|
+
this._triggersSubmenu = false;
|
|
116
118
|
// console.log(this._parentMenu)
|
|
117
119
|
if (_parentMenu && _parentMenu.addItem) {
|
|
118
120
|
_parentMenu.addItem(this);
|
|
119
121
|
}
|
|
120
122
|
}
|
|
121
|
-
ngOnInit() { }
|
|
122
123
|
ngOnDestroy() {
|
|
123
124
|
if (this._focusMonitor) {
|
|
124
125
|
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
@@ -127,6 +128,15 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
127
128
|
this._parentMenu.removeItem(this);
|
|
128
129
|
}
|
|
129
130
|
this._hovered.complete();
|
|
131
|
+
this._focused.complete();
|
|
132
|
+
}
|
|
133
|
+
ngAfterViewInit() {
|
|
134
|
+
if (this._focusMonitor) {
|
|
135
|
+
// Start monitoring the element, so it gets the appropriate focused classes. We want
|
|
136
|
+
// to show the focus style for menu items only when the focus was not caused by a
|
|
137
|
+
// mouse or touch interaction.
|
|
138
|
+
this._focusMonitor.monitor(this._elementRef, false);
|
|
139
|
+
}
|
|
130
140
|
}
|
|
131
141
|
/** Focuses the menu item. */
|
|
132
142
|
focus(origin = 'program') {
|
|
@@ -136,6 +146,7 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
136
146
|
else {
|
|
137
147
|
this._getHostElement().focus();
|
|
138
148
|
}
|
|
149
|
+
this._focused.next(this);
|
|
139
150
|
}
|
|
140
151
|
/** Used to set the `tabindex`. */
|
|
141
152
|
_getTabIndex() {
|
|
@@ -159,7 +170,7 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
159
170
|
/** Gets the label to be used when determining whether the option should be focused. */
|
|
160
171
|
getLabel() {
|
|
161
172
|
const element = this._elementRef.nativeElement;
|
|
162
|
-
const textNodeType = this.
|
|
173
|
+
const textNodeType = this._document ? this._document.TEXT_NODE : 3;
|
|
163
174
|
let output = '';
|
|
164
175
|
if (element.childNodes) {
|
|
165
176
|
const length = element.childNodes.length;
|
|
@@ -174,23 +185,38 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
174
185
|
}
|
|
175
186
|
return output.trim();
|
|
176
187
|
}
|
|
188
|
+
_setHighlighted(isHighlighted) {
|
|
189
|
+
var _a;
|
|
190
|
+
this._highlighted = isHighlighted;
|
|
191
|
+
(_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
192
|
+
}
|
|
193
|
+
_setTriggersSubmenu(triggersSubmenu) {
|
|
194
|
+
var _a;
|
|
195
|
+
this._triggersSubmenu = triggersSubmenu;
|
|
196
|
+
(_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
197
|
+
}
|
|
198
|
+
_hasFocus() {
|
|
199
|
+
return this._document && this._document.activeElement === this._getHostElement();
|
|
200
|
+
}
|
|
177
201
|
}
|
|
178
|
-
MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
179
|
-
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
202
|
+
MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuItemComponent, selector: "[seamMenuItem]", inputs: { disabled: "disabled", role: "role", icon: "icon", iconClass: "iconClass", sublevelIcon: "sublevelIcon", subLevelIconClass: "subLevelIconClass", badgeText: "badgeText", badgeTheme: "badgeTheme" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.seam-menu-item-highlighted": "_highlighted", "class.seam-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "seam-menu-item dropdown-item" }, exportAs: ["seamMenuItem"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <div class=\"flex-fill\">\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n </div>\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
181
205
|
type: Component,
|
|
182
206
|
args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
|
|
183
207
|
'[attr.role]': 'role',
|
|
184
|
-
'class': 'dropdown-item',
|
|
208
|
+
'class': 'seam-menu-item dropdown-item',
|
|
209
|
+
'[class.seam-menu-item-highlighted]': '_highlighted',
|
|
210
|
+
'[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',
|
|
185
211
|
'[attr.tabindex]': '_getTabIndex()',
|
|
186
212
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
187
213
|
'[attr.disabled]': 'disabled || null',
|
|
188
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n
|
|
214
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\">\n <seam-icon *ngIf=\"icon\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pr-2\"\n [icon]=\"icon\"\n [iconClass]=\"iconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n <div class=\"flex-fill\">\n <div class=\"text-truncate\">\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"badgeText\">\n <span class=\"badge badge-pill{{ badgeTheme ? ' badge-' + badgeTheme : '' }} position-relative\"\n style=\"top: -8px\"\n >{{ badgeText }}</span>\n </div>\n </div>\n <seam-icon *ngIf=\"_triggersSubmenu\"\n style=\"width: 30px; height: 20px; flex: 0 0 auto;\"\n class=\"pl-2\"\n [icon]=\"sublevelIcon\"\n [iconClass]=\"subLevelIconClass\"\n iconType=\"image-fill\">\n </seam-icon>\n</div>\n", styles: [":host.cdk-mouse-focused:not(:hover){background:transparent}:host[aria-expanded]{color:#16181b;text-decoration:none;background-color:#e9ecef}\n"] }]
|
|
189
215
|
}], ctorParameters: function () {
|
|
190
216
|
return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
191
217
|
type: Inject,
|
|
192
218
|
args: [DOCUMENT]
|
|
193
|
-
}] }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
|
|
219
|
+
}] }, { type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
194
220
|
type: Inject,
|
|
195
221
|
args: [THESEAM_MENU_PANEL]
|
|
196
222
|
}, {
|
|
@@ -202,6 +228,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
202
228
|
type: Input
|
|
203
229
|
}], iconClass: [{
|
|
204
230
|
type: Input
|
|
231
|
+
}], sublevelIcon: [{
|
|
232
|
+
type: Input
|
|
233
|
+
}], subLevelIconClass: [{
|
|
234
|
+
type: Input
|
|
205
235
|
}], badgeText: [{
|
|
206
236
|
type: Input
|
|
207
237
|
}], badgeTheme: [{
|
|
@@ -214,9 +244,225 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
214
244
|
args: ['mouseenter']
|
|
215
245
|
}] } });
|
|
216
246
|
|
|
247
|
+
let menuPanelUid = 0;
|
|
248
|
+
const LIB_MENU = {
|
|
249
|
+
provide: THESEAM_MENU_PANEL,
|
|
250
|
+
// tslint:disable-next-line:no-use-before-declare
|
|
251
|
+
useExisting: forwardRef(() => MenuComponent)
|
|
252
|
+
};
|
|
253
|
+
class MenuComponent {
|
|
254
|
+
/**
|
|
255
|
+
* Defines a width for a menu that will scale down if the window innerWidth is
|
|
256
|
+
* smaller than the value.
|
|
257
|
+
*/
|
|
258
|
+
get baseWidth() { return this._baseWidth.value; }
|
|
259
|
+
set baseWidth(value) {
|
|
260
|
+
const _val = coerceNumberProperty(value, null);
|
|
261
|
+
if (_val !== this._baseWidth.value) {
|
|
262
|
+
this._baseWidth.next(_val);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
constructor() {
|
|
266
|
+
this._ngUnsubscribe = new Subject();
|
|
267
|
+
this.panelId = `menu-panel-${menuPanelUid++}`;
|
|
268
|
+
this._footer = new BehaviorSubject(undefined);
|
|
269
|
+
this.hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined));
|
|
270
|
+
this._header = new BehaviorSubject(undefined);
|
|
271
|
+
this.hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined));
|
|
272
|
+
/** Menu items inside the current menu. */
|
|
273
|
+
this._items = [];
|
|
274
|
+
/** Emits whenever the amount of menu items changes. */
|
|
275
|
+
this._itemChanges = new Subject();
|
|
276
|
+
/** Subscription to tab events on the menu panel */
|
|
277
|
+
this._tabSubscription = Subscription.EMPTY;
|
|
278
|
+
/** Emits whenever an animation on the menu completes. */
|
|
279
|
+
this._animationDone = new Subject();
|
|
280
|
+
/** Whether the menu is animating. */
|
|
281
|
+
this._isAnimating = false;
|
|
282
|
+
this.closed = new EventEmitter();
|
|
283
|
+
this._baseWidth = new BehaviorSubject(null);
|
|
284
|
+
this.animationType = 'slide';
|
|
285
|
+
this._menuWidth$ = this._baseWidth.pipe(switchMap(baseWidth => {
|
|
286
|
+
if (baseWidth) {
|
|
287
|
+
return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`));
|
|
288
|
+
}
|
|
289
|
+
return of(undefined);
|
|
290
|
+
}), distinctUntilChanged(), takeUntil(this._ngUnsubscribe));
|
|
291
|
+
}
|
|
292
|
+
ngOnDestroy() {
|
|
293
|
+
this._tabSubscription.unsubscribe();
|
|
294
|
+
this.closed.complete();
|
|
295
|
+
this._ngUnsubscribe.next(undefined);
|
|
296
|
+
this._ngUnsubscribe.complete();
|
|
297
|
+
}
|
|
298
|
+
ngAfterContentInit() {
|
|
299
|
+
this._keyManager = new FocusKeyManager(this._items).withWrap().withTypeAhead();
|
|
300
|
+
this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));
|
|
301
|
+
}
|
|
302
|
+
/** Stream that emits whenever the hovered menu item changes. */
|
|
303
|
+
_hovered() {
|
|
304
|
+
return this._itemChanges.pipe(startWith(this._items), switchMap(items => merge(...items.map(item => item._hovered))));
|
|
305
|
+
}
|
|
306
|
+
/** Handle a keyboard event from the menu, delegating to the appropriate action. */
|
|
307
|
+
_handleKeydown(event) {
|
|
308
|
+
// tslint:disable-next-line:deprecation
|
|
309
|
+
const keyCode = event.keyCode;
|
|
310
|
+
const manager = this._keyManager;
|
|
311
|
+
switch (keyCode) {
|
|
312
|
+
case ESCAPE:
|
|
313
|
+
if (!hasModifierKey(event)) {
|
|
314
|
+
event.preventDefault();
|
|
315
|
+
this.closed.emit('keydown');
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
case LEFT_ARROW:
|
|
319
|
+
if (this.parentMenu && this.direction === 'ltr') {
|
|
320
|
+
this.closed.emit('keydown');
|
|
321
|
+
}
|
|
322
|
+
break;
|
|
323
|
+
case RIGHT_ARROW:
|
|
324
|
+
if (this.parentMenu && this.direction === 'rtl') {
|
|
325
|
+
this.closed.emit('keydown');
|
|
326
|
+
}
|
|
327
|
+
break;
|
|
328
|
+
case HOME:
|
|
329
|
+
case END:
|
|
330
|
+
if (!hasModifierKey(event)) {
|
|
331
|
+
keyCode === HOME ? manager === null || manager === void 0 ? void 0 : manager.setFirstItemActive() : manager === null || manager === void 0 ? void 0 : manager.setLastItemActive();
|
|
332
|
+
event.preventDefault();
|
|
333
|
+
}
|
|
334
|
+
break;
|
|
335
|
+
default:
|
|
336
|
+
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
337
|
+
manager === null || manager === void 0 ? void 0 : manager.setFocusOrigin('keyboard');
|
|
338
|
+
}
|
|
339
|
+
manager === null || manager === void 0 ? void 0 : manager.onKeydown(event);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Focus the first item in the menu.
|
|
344
|
+
* @param origin Action from which the focus originated. Used to set the correct styling.
|
|
345
|
+
*/
|
|
346
|
+
focusFirstItem(origin = 'program') {
|
|
347
|
+
var _a;
|
|
348
|
+
(_a = this._keyManager) === null || _a === void 0 ? void 0 : _a.setFocusOrigin(origin).setFirstItemActive();
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Resets the active item in the menu. This is used when the menu is opened, allowing
|
|
352
|
+
* the user to start from the first option when pressing the down arrow.
|
|
353
|
+
*/
|
|
354
|
+
resetActiveItem() {
|
|
355
|
+
var _a;
|
|
356
|
+
(_a = this._keyManager) === null || _a === void 0 ? void 0 : _a.setActiveItem(-1);
|
|
357
|
+
}
|
|
358
|
+
/** Registers a menu item with the menu. */
|
|
359
|
+
addItem(item) {
|
|
360
|
+
// We register the items through this method, rather than picking them up through
|
|
361
|
+
// `ContentChildren`, because we need the items to be picked up by their closest
|
|
362
|
+
// `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,
|
|
363
|
+
// all descendant items will bleed into the top-level menu in the case where the consumer
|
|
364
|
+
// has `seam-menu` instances nested inside each other.
|
|
365
|
+
if (this._items.indexOf(item) === -1) {
|
|
366
|
+
this._items.push(item);
|
|
367
|
+
this._itemChanges.next(this._items);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/** Removes an item from the menu. */
|
|
371
|
+
removeItem(item) {
|
|
372
|
+
const index = this._items.indexOf(item);
|
|
373
|
+
if (this._items.indexOf(item) > -1) {
|
|
374
|
+
this._items.splice(index, 1);
|
|
375
|
+
this._itemChanges.next(this._items);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/** Sets the footer component. */
|
|
379
|
+
setFooter(footer) {
|
|
380
|
+
this._footer.next(footer);
|
|
381
|
+
}
|
|
382
|
+
/** Sets the header component. */
|
|
383
|
+
setHeader(header) {
|
|
384
|
+
this._header.next(header);
|
|
385
|
+
}
|
|
386
|
+
_dropdownMenuClick(event) {
|
|
387
|
+
// This is needed, because some menu's will get stuck open if the component
|
|
388
|
+
// managing the menu is destroyed before the menu finishes its cleanup. I
|
|
389
|
+
// may look for a fix to that eventually.
|
|
390
|
+
this.closed.emit('click');
|
|
391
|
+
}
|
|
392
|
+
/** Callback that is invoked when the panel animation completes. */
|
|
393
|
+
_onAnimationDone(event) {
|
|
394
|
+
this._animationDone.next(event);
|
|
395
|
+
this._isAnimating = false;
|
|
396
|
+
}
|
|
397
|
+
_onAnimationStart(event) {
|
|
398
|
+
var _a;
|
|
399
|
+
this._isAnimating = true;
|
|
400
|
+
// Scroll the content element to the top as soon as the animation starts. This is necessary,
|
|
401
|
+
// because we move focus to the first item while it's still being animated, which can throw
|
|
402
|
+
// the browser off when it determines the scroll position. Alternatively we can move focus
|
|
403
|
+
// when the animation is done, however moving focus asynchronously will interrupt screen
|
|
404
|
+
// readers which are in the process of reading out the menu already. We take the `element`
|
|
405
|
+
// from the `event` since we can't use a `ViewChild` to access the pane.
|
|
406
|
+
if (event.toState === 'enter' && ((_a = this._keyManager) === null || _a === void 0 ? void 0 : _a.activeItemIndex) === 0) {
|
|
407
|
+
event.element.scrollTop = 0;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
412
|
+
MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
|
|
413
|
+
trigger('slideDown', [
|
|
414
|
+
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
415
|
+
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
416
|
+
])
|
|
417
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
418
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuComponent, decorators: [{
|
|
419
|
+
type: Component,
|
|
420
|
+
args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
|
|
421
|
+
trigger('slideDown', [
|
|
422
|
+
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
423
|
+
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
424
|
+
])
|
|
425
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'seamMenu', template: "<ng-template>\n <div class=\"seam-menu-container\"\n @slideDown\n (@slideDown.start)=\"_onAnimationStart($event)\"\n (@slideDown.done)=\"_onAnimationDone($event)\"\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\"\n [id]=\"panelId\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"] }]
|
|
426
|
+
}], ctorParameters: function () { return []; }, propDecorators: { templateRef: [{
|
|
427
|
+
type: ViewChild,
|
|
428
|
+
args: [TemplateRef]
|
|
429
|
+
}], closed: [{
|
|
430
|
+
type: Output
|
|
431
|
+
}], menuClass: [{
|
|
432
|
+
type: Input
|
|
433
|
+
}], baseWidth: [{
|
|
434
|
+
type: Input
|
|
435
|
+
}], animationType: [{
|
|
436
|
+
type: Input
|
|
437
|
+
}] } });
|
|
438
|
+
|
|
217
439
|
/** Options for binding a passive event listener. */
|
|
218
440
|
const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
|
|
219
441
|
class MenuToggleDirective {
|
|
442
|
+
get menu() { return this._menu; }
|
|
443
|
+
set menu(menu) {
|
|
444
|
+
var _a;
|
|
445
|
+
if (menu === this._menu) {
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
this._menu = menu;
|
|
449
|
+
this._menuClosedSubscription.unsubscribe();
|
|
450
|
+
if (menu) {
|
|
451
|
+
if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
452
|
+
throw Error(`seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +
|
|
453
|
+
`not a parent of the trigger or move the trigger outside of the menu.`);
|
|
454
|
+
}
|
|
455
|
+
this._menuClosedSubscription = menu.closed.subscribe((reason) => {
|
|
456
|
+
// this._destroyMenu(reason)
|
|
457
|
+
this.closeMenu();
|
|
458
|
+
// If a click closed the menu, we should close the entire chain of nested menus.
|
|
459
|
+
if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {
|
|
460
|
+
this._parentMenuComponent.closed.emit(reason);
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
(_a = this._menuItemInstance) === null || _a === void 0 ? void 0 : _a._setTriggersSubmenu(this.triggersSubmenu());
|
|
465
|
+
}
|
|
220
466
|
set positions(val) {
|
|
221
467
|
var _a;
|
|
222
468
|
this._positions = val;
|
|
@@ -224,7 +470,40 @@ class MenuToggleDirective {
|
|
|
224
470
|
(_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement));
|
|
225
471
|
}
|
|
226
472
|
}
|
|
227
|
-
get positions() {
|
|
473
|
+
get positions() {
|
|
474
|
+
const positions = this._positions;
|
|
475
|
+
if (this.triggersSubmenu()) {
|
|
476
|
+
return [
|
|
477
|
+
{
|
|
478
|
+
originX: 'start',
|
|
479
|
+
originY: 'top',
|
|
480
|
+
overlayX: 'end',
|
|
481
|
+
overlayY: 'top',
|
|
482
|
+
offsetY: -11,
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
originX: 'end',
|
|
486
|
+
originY: 'top',
|
|
487
|
+
overlayX: 'start',
|
|
488
|
+
overlayY: 'top',
|
|
489
|
+
offsetY: -11,
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
originX: 'start',
|
|
493
|
+
originY: 'bottom',
|
|
494
|
+
overlayX: 'end',
|
|
495
|
+
overlayY: 'top',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
originX: 'start',
|
|
499
|
+
originY: 'top',
|
|
500
|
+
overlayX: 'start',
|
|
501
|
+
overlayY: 'bottom',
|
|
502
|
+
},
|
|
503
|
+
];
|
|
504
|
+
}
|
|
505
|
+
return positions;
|
|
506
|
+
}
|
|
228
507
|
_onMouseDown(event) {
|
|
229
508
|
if (!isFakeMousedownFromScreenReader(event)) {
|
|
230
509
|
// Since right or middle button clicks won't trigger the `click` event,
|
|
@@ -233,42 +512,64 @@ class MenuToggleDirective {
|
|
|
233
512
|
// Since clicking on the trigger won't close the menu if it opens a sub-menu,
|
|
234
513
|
// we should prevent focus from moving onto it via click to avoid the
|
|
235
514
|
// highlight from lingering on the menu item.
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
515
|
+
if (this.triggersSubmenu()) {
|
|
516
|
+
event.preventDefault();
|
|
517
|
+
}
|
|
239
518
|
}
|
|
240
519
|
}
|
|
241
520
|
_onKeydown(event) {
|
|
242
521
|
var _a;
|
|
243
522
|
this._openedBy = null;
|
|
523
|
+
// console.log('keydown', event)
|
|
244
524
|
// tslint:disable-next-line:deprecation
|
|
245
525
|
const keyCode = event.keyCode;
|
|
246
526
|
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
247
527
|
if (this.menuOpen()) {
|
|
248
|
-
(_a = this.
|
|
528
|
+
(_a = this.menu) === null || _a === void 0 ? void 0 : _a.focusFirstItem(this._openedBy || 'program');
|
|
249
529
|
}
|
|
250
530
|
}
|
|
531
|
+
else if (keyCode === ESCAPE) {
|
|
532
|
+
this.closeMenu();
|
|
533
|
+
}
|
|
534
|
+
// Pressing enter on the trigger will trigger the click handler later.
|
|
535
|
+
if (keyCode === ENTER || keyCode === SPACE) {
|
|
536
|
+
this._openedBy = 'keyboard';
|
|
537
|
+
}
|
|
538
|
+
if (this.triggersSubmenu() &&
|
|
539
|
+
((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||
|
|
540
|
+
(keyCode === LEFT_ARROW && this.dir === 'rtl'))) {
|
|
541
|
+
this._openedBy = 'keyboard';
|
|
542
|
+
this.openMenu();
|
|
543
|
+
}
|
|
251
544
|
}
|
|
252
545
|
_onClick(event) {
|
|
253
|
-
this.
|
|
546
|
+
if (this.triggersSubmenu()) {
|
|
547
|
+
// Stop event propagation to avoid closing the parent menu.
|
|
548
|
+
event.stopPropagation();
|
|
549
|
+
this.openMenu();
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
this.toggle();
|
|
553
|
+
}
|
|
254
554
|
}
|
|
255
555
|
_onDocumentKeydown(event) {
|
|
256
556
|
if (event.keyCode === ESCAPE) {
|
|
257
557
|
this.closeMenu();
|
|
258
558
|
}
|
|
259
559
|
}
|
|
260
|
-
|
|
261
|
-
// _onDocumentMouseDown(event: any) {
|
|
262
|
-
// console.log('outside click')
|
|
263
|
-
// }
|
|
264
|
-
constructor(_elementRef, _viewContainerRef, _overlay, _focusMonitor) {
|
|
560
|
+
constructor(_elementRef, _viewContainerRef, _overlay, _focusMonitor, _parentMenu, _menuItemInstance, _dir) {
|
|
265
561
|
this._elementRef = _elementRef;
|
|
266
562
|
this._viewContainerRef = _viewContainerRef;
|
|
267
563
|
this._overlay = _overlay;
|
|
268
564
|
this._focusMonitor = _focusMonitor;
|
|
565
|
+
this._parentMenu = _parentMenu;
|
|
566
|
+
this._menuItemInstance = _menuItemInstance;
|
|
567
|
+
this._dir = _dir;
|
|
269
568
|
this._active = false;
|
|
270
569
|
this._menuClosedSubscription = Subscription.EMPTY;
|
|
271
570
|
this._closingActionsSubscription = Subscription.EMPTY;
|
|
571
|
+
this._hoverSubscription = Subscription.EMPTY;
|
|
572
|
+
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
272
573
|
this.restoreFocus = true;
|
|
273
574
|
// Tracking input type is necessary so it's possible to only auto-focus
|
|
274
575
|
// the first item of the list when the menu is opened via the keyboard
|
|
@@ -299,11 +600,16 @@ class MenuToggleDirective {
|
|
|
299
600
|
overlayY: 'bottom',
|
|
300
601
|
},
|
|
301
602
|
];
|
|
603
|
+
/** Event emitted when the associated menu is opened. */
|
|
604
|
+
this.menuOpened = new EventEmitter();
|
|
605
|
+
/** Event emitted when the associated menu is opened. */
|
|
606
|
+
this.menuClosed = new EventEmitter();
|
|
302
607
|
/**
|
|
303
608
|
* Handles touch start events on the trigger.
|
|
304
609
|
* Needs to be an arrow function so we can easily use addEventListener and removeEventListener.
|
|
305
610
|
*/
|
|
306
611
|
this._handleTouchStart = () => this._openedBy = 'touch';
|
|
612
|
+
this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined;
|
|
307
613
|
this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
308
614
|
}
|
|
309
615
|
ngOnDestroy() {
|
|
@@ -311,6 +617,10 @@ class MenuToggleDirective {
|
|
|
311
617
|
this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
312
618
|
this._menuClosedSubscription.unsubscribe();
|
|
313
619
|
this._closingActionsSubscription.unsubscribe();
|
|
620
|
+
this._hoverSubscription.unsubscribe();
|
|
621
|
+
}
|
|
622
|
+
ngAfterContentInit() {
|
|
623
|
+
this._handleHover();
|
|
314
624
|
}
|
|
315
625
|
toggle() {
|
|
316
626
|
if (this._active) {
|
|
@@ -321,23 +631,23 @@ class MenuToggleDirective {
|
|
|
321
631
|
}
|
|
322
632
|
}
|
|
323
633
|
openMenu() {
|
|
324
|
-
if (this._active || !this.
|
|
634
|
+
if (this._active || !this.menu) {
|
|
325
635
|
return;
|
|
326
636
|
}
|
|
327
637
|
this._active = true;
|
|
328
638
|
this._overlayRef = this._overlay.create({
|
|
329
|
-
hasBackdrop:
|
|
330
|
-
backdropClass: 'transparent',
|
|
639
|
+
hasBackdrop: !this._parentMenuComponent,
|
|
640
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
331
641
|
positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),
|
|
332
642
|
});
|
|
333
|
-
const tpl = this.
|
|
643
|
+
const tpl = this.menu.templateRef;
|
|
334
644
|
if (!tpl) {
|
|
335
645
|
throw Error(`Menu template not found.`);
|
|
336
646
|
}
|
|
337
647
|
this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef));
|
|
338
648
|
this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());
|
|
339
|
-
this._initMenu();
|
|
340
|
-
this._menuClosedSubscription = this.
|
|
649
|
+
this._initMenu(this.menu);
|
|
650
|
+
this._menuClosedSubscription = this.menu.closed.subscribe(v => {
|
|
341
651
|
// console.log('closed', v)
|
|
342
652
|
this.closeMenu();
|
|
343
653
|
});
|
|
@@ -345,11 +655,23 @@ class MenuToggleDirective {
|
|
|
345
655
|
// console.log('backdropClick', v)
|
|
346
656
|
// })
|
|
347
657
|
}
|
|
658
|
+
/** The text direction of the containing app. */
|
|
659
|
+
get dir() {
|
|
660
|
+
return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
|
|
661
|
+
}
|
|
662
|
+
/** Whether the menu triggers a sub-menu or a top-level one. */
|
|
663
|
+
triggersSubmenu() {
|
|
664
|
+
return !!(this._menuItemInstance && this._parentMenuComponent && this.menu);
|
|
665
|
+
}
|
|
348
666
|
closeMenu() {
|
|
349
|
-
var _a, _b;
|
|
667
|
+
var _a, _b, _c;
|
|
350
668
|
if (!this._active) {
|
|
351
669
|
return;
|
|
352
670
|
}
|
|
671
|
+
let emitCloseEvent = false;
|
|
672
|
+
if (this.menuOpen()) {
|
|
673
|
+
emitCloseEvent = true;
|
|
674
|
+
}
|
|
353
675
|
if ((_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.hasAttached()) {
|
|
354
676
|
(_b = this._overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
|
|
355
677
|
}
|
|
@@ -357,6 +679,9 @@ class MenuToggleDirective {
|
|
|
357
679
|
this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
358
680
|
this._menuClosedSubscription.unsubscribe();
|
|
359
681
|
this._closingActionsSubscription.unsubscribe();
|
|
682
|
+
if (emitCloseEvent) {
|
|
683
|
+
(_c = this.menu) === null || _c === void 0 ? void 0 : _c.closed.emit();
|
|
684
|
+
}
|
|
360
685
|
this._active = false;
|
|
361
686
|
}
|
|
362
687
|
menuOpen() {
|
|
@@ -387,19 +712,19 @@ class MenuToggleDirective {
|
|
|
387
712
|
* This method sets the menu state to open and focuses the first item if
|
|
388
713
|
* the menu was opened via the keyboard.
|
|
389
714
|
*/
|
|
390
|
-
_initMenu() {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
// this._setMenuElevation()
|
|
394
|
-
|
|
395
|
-
|
|
715
|
+
_initMenu(menu) {
|
|
716
|
+
menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined;
|
|
717
|
+
menu.direction = this.dir;
|
|
718
|
+
// this._setMenuElevation(menu)
|
|
719
|
+
menu.focusFirstItem(this._openedBy || 'program');
|
|
720
|
+
this._setIsMenuOpen(true);
|
|
396
721
|
}
|
|
397
722
|
/**
|
|
398
723
|
* This method resets the menu when it's closed, most importantly restoring
|
|
399
724
|
* focus to the menu trigger if the menu was opened via the keyboard.
|
|
400
725
|
*/
|
|
401
726
|
_resetMenu() {
|
|
402
|
-
|
|
727
|
+
this._setIsMenuOpen(false);
|
|
403
728
|
// We should reset focus if the user is navigating using a keyboard or
|
|
404
729
|
// if we have a top-level trigger which might cause focus to be lost
|
|
405
730
|
// when clicking on the backdrop.
|
|
@@ -409,44 +734,100 @@ class MenuToggleDirective {
|
|
|
409
734
|
// `keyboard` so we don't have to specify which one it is.
|
|
410
735
|
this.focus();
|
|
411
736
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
737
|
+
else if (!this.triggersSubmenu()) {
|
|
738
|
+
this.focus(this._openedBy);
|
|
739
|
+
}
|
|
415
740
|
}
|
|
416
741
|
this._openedBy = null;
|
|
417
742
|
}
|
|
743
|
+
// set state rather than toggle to support triggers sharing a menu
|
|
744
|
+
_setIsMenuOpen(isOpen) {
|
|
745
|
+
var _a;
|
|
746
|
+
if (isOpen !== this.menuOpen()) {
|
|
747
|
+
// this._menuOpen = isOpen
|
|
748
|
+
this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit();
|
|
749
|
+
if (this.triggersSubmenu()) {
|
|
750
|
+
(_a = this._menuItemInstance) === null || _a === void 0 ? void 0 : _a._setHighlighted(isOpen);
|
|
751
|
+
}
|
|
752
|
+
this._changeDetectorRef.markForCheck();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
418
755
|
/** Returns a stream that emits whenever an action that should close the menu occurs. */
|
|
419
756
|
_menuClosingActions() {
|
|
420
757
|
var _a, _b, _c, _d;
|
|
421
758
|
const backdrop = (_b = (_a = this._overlayRef) === null || _a === void 0 ? void 0 : _a.backdropClick()) !== null && _b !== void 0 ? _b : of();
|
|
422
759
|
const detachments = (_d = (_c = this._overlayRef) === null || _c === void 0 ? void 0 : _c.detachments()) !== null && _d !== void 0 ? _d : of();
|
|
423
|
-
|
|
424
|
-
const
|
|
425
|
-
// const hover = this._parentMenu ? this._parentMenu._hovered().pipe(
|
|
426
|
-
// filter(active => active !== this._menuItemInstance),
|
|
427
|
-
// filter(() => this._menuOpen)
|
|
428
|
-
// ) : of()
|
|
429
|
-
const hover = of();
|
|
760
|
+
const parentClose = this._parentMenu ? this._parentMenu.closed : of();
|
|
761
|
+
const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(filter(active => active !== this._menuItemInstance), filter(() => this.menuOpen())) : of();
|
|
430
762
|
return merge(backdrop, parentClose, hover, detachments);
|
|
431
763
|
}
|
|
764
|
+
/** Handles the cases where the user hovers over the trigger. */
|
|
765
|
+
_handleHover() {
|
|
766
|
+
// Subscribe to changes in the hovered item in order to toggle the panel.
|
|
767
|
+
if (!this.triggersSubmenu() || !this._parentMenuComponent) {
|
|
768
|
+
return;
|
|
769
|
+
}
|
|
770
|
+
this._hoverSubscription = this._parentMenuComponent
|
|
771
|
+
._hovered()
|
|
772
|
+
// Since we might have multiple competing triggers for the same menu (e.g. a sub-menu
|
|
773
|
+
// with different data and triggers), we have to delay it by a tick to ensure that
|
|
774
|
+
// it won't be closed immediately after it is opened.
|
|
775
|
+
.pipe(filter(active => active === this._menuItemInstance && !active.disabled), delay(0, asapScheduler))
|
|
776
|
+
.subscribe(() => {
|
|
777
|
+
this._openedBy = 'mouse';
|
|
778
|
+
// If the same menu is used between multiple triggers, it might still be animating
|
|
779
|
+
// while the new trigger tries to re-open it. Wait for the animation to finish
|
|
780
|
+
// before doing so. Also interrupt if the user moves to another item.
|
|
781
|
+
if (this.menu instanceof MenuComponent && this.menu._isAnimating) {
|
|
782
|
+
// We need the `delay(0)` here in order to avoid
|
|
783
|
+
// 'changed after checked' errors in some cases. See #12194.
|
|
784
|
+
this.menu._animationDone
|
|
785
|
+
.pipe(take(1), delay(0, asapScheduler), takeUntil$1(this._parentMenuComponent._hovered()))
|
|
786
|
+
.subscribe(() => this.openMenu());
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
this.openMenu();
|
|
790
|
+
}
|
|
791
|
+
});
|
|
792
|
+
}
|
|
432
793
|
}
|
|
433
|
-
MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
434
|
-
MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
794
|
+
MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i1.FocusMonitor }, { token: THESEAM_MENU_PANEL, optional: true }, { token: MenuItemComponent, optional: true, self: true }, { token: i4.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
795
|
+
MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MenuToggleDirective, selector: "[seamMenuToggle]", inputs: { menu: ["seamMenuToggle", "menu"], positions: "positions" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "keydown": "_onKeydown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "menuOpen() || null", "attr.aria-controls": "menuOpen() ? menu.panelId : null" }, classAttribute: "seam-menu-toggle" }, exportAs: ["seamMenuToggle"], ngImport: i0 });
|
|
796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuToggleDirective, decorators: [{
|
|
436
797
|
type: Directive,
|
|
437
798
|
args: [{
|
|
438
799
|
selector: '[seamMenuToggle]',
|
|
439
800
|
// tslint:disable-next-line:use-host-property-decorator
|
|
440
801
|
host: {
|
|
802
|
+
'class': 'seam-menu-toggle',
|
|
441
803
|
'aria-haspopup': 'true',
|
|
442
|
-
'[attr.aria-expanded]': 'menuOpen() || null'
|
|
804
|
+
'[attr.aria-expanded]': 'menuOpen() || null',
|
|
805
|
+
'[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',
|
|
443
806
|
},
|
|
444
807
|
exportAs: 'seamMenuToggle'
|
|
445
808
|
}]
|
|
446
|
-
}], ctorParameters: function () {
|
|
447
|
-
|
|
809
|
+
}], ctorParameters: function () {
|
|
810
|
+
return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$1.Overlay }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
|
|
811
|
+
type: Inject,
|
|
812
|
+
args: [THESEAM_MENU_PANEL]
|
|
813
|
+
}, {
|
|
814
|
+
type: Optional
|
|
815
|
+
}] }, { type: MenuItemComponent, decorators: [{
|
|
816
|
+
type: Optional
|
|
817
|
+
}, {
|
|
818
|
+
type: Self
|
|
819
|
+
}] }, { type: i4.Directionality, decorators: [{
|
|
820
|
+
type: Optional
|
|
821
|
+
}] }];
|
|
822
|
+
}, propDecorators: { menu: [{
|
|
823
|
+
type: Input,
|
|
824
|
+
args: ['seamMenuToggle']
|
|
448
825
|
}], positions: [{
|
|
449
826
|
type: Input
|
|
827
|
+
}], menuOpened: [{
|
|
828
|
+
type: Output
|
|
829
|
+
}], menuClosed: [{
|
|
830
|
+
type: Output
|
|
450
831
|
}], _onMouseDown: [{
|
|
451
832
|
type: HostListener,
|
|
452
833
|
args: ['mousedown', ['$event']]
|
|
@@ -461,174 +842,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
461
842
|
args: ['document:keydown', ['$event']]
|
|
462
843
|
}] } });
|
|
463
844
|
|
|
464
|
-
const LIB_MENU = {
|
|
465
|
-
provide: THESEAM_MENU_PANEL,
|
|
466
|
-
// tslint:disable-next-line:no-use-before-declare
|
|
467
|
-
useExisting: forwardRef(() => MenuComponent)
|
|
468
|
-
};
|
|
469
|
-
class MenuComponent {
|
|
470
|
-
/**
|
|
471
|
-
* Defines a width for a menu that will scale down if the window innerWidth is
|
|
472
|
-
* smaller than the value.
|
|
473
|
-
*/
|
|
474
|
-
get baseWidth() { return this._baseWidth.value; }
|
|
475
|
-
set baseWidth(value) {
|
|
476
|
-
const _val = coerceNumberProperty(value, null);
|
|
477
|
-
if (_val !== this._baseWidth.value) {
|
|
478
|
-
this._baseWidth.next(_val);
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
constructor() {
|
|
482
|
-
this._ngUnsubscribe = new Subject();
|
|
483
|
-
this._footer = new BehaviorSubject(undefined);
|
|
484
|
-
this.hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined));
|
|
485
|
-
this._header = new BehaviorSubject(undefined);
|
|
486
|
-
this.hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined));
|
|
487
|
-
/** Menu items inside the current menu. */
|
|
488
|
-
this._items = [];
|
|
489
|
-
/** Emits whenever the amount of menu items changes. */
|
|
490
|
-
this._itemChanges = new Subject();
|
|
491
|
-
/** Subscription to tab events on the menu panel */
|
|
492
|
-
this._tabSubscription = Subscription.EMPTY;
|
|
493
|
-
this.closed = new EventEmitter();
|
|
494
|
-
this._baseWidth = new BehaviorSubject(null);
|
|
495
|
-
this.animationType = 'slide';
|
|
496
|
-
this._menuWidth$ = this._baseWidth.pipe(switchMap(baseWidth => {
|
|
497
|
-
if (baseWidth) {
|
|
498
|
-
return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`));
|
|
499
|
-
}
|
|
500
|
-
return of(undefined);
|
|
501
|
-
}), distinctUntilChanged(), takeUntil(this._ngUnsubscribe));
|
|
502
|
-
}
|
|
503
|
-
ngOnDestroy() {
|
|
504
|
-
this._tabSubscription.unsubscribe();
|
|
505
|
-
this.closed.complete();
|
|
506
|
-
this._ngUnsubscribe.next(undefined);
|
|
507
|
-
this._ngUnsubscribe.complete();
|
|
508
|
-
}
|
|
509
|
-
ngAfterContentInit() {
|
|
510
|
-
this._keyManager = new FocusKeyManager(this._items).withWrap().withTypeAhead();
|
|
511
|
-
this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));
|
|
512
|
-
}
|
|
513
|
-
/** Stream that emits whenever the hovered menu item changes. */
|
|
514
|
-
_hovered() {
|
|
515
|
-
return this._itemChanges.pipe(startWith(this._items), switchMap(items => merge(...items.map(item => item._hovered))));
|
|
516
|
-
}
|
|
517
|
-
/** Handle a keyboard event from the menu, delegating to the appropriate action. */
|
|
518
|
-
_handleKeydown(event) {
|
|
519
|
-
// tslint:disable-next-line:deprecation
|
|
520
|
-
const keyCode = event.keyCode;
|
|
521
|
-
const manager = this._keyManager;
|
|
522
|
-
switch (keyCode) {
|
|
523
|
-
case ESCAPE:
|
|
524
|
-
if (!hasModifierKey(event)) {
|
|
525
|
-
event.preventDefault();
|
|
526
|
-
this.closed.emit('keydown');
|
|
527
|
-
}
|
|
528
|
-
break;
|
|
529
|
-
// case LEFT_ARROW:
|
|
530
|
-
// if (this.parentMenu && this.direction === 'ltr') {
|
|
531
|
-
// this.closed.emit('keydown')
|
|
532
|
-
// }
|
|
533
|
-
// break
|
|
534
|
-
// case RIGHT_ARROW:
|
|
535
|
-
// if (this.parentMenu && this.direction === 'rtl') {
|
|
536
|
-
// this.closed.emit('keydown')
|
|
537
|
-
// }
|
|
538
|
-
// break
|
|
539
|
-
case HOME:
|
|
540
|
-
case END:
|
|
541
|
-
if (!hasModifierKey(event)) {
|
|
542
|
-
keyCode === HOME ? manager === null || manager === void 0 ? void 0 : manager.setFirstItemActive() : manager === null || manager === void 0 ? void 0 : manager.setLastItemActive();
|
|
543
|
-
event.preventDefault();
|
|
544
|
-
}
|
|
545
|
-
break;
|
|
546
|
-
default:
|
|
547
|
-
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
548
|
-
manager === null || manager === void 0 ? void 0 : manager.setFocusOrigin('keyboard');
|
|
549
|
-
}
|
|
550
|
-
manager === null || manager === void 0 ? void 0 : manager.onKeydown(event);
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Focus the first item in the menu.
|
|
555
|
-
* @param origin Action from which the focus originated. Used to set the correct styling.
|
|
556
|
-
*/
|
|
557
|
-
focusFirstItem(origin = 'program') {
|
|
558
|
-
var _a;
|
|
559
|
-
(_a = this._keyManager) === null || _a === void 0 ? void 0 : _a.setFocusOrigin(origin).setFirstItemActive();
|
|
560
|
-
}
|
|
561
|
-
/**
|
|
562
|
-
* Resets the active item in the menu. This is used when the menu is opened, allowing
|
|
563
|
-
* the user to start from the first option when pressing the down arrow.
|
|
564
|
-
*/
|
|
565
|
-
resetActiveItem() {
|
|
566
|
-
var _a;
|
|
567
|
-
(_a = this._keyManager) === null || _a === void 0 ? void 0 : _a.setActiveItem(-1);
|
|
568
|
-
}
|
|
569
|
-
/** Registers a menu item with the menu. */
|
|
570
|
-
addItem(item) {
|
|
571
|
-
// We register the items through this method, rather than picking them up through
|
|
572
|
-
// `ContentChildren`, because we need the items to be picked up by their closest
|
|
573
|
-
// `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,
|
|
574
|
-
// all descendant items will bleed into the top-level menu in the case where the consumer
|
|
575
|
-
// has `seam-menu` instances nested inside each other.
|
|
576
|
-
if (this._items.indexOf(item) === -1) {
|
|
577
|
-
this._items.push(item);
|
|
578
|
-
this._itemChanges.next(this._items);
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
/** Removes an item from the menu. */
|
|
582
|
-
removeItem(item) {
|
|
583
|
-
const index = this._items.indexOf(item);
|
|
584
|
-
if (this._items.indexOf(item) > -1) {
|
|
585
|
-
this._items.splice(index, 1);
|
|
586
|
-
this._itemChanges.next(this._items);
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
/** Sets the footer component. */
|
|
590
|
-
setFooter(footer) {
|
|
591
|
-
this._footer.next(footer);
|
|
592
|
-
}
|
|
593
|
-
/** Sets the header component. */
|
|
594
|
-
setHeader(header) {
|
|
595
|
-
this._header.next(header);
|
|
596
|
-
}
|
|
597
|
-
_dropdownMenuClick(event) {
|
|
598
|
-
// This is needed, because some menu's will get stuck open if the component
|
|
599
|
-
// managing the menu is destroyed before the menu finishes its cleanup. I
|
|
600
|
-
// may look for a fix to that eventually.
|
|
601
|
-
this.closed.emit('click');
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
605
|
-
MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MenuComponent, selector: "seam-menu", inputs: { menuClass: "menuClass", baseWidth: "baseWidth", animationType: "animationType" }, outputs: { closed: "closed" }, providers: [LIB_MENU], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["seamMenu"], ngImport: i0, template: "<ng-template>\n <div class=\"seam-menu-container\" @slideDown\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
|
|
606
|
-
trigger('slideDown', [
|
|
607
|
-
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
608
|
-
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
609
|
-
])
|
|
610
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
611
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, decorators: [{
|
|
612
|
-
type: Component,
|
|
613
|
-
args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
|
|
614
|
-
trigger('slideDown', [
|
|
615
|
-
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
616
|
-
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
617
|
-
])
|
|
618
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'seamMenu', template: "<ng-template>\n <div class=\"seam-menu-container\" @slideDown\n [class.seam-menu-anim--slide]=\"animationType==='slide'\"\n [class.seam-menu-anim--fade]=\"animationType==='fade'\">\n <div class=\"dropdown-menu show position-static{{ menuClass ? ' ' + menuClass : '' }}\"\n [style.width]=\"_menuWidth$ | async\"\n [class.pt-0]=\"hasHeader$ | async\"\n [class.pb-0]=\"hasFooter$ | async\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"_dropdownMenuClick($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".seam-menu-container.seam-menu-anim--slide{overflow:hidden}.seam-menu-container.ng-animating,.dropdown-menu.ng-animating{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}\n"] }]
|
|
619
|
-
}], ctorParameters: function () { return []; }, propDecorators: { templateRef: [{
|
|
620
|
-
type: ViewChild,
|
|
621
|
-
args: [TemplateRef]
|
|
622
|
-
}], closed: [{
|
|
623
|
-
type: Output
|
|
624
|
-
}], menuClass: [{
|
|
625
|
-
type: Input
|
|
626
|
-
}], baseWidth: [{
|
|
627
|
-
type: Input
|
|
628
|
-
}], animationType: [{
|
|
629
|
-
type: Input
|
|
630
|
-
}] } });
|
|
631
|
-
|
|
632
845
|
// TODO: Split up the button and anchor classes.
|
|
633
846
|
class MenuFooterActionComponent {
|
|
634
847
|
get _attrType() { return this.type; }
|
|
@@ -654,9 +867,9 @@ class MenuFooterActionComponent {
|
|
|
654
867
|
return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a';
|
|
655
868
|
}
|
|
656
869
|
}
|
|
657
|
-
MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
658
|
-
MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
870
|
+
MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
871
|
+
MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuFooterActionComponent, selector: "button[seamMenuFooterAction],a[seamMenuFooterAction]", inputs: { type: "type" }, host: { properties: { "attr.type": "this._attrType", "class.btn": "this._classBtn", "class.btn-link": "this._classBtnLink", "style.padding.px": "this._stylePadding", "style.border.px": "this._styleBorder", "style.display.px": "this._styleDisplay" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
|
|
660
873
|
type: Component,
|
|
661
874
|
args: [{ selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
662
875
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _attrType: [{
|
|
@@ -696,9 +909,9 @@ class MenuFooterComponent {
|
|
|
696
909
|
}
|
|
697
910
|
}
|
|
698
911
|
}
|
|
699
|
-
MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
700
|
-
MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
912
|
+
MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
913
|
+
MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuFooterComponent, selector: "seam-menu-footer", host: { classAttribute: "d-flex flex-column text-center bg-light border-top rounded-bottom py-2" }, ngImport: i0, template: "<ng-content select=\"a[seamMenuFooterAction],button[seamMenuFooterAction]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
914
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterComponent, decorators: [{
|
|
702
915
|
type: Component,
|
|
703
916
|
args: [{ selector: 'seam-menu-footer', host: {
|
|
704
917
|
'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'
|
|
@@ -727,9 +940,9 @@ class MenuHeaderComponent {
|
|
|
727
940
|
}
|
|
728
941
|
}
|
|
729
942
|
}
|
|
730
|
-
MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
731
|
-
MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
732
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
943
|
+
MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuHeaderComponent, deps: [{ token: THESEAM_MENU_PANEL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
944
|
+
MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MenuHeaderComponent, selector: "seam-menu-header", host: { classAttribute: "d-flex flex-column bg-light border-bottom rounded-top py-2 mb-2" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuHeaderComponent, decorators: [{
|
|
733
946
|
type: Component,
|
|
734
947
|
args: [{ selector: 'seam-menu-header', host: {
|
|
735
948
|
'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'
|
|
@@ -745,8 +958,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
745
958
|
|
|
746
959
|
class TheSeamMenuModule {
|
|
747
960
|
}
|
|
748
|
-
TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
749
|
-
TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
961
|
+
TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
962
|
+
TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
|
|
750
963
|
MenuToggleDirective,
|
|
751
964
|
MenuItemComponent,
|
|
752
965
|
MenuDividerComponent,
|
|
@@ -763,11 +976,11 @@ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
763
976
|
MenuFooterComponent,
|
|
764
977
|
MenuFooterActionComponent,
|
|
765
978
|
MenuHeaderComponent] });
|
|
766
|
-
TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
979
|
+
TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
|
|
767
980
|
OverlayModule,
|
|
768
981
|
TheSeamIconModule, TheSeamIconModule,
|
|
769
982
|
OverlayModule] });
|
|
770
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, decorators: [{
|
|
771
984
|
type: NgModule,
|
|
772
985
|
args: [{
|
|
773
986
|
declarations: [
|