@fundamental-ngx/core 0.49.1 → 0.49.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/avatar-group-legacy/avatar-group-legacy.component.d.ts +6 -6
- package/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.d.ts +2 -2
- package/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.d.ts +2 -2
- package/bar/bar.component.d.ts +6 -6
- package/bar/button-bar/button-bar.component.d.ts +4 -4
- package/calendar/calendar-header/calendar-header.component.d.ts +2 -2
- package/card/card-content.component.d.ts +2 -2
- package/card/card-counter.directive.d.ts +2 -2
- package/card/card-header.component.d.ts +6 -6
- package/card/card-loader.component.d.ts +2 -2
- package/card/card-second-subtitle.directive.d.ts +2 -2
- package/card/card-subtitle.directive.d.ts +2 -2
- package/card/card-title.directive.d.ts +2 -2
- package/card/card.component.d.ts +3 -3
- package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -2
- package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -2
- package/card/kpi/card-kpi-analytics.directive.d.ts +2 -2
- package/card/kpi/card-kpi-header.component.d.ts +2 -2
- package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -2
- package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -2
- package/card/kpi/card-kpi-value.directive.d.ts +4 -4
- package/checkbox/checkbox/checkbox.component.d.ts +3 -5
- package/content-density/providers/url-content-density-storage.d.ts +4 -4
- package/content-density/services/content-density-observer.service.d.ts +15 -15
- package/datetime/datetime-adapter.d.ts +9 -2
- package/datetime/fd-date.d.ts +10 -14
- package/datetime/fd-datetime-adapter.d.ts +2 -2
- package/dialog/base/dialog-base.class.d.ts +2 -2
- package/dialog/base/dialog-header-base.class.d.ts +4 -4
- package/dialog/base/dialog-ref-base.class.d.ts +6 -4
- package/dynamic-side-content/dynamic-side-content.component.d.ts +4 -4
- package/esm2022/avatar-group-legacy/avatar-group-legacy.component.mjs +15 -15
- package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.mjs +12 -12
- package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.mjs +9 -9
- package/esm2022/bar/bar.component.mjs +13 -13
- package/esm2022/bar/button-bar/button-bar.component.mjs +3 -3
- package/esm2022/calendar/calendar-header/calendar-header.component.mjs +1 -1
- package/esm2022/card/card-content.component.mjs +5 -5
- package/esm2022/card/card-counter.directive.mjs +6 -6
- package/esm2022/card/card-header.component.mjs +5 -5
- package/esm2022/card/card-loader.component.mjs +5 -5
- package/esm2022/card/card-second-subtitle.directive.mjs +5 -5
- package/esm2022/card/card-subtitle.directive.mjs +5 -5
- package/esm2022/card/card-title.directive.mjs +5 -5
- package/esm2022/card/card.component.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics-content.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics-label.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-header.component.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-scale-icon.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-scale-text.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-value.directive.mjs +5 -5
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/combobox/combobox.component.mjs +2 -2
- package/esm2022/content-density/providers/url-content-density-storage.mjs +11 -11
- package/esm2022/content-density/services/content-density-observer.service.mjs +7 -16
- package/esm2022/datetime/datetime-adapter.mjs +4 -2
- package/esm2022/datetime/fd-date.mjs +34 -27
- package/esm2022/datetime/fd-datetime-adapter.mjs +1 -1
- package/esm2022/dialog/base/dialog-base.class.mjs +1 -1
- package/esm2022/dialog/base/dialog-header-base.class.mjs +1 -1
- package/esm2022/dialog/base/dialog-ref-base.class.mjs +4 -8
- package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +9 -9
- package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +5 -5
- package/esm2022/feed-list-item/components/list/feed-list.component.mjs +15 -15
- package/esm2022/file-uploader/directives/file-uploader-select.directive.mjs +1 -1
- package/esm2022/file-uploader/file-uploader.component.mjs +5 -5
- package/esm2022/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
- package/esm2022/form/form-group/form-group.component.mjs +8 -8
- package/esm2022/form/form-message/form-message.component.mjs +9 -9
- package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -3
- package/esm2022/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2022/illustrated-message/illustrated-message.component.mjs +10 -10
- package/esm2022/input-group/input-group-directives.mjs +22 -22
- package/esm2022/layout-grid/directives/layout-grid-col.directive.mjs +9 -9
- package/esm2022/layout-grid/layout-grid.component.mjs +9 -9
- package/esm2022/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +9 -9
- package/esm2022/list/list-item/list-item.component.mjs +20 -17
- package/esm2022/list/list-message.directive.mjs +9 -9
- package/esm2022/menu/directives/segmented-button/segmented-button-header.directive.mjs +1 -2
- package/esm2022/menu/directives/toggle-button.directive.mjs +1 -2
- package/esm2022/message-box/message-box.component.mjs +17 -17
- package/esm2022/message-page/message-page.component.mjs +5 -5
- package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +5 -5
- package/esm2022/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +1 -1
- package/esm2022/message-strip/alert/message-strip-alert.service.mjs +2 -3
- package/esm2022/message-strip/message-strip.component.mjs +16 -16
- package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +43 -45
- package/esm2022/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +1 -1
- package/esm2022/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +13 -13
- package/esm2022/multi-combobox/multi-combobox.component.mjs +2 -5
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/nested-list/nested-content/nested-list-content.directive.mjs +6 -6
- package/esm2022/nested-list/nested-item/nested-item.directive.mjs +3 -3
- package/esm2022/nested-list/nested-list/nested-list.directive.mjs +3 -3
- package/esm2022/notification/directives/notification-indicator.directive.mjs +9 -9
- package/esm2022/notification/notification/notification.component.mjs +9 -9
- package/esm2022/notification/notification-group/notification-group.component.mjs +5 -5
- package/esm2022/notification/notification-service/notification.service.mjs +5 -2
- package/esm2022/notification/notification-utils/notification-ref.mjs +2 -5
- package/esm2022/object-number/object-number.component.mjs +9 -9
- package/esm2022/object-status/object-status.component.mjs +13 -12
- package/esm2022/overflow-layout/directives/overflow-expand.directive.mjs +5 -5
- package/esm2022/overflow-layout/directives/overflow-item-ref.directive.mjs +1 -1
- package/esm2022/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +5 -5
- package/esm2022/overflow-layout/directives/overflow-layout-item-container.directive.mjs +8 -8
- package/esm2022/overflow-layout/interfaces/overflow-focusable-item.interface.mjs +1 -1
- package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -18
- package/esm2022/radio/radio-button/radio-button.component.mjs +8 -9
- package/esm2022/rating-indicator/components/rating-indicator.component.mjs +28 -28
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +23 -23
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +7 -8
- package/esm2022/select/select.component.mjs +18 -18
- package/esm2022/shared/interfaces/search-component.interface.mjs +1 -1
- package/esm2022/shellbar/shellbar.component.mjs +7 -7
- package/esm2022/side-navigation/side-navigation.component.mjs +7 -7
- package/esm2022/skeleton/components/skeleton.component.mjs +3 -3
- package/esm2022/status-indicator/status-indicator.component.mjs +15 -15
- package/esm2022/table/directives/table-responsive-wrapper.directive.mjs +3 -3
- package/esm2022/tabs/tab-item/tab-item.directive.mjs +9 -9
- package/esm2022/tabs/tab-link/tab-link.directive.mjs +8 -8
- package/esm2022/tabs/tab-nav/tab-nav.component.mjs +15 -15
- package/esm2022/tabs/tab-panel/tab-panel.component.mjs +3 -3
- package/esm2022/tabs/tab-utils/tab-directives.mjs +8 -8
- package/esm2022/tile/directives/tile.directives.mjs +25 -25
- package/esm2022/tile/tile.component.mjs +9 -11
- package/esm2022/time/time-column/time-column.component.mjs +23 -23
- package/esm2022/timeline/services/position-strategies/base-strategy.mjs +1 -1
- package/esm2022/timeline/timeline.component.mjs +5 -5
- package/esm2022/title/title.component.mjs +4 -4
- package/esm2022/token/tokenizer.component.mjs +71 -71
- package/esm2022/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +4 -6
- package/esm2022/tree/tree.component.mjs +1 -4
- package/esm2022/upload-collection/upload-collection-item.directive.mjs +3 -3
- package/esm2022/vertical-navigation/vertical-navigation.component.mjs +6 -6
- package/esm2022/wizard/wizard-step/wizard-step.component.mjs +3 -3
- package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -2
- package/feed-list-item/components/list/feed-list.component.d.ts +6 -6
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +33 -33
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs +61 -61
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-content-density.mjs +17 -26
- package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +36 -27
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +3 -7
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +15 -15
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +9 -9
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +21 -21
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +27 -24
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +0 -2
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +20 -21
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +55 -57
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +1 -4
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +9 -9
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +25 -25
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +12 -11
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +32 -32
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +7 -8
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +27 -27
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +28 -29
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +38 -38
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tile.mjs +32 -34
- package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +23 -23
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-timeline.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-title.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +70 -70
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +3 -8
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/file-uploader/directives/file-uploader-select.directive.d.ts +1 -1
- package/file-uploader/file-uploader.component.d.ts +4 -4
- package/form/form-group/form-group.component.d.ts +4 -4
- package/form/form-message/form-message.component.d.ts +2 -2
- package/grid-list/components/grid-list/grid-list.component.d.ts +3 -2
- package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +8 -8
- package/illustrated-message/illustrated-message.component.d.ts +7 -7
- package/input-group/input-group-directives.d.ts +12 -12
- package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -2
- package/layout-grid/layout-grid.component.d.ts +2 -2
- package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +2 -2
- package/list/list-item/list-item.component.d.ts +13 -13
- package/list/list-message.directive.d.ts +4 -4
- package/message-box/message-box.component.d.ts +5 -5
- package/message-page/message-page.component.d.ts +2 -2
- package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +4 -4
- package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +4 -4
- package/message-strip/alert/message-strip-alert.service.d.ts +3 -2
- package/message-strip/message-strip.component.d.ts +6 -6
- package/micro-process-flow/components/micro-process-flow/micro-process-flow.component.d.ts +15 -17
- package/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.d.ts +2 -2
- package/micro-process-flow/micro-process-flow-focusable-item.directive.d.ts +6 -6
- package/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
- package/nested-list/nested-content/nested-list-content.directive.d.ts +2 -2
- package/nested-list/nested-item/nested-item.directive.d.ts +2 -2
- package/nested-list/nested-list/nested-list.directive.d.ts +2 -2
- package/notification/directives/notification-indicator.directive.d.ts +4 -4
- package/notification/notification/notification.component.d.ts +2 -2
- package/notification/notification-group/notification-group.component.d.ts +2 -2
- package/notification/notification-utils/notification-ref.d.ts +5 -3
- package/object-number/object-number.component.d.ts +4 -4
- package/object-status/object-status.component.d.ts +5 -4
- package/overflow-layout/directives/overflow-expand.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-item-ref.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-layout-focusable-item.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +2 -2
- package/overflow-layout/interfaces/overflow-focusable-item.interface.d.ts +1 -1
- package/overflow-layout/overflow-layout.component.d.ts +4 -4
- package/package.json +3 -3
- package/radio/radio-button/radio-button.component.d.ts +7 -7
- package/rating-indicator/components/rating-indicator.component.d.ts +12 -12
- package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +8 -8
- package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -2
- package/select/select.component.d.ts +19 -19
- package/shared/interfaces/search-component.interface.d.ts +1 -1
- package/shellbar/shellbar.component.d.ts +12 -12
- package/side-navigation/side-navigation.component.d.ts +2 -2
- package/skeleton/components/skeleton.component.d.ts +2 -2
- package/status-indicator/status-indicator.component.d.ts +7 -7
- package/tabs/tab-item/tab-item.directive.d.ts +2 -2
- package/tabs/tab-link/tab-link.directive.d.ts +2 -2
- package/tabs/tab-nav/tab-nav.component.d.ts +8 -8
- package/tabs/tab-panel/tab-panel.component.d.ts +2 -2
- package/tabs/tab-utils/tab-directives.d.ts +5 -5
- package/tile/directives/tile.directives.d.ts +12 -12
- package/tile/tile.component.d.ts +4 -6
- package/time/time-column/time-column.component.d.ts +6 -6
- package/timeline/services/position-strategies/base-strategy.d.ts +2 -2
- package/timeline/timeline.component.d.ts +2 -2
- package/title/title.component.d.ts +2 -2
- package/token/tokenizer.component.d.ts +16 -16
- package/toolbar/toolbar.component.d.ts +2 -2
- package/tree/components/tree-item/tree-item.component.d.ts +10 -9
- package/upload-collection/upload-collection-item.directive.d.ts +2 -2
- package/vertical-navigation/vertical-navigation.component.d.ts +2 -2
- package/wizard/wizard-step/wizard-step.component.d.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, DestroyRef, Injector, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, map, tap } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"footerComponentPortal\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n standalone: true,\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent implements AfterViewInit {\n /** @hidden */\n @Input()\n set alertRefs(alertRefs: Nullable<MessageStripAlertRef[]>) {\n this.alertRefs$.next(alertRefs);\n }\n\n /**\n * Reference to the user provided component's portal.\n */\n footerComponentPortal?: ComponentPortal<any>;\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable that emits the alert references that are currently rendered in the container.\n */\n private alertRefs$ = new BehaviorSubject<Nullable<MessageStripAlertRef[]>>([]);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.messageStripAlertService.footerComponents$\n .pipe(\n map((components) => components[this.position]),\n tap((footerComponent) => {\n if (footerComponent) {\n this.footerComponentPortal = new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this.alertRefs$.pipe(takeUntilDestroyed(this._destroyRef))\n }\n ]\n })\n );\n } else {\n this.footerComponentPortal = undefined;\n }\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe();\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]',\n standalone: true\n})\nexport class MessageStripIconDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<void>) {}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.margin-bottom]': 'marginBottom',\n role: 'alert',\n '[attr.id]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ButtonComponent, ContentDensityDirective, I18nModule, NgTemplateOutlet, IconComponent]\n})\nexport class MessageStripComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input() class = '';\n\n /** Whether the message strip is dismissible. */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--dismissible')\n dismissible: BooleanInput = true;\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--no-icon')\n noIcon: BooleanInput = false;\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n @Input() type: MessageStripType;\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n @Input() id: string = 'fd-message-strip-' + messageStripUniqueId++;\n\n /** Id of the element that labels the message-strip. */\n @Input() ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the message-strip component element. */\n @Input() ariaLabel: Nullable<string>;\n\n /** Width of the message-strip. */\n @Input() width: string;\n\n /** Minimum width of the message-strip. */\n @Input() minWidth: string;\n\n /** Margin bottom of the message-strip. */\n @Input() marginBottom: string;\n\n /** indication color of the message-strip. */\n @Input() indicationColor: MessageStripIndicationColor;\n\n /** Event fired when the message-strip is dismissed. */\n @Output() // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<void> = new EventEmitter<void>();\n\n /** Custom icon component */\n @ContentChild(MessageStripIconDirective)\n icon: MessageStripIconDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** Whether icon container should be shown */\n get shouldShowIcon(): boolean {\n if (this.noIcon) {\n return false;\n }\n return !!this.icon || !!this.type;\n }\n\n /** @hidden */\n get typeSpecificIconName(): string {\n switch (this.type) {\n case 'warning':\n return 'alert';\n case 'success':\n return 'sys-enter-2';\n case 'error':\n return 'error';\n case 'information':\n return 'information';\n default:\n return '';\n }\n }\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-message-strip',\n this.type ? `fd-message-strip--${this.type}` : '',\n this.dismissible ? 'fd-message-strip--dismissible' : '',\n this.noIcon ? 'fd-message-strip--no-icon' : '',\n this.indicationColor ? `fd-message-strip--indication-color-${this.indicationColor}` : '',\n this.class\n ];\n }\n}\n","@if (shouldShowIcon) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon) {\n <ng-template [ngTemplateOutlet]=\"icon.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName\"></fd-icon>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n [attr.title]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!opened ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n @Input({ transform: booleanAttribute })\n dismissible: BooleanInput = true;\n\n /** Whether the alert should be automatically dismissed. */\n @Input({ transform: booleanAttribute })\n autoDismiss: BooleanInput = true;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input() duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input({ transform: booleanAttribute })\n mousePersist: BooleanInput = false;\n\n /** Whether the message strip is currently opened. */\n opened = false;\n\n /** @hidden */\n private messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private autoDismissTimeout?: ReturnType<typeof setTimeout>;\n /** @hidden */\n private elementRef = inject(ElementRef);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /**\n * Mouse is hovering over the message strip.\n * */\n private mouseIn$ = merge(\n fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n\n /** @hidden */\n open(): void {\n this.opened = true;\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.elementRef.nativeElement.classList.remove('fd-has-display-none');\n this.stopAutoDismiss();\n if (this.autoDismiss && !this.dismissible && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss && this.dismissible) {\n this.startAutoDismiss();\n }\n }\n\n /** @hidden */\n private stopAutoDismiss = (): void => {\n if (this.autoDismissTimeout) {\n clearTimeout(this.autoDismissTimeout);\n this.autoDismissTimeout = undefined;\n }\n };\n\n /** @hidden */\n private startAutoDismiss(): void {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const startAutoDismissTimer$ = new Observable((res) => {\n this.autoDismissTimeout = setTimeout(() => {\n this.dismiss();\n res.next();\n }, this.duration);\n return this.stopAutoDismiss;\n });\n if (this.duration > -1) {\n const source$ = this.mousePersist\n ? this.mouseIn$.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this.messageStripComponent.onDismiss)))\n .subscribe();\n }\n }\n\n /** @hidden */\n private dismiss = (): void => this.messageStripComponent.dismiss();\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n standalone: true,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown>\n implements MessageStripAlert, OnDestroy, AfterViewInit\n{\n /** @hidden */\n @ViewChild(AutoDismissMessageStripDirective)\n autoDismissMessageStripDirective: AutoDismissMessageStripDirective;\n\n /** User provided data. Full of it */\n data = inject(MessageStripAlertComponentData);\n /** Configuration for the message strip appearance */\n messageStripConfig: MessageStripConfiguration;\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n contentPortal: Portal<unknown>;\n\n /** @hidden */\n private viewContainerRef = inject(ViewContainerRef);\n /** @hidden */\n private renderer2 = inject(Renderer2);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private autoDismissTimeout: ReturnType<typeof setTimeout>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this.getPortal(this.data.content);\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed()\n )\n .subscribe(() => this.onDismissHandler());\n }\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n clearTimeout(this.autoDismissTimeout);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.autoDismissMessageStripDirective.open();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this.renderer2.createText(content);\n this.renderer2.appendChild(this.viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this.viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, Component, ComponentRef, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, map, startWith } from 'rxjs';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer\n [alertRefs]=\"alertRefs$ | async\"\n ></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent, AsyncPipe]\n})\nexport class MessageStripAlertContainerComponent implements AfterViewInit {\n /**\n * The list of the elements that are attached to the container.\n */\n attachedElements: ComponentPortal<MessageStripAlert>[] = [];\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n */\n alertRefs$!: Observable<MessageStripAlertRef[]>;\n\n /** @hidden */\n @ViewChildren(CdkPortalOutlet)\n portalOutlets: QueryList<CdkPortalOutlet>;\n\n /** @hidden */\n @ViewChildren(MessageStripAlertComponent)\n alerts: QueryList<MessageStripAlert>;\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.alertRefs$ = this.portalOutlets.changes.pipe(\n startWith(this.portalOutlets),\n map(() =>\n this.portalOutlets\n .toArray()\n .map((p) => (p.attachedRef as ComponentRef<MessageStripAlertComponent>)?.instance.alertRef)\n )\n );\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject } from '@angular/core';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n private injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay: Overlay = inject(Overlay);\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /** @hidden */\n private _messageAlerts$ = new BehaviorSubject<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /** @hidden */\n private _messageStripAlertContainerFooters$ = new BehaviorSubject<\n Partial<Record<MessageStripAlertPosition, Type<any>>>\n >({});\n\n /** @hidden */\n footerComponents$ = this._messageStripAlertContainerFooters$.asObservable();\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters$.next({\n ...this._messageStripAlertContainerFooters$.value,\n [position]: component\n });\n }\n\n /**\n * Open a message strip alert with given configuration\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this.getMessageStripAlertRef(config);\n this._messageAlerts$.next([{ ...config, portal: alertRef.portal }, ...this._messageAlerts$.value]);\n return alertRef;\n }\n\n /** @hidden */\n private getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts$.next(\n this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this.injector\n })\n ),\n dismiss: () => {\n this._messageAlerts$.next(this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private listenToItemsChanges(): void {\n combineLatest([this.viewportSize$, this._messageAlerts$.asObservable()])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this.getOverlayRef(position);\n containerRef.instance.attachedElements = portals;\n containerRef.changeDetectorRef.detectChanges();\n });\n this.syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /** @hidden */\n private syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n if (!messageAlertsByPosition[position]) {\n this._overlayRefs[position]!.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = this._overlayRefs[position]!.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /** @hidden */\n private getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this.createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n return this._overlayRefs[position]!;\n }\n\n /** @hidden */\n private createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, DestroyRef, Injector, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, map, tap } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"footerComponentPortal\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n standalone: true,\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent implements AfterViewInit {\n /** @hidden */\n @Input()\n set alertRefs(alertRefs: Nullable<MessageStripAlertRef[]>) {\n this.alertRefs$.next(alertRefs);\n }\n\n /**\n * Reference to the user provided component's portal.\n */\n footerComponentPortal?: ComponentPortal<any>;\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable that emits the alert references that are currently rendered in the container.\n */\n private alertRefs$ = new BehaviorSubject<Nullable<MessageStripAlertRef[]>>([]);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.messageStripAlertService.footerComponents$\n .pipe(\n map((components) => components[this.position]),\n tap((footerComponent) => {\n if (footerComponent) {\n this.footerComponentPortal = new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this.alertRefs$.pipe(takeUntilDestroyed(this._destroyRef))\n }\n ]\n })\n );\n } else {\n this.footerComponentPortal = undefined;\n }\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe();\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]',\n standalone: true\n})\nexport class MessageStripIconDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<void>) {}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.margin-bottom]': 'marginBottom',\n role: 'alert',\n '[attr.id]': 'id'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ButtonComponent, ContentDensityDirective, I18nModule, NgTemplateOutlet, IconComponent]\n})\nexport class MessageStripComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input() class = '';\n\n /** Whether the message strip is dismissible. */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--dismissible')\n dismissible: BooleanInput = true;\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.fd-message-strip--no-icon')\n noIcon: BooleanInput = false;\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n @Input() type: MessageStripType;\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n @Input() id: string = 'fd-message-strip-' + messageStripUniqueId++;\n\n /** Id of the element that labels the message-strip. */\n @Input() ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the message-strip component element. */\n @Input() ariaLabel: Nullable<string>;\n\n /** Width of the message-strip. */\n @Input() width: string;\n\n /** Minimum width of the message-strip. */\n @Input() minWidth: string;\n\n /** Margin bottom of the message-strip. */\n @Input() marginBottom: string;\n\n /** indication color of the message-strip. */\n @Input() indicationColor: MessageStripIndicationColor;\n\n /** Event fired when the message-strip is dismissed. */\n @Output() // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<void> = new EventEmitter<void>();\n\n /** Custom icon component */\n @ContentChild(MessageStripIconDirective)\n icon: MessageStripIconDirective;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-message-strip',\n this.type ? `fd-message-strip--${this.type}` : '',\n this.dismissible ? 'fd-message-strip--dismissible' : '',\n this.noIcon ? 'fd-message-strip--no-icon' : '',\n this.indicationColor ? `fd-message-strip--indication-color-${this.indicationColor}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** Whether icon container should be shown */\n get shouldShowIcon(): boolean {\n if (this.noIcon) {\n return false;\n }\n return !!this.icon || !!this.type;\n }\n\n /** @hidden */\n get typeSpecificIconName(): string {\n switch (this.type) {\n case 'warning':\n return 'alert';\n case 'success':\n return 'sys-enter-2';\n case 'error':\n return 'error';\n case 'information':\n return 'information';\n default:\n return '';\n }\n }\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n}\n","@if (shouldShowIcon) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon) {\n <ng-template [ngTemplateOutlet]=\"icon.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName\"></fd-icon>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n [attr.title]=\"'coreMessageStrip.dismissLabel' | fdTranslate\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!opened ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n @Input({ transform: booleanAttribute })\n dismissible: BooleanInput = true;\n\n /** Whether the alert should be automatically dismissed. */\n @Input({ transform: booleanAttribute })\n autoDismiss: BooleanInput = true;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input() duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input({ transform: booleanAttribute })\n mousePersist: BooleanInput = false;\n\n /** Whether the message strip is currently opened. */\n opened = false;\n\n /** @hidden */\n private messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private autoDismissTimeout?: ReturnType<typeof setTimeout>;\n /** @hidden */\n private elementRef = inject(ElementRef);\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /**\n * Mouse is hovering over the message strip.\n * */\n private mouseIn$ = merge(\n fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n\n /** @hidden */\n open(): void {\n this.opened = true;\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.elementRef.nativeElement.classList.remove('fd-has-display-none');\n this.stopAutoDismiss();\n if (this.autoDismiss && !this.dismissible && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss && this.dismissible) {\n this.startAutoDismiss();\n }\n }\n\n /** @hidden */\n private stopAutoDismiss = (): void => {\n if (this.autoDismissTimeout) {\n clearTimeout(this.autoDismissTimeout);\n this.autoDismissTimeout = undefined;\n }\n };\n\n /** @hidden */\n private startAutoDismiss(): void {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const startAutoDismissTimer$ = new Observable((res) => {\n this.autoDismissTimeout = setTimeout(() => {\n this.dismiss();\n res.next();\n }, this.duration);\n return this.stopAutoDismiss;\n });\n if (this.duration > -1) {\n const source$ = this.mousePersist\n ? this.mouseIn$.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this.messageStripComponent.onDismiss)))\n .subscribe();\n }\n }\n\n /** @hidden */\n private dismiss = (): void => this.messageStripComponent.dismiss();\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n Renderer2,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n standalone: true,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown>\n implements MessageStripAlert, OnDestroy, AfterViewInit\n{\n /** @hidden */\n @ViewChild(AutoDismissMessageStripDirective)\n autoDismissMessageStripDirective: AutoDismissMessageStripDirective;\n\n /** User provided data. Full of it */\n data = inject(MessageStripAlertComponentData);\n /** Configuration for the message strip appearance */\n messageStripConfig: MessageStripConfiguration;\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n contentPortal: Portal<unknown>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n /** @hidden */\n private viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private renderer2 = inject(Renderer2);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private autoDismissTimeout: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this.getPortal(this.data.content);\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed()\n )\n .subscribe(() => this.onDismissHandler());\n }\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n clearTimeout(this.autoDismissTimeout);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.autoDismissMessageStripDirective.open();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this.renderer2.createText(content);\n this.renderer2.appendChild(this.viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this.viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, Component, ComponentRef, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { Observable, map, startWith } from 'rxjs';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer\n [alertRefs]=\"alertRefs$ | async\"\n ></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent, AsyncPipe]\n})\nexport class MessageStripAlertContainerComponent implements AfterViewInit {\n /** @hidden */\n @ViewChildren(CdkPortalOutlet)\n portalOutlets: QueryList<CdkPortalOutlet>;\n\n /** @hidden */\n @ViewChildren(MessageStripAlertComponent)\n alerts: QueryList<MessageStripAlert>;\n\n /**\n * The list of the elements that are attached to the container.\n */\n attachedElements: ComponentPortal<MessageStripAlert>[] = [];\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n */\n alertRefs$!: Observable<MessageStripAlertRef[]>;\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.alertRefs$ = this.portalOutlets.changes.pipe(\n startWith(this.portalOutlets),\n map(() =>\n this.portalOutlets\n .toArray()\n .map((p) => (p.attachedRef as ComponentRef<MessageStripAlertComponent>)?.instance.alertRef)\n )\n );\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject } from '@angular/core';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { BehaviorSubject, Observable, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;\n\n /** @hidden */\n private injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay: Overlay = inject(Overlay);\n\n /** @hidden */\n private viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /** @hidden */\n private _messageAlerts$ = new BehaviorSubject<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /** @hidden */\n private _messageStripAlertContainerFooters$ = new BehaviorSubject<\n Partial<Record<MessageStripAlertPosition, Type<any>>>\n >({});\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.footerComponents$ = this._messageStripAlertContainerFooters$.asObservable();\n this.listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters$.next({\n ...this._messageStripAlertContainerFooters$.value,\n [position]: component\n });\n }\n\n /**\n * Open a message strip alert with given configuration\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this.getMessageStripAlertRef(config);\n this._messageAlerts$.next([{ ...config, portal: alertRef.portal }, ...this._messageAlerts$.value]);\n return alertRef;\n }\n\n /** @hidden */\n private getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts$.next(\n this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this.injector\n })\n ),\n dismiss: () => {\n this._messageAlerts$.next(this._messageAlerts$.value.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private listenToItemsChanges(): void {\n combineLatest([this.viewportSize$, this._messageAlerts$.asObservable()])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this.getOverlayRef(position);\n containerRef.instance.attachedElements = portals;\n containerRef.changeDetectorRef.detectChanges();\n });\n this.syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /** @hidden */\n private syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n if (!messageAlertsByPosition[position]) {\n this._overlayRefs[position]!.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = this._overlayRefs[position]!.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /** @hidden */\n private getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this.createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n return this._overlayRefs[position]!;\n }\n\n /** @hidden */\n private createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, InjectionToken, Directive, Optional, Inject, HostListener, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, InjectionToken, Directive, Optional, Inject, HostListener, ContentChild, inject, ContentChildren, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
4
4
|
import { LEFT_ARROW, RIGHT_ARROW, SPACE, ENTER } from '@angular/cdk/keycodes';
|
|
5
5
|
import * as i1 from '@fundamental-ngx/cdk/utils';
|
|
6
6
|
import { KeyUtil } from '@fundamental-ngx/cdk/utils';
|
|
7
|
-
import
|
|
8
|
-
import { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
|
|
7
|
+
import { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
|
|
9
8
|
import { Subject, Subscription } from 'rxjs';
|
|
10
9
|
import { debounceTime, startWith } from 'rxjs/operators';
|
|
11
10
|
|
|
@@ -43,18 +42,6 @@ class MicroProcessFlowFocusableItemDirective {
|
|
|
43
42
|
this.elRef = elRef;
|
|
44
43
|
this._microProcessFlow = _microProcessFlow;
|
|
45
44
|
}
|
|
46
|
-
/** @hidden */
|
|
47
|
-
ngOnInit() {
|
|
48
|
-
this.setFocusable();
|
|
49
|
-
}
|
|
50
|
-
/** Sets ability to focus on the element or not. */
|
|
51
|
-
setFocusable(focusable = false) {
|
|
52
|
-
this.elRef.nativeElement.setAttribute('tabindex', focusable ? '0' : '-1');
|
|
53
|
-
}
|
|
54
|
-
/** Focuses on the element without scrolling it to the viewport */
|
|
55
|
-
focus(options) {
|
|
56
|
-
this.elRef.nativeElement.focus(options);
|
|
57
|
-
}
|
|
58
45
|
/**
|
|
59
46
|
* @hidden
|
|
60
47
|
* Handler for focus events
|
|
@@ -67,6 +54,18 @@ class MicroProcessFlowFocusableItemDirective {
|
|
|
67
54
|
onBlur() {
|
|
68
55
|
this._microProcessFlow?.canItemsReceiveFocus.next(true);
|
|
69
56
|
}
|
|
57
|
+
/** @hidden */
|
|
58
|
+
ngOnInit() {
|
|
59
|
+
this.setFocusable();
|
|
60
|
+
}
|
|
61
|
+
/** Sets ability to focus on the element or not. */
|
|
62
|
+
setFocusable(focusable = false) {
|
|
63
|
+
this.elRef.nativeElement.setAttribute('tabindex', focusable ? '0' : '-1');
|
|
64
|
+
}
|
|
65
|
+
/** Focuses on the element without scrolling it to the viewport */
|
|
66
|
+
focus(options) {
|
|
67
|
+
this.elRef.nativeElement.focus(options);
|
|
68
|
+
}
|
|
70
69
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MicroProcessFlowFocusableItemDirective, deps: [{ token: i0.ElementRef }, { token: MICRO_PROCESS_FLOW, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
70
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: MicroProcessFlowFocusableItemDirective, isStandalone: true, selector: "[fdMicroProcessFlowFocusableItem], [fd-micro-process-flow-focusable-item]", host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, classAttribute: "fd-micro-process-flow__focusable-item" }, ngImport: i0 }); }
|
|
72
71
|
}
|
|
@@ -148,10 +147,9 @@ class MicroProcessFlowComponent {
|
|
|
148
147
|
return this._isRtl ? 1 : -1;
|
|
149
148
|
}
|
|
150
149
|
/** @hidden */
|
|
151
|
-
constructor(_cd, _rtl
|
|
150
|
+
constructor(_cd, _rtl) {
|
|
152
151
|
this._cd = _cd;
|
|
153
152
|
this._rtl = _rtl;
|
|
154
|
-
this._contentDensityObserver = _contentDensityObserver;
|
|
155
153
|
/** Should connector between items be hidden. */
|
|
156
154
|
this.independentSteps = false;
|
|
157
155
|
/** Pagination transition speed in milliseconds */
|
|
@@ -178,7 +176,26 @@ class MicroProcessFlowComponent {
|
|
|
178
176
|
this._actionKeys = [SPACE, ENTER];
|
|
179
177
|
/** @hidden */
|
|
180
178
|
this._focusedElementIndex = -1;
|
|
181
|
-
|
|
179
|
+
inject(ContentDensityObserver).subscribe();
|
|
180
|
+
}
|
|
181
|
+
/** @hidden */
|
|
182
|
+
handleKeyboardEvent(event) {
|
|
183
|
+
if (KeyUtil.isKeyCode(event, this._navigationKeys)) {
|
|
184
|
+
const isRightKey = KeyUtil.isKeyCode(event, RIGHT_ARROW);
|
|
185
|
+
const direction = isRightKey ? 1 : -1;
|
|
186
|
+
event.stopImmediatePropagation();
|
|
187
|
+
const elementIndexToScroll = this._getPreviousItemsCount() + direction;
|
|
188
|
+
const elementExists = this.items.get(elementIndexToScroll);
|
|
189
|
+
if (!elementExists) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
this.previousItemsCount = 0;
|
|
193
|
+
this._paginate(elementIndexToScroll);
|
|
194
|
+
// Force browset not to scroll to the element since it's done with pagination function.
|
|
195
|
+
this.items.get(this._getPreviousItemsCount())?.focusableElement?.focus({
|
|
196
|
+
preventScroll: true
|
|
197
|
+
});
|
|
198
|
+
}
|
|
182
199
|
}
|
|
183
200
|
/** @hidden */
|
|
184
201
|
ngOnInit() {
|
|
@@ -208,25 +225,6 @@ class MicroProcessFlowComponent {
|
|
|
208
225
|
ngOnDestroy() {
|
|
209
226
|
this._subscriptions.unsubscribe();
|
|
210
227
|
}
|
|
211
|
-
/** @hidden */
|
|
212
|
-
handleKeyboardEvent(event) {
|
|
213
|
-
if (KeyUtil.isKeyCode(event, this._navigationKeys)) {
|
|
214
|
-
const isRightKey = KeyUtil.isKeyCode(event, RIGHT_ARROW);
|
|
215
|
-
const direction = isRightKey ? 1 : -1;
|
|
216
|
-
event.stopImmediatePropagation();
|
|
217
|
-
const elementIndexToScroll = this._getPreviousItemsCount() + direction;
|
|
218
|
-
const elementExists = this.items.get(elementIndexToScroll);
|
|
219
|
-
if (!elementExists) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
this.previousItemsCount = 0;
|
|
223
|
-
this._paginate(elementIndexToScroll);
|
|
224
|
-
// Force browset not to scroll to the element since it's done with pagination function.
|
|
225
|
-
this.items.get(this._getPreviousItemsCount())?.focusableElement?.focus({
|
|
226
|
-
preventScroll: true
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
228
|
/** Listens on items change and checks if navigation buttons should be visible. */
|
|
231
229
|
listenOnItemsChange() {
|
|
232
230
|
this._subscriptions.add(this.items.changes.pipe(startWith(0)).subscribe(() => {
|
|
@@ -246,6 +244,24 @@ class MicroProcessFlowComponent {
|
|
|
246
244
|
goBack() {
|
|
247
245
|
this._paginate(-1);
|
|
248
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Sets last focused element index.
|
|
249
|
+
* @param elm Focused HTML element.
|
|
250
|
+
*/
|
|
251
|
+
setFocusedElementIndex(elm) {
|
|
252
|
+
this._focusedElementIndex = this.focusableItems.toArray().findIndex((item) => item.elRef.nativeElement === elm);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Navigates to a specific page when the user presses 'Space' or 'Enter' key.
|
|
256
|
+
* @param offset How much items needs to be scrolled relatively to the hidden previous items.
|
|
257
|
+
* @param event The keyboard event.
|
|
258
|
+
*/
|
|
259
|
+
onKeypressHandler(offset, event) {
|
|
260
|
+
if (KeyUtil.isKeyCode(event, this._actionKeys)) {
|
|
261
|
+
event.preventDefault();
|
|
262
|
+
this._paginate(offset);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
249
265
|
/**
|
|
250
266
|
* Checks if navigation buttons should be visible depending on the amount of items
|
|
251
267
|
* and current pagination offset.
|
|
@@ -277,24 +293,6 @@ class MicroProcessFlowComponent {
|
|
|
277
293
|
this._setNextItemsCount(itemsToDisplay, containerWidth);
|
|
278
294
|
this._cd.detectChanges();
|
|
279
295
|
}
|
|
280
|
-
/**
|
|
281
|
-
* Sets last focused element index.
|
|
282
|
-
* @param elm Focused HTML element.
|
|
283
|
-
*/
|
|
284
|
-
setFocusedElementIndex(elm) {
|
|
285
|
-
this._focusedElementIndex = this.focusableItems.toArray().findIndex((item) => item.elRef.nativeElement === elm);
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Navigates to a specific page when the user presses 'Space' or 'Enter' key.
|
|
289
|
-
* @param offset How much items needs to be scrolled relatively to the hidden previous items.
|
|
290
|
-
* @param event The keyboard event.
|
|
291
|
-
*/
|
|
292
|
-
onKeypressHandler(offset, event) {
|
|
293
|
-
if (KeyUtil.isKeyCode(event, this._actionKeys)) {
|
|
294
|
-
event.preventDefault();
|
|
295
|
-
this._paginate(offset);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
296
|
/**
|
|
299
297
|
* Calculate how many items are out of the viewport.
|
|
300
298
|
* @param itemsToDisplay Array of html elements that needs to be shown.
|
|
@@ -376,7 +374,7 @@ class MicroProcessFlowComponent {
|
|
|
376
374
|
_getPreviousItemsCount() {
|
|
377
375
|
return this._focusedElementIndex === -1 ? this.previousItemsCount : this._focusedElementIndex;
|
|
378
376
|
}
|
|
379
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MicroProcessFlowComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.RtlService, optional: true }
|
|
377
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MicroProcessFlowComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
380
378
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: MicroProcessFlowComponent, isStandalone: true, selector: "fd-micro-process-flow", inputs: { independentSteps: "independentSteps", transitionSpeed: "transitionSpeed", transitionTimingFunction: "transitionTimingFunction" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" }, properties: { "class.fd-micro-process-flow--independent-steps": "independentSteps" }, classAttribute: "fd-micro-process-flow" }, providers: [
|
|
381
379
|
{
|
|
382
380
|
provide: MICRO_PROCESS_FLOW,
|
|
@@ -399,7 +397,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
399
397
|
], standalone: true, imports: [], template: "@if (showPreviousButton) {\n <a\n tabindex=\"0\"\n class=\"fd-micro-process-flow__link-previous\"\n role=\"button\"\n type=\"button\"\n (click)=\"goBack()\"\n (keypress)=\"onKeypressHandler(-1, $event)\"\n >\n {{ previousItemsCount }}\n </a>\n}\n<div class=\"fd-micro-process-flow__overflow-container\" #container>\n <div\n class=\"fd-micro-process-flow__wrapper\"\n #wrapperContainer\n [style.transition-duration]=\"transitionSpeed + 'ms'\"\n [style.transition-timing-function]=\"transitionTimingFunction\"\n >\n <ng-content select=\"fd-micro-process-flow-item\"></ng-content>\n </div>\n</div>\n@if (showNextButton) {\n <a\n tabindex=\"0\"\n class=\"fd-micro-process-flow__link-next\"\n role=\"button\"\n type=\"button\"\n (click)=\"goNext()\"\n (keypress)=\"onKeypressHandler(1, $event)\"\n #goNextButton\n >\n {{ nextItemsCount }}\n </a>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.34.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */:root{--fdMicro_Process_Flow_Item_Background:var(--sapNeutralBackground);--fdMicro_Process_Flow_Item_Border_Color:var(--sapNeutralBorderColor);--fdMicro_Process_Flow_Item_Hover_Background:var(--fdMicro_Process_Flow_Item_Background);--fdMicro_Process_Flow_Item_Hover_Border_Color:var(--fdMicro_Process_Flow_Item_Border_Color);--fdMicro_Process_Flow_Item_Active_Background:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Active_Border_Color:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Width:2.75rem;--fdMicro_Process_Flow_Item_Min_Width:1.875rem;--fdMicro_Process_Flow_Compact_Item_Width:2rem;--fdMicro_Process_Flow_Compact_Item_Min_Width:1.375rem;--fdMicro_Process_Flow_Connector_Width:1.125rem;--fdMicro_Process_Flow_Compact_Connector_Width:.625rem;--fdMicro_Process_Flow_Icon_Font_Size:var(--sapFontLargeSize);--fdMicro_Process_Flow_Visible_items:8;--fdMicro_Process_Flow_Max_Container_Width:calc(var(--fdMicro_Process_Flow_Item_Width)*(var(--fdMicro_Process_Flow_Visible_items) + 1) + .0625rem);--fdMicro_Process_Flow_Compact_Max_Container_Width:calc(var(--fdMicro_Process_Flow_Compact_Item_Width)*(var(--fdMicro_Process_Flow_Visible_items) + 1) + .0625rem)}.fd-micro-process-flow{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;max-width:var(--fdMicro_Process_Flow_Max_Container_Width);padding:0}.fd-micro-process-flow:after,.fd-micro-process-flow:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow--independent-steps .fd-micro-process-flow__connector:before{border-color:transparent}.fd-micro-process-flow__wrapper{-webkit-box-sizing:border-box;-webkit-transition-property:-webkit-transform;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:0;transition-property:transform}.fd-micro-process-flow__wrapper:after,.fd-micro-process-flow__wrapper:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow__overflow-container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;overflow:hidden;padding:0;width:100%}.fd-micro-process-flow__overflow-container:after,.fd-micro-process-flow__overflow-container:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow__link-next,.fd-micro-process-flow__link-previous{-webkit-box-sizing:border-box;-webkit-box-pack:start;-ms-flex-pack:start;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:flex-start;line-height:normal;margin:0;padding:0 .313rem;text-shadow:var(--sapContent_TextShadow)}.fd-micro-process-flow__link-next:after,.fd-micro-process-flow__link-next:before,.fd-micro-process-flow__link-previous:after,.fd-micro-process-flow__link-previous:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow__link-next.is-focus,.fd-micro-process-flow__link-next:focus,.fd-micro-process-flow__link-previous.is-focus,.fd-micro-process-flow__link-previous:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-micro-process-flow__link-next:after,.fd-micro-process-flow__link-next:before,.fd-micro-process-flow__link-previous:after,.fd-micro-process-flow__link-previous:before{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--sapButton_TextColor);display:flex;font-family:SAP-icons;justify-content:center;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none}.fd-micro-process-flow__link-next.is-hover:after,.fd-micro-process-flow__link-next.is-hover:before,.fd-micro-process-flow__link-next:hover:after,.fd-micro-process-flow__link-next:hover:before,.fd-micro-process-flow__link-previous.is-hover:after,.fd-micro-process-flow__link-previous.is-hover:before,.fd-micro-process-flow__link-previous:hover:after,.fd-micro-process-flow__link-previous:hover:before{color:var(--sapButton_Hover_TextColor)}.fd-micro-process-flow__link-previous:before{content:\"\\e067\";padding-right:.313rem}.fd-micro-process-flow__link-previous[dir=rtl]:before,[dir=rtl] .fd-micro-process-flow__link-previous:before{content:\"\\e066\";padding-left:.313rem;padding-right:0}.fd-micro-process-flow__link-next{justify-content:flex-end}.fd-micro-process-flow__link-next:after{content:\"\\e066\";padding-left:.313rem}.fd-micro-process-flow__link-next[dir=rtl]:after,[dir=rtl] .fd-micro-process-flow__link-next:after{content:\"\\e067\";padding-left:0;padding-right:.313rem}.fd-micro-process-flow .fd-micro-process-flow__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-box-pack:start;-ms-flex-pack:start;align-items:stretch;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;justify-content:flex-start;line-height:normal;margin:0;margin:calc(var(--sapContent_FocusWidth) + var(--sapContent_FocusWidth)) 0;padding:0 0 0 .1875rem;position:relative}.fd-micro-process-flow .fd-micro-process-flow__item:after,.fd-micro-process-flow .fd-micro-process-flow__item:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow .fd-micro-process-flow__item--positive{--fdMicro_Process_Flow_Item_Background:var(--sapPositiveElementColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapPositiveElementColor);--fdMicro_Process_Flow_Item_Hover_Background:var(--sapButton_Success_Hover_Background);--fdMicro_Process_Flow_Item_Hover_Border_Color:var(--sapButton_Success_Hover_Background);--fdMicro_Process_Flow_Item_Active_Background:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Active_Border_Color:var(--sapHighlightColor);--fdMicro_Process_Flow_Icon_Color:var(--fdMicro_Process_Flow_Active_Icon_Color)}.fd-micro-process-flow .fd-micro-process-flow__item--information{--fdMicro_Process_Flow_Item_Background:var(--sapInformativeElementColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapInformativeElementColor);--fdMicro_Process_Flow_Item_Hover_Background:var(--sapButton_Information_Hover_Background);--fdMicro_Process_Flow_Item_Hover_Border_Color:var(--sapButton_Information_Hover_Background);--fdMicro_Process_Flow_Item_Active_Background:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Active_Border_Color:var(--sapHighlightColor);--fdMicro_Process_Flow_Icon_Color:var(--fdMicro_Process_Flow_Active_Icon_Color)}.fd-micro-process-flow .fd-micro-process-flow__item--negative{--fdMicro_Process_Flow_Item_Background:var(--sapNegativeElementColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapNegativeElementColor);--fdMicro_Process_Flow_Item_Hover_Background:var(--sapButton_Negative_Hover_Background);--fdMicro_Process_Flow_Item_Hover_Border_Color:var(--sapButton_Negative_Hover_Background);--fdMicro_Process_Flow_Item_Active_Background:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Active_Border_Color:var(--sapHighlightColor);--fdMicro_Process_Flow_Icon_Color:var(--fdMicro_Process_Flow_Active_Icon_Color)}.fd-micro-process-flow .fd-micro-process-flow__item--critical{--fdMicro_Process_Flow_Item_Background:var(--sapCriticalElementColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapCriticalElementColor);--fdMicro_Process_Flow_Item_Hover_Background:var(--sapButton_Critical_Hover_Background);--fdMicro_Process_Flow_Item_Hover_Border_Color:var(--sapButton_Critical_Hover_Background);--fdMicro_Process_Flow_Item_Active_Background:var(--sapHighlightColor);--fdMicro_Process_Flow_Item_Active_Border_Color:var(--sapHighlightColor);--fdMicro_Process_Flow_Icon_Color:var(--fdMicro_Process_Flow_Active_Icon_Color)}.fd-micro-process-flow .fd-micro-process-flow__item--information .fd-micro-process-flow__icon-container.is-hover,.fd-micro-process-flow .fd-micro-process-flow__item--information .fd-micro-process-flow__icon-container:hover{--fdMicro_Process_Flow_Icon_Color:var(--sapButton_Information_Hover_TextColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapInformationBorderColor)}.fd-micro-process-flow .fd-micro-process-flow__item--information .fd-micro-process-flow__icon-container.is-active,.fd-micro-process-flow .fd-micro-process-flow__item--information .fd-micro-process-flow__icon-container:active{--fdMicro_Process_Flow_Icon_Color:var(--sapContent_ContrastIconColor);--fdMicro_Process_Flow_Item_Border_Color:var(--sapContent_Selected_ForegroundColor)}.fd-micro-process-flow .fd-micro-process-flow__item[dir=rtl],[dir=rtl] .fd-micro-process-flow .fd-micro-process-flow__item{padding-left:0;padding-right:.1875rem}.fd-micro-process-flow .fd-micro-process-flow__item .fd-status-indicator .fdstatus-indicator__svg{width:auto}.fd-micro-process-flow__focusable-item.is-focus,.fd-micro-process-flow__focusable-item:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:.0625rem}.fd-micro-process-flow .fd-micro-process-flow__icon-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--fdMicro_Process_Flow_Item_Background);border:0;border:.0625rem solid var(--fdMicro_Process_Flow_Item_Border_Color);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:normal;margin:0;min-height:var(--fdMicro_Process_Flow_Item_Min_Width);min-width:var(--fdMicro_Process_Flow_Item_Min_Width);padding:0}.fd-micro-process-flow .fd-micro-process-flow__icon-container:after,.fd-micro-process-flow .fd-micro-process-flow__icon-container:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow .fd-micro-process-flow__icon-container .fd-micro-process-flow__icon{color:var(--fdMicro_Process_Flow_Icon_Color);font-size:var(--fdMicro_Process_Flow_Icon_Font_Size)}.fd-micro-process-flow .fd-micro-process-flow__icon-container.is-hover,.fd-micro-process-flow .fd-micro-process-flow__icon-container:hover{--fdMicro_Process_Flow_Item_Background:var(--fdMicro_Process_Flow_Item_Hover_Background);--fdMicro_Process_Flow_Item_Border_Color:var(--fdMicro_Process_Flow_Item_Hover_Border_Color)}.fd-micro-process-flow .fd-micro-process-flow__icon-container.is-active,.fd-micro-process-flow .fd-micro-process-flow__icon-container:active{--fdMicro_Process_Flow_Item_Background:var(--fdMicro_Process_Flow_Item_Active_Background);--fdMicro_Process_Flow_Item_Border_Color:var(--fdMicro_Process_Flow_Item_Active_Border_Color);--fdMicro_Process_Flow_Icon_Color:var(--fdMicro_Process_Flow_Active_Icon_Color)}.fd-micro-process-flow__content{-webkit-box-sizing:border-box;-webkit-box-pack:start;-ms-flex-pack:start;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:flex-start;line-height:normal;margin:0;min-height:var(--fdMicro_Process_Flow_Item_Min_Width);min-width:var(--fdMicro_Process_Flow_Item_Min_Width);padding:0;width:100%}.fd-micro-process-flow__content:after,.fd-micro-process-flow__content:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow__connector{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-flex:1;-ms-flex-positive:1;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:normal;margin:0 0 0 .1875rem;min-width:var(--fdMicro_Process_Flow_Connector_Width);padding:0;position:relative}.fd-micro-process-flow__connector:after,.fd-micro-process-flow__connector:before{box-sizing:inherit;font-size:inherit}.fd-micro-process-flow__connector[dir=rtl],[dir=rtl] .fd-micro-process-flow__connector{margin-left:0;margin-right:.1875rem}.fd-micro-process-flow__connector:before{border-bottom:.0625rem solid var(--sapContent_ForegroundBorderColor);content:\"\";display:block;position:absolute;width:100%;z-index:1}.fd-micro-process-flow__connector--intermediate:after{background:var(--sapNegativeElementColor);bottom:0;content:\"\";display:block;left:50%;margin-left:-.125rem;position:absolute;top:0;width:.25rem;z-index:2}.fd-micro-process-flow__connector .fd-micro-process-flow__intermediary-item{line-height:1;position:relative;z-index:3}.fd-micro-process-flow[class*=-compact],.fd-micro-process-flow[class*=-condensed],[class*=-compact] .fd-micro-process-flow:not([class*=-cozy]),[class*=-condensed] .fd-micro-process-flow:not([class*=-cozy]){--fdMicro_Process_Flow_Item_Min_Width:var(--fdMicro_Process_Flow_Compact_Item_Min_Width);--fdMicro_Process_Flow_Connector_Width:var(--fdMicro_Process_Flow_Compact_Connector_Width);--fdMicro_Process_Flow_Icon_Font_Size:var(--sapFontSmallSize);--fdMicro_Process_Flow_Item_Width:var(--fdMicro_Process_Flow_Compact_Item_Width);--fdMicro_Process_Flow_Max_Container_Width:var(--fdMicro_Process_Flow_Compact_Max_Container_Width)}\n"] }]
|
|
400
398
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.RtlService, decorators: [{
|
|
401
399
|
type: Optional
|
|
402
|
-
}] }
|
|
400
|
+
}] }], propDecorators: { independentSteps: [{
|
|
403
401
|
type: Input
|
|
404
402
|
}], transitionSpeed: [{
|
|
405
403
|
type: Input
|