@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,22 +185,35 @@ class MenuItemComponent extends _seamMenuItemMixinBase {
|
|
|
174
185
|
}
|
|
175
186
|
return output.trim();
|
|
176
187
|
}
|
|
188
|
+
_setHighlighted(isHighlighted) {
|
|
189
|
+
this._highlighted = isHighlighted;
|
|
190
|
+
this._changeDetectorRef?.markForCheck();
|
|
191
|
+
}
|
|
192
|
+
_setTriggersSubmenu(triggersSubmenu) {
|
|
193
|
+
this._triggersSubmenu = triggersSubmenu;
|
|
194
|
+
this._changeDetectorRef?.markForCheck();
|
|
195
|
+
}
|
|
196
|
+
_hasFocus() {
|
|
197
|
+
return this._document && this._document.activeElement === this._getHostElement();
|
|
198
|
+
}
|
|
177
199
|
}
|
|
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.
|
|
200
|
+
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 });
|
|
201
|
+
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 });
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
181
203
|
type: Component,
|
|
182
204
|
args: [{ selector: '[seamMenuItem]', exportAs: 'seamMenuItem', inputs: ['disabled'], host: {
|
|
183
205
|
'[attr.role]': 'role',
|
|
184
|
-
'class': 'dropdown-item',
|
|
206
|
+
'class': 'seam-menu-item dropdown-item',
|
|
207
|
+
'[class.seam-menu-item-highlighted]': '_highlighted',
|
|
208
|
+
'[class.seam-menu-item-submenu-trigger]': '_triggersSubmenu',
|
|
185
209
|
'[attr.tabindex]': '_getTabIndex()',
|
|
186
210
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
187
211
|
'[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
|
|
212
|
+
}, 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
213
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
190
214
|
type: Inject,
|
|
191
215
|
args: [DOCUMENT]
|
|
192
|
-
}] }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
|
|
216
|
+
}] }, { type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
193
217
|
type: Inject,
|
|
194
218
|
args: [THESEAM_MENU_PANEL]
|
|
195
219
|
}, {
|
|
@@ -200,6 +224,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
200
224
|
type: Input
|
|
201
225
|
}], iconClass: [{
|
|
202
226
|
type: Input
|
|
227
|
+
}], sublevelIcon: [{
|
|
228
|
+
type: Input
|
|
229
|
+
}], subLevelIconClass: [{
|
|
230
|
+
type: Input
|
|
203
231
|
}], badgeText: [{
|
|
204
232
|
type: Input
|
|
205
233
|
}], badgeTheme: [{
|
|
@@ -212,16 +240,261 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
212
240
|
args: ['mouseenter']
|
|
213
241
|
}] } });
|
|
214
242
|
|
|
243
|
+
let menuPanelUid = 0;
|
|
244
|
+
const LIB_MENU = {
|
|
245
|
+
provide: THESEAM_MENU_PANEL,
|
|
246
|
+
// tslint:disable-next-line:no-use-before-declare
|
|
247
|
+
useExisting: forwardRef(() => MenuComponent)
|
|
248
|
+
};
|
|
249
|
+
class MenuComponent {
|
|
250
|
+
/**
|
|
251
|
+
* Defines a width for a menu that will scale down if the window innerWidth is
|
|
252
|
+
* smaller than the value.
|
|
253
|
+
*/
|
|
254
|
+
get baseWidth() { return this._baseWidth.value; }
|
|
255
|
+
set baseWidth(value) {
|
|
256
|
+
const _val = coerceNumberProperty(value, null);
|
|
257
|
+
if (_val !== this._baseWidth.value) {
|
|
258
|
+
this._baseWidth.next(_val);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
constructor() {
|
|
262
|
+
this._ngUnsubscribe = new Subject();
|
|
263
|
+
this.panelId = `menu-panel-${menuPanelUid++}`;
|
|
264
|
+
this._footer = new BehaviorSubject(undefined);
|
|
265
|
+
this.hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined));
|
|
266
|
+
this._header = new BehaviorSubject(undefined);
|
|
267
|
+
this.hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined));
|
|
268
|
+
/** Menu items inside the current menu. */
|
|
269
|
+
this._items = [];
|
|
270
|
+
/** Emits whenever the amount of menu items changes. */
|
|
271
|
+
this._itemChanges = new Subject();
|
|
272
|
+
/** Subscription to tab events on the menu panel */
|
|
273
|
+
this._tabSubscription = Subscription.EMPTY;
|
|
274
|
+
/** Emits whenever an animation on the menu completes. */
|
|
275
|
+
this._animationDone = new Subject();
|
|
276
|
+
/** Whether the menu is animating. */
|
|
277
|
+
this._isAnimating = false;
|
|
278
|
+
this.closed = new EventEmitter();
|
|
279
|
+
this._baseWidth = new BehaviorSubject(null);
|
|
280
|
+
this.animationType = 'slide';
|
|
281
|
+
this._menuWidth$ = this._baseWidth.pipe(switchMap(baseWidth => {
|
|
282
|
+
if (baseWidth) {
|
|
283
|
+
return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`));
|
|
284
|
+
}
|
|
285
|
+
return of(undefined);
|
|
286
|
+
}), distinctUntilChanged(), takeUntil(this._ngUnsubscribe));
|
|
287
|
+
}
|
|
288
|
+
ngOnDestroy() {
|
|
289
|
+
this._tabSubscription.unsubscribe();
|
|
290
|
+
this.closed.complete();
|
|
291
|
+
this._ngUnsubscribe.next(undefined);
|
|
292
|
+
this._ngUnsubscribe.complete();
|
|
293
|
+
}
|
|
294
|
+
ngAfterContentInit() {
|
|
295
|
+
this._keyManager = new FocusKeyManager(this._items).withWrap().withTypeAhead();
|
|
296
|
+
this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));
|
|
297
|
+
}
|
|
298
|
+
/** Stream that emits whenever the hovered menu item changes. */
|
|
299
|
+
_hovered() {
|
|
300
|
+
return this._itemChanges.pipe(startWith(this._items), switchMap(items => merge(...items.map(item => item._hovered))));
|
|
301
|
+
}
|
|
302
|
+
/** Handle a keyboard event from the menu, delegating to the appropriate action. */
|
|
303
|
+
_handleKeydown(event) {
|
|
304
|
+
// tslint:disable-next-line:deprecation
|
|
305
|
+
const keyCode = event.keyCode;
|
|
306
|
+
const manager = this._keyManager;
|
|
307
|
+
switch (keyCode) {
|
|
308
|
+
case ESCAPE:
|
|
309
|
+
if (!hasModifierKey(event)) {
|
|
310
|
+
event.preventDefault();
|
|
311
|
+
this.closed.emit('keydown');
|
|
312
|
+
}
|
|
313
|
+
break;
|
|
314
|
+
case LEFT_ARROW:
|
|
315
|
+
if (this.parentMenu && this.direction === 'ltr') {
|
|
316
|
+
this.closed.emit('keydown');
|
|
317
|
+
}
|
|
318
|
+
break;
|
|
319
|
+
case RIGHT_ARROW:
|
|
320
|
+
if (this.parentMenu && this.direction === 'rtl') {
|
|
321
|
+
this.closed.emit('keydown');
|
|
322
|
+
}
|
|
323
|
+
break;
|
|
324
|
+
case HOME:
|
|
325
|
+
case END:
|
|
326
|
+
if (!hasModifierKey(event)) {
|
|
327
|
+
keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive();
|
|
328
|
+
event.preventDefault();
|
|
329
|
+
}
|
|
330
|
+
break;
|
|
331
|
+
default:
|
|
332
|
+
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
333
|
+
manager?.setFocusOrigin('keyboard');
|
|
334
|
+
}
|
|
335
|
+
manager?.onKeydown(event);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Focus the first item in the menu.
|
|
340
|
+
* @param origin Action from which the focus originated. Used to set the correct styling.
|
|
341
|
+
*/
|
|
342
|
+
focusFirstItem(origin = 'program') {
|
|
343
|
+
this._keyManager?.setFocusOrigin(origin).setFirstItemActive();
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Resets the active item in the menu. This is used when the menu is opened, allowing
|
|
347
|
+
* the user to start from the first option when pressing the down arrow.
|
|
348
|
+
*/
|
|
349
|
+
resetActiveItem() {
|
|
350
|
+
this._keyManager?.setActiveItem(-1);
|
|
351
|
+
}
|
|
352
|
+
/** Registers a menu item with the menu. */
|
|
353
|
+
addItem(item) {
|
|
354
|
+
// We register the items through this method, rather than picking them up through
|
|
355
|
+
// `ContentChildren`, because we need the items to be picked up by their closest
|
|
356
|
+
// `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,
|
|
357
|
+
// all descendant items will bleed into the top-level menu in the case where the consumer
|
|
358
|
+
// has `seam-menu` instances nested inside each other.
|
|
359
|
+
if (this._items.indexOf(item) === -1) {
|
|
360
|
+
this._items.push(item);
|
|
361
|
+
this._itemChanges.next(this._items);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/** Removes an item from the menu. */
|
|
365
|
+
removeItem(item) {
|
|
366
|
+
const index = this._items.indexOf(item);
|
|
367
|
+
if (this._items.indexOf(item) > -1) {
|
|
368
|
+
this._items.splice(index, 1);
|
|
369
|
+
this._itemChanges.next(this._items);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
/** Sets the footer component. */
|
|
373
|
+
setFooter(footer) {
|
|
374
|
+
this._footer.next(footer);
|
|
375
|
+
}
|
|
376
|
+
/** Sets the header component. */
|
|
377
|
+
setHeader(header) {
|
|
378
|
+
this._header.next(header);
|
|
379
|
+
}
|
|
380
|
+
_dropdownMenuClick(event) {
|
|
381
|
+
// This is needed, because some menu's will get stuck open if the component
|
|
382
|
+
// managing the menu is destroyed before the menu finishes its cleanup. I
|
|
383
|
+
// may look for a fix to that eventually.
|
|
384
|
+
this.closed.emit('click');
|
|
385
|
+
}
|
|
386
|
+
/** Callback that is invoked when the panel animation completes. */
|
|
387
|
+
_onAnimationDone(event) {
|
|
388
|
+
this._animationDone.next(event);
|
|
389
|
+
this._isAnimating = false;
|
|
390
|
+
}
|
|
391
|
+
_onAnimationStart(event) {
|
|
392
|
+
this._isAnimating = true;
|
|
393
|
+
// Scroll the content element to the top as soon as the animation starts. This is necessary,
|
|
394
|
+
// because we move focus to the first item while it's still being animated, which can throw
|
|
395
|
+
// the browser off when it determines the scroll position. Alternatively we can move focus
|
|
396
|
+
// when the animation is done, however moving focus asynchronously will interrupt screen
|
|
397
|
+
// readers which are in the process of reading out the menu already. We take the `element`
|
|
398
|
+
// from the `event` since we can't use a `ViewChild` to access the pane.
|
|
399
|
+
if (event.toState === 'enter' && this._keyManager?.activeItemIndex === 0) {
|
|
400
|
+
event.element.scrollTop = 0;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
405
|
+
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: [
|
|
406
|
+
trigger('slideDown', [
|
|
407
|
+
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
408
|
+
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
409
|
+
])
|
|
410
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuComponent, decorators: [{
|
|
412
|
+
type: Component,
|
|
413
|
+
args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
|
|
414
|
+
trigger('slideDown', [
|
|
415
|
+
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
416
|
+
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
417
|
+
])
|
|
418
|
+
], 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"] }]
|
|
419
|
+
}], ctorParameters: function () { return []; }, propDecorators: { templateRef: [{
|
|
420
|
+
type: ViewChild,
|
|
421
|
+
args: [TemplateRef]
|
|
422
|
+
}], closed: [{
|
|
423
|
+
type: Output
|
|
424
|
+
}], menuClass: [{
|
|
425
|
+
type: Input
|
|
426
|
+
}], baseWidth: [{
|
|
427
|
+
type: Input
|
|
428
|
+
}], animationType: [{
|
|
429
|
+
type: Input
|
|
430
|
+
}] } });
|
|
431
|
+
|
|
215
432
|
/** Options for binding a passive event listener. */
|
|
216
433
|
const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
|
|
217
434
|
class MenuToggleDirective {
|
|
435
|
+
get menu() { return this._menu; }
|
|
436
|
+
set menu(menu) {
|
|
437
|
+
if (menu === this._menu) {
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
this._menu = menu;
|
|
441
|
+
this._menuClosedSubscription.unsubscribe();
|
|
442
|
+
if (menu) {
|
|
443
|
+
if (menu === this._parentMenuComponent && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
444
|
+
throw Error(`seamMenuToggle: menu cannot contain its own trigger. Assign a menu that is ` +
|
|
445
|
+
`not a parent of the trigger or move the trigger outside of the menu.`);
|
|
446
|
+
}
|
|
447
|
+
this._menuClosedSubscription = menu.closed.subscribe((reason) => {
|
|
448
|
+
// this._destroyMenu(reason)
|
|
449
|
+
this.closeMenu();
|
|
450
|
+
// If a click closed the menu, we should close the entire chain of nested menus.
|
|
451
|
+
if ((reason === 'click' || reason === 'tab') && this._parentMenuComponent) {
|
|
452
|
+
this._parentMenuComponent.closed.emit(reason);
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu());
|
|
457
|
+
}
|
|
218
458
|
set positions(val) {
|
|
219
459
|
this._positions = val;
|
|
220
460
|
if (this.menuOpen()) {
|
|
221
461
|
this._overlayRef?.updatePositionStrategy(this.getOverlayPosition(this._elementRef.nativeElement));
|
|
222
462
|
}
|
|
223
463
|
}
|
|
224
|
-
get positions() {
|
|
464
|
+
get positions() {
|
|
465
|
+
const positions = this._positions;
|
|
466
|
+
if (this.triggersSubmenu()) {
|
|
467
|
+
return [
|
|
468
|
+
{
|
|
469
|
+
originX: 'start',
|
|
470
|
+
originY: 'top',
|
|
471
|
+
overlayX: 'end',
|
|
472
|
+
overlayY: 'top',
|
|
473
|
+
offsetY: -11,
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
originX: 'end',
|
|
477
|
+
originY: 'top',
|
|
478
|
+
overlayX: 'start',
|
|
479
|
+
overlayY: 'top',
|
|
480
|
+
offsetY: -11,
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
originX: 'start',
|
|
484
|
+
originY: 'bottom',
|
|
485
|
+
overlayX: 'end',
|
|
486
|
+
overlayY: 'top',
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
originX: 'start',
|
|
490
|
+
originY: 'top',
|
|
491
|
+
overlayX: 'start',
|
|
492
|
+
overlayY: 'bottom',
|
|
493
|
+
},
|
|
494
|
+
];
|
|
495
|
+
}
|
|
496
|
+
return positions;
|
|
497
|
+
}
|
|
225
498
|
_onMouseDown(event) {
|
|
226
499
|
if (!isFakeMousedownFromScreenReader(event)) {
|
|
227
500
|
// Since right or middle button clicks won't trigger the `click` event,
|
|
@@ -230,41 +503,63 @@ class MenuToggleDirective {
|
|
|
230
503
|
// Since clicking on the trigger won't close the menu if it opens a sub-menu,
|
|
231
504
|
// we should prevent focus from moving onto it via click to avoid the
|
|
232
505
|
// highlight from lingering on the menu item.
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
506
|
+
if (this.triggersSubmenu()) {
|
|
507
|
+
event.preventDefault();
|
|
508
|
+
}
|
|
236
509
|
}
|
|
237
510
|
}
|
|
238
511
|
_onKeydown(event) {
|
|
239
512
|
this._openedBy = null;
|
|
513
|
+
// console.log('keydown', event)
|
|
240
514
|
// tslint:disable-next-line:deprecation
|
|
241
515
|
const keyCode = event.keyCode;
|
|
242
516
|
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
243
517
|
if (this.menuOpen()) {
|
|
244
|
-
this.
|
|
518
|
+
this.menu?.focusFirstItem(this._openedBy || 'program');
|
|
245
519
|
}
|
|
246
520
|
}
|
|
521
|
+
else if (keyCode === ESCAPE) {
|
|
522
|
+
this.closeMenu();
|
|
523
|
+
}
|
|
524
|
+
// Pressing enter on the trigger will trigger the click handler later.
|
|
525
|
+
if (keyCode === ENTER || keyCode === SPACE) {
|
|
526
|
+
this._openedBy = 'keyboard';
|
|
527
|
+
}
|
|
528
|
+
if (this.triggersSubmenu() &&
|
|
529
|
+
((keyCode === RIGHT_ARROW && this.dir === 'ltr') ||
|
|
530
|
+
(keyCode === LEFT_ARROW && this.dir === 'rtl'))) {
|
|
531
|
+
this._openedBy = 'keyboard';
|
|
532
|
+
this.openMenu();
|
|
533
|
+
}
|
|
247
534
|
}
|
|
248
535
|
_onClick(event) {
|
|
249
|
-
this.
|
|
536
|
+
if (this.triggersSubmenu()) {
|
|
537
|
+
// Stop event propagation to avoid closing the parent menu.
|
|
538
|
+
event.stopPropagation();
|
|
539
|
+
this.openMenu();
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
this.toggle();
|
|
543
|
+
}
|
|
250
544
|
}
|
|
251
545
|
_onDocumentKeydown(event) {
|
|
252
546
|
if (event.keyCode === ESCAPE) {
|
|
253
547
|
this.closeMenu();
|
|
254
548
|
}
|
|
255
549
|
}
|
|
256
|
-
|
|
257
|
-
// _onDocumentMouseDown(event: any) {
|
|
258
|
-
// console.log('outside click')
|
|
259
|
-
// }
|
|
260
|
-
constructor(_elementRef, _viewContainerRef, _overlay, _focusMonitor) {
|
|
550
|
+
constructor(_elementRef, _viewContainerRef, _overlay, _focusMonitor, _parentMenu, _menuItemInstance, _dir) {
|
|
261
551
|
this._elementRef = _elementRef;
|
|
262
552
|
this._viewContainerRef = _viewContainerRef;
|
|
263
553
|
this._overlay = _overlay;
|
|
264
554
|
this._focusMonitor = _focusMonitor;
|
|
555
|
+
this._parentMenu = _parentMenu;
|
|
556
|
+
this._menuItemInstance = _menuItemInstance;
|
|
557
|
+
this._dir = _dir;
|
|
265
558
|
this._active = false;
|
|
266
559
|
this._menuClosedSubscription = Subscription.EMPTY;
|
|
267
560
|
this._closingActionsSubscription = Subscription.EMPTY;
|
|
561
|
+
this._hoverSubscription = Subscription.EMPTY;
|
|
562
|
+
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
268
563
|
this.restoreFocus = true;
|
|
269
564
|
// Tracking input type is necessary so it's possible to only auto-focus
|
|
270
565
|
// the first item of the list when the menu is opened via the keyboard
|
|
@@ -295,11 +590,16 @@ class MenuToggleDirective {
|
|
|
295
590
|
overlayY: 'bottom',
|
|
296
591
|
},
|
|
297
592
|
];
|
|
593
|
+
/** Event emitted when the associated menu is opened. */
|
|
594
|
+
this.menuOpened = new EventEmitter();
|
|
595
|
+
/** Event emitted when the associated menu is opened. */
|
|
596
|
+
this.menuClosed = new EventEmitter();
|
|
298
597
|
/**
|
|
299
598
|
* Handles touch start events on the trigger.
|
|
300
599
|
* Needs to be an arrow function so we can easily use addEventListener and removeEventListener.
|
|
301
600
|
*/
|
|
302
601
|
this._handleTouchStart = () => this._openedBy = 'touch';
|
|
602
|
+
this._parentMenuComponent = this._parentMenu instanceof MenuComponent ? this._parentMenu : undefined;
|
|
303
603
|
this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
304
604
|
}
|
|
305
605
|
ngOnDestroy() {
|
|
@@ -307,6 +607,10 @@ class MenuToggleDirective {
|
|
|
307
607
|
this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
308
608
|
this._menuClosedSubscription.unsubscribe();
|
|
309
609
|
this._closingActionsSubscription.unsubscribe();
|
|
610
|
+
this._hoverSubscription.unsubscribe();
|
|
611
|
+
}
|
|
612
|
+
ngAfterContentInit() {
|
|
613
|
+
this._handleHover();
|
|
310
614
|
}
|
|
311
615
|
toggle() {
|
|
312
616
|
if (this._active) {
|
|
@@ -317,23 +621,23 @@ class MenuToggleDirective {
|
|
|
317
621
|
}
|
|
318
622
|
}
|
|
319
623
|
openMenu() {
|
|
320
|
-
if (this._active || !this.
|
|
624
|
+
if (this._active || !this.menu) {
|
|
321
625
|
return;
|
|
322
626
|
}
|
|
323
627
|
this._active = true;
|
|
324
628
|
this._overlayRef = this._overlay.create({
|
|
325
|
-
hasBackdrop:
|
|
326
|
-
backdropClass: 'transparent',
|
|
629
|
+
hasBackdrop: !this._parentMenuComponent,
|
|
630
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
327
631
|
positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),
|
|
328
632
|
});
|
|
329
|
-
const tpl = this.
|
|
633
|
+
const tpl = this.menu.templateRef;
|
|
330
634
|
if (!tpl) {
|
|
331
635
|
throw Error(`Menu template not found.`);
|
|
332
636
|
}
|
|
333
637
|
this._overlayRef.attach(new TemplatePortal(tpl, this._viewContainerRef));
|
|
334
638
|
this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());
|
|
335
|
-
this._initMenu();
|
|
336
|
-
this._menuClosedSubscription = this.
|
|
639
|
+
this._initMenu(this.menu);
|
|
640
|
+
this._menuClosedSubscription = this.menu.closed.subscribe(v => {
|
|
337
641
|
// console.log('closed', v)
|
|
338
642
|
this.closeMenu();
|
|
339
643
|
});
|
|
@@ -341,10 +645,22 @@ class MenuToggleDirective {
|
|
|
341
645
|
// console.log('backdropClick', v)
|
|
342
646
|
// })
|
|
343
647
|
}
|
|
648
|
+
/** The text direction of the containing app. */
|
|
649
|
+
get dir() {
|
|
650
|
+
return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
|
|
651
|
+
}
|
|
652
|
+
/** Whether the menu triggers a sub-menu or a top-level one. */
|
|
653
|
+
triggersSubmenu() {
|
|
654
|
+
return !!(this._menuItemInstance && this._parentMenuComponent && this.menu);
|
|
655
|
+
}
|
|
344
656
|
closeMenu() {
|
|
345
657
|
if (!this._active) {
|
|
346
658
|
return;
|
|
347
659
|
}
|
|
660
|
+
let emitCloseEvent = false;
|
|
661
|
+
if (this.menuOpen()) {
|
|
662
|
+
emitCloseEvent = true;
|
|
663
|
+
}
|
|
348
664
|
if (this._overlayRef?.hasAttached()) {
|
|
349
665
|
this._overlayRef?.detach();
|
|
350
666
|
}
|
|
@@ -352,6 +668,9 @@ class MenuToggleDirective {
|
|
|
352
668
|
this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
353
669
|
this._menuClosedSubscription.unsubscribe();
|
|
354
670
|
this._closingActionsSubscription.unsubscribe();
|
|
671
|
+
if (emitCloseEvent) {
|
|
672
|
+
this.menu?.closed.emit();
|
|
673
|
+
}
|
|
355
674
|
this._active = false;
|
|
356
675
|
}
|
|
357
676
|
menuOpen() {
|
|
@@ -381,19 +700,19 @@ class MenuToggleDirective {
|
|
|
381
700
|
* This method sets the menu state to open and focuses the first item if
|
|
382
701
|
* the menu was opened via the keyboard.
|
|
383
702
|
*/
|
|
384
|
-
_initMenu() {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
// this._setMenuElevation()
|
|
388
|
-
|
|
389
|
-
|
|
703
|
+
_initMenu(menu) {
|
|
704
|
+
menu.parentMenu = this.triggersSubmenu() ? this._parentMenu : undefined;
|
|
705
|
+
menu.direction = this.dir;
|
|
706
|
+
// this._setMenuElevation(menu)
|
|
707
|
+
menu.focusFirstItem(this._openedBy || 'program');
|
|
708
|
+
this._setIsMenuOpen(true);
|
|
390
709
|
}
|
|
391
710
|
/**
|
|
392
711
|
* This method resets the menu when it's closed, most importantly restoring
|
|
393
712
|
* focus to the menu trigger if the menu was opened via the keyboard.
|
|
394
713
|
*/
|
|
395
714
|
_resetMenu() {
|
|
396
|
-
|
|
715
|
+
this._setIsMenuOpen(false);
|
|
397
716
|
// We should reset focus if the user is navigating using a keyboard or
|
|
398
717
|
// if we have a top-level trigger which might cause focus to be lost
|
|
399
718
|
// when clicking on the backdrop.
|
|
@@ -403,43 +722,96 @@ class MenuToggleDirective {
|
|
|
403
722
|
// `keyboard` so we don't have to specify which one it is.
|
|
404
723
|
this.focus();
|
|
405
724
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
725
|
+
else if (!this.triggersSubmenu()) {
|
|
726
|
+
this.focus(this._openedBy);
|
|
727
|
+
}
|
|
409
728
|
}
|
|
410
729
|
this._openedBy = null;
|
|
411
730
|
}
|
|
731
|
+
// set state rather than toggle to support triggers sharing a menu
|
|
732
|
+
_setIsMenuOpen(isOpen) {
|
|
733
|
+
if (isOpen !== this.menuOpen()) {
|
|
734
|
+
// this._menuOpen = isOpen
|
|
735
|
+
this.menuOpen() ? this.menuOpened.emit() : this.menuClosed.emit();
|
|
736
|
+
if (this.triggersSubmenu()) {
|
|
737
|
+
this._menuItemInstance?._setHighlighted(isOpen);
|
|
738
|
+
}
|
|
739
|
+
this._changeDetectorRef.markForCheck();
|
|
740
|
+
}
|
|
741
|
+
}
|
|
412
742
|
/** Returns a stream that emits whenever an action that should close the menu occurs. */
|
|
413
743
|
_menuClosingActions() {
|
|
414
744
|
const backdrop = this._overlayRef?.backdropClick() ?? of();
|
|
415
745
|
const detachments = this._overlayRef?.detachments() ?? of();
|
|
416
|
-
|
|
417
|
-
const
|
|
418
|
-
// const hover = this._parentMenu ? this._parentMenu._hovered().pipe(
|
|
419
|
-
// filter(active => active !== this._menuItemInstance),
|
|
420
|
-
// filter(() => this._menuOpen)
|
|
421
|
-
// ) : of()
|
|
422
|
-
const hover = of();
|
|
746
|
+
const parentClose = this._parentMenu ? this._parentMenu.closed : of();
|
|
747
|
+
const hover = this._parentMenuComponent ? this._parentMenuComponent._hovered().pipe(filter(active => active !== this._menuItemInstance), filter(() => this.menuOpen())) : of();
|
|
423
748
|
return merge(backdrop, parentClose, hover, detachments);
|
|
424
749
|
}
|
|
750
|
+
/** Handles the cases where the user hovers over the trigger. */
|
|
751
|
+
_handleHover() {
|
|
752
|
+
// Subscribe to changes in the hovered item in order to toggle the panel.
|
|
753
|
+
if (!this.triggersSubmenu() || !this._parentMenuComponent) {
|
|
754
|
+
return;
|
|
755
|
+
}
|
|
756
|
+
this._hoverSubscription = this._parentMenuComponent
|
|
757
|
+
._hovered()
|
|
758
|
+
// Since we might have multiple competing triggers for the same menu (e.g. a sub-menu
|
|
759
|
+
// with different data and triggers), we have to delay it by a tick to ensure that
|
|
760
|
+
// it won't be closed immediately after it is opened.
|
|
761
|
+
.pipe(filter(active => active === this._menuItemInstance && !active.disabled), delay(0, asapScheduler))
|
|
762
|
+
.subscribe(() => {
|
|
763
|
+
this._openedBy = 'mouse';
|
|
764
|
+
// If the same menu is used between multiple triggers, it might still be animating
|
|
765
|
+
// while the new trigger tries to re-open it. Wait for the animation to finish
|
|
766
|
+
// before doing so. Also interrupt if the user moves to another item.
|
|
767
|
+
if (this.menu instanceof MenuComponent && this.menu._isAnimating) {
|
|
768
|
+
// We need the `delay(0)` here in order to avoid
|
|
769
|
+
// 'changed after checked' errors in some cases. See #12194.
|
|
770
|
+
this.menu._animationDone
|
|
771
|
+
.pipe(take(1), delay(0, asapScheduler), takeUntil$1(this._parentMenuComponent._hovered()))
|
|
772
|
+
.subscribe(() => this.openMenu());
|
|
773
|
+
}
|
|
774
|
+
else {
|
|
775
|
+
this.openMenu();
|
|
776
|
+
}
|
|
777
|
+
});
|
|
778
|
+
}
|
|
425
779
|
}
|
|
426
|
-
MenuToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
427
|
-
MenuToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
428
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
780
|
+
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 });
|
|
781
|
+
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 });
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuToggleDirective, decorators: [{
|
|
429
783
|
type: Directive,
|
|
430
784
|
args: [{
|
|
431
785
|
selector: '[seamMenuToggle]',
|
|
432
786
|
// tslint:disable-next-line:use-host-property-decorator
|
|
433
787
|
host: {
|
|
788
|
+
'class': 'seam-menu-toggle',
|
|
434
789
|
'aria-haspopup': 'true',
|
|
435
|
-
'[attr.aria-expanded]': 'menuOpen() || null'
|
|
790
|
+
'[attr.aria-expanded]': 'menuOpen() || null',
|
|
791
|
+
'[attr.aria-controls]': 'menuOpen() ? menu.panelId : null',
|
|
436
792
|
},
|
|
437
793
|
exportAs: 'seamMenuToggle'
|
|
438
794
|
}]
|
|
439
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$1.Overlay }, { type: i1.FocusMonitor }
|
|
440
|
-
|
|
795
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$1.Overlay }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
|
|
796
|
+
type: Inject,
|
|
797
|
+
args: [THESEAM_MENU_PANEL]
|
|
798
|
+
}, {
|
|
799
|
+
type: Optional
|
|
800
|
+
}] }, { type: MenuItemComponent, decorators: [{
|
|
801
|
+
type: Optional
|
|
802
|
+
}, {
|
|
803
|
+
type: Self
|
|
804
|
+
}] }, { type: i4.Directionality, decorators: [{
|
|
805
|
+
type: Optional
|
|
806
|
+
}] }]; }, propDecorators: { menu: [{
|
|
807
|
+
type: Input,
|
|
808
|
+
args: ['seamMenuToggle']
|
|
441
809
|
}], positions: [{
|
|
442
810
|
type: Input
|
|
811
|
+
}], menuOpened: [{
|
|
812
|
+
type: Output
|
|
813
|
+
}], menuClosed: [{
|
|
814
|
+
type: Output
|
|
443
815
|
}], _onMouseDown: [{
|
|
444
816
|
type: HostListener,
|
|
445
817
|
args: ['mousedown', ['$event']]
|
|
@@ -454,172 +826,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
454
826
|
args: ['document:keydown', ['$event']]
|
|
455
827
|
}] } });
|
|
456
828
|
|
|
457
|
-
const LIB_MENU = {
|
|
458
|
-
provide: THESEAM_MENU_PANEL,
|
|
459
|
-
// tslint:disable-next-line:no-use-before-declare
|
|
460
|
-
useExisting: forwardRef(() => MenuComponent)
|
|
461
|
-
};
|
|
462
|
-
class MenuComponent {
|
|
463
|
-
/**
|
|
464
|
-
* Defines a width for a menu that will scale down if the window innerWidth is
|
|
465
|
-
* smaller than the value.
|
|
466
|
-
*/
|
|
467
|
-
get baseWidth() { return this._baseWidth.value; }
|
|
468
|
-
set baseWidth(value) {
|
|
469
|
-
const _val = coerceNumberProperty(value, null);
|
|
470
|
-
if (_val !== this._baseWidth.value) {
|
|
471
|
-
this._baseWidth.next(_val);
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
constructor() {
|
|
475
|
-
this._ngUnsubscribe = new Subject();
|
|
476
|
-
this._footer = new BehaviorSubject(undefined);
|
|
477
|
-
this.hasFooter$ = this._footer.pipe(map(v => v !== null && v !== undefined));
|
|
478
|
-
this._header = new BehaviorSubject(undefined);
|
|
479
|
-
this.hasHeader$ = this._header.pipe(map(v => v !== null && v !== undefined));
|
|
480
|
-
/** Menu items inside the current menu. */
|
|
481
|
-
this._items = [];
|
|
482
|
-
/** Emits whenever the amount of menu items changes. */
|
|
483
|
-
this._itemChanges = new Subject();
|
|
484
|
-
/** Subscription to tab events on the menu panel */
|
|
485
|
-
this._tabSubscription = Subscription.EMPTY;
|
|
486
|
-
this.closed = new EventEmitter();
|
|
487
|
-
this._baseWidth = new BehaviorSubject(null);
|
|
488
|
-
this.animationType = 'slide';
|
|
489
|
-
this._menuWidth$ = this._baseWidth.pipe(switchMap(baseWidth => {
|
|
490
|
-
if (baseWidth) {
|
|
491
|
-
return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`));
|
|
492
|
-
}
|
|
493
|
-
return of(undefined);
|
|
494
|
-
}), distinctUntilChanged(), takeUntil(this._ngUnsubscribe));
|
|
495
|
-
}
|
|
496
|
-
ngOnDestroy() {
|
|
497
|
-
this._tabSubscription.unsubscribe();
|
|
498
|
-
this.closed.complete();
|
|
499
|
-
this._ngUnsubscribe.next(undefined);
|
|
500
|
-
this._ngUnsubscribe.complete();
|
|
501
|
-
}
|
|
502
|
-
ngAfterContentInit() {
|
|
503
|
-
this._keyManager = new FocusKeyManager(this._items).withWrap().withTypeAhead();
|
|
504
|
-
this._tabSubscription = this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));
|
|
505
|
-
}
|
|
506
|
-
/** Stream that emits whenever the hovered menu item changes. */
|
|
507
|
-
_hovered() {
|
|
508
|
-
return this._itemChanges.pipe(startWith(this._items), switchMap(items => merge(...items.map(item => item._hovered))));
|
|
509
|
-
}
|
|
510
|
-
/** Handle a keyboard event from the menu, delegating to the appropriate action. */
|
|
511
|
-
_handleKeydown(event) {
|
|
512
|
-
// tslint:disable-next-line:deprecation
|
|
513
|
-
const keyCode = event.keyCode;
|
|
514
|
-
const manager = this._keyManager;
|
|
515
|
-
switch (keyCode) {
|
|
516
|
-
case ESCAPE:
|
|
517
|
-
if (!hasModifierKey(event)) {
|
|
518
|
-
event.preventDefault();
|
|
519
|
-
this.closed.emit('keydown');
|
|
520
|
-
}
|
|
521
|
-
break;
|
|
522
|
-
// case LEFT_ARROW:
|
|
523
|
-
// if (this.parentMenu && this.direction === 'ltr') {
|
|
524
|
-
// this.closed.emit('keydown')
|
|
525
|
-
// }
|
|
526
|
-
// break
|
|
527
|
-
// case RIGHT_ARROW:
|
|
528
|
-
// if (this.parentMenu && this.direction === 'rtl') {
|
|
529
|
-
// this.closed.emit('keydown')
|
|
530
|
-
// }
|
|
531
|
-
// break
|
|
532
|
-
case HOME:
|
|
533
|
-
case END:
|
|
534
|
-
if (!hasModifierKey(event)) {
|
|
535
|
-
keyCode === HOME ? manager?.setFirstItemActive() : manager?.setLastItemActive();
|
|
536
|
-
event.preventDefault();
|
|
537
|
-
}
|
|
538
|
-
break;
|
|
539
|
-
default:
|
|
540
|
-
if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {
|
|
541
|
-
manager?.setFocusOrigin('keyboard');
|
|
542
|
-
}
|
|
543
|
-
manager?.onKeydown(event);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
/**
|
|
547
|
-
* Focus the first item in the menu.
|
|
548
|
-
* @param origin Action from which the focus originated. Used to set the correct styling.
|
|
549
|
-
*/
|
|
550
|
-
focusFirstItem(origin = 'program') {
|
|
551
|
-
this._keyManager?.setFocusOrigin(origin).setFirstItemActive();
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Resets the active item in the menu. This is used when the menu is opened, allowing
|
|
555
|
-
* the user to start from the first option when pressing the down arrow.
|
|
556
|
-
*/
|
|
557
|
-
resetActiveItem() {
|
|
558
|
-
this._keyManager?.setActiveItem(-1);
|
|
559
|
-
}
|
|
560
|
-
/** Registers a menu item with the menu. */
|
|
561
|
-
addItem(item) {
|
|
562
|
-
// We register the items through this method, rather than picking them up through
|
|
563
|
-
// `ContentChildren`, because we need the items to be picked up by their closest
|
|
564
|
-
// `seam-menu` ancestor. If we used `@ContentChildren(MenuItemComponent, {descendants: true})`,
|
|
565
|
-
// all descendant items will bleed into the top-level menu in the case where the consumer
|
|
566
|
-
// has `seam-menu` instances nested inside each other.
|
|
567
|
-
if (this._items.indexOf(item) === -1) {
|
|
568
|
-
this._items.push(item);
|
|
569
|
-
this._itemChanges.next(this._items);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
/** Removes an item from the menu. */
|
|
573
|
-
removeItem(item) {
|
|
574
|
-
const index = this._items.indexOf(item);
|
|
575
|
-
if (this._items.indexOf(item) > -1) {
|
|
576
|
-
this._items.splice(index, 1);
|
|
577
|
-
this._itemChanges.next(this._items);
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
/** Sets the footer component. */
|
|
581
|
-
setFooter(footer) {
|
|
582
|
-
this._footer.next(footer);
|
|
583
|
-
}
|
|
584
|
-
/** Sets the header component. */
|
|
585
|
-
setHeader(header) {
|
|
586
|
-
this._header.next(header);
|
|
587
|
-
}
|
|
588
|
-
_dropdownMenuClick(event) {
|
|
589
|
-
// This is needed, because some menu's will get stuck open if the component
|
|
590
|
-
// managing the menu is destroyed before the menu finishes its cleanup. I
|
|
591
|
-
// may look for a fix to that eventually.
|
|
592
|
-
this.closed.emit('click');
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
596
|
-
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: [
|
|
597
|
-
trigger('slideDown', [
|
|
598
|
-
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
599
|
-
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
600
|
-
])
|
|
601
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MenuComponent, decorators: [{
|
|
603
|
-
type: Component,
|
|
604
|
-
args: [{ selector: 'seam-menu', providers: [LIB_MENU], animations: [
|
|
605
|
-
trigger('slideDown', [
|
|
606
|
-
transition(':enter', useAnimation(menuDropdownPanelIn)),
|
|
607
|
-
transition(':leave', useAnimation(menuDropdownPanelOut)),
|
|
608
|
-
])
|
|
609
|
-
], 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"] }]
|
|
610
|
-
}], ctorParameters: function () { return []; }, propDecorators: { templateRef: [{
|
|
611
|
-
type: ViewChild,
|
|
612
|
-
args: [TemplateRef]
|
|
613
|
-
}], closed: [{
|
|
614
|
-
type: Output
|
|
615
|
-
}], menuClass: [{
|
|
616
|
-
type: Input
|
|
617
|
-
}], baseWidth: [{
|
|
618
|
-
type: Input
|
|
619
|
-
}], animationType: [{
|
|
620
|
-
type: Input
|
|
621
|
-
}] } });
|
|
622
|
-
|
|
623
829
|
// TODO: Split up the button and anchor classes.
|
|
624
830
|
class MenuFooterActionComponent {
|
|
625
831
|
get _attrType() { return this.type; }
|
|
@@ -645,9 +851,9 @@ class MenuFooterActionComponent {
|
|
|
645
851
|
return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a';
|
|
646
852
|
}
|
|
647
853
|
}
|
|
648
|
-
MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
649
|
-
MenuFooterActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
854
|
+
MenuFooterActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterActionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
855
|
+
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 });
|
|
856
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterActionComponent, decorators: [{
|
|
651
857
|
type: Component,
|
|
652
858
|
args: [{ selector: 'button[seamMenuFooterAction],a[seamMenuFooterAction]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
653
859
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _attrType: [{
|
|
@@ -687,9 +893,9 @@ class MenuFooterComponent {
|
|
|
687
893
|
}
|
|
688
894
|
}
|
|
689
895
|
}
|
|
690
|
-
MenuFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
691
|
-
MenuFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
692
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
896
|
+
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 });
|
|
897
|
+
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 });
|
|
898
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuFooterComponent, decorators: [{
|
|
693
899
|
type: Component,
|
|
694
900
|
args: [{ selector: 'seam-menu-footer', host: {
|
|
695
901
|
'class': 'd-flex flex-column text-center bg-light border-top rounded-bottom py-2'
|
|
@@ -716,9 +922,9 @@ class MenuHeaderComponent {
|
|
|
716
922
|
}
|
|
717
923
|
}
|
|
718
924
|
}
|
|
719
|
-
MenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
720
|
-
MenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
925
|
+
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 });
|
|
926
|
+
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 });
|
|
927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuHeaderComponent, decorators: [{
|
|
722
928
|
type: Component,
|
|
723
929
|
args: [{ selector: 'seam-menu-header', host: {
|
|
724
930
|
'class': 'd-flex flex-column bg-light border-bottom rounded-top py-2 mb-2'
|
|
@@ -732,8 +938,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
732
938
|
|
|
733
939
|
class TheSeamMenuModule {
|
|
734
940
|
}
|
|
735
|
-
TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
736
|
-
TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
941
|
+
TheSeamMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
942
|
+
TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, declarations: [MenuComponent,
|
|
737
943
|
MenuToggleDirective,
|
|
738
944
|
MenuItemComponent,
|
|
739
945
|
MenuDividerComponent,
|
|
@@ -750,11 +956,11 @@ TheSeamMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
750
956
|
MenuFooterComponent,
|
|
751
957
|
MenuFooterActionComponent,
|
|
752
958
|
MenuHeaderComponent] });
|
|
753
|
-
TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
959
|
+
TheSeamMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, imports: [CommonModule,
|
|
754
960
|
OverlayModule,
|
|
755
961
|
TheSeamIconModule, TheSeamIconModule,
|
|
756
962
|
OverlayModule] });
|
|
757
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
963
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMenuModule, decorators: [{
|
|
758
964
|
type: NgModule,
|
|
759
965
|
args: [{
|
|
760
966
|
declarations: [
|