@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-micro-process-flow.mjs","sources":["../../../../libs/core/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.html","../../../../libs/core/micro-process-flow/injection-tokens.ts","../../../../libs/core/micro-process-flow/micro-process-flow-focusable-item.directive.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.html","../../../../libs/core/micro-process-flow/components/micro-process-flow/micro-process-flow.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow/micro-process-flow.component.html","../../../../libs/core/micro-process-flow/micro-process-flow-intermediary-item.directive.ts","../../../../libs/core/micro-process-flow/micro-process-flow.module.ts","../../../../libs/core/micro-process-flow/fundamental-ngx-core-micro-process-flow.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent, IconFont } from '@fundamental-ngx/core/icon';\n\n@Component({\n selector: 'fd-micro-process-flow-icon',\n templateUrl: './micro-process-flow-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow__icon-container'\n },\n standalone: true,\n imports: [IconComponent]\n})\nexport class MicroProcessFlowIconComponent {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n */\n @Input() glyph: string;\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n @Input() font: IconFont = 'SAP-icons';\n\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Aria-label for Icon. */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","<fd-icon\n class=\"fd-micro-process-flow__icon\"\n [ariaLabel]=\"ariaLabel\"\n [glyph]=\"glyph\"\n [class]=\"class\"\n [font]=\"font\"\n></fd-icon>\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface MicroProcessFlowComponentInterface {\n canItemsReceiveFocus: Subject<boolean>;\n setFocusedElementIndex(elm: HTMLElement): void;\n}\n\nexport const MICRO_PROCESS_FLOW = new InjectionToken<MicroProcessFlowComponentInterface>(\n 'Micro process flow component dependency'\n);\n","import { Directive, ElementRef, HostListener, Inject, OnInit, Optional } from '@angular/core';\nimport { MICRO_PROCESS_FLOW, MicroProcessFlowComponentInterface } from './injection-tokens';\n\n@Directive({\n selector: '[fdMicroProcessFlowFocusableItem], [fd-micro-process-flow-focusable-item]',\n host: {\n class: 'fd-micro-process-flow__focusable-item'\n },\n standalone: true\n})\nexport class MicroProcessFlowFocusableItemDirective implements OnInit {\n /** @hidden */\n constructor(\n public elRef: ElementRef<HTMLElement>,\n @Optional() @Inject(MICRO_PROCESS_FLOW) private _microProcessFlow: MicroProcessFlowComponentInterface\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.setFocusable();\n }\n\n /** Sets ability to focus on the element or not. */\n setFocusable(focusable = false): void {\n this.elRef.nativeElement.setAttribute('tabindex', focusable ? '0' : '-1');\n }\n\n /** Focuses on the element without scrolling it to the viewport */\n focus(options: FocusOptions): void {\n this.elRef.nativeElement.focus(options);\n }\n\n /**\n * @hidden\n * Handler for focus events\n */\n @HostListener('focus')\n onFocus(): void {\n this._microProcessFlow?.setFocusedElementIndex(this.elRef.nativeElement);\n this._microProcessFlow?.canItemsReceiveFocus.next(false);\n }\n\n /** @hidden */\n @HostListener('blur')\n onBlur(): void {\n this._microProcessFlow?.canItemsReceiveFocus.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { MicroProcessFlowFocusableItemDirective } from '../../micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowItemType } from '../../types';\n\n@Component({\n selector: 'fd-micro-process-flow-item',\n templateUrl: './micro-process-flow-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow__item',\n '[class.fd-micro-process-flow__item--positive]': 'state === \"positive\"',\n '[class.fd-micro-process-flow__item--critical]': 'state === \"critical\"',\n '[class.fd-micro-process-flow__item--negative]': 'state === \"negative\"',\n '[class.fd-micro-process-flow__item--information]': 'state === \"information\"'\n },\n styles: [\n `\n fd-micro-process-flow-item .fd-info-label__text {\n white-space: nowrap;\n }\n `\n ],\n standalone: true,\n imports: []\n})\nexport class MicroProcessFlowItemComponent {\n /** Item state */\n @Input()\n state: MicroProcessFlowItemType = 'none';\n\n /** Whether or not display connector line */\n @Input()\n intermediate = false;\n\n /** @hidden */\n _lastItem = false;\n\n /** Element that can receive focus. */\n @ContentChild(MicroProcessFlowFocusableItemDirective)\n focusableElement: MicroProcessFlowFocusableItemDirective;\n\n /** @hidden */\n constructor(\n private _cd: ChangeDetectorRef,\n public elRef: ElementRef\n ) {}\n\n /**\n * @param value Is current item the last one\n */\n setLastItem(value: boolean): void {\n if (value !== this._lastItem) {\n this._lastItem = value;\n this._cd.detectChanges();\n }\n }\n}\n","<div class=\"fd-micro-process-flow__content\">\n <div class=\"fd-micro-process-flow__content-wrapper\">\n <ng-content></ng-content>\n </div>\n @if (!_lastItem) {\n <div\n class=\"fd-micro-process-flow__connector\"\n [class.fd-micro-process-flow__connector--intermediate]=\"intermediate\"\n >\n <ng-content select=\"[fd-micro-process-flow-intermediary-item]\"></ng-content>\n </div>\n }\n</div>\n","import { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\nimport { MICRO_PROCESS_FLOW } from '../../injection-tokens';\nimport { MicroProcessFlowFocusableItemDirective } from '../../micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowItemComponent } from '../micro-process-flow-item/micro-process-flow-item.component';\n\n@Component({\n selector: 'fd-micro-process-flow',\n templateUrl: './micro-process-flow.component.html',\n styleUrl: './micro-process-flow.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow',\n '[class.fd-micro-process-flow--independent-steps]': 'independentSteps'\n },\n providers: [\n {\n provide: MICRO_PROCESS_FLOW,\n useExisting: MicroProcessFlowComponent\n },\n contentDensityObserverProviders()\n ],\n standalone: true,\n imports: []\n})\nexport class MicroProcessFlowComponent implements OnInit, OnDestroy, AfterViewInit {\n /** Should connector between items be hidden. */\n @Input()\n independentSteps = false;\n\n /** Pagination transition speed in milliseconds */\n @Input()\n transitionSpeed = 300;\n\n /** Pagination transition effect */\n @Input()\n transitionTimingFunction = 'ease';\n\n /** Micro process flow items. */\n @ContentChildren(MicroProcessFlowItemComponent)\n items: QueryList<MicroProcessFlowItemComponent>;\n\n /** Micro process flow items. */\n @ContentChildren(MicroProcessFlowFocusableItemDirective, { descendants: true })\n focusableItems: QueryList<MicroProcessFlowFocusableItemDirective>;\n\n /**\n * Previous items outside the viewport.\n */\n previousItemsCount = 0;\n\n /**\n * Next items outside the viewport.\n */\n nextItemsCount = 0;\n\n /** Indicating whether or not any element is focused */\n canItemsReceiveFocus = new Subject<boolean>();\n\n /** Should show next button. */\n get showNextButton(): boolean {\n return this.nextItemsCount > 0;\n }\n\n /** Should show previous button. */\n get showPreviousButton(): boolean {\n return this.previousItemsCount > 0;\n }\n\n /** @hidden */\n @ViewChild('wrapperContainer')\n private _wrapperContainer: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('container')\n private _container: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('goNextButton')\n private _goNextButton: ElementRef<HTMLElement>;\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n private get _paginationDirection(): number {\n return this._isRtl ? 1 : -1;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _navigationKeys = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private _actionKeys = [SPACE, ENTER];\n\n /** @hidden */\n private _focusedElementIndex = -1;\n\n /** @hidden */\n constructor(\n private _cd: ChangeDetectorRef,\n @Optional() private _rtl: RtlService,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnInit(): void {\n // If any element is currently focused, disable ability to navigate bentween items with tab.\n this._subscriptions.add(\n this.canItemsReceiveFocus.pipe(debounceTime(10)).subscribe((value) => {\n if (value) {\n this._setFocusableVisibleItems();\n } else {\n this._disableFocusableItems();\n }\n })\n );\n\n if (this._rtl) {\n this._subscriptions.add(\n this._rtl.rtl.subscribe((value) => {\n this._isRtl = value;\n\n if (this.showPreviousButton) {\n this._paginate(0);\n }\n })\n );\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.listenOnItemsChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, this._navigationKeys)) {\n const isRightKey = KeyUtil.isKeyCode(event, RIGHT_ARROW);\n const direction = isRightKey ? 1 : -1;\n event.stopImmediatePropagation();\n\n const elementIndexToScroll = this._getPreviousItemsCount() + direction;\n const elementExists = this.items.get(elementIndexToScroll);\n\n if (!elementExists) {\n return;\n }\n\n this.previousItemsCount = 0;\n\n this._paginate(elementIndexToScroll);\n\n // Force browset not to scroll to the element since it's done with pagination function.\n this.items.get(this._getPreviousItemsCount())?.focusableElement?.focus({\n preventScroll: true\n });\n }\n }\n\n /** Listens on items change and checks if navigation buttons should be visible. */\n listenOnItemsChange(): void {\n this._subscriptions.add(\n this.items.changes.pipe(startWith(0)).subscribe(() => {\n this.items.forEach((item) => {\n item.setLastItem(false);\n });\n\n this.items.last?.setLastItem(true);\n this._setNavigationButtons();\n this._paginate(0);\n })\n );\n }\n\n /** Scrolls to the next item. */\n goNext(): void {\n this._paginate();\n }\n\n /** Scrolls to the previous item. */\n goBack(): void {\n this._paginate(-1);\n }\n\n /**\n * Checks if navigation buttons should be visible depending on the amount of items\n * and current pagination offset.\n */\n private _setNavigationButtons(): void {\n if (this._container === undefined) {\n return;\n }\n\n const containerWidth = this._container.nativeElement.offsetWidth;\n const itemsWidth = this._wrapperContainer.nativeElement.offsetWidth;\n const nextButtonWidth = this._goNextButton?.nativeElement.offsetWidth || 0;\n\n if (itemsWidth < containerWidth) {\n return;\n }\n\n // Skip previously shown items out of the calculation.\n const itemsToDisplay = this.items\n .toArray()\n .slice(this.previousItemsCount)\n .map((i) => i.elRef);\n\n // Check if all items can be fitted inside the container if we remove 'next' button.\n if (this.previousItemsCount > 0) {\n const remainingWidth = itemsToDisplay.reduce((width, elm) => elm.nativeElement.offsetWidth + width, 0);\n\n if (remainingWidth <= nextButtonWidth + containerWidth) {\n this.nextItemsCount = 0;\n this._cd.detectChanges();\n return;\n }\n }\n\n this._setNextItemsCount(itemsToDisplay, containerWidth);\n this._cd.detectChanges();\n }\n\n /**\n * Sets last focused element index.\n * @param elm Focused HTML element.\n */\n setFocusedElementIndex(elm: HTMLElement): void {\n this._focusedElementIndex = this.focusableItems.toArray().findIndex((item) => item.elRef.nativeElement === elm);\n }\n\n /**\n * Navigates to a specific page when the user presses 'Space' or 'Enter' key.\n * @param offset How much items needs to be scrolled relatively to the hidden previous items.\n * @param event The keyboard event.\n */\n onKeypressHandler(offset: number, event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, this._actionKeys)) {\n event.preventDefault();\n this._paginate(offset);\n }\n }\n\n /**\n * Calculate how many items are out of the viewport.\n * @param itemsToDisplay Array of html elements that needs to be shown.\n * @param containerWidth Width of the parent container to calculate amount of items possible to fit.\n */\n private _setNextItemsCount(itemsToDisplay: ElementRef<HTMLElement>[], containerWidth: number): void {\n let visibleItemsWidth = 0;\n let newVisibleItemsWidth = 0;\n\n for (const [index, item] of itemsToDisplay.entries()) {\n newVisibleItemsWidth = visibleItemsWidth + item.nativeElement.offsetWidth;\n\n if (newVisibleItemsWidth <= containerWidth) {\n visibleItemsWidth = newVisibleItemsWidth;\n } else {\n this.nextItemsCount = itemsToDisplay.length - index;\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Performs scrolling to the defined element based on the offset argument.\n * @param offset How much items needs to be scrolled relatively to the hidden previous items.\n */\n private _paginate(offset: number = 1): void {\n if (this.items === undefined || this.items.length === 0) {\n return;\n }\n\n this.previousItemsCount = this._focusedElementIndex = this.previousItemsCount + offset;\n\n // We need to set prev button first.\n this._setNavigationButtons();\n this._setFocusableVisibleItems();\n\n const currentItem = this.items.get(this.previousItemsCount);\n const containerWidth = this._container.nativeElement.offsetWidth;\n const wrapperContainerWidth = this._wrapperContainer.nativeElement.offsetWidth;\n\n if (!currentItem || containerWidth >= wrapperContainerWidth) {\n // Cancel pagination and revert previous items count back.\n this.previousItemsCount = this.previousItemsCount - offset;\n }\n\n const elmOffset = this._getPreviousItemsWidth();\n\n this._wrapperContainer.nativeElement.style.transform = `translateX(${elmOffset * this._paginationDirection}px)`;\n\n this._setNavigationButtons();\n this._setFocusableVisibleItems();\n }\n\n /**\n * @hidden\n * Calculates total width of previously shown items.\n * @returns {Number} total width of previously shown items.\n */\n private _getPreviousItemsWidth(): number {\n return this.items\n .toArray()\n .slice(0, this.previousItemsCount)\n .reduce((width, item) => item.elRef.nativeElement.offsetWidth + width, 0);\n }\n\n /** @hidden */\n private _disableFocusableItems(): void {\n this.items.forEach((item) => item.focusableElement?.setFocusable(false));\n }\n\n /** @hidden */\n private _setFocusableVisibleItems(): void {\n this._disableFocusableItems();\n\n const containerWidth = this._container.nativeElement.offsetWidth;\n\n const itemsToDisplay = this.items.toArray().slice(this.previousItemsCount);\n\n let visibleItemsWidth = 0;\n let newVisibleItemsWidth = 0;\n\n for (const item of itemsToDisplay) {\n newVisibleItemsWidth = visibleItemsWidth + item.elRef.nativeElement.offsetWidth;\n\n if (newVisibleItemsWidth <= containerWidth) {\n visibleItemsWidth = newVisibleItemsWidth;\n item.focusableElement?.setFocusable(true);\n } else {\n break;\n }\n }\n }\n\n /** @hidden */\n private _getPreviousItemsCount(): number {\n return this._focusedElementIndex === -1 ? this.previousItemsCount : this._focusedElementIndex;\n }\n}\n","@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","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdMicroProcessFlowIntermediaryItem], [fd-micro-process-flow-intermediary-item]',\n host: {\n class: 'fd-micro-process-flow__intermediary-item'\n },\n standalone: true\n})\nexport class MicroProcessFlowIntermediaryItemDirective {}\n","import { NgModule } from '@angular/core';\nimport { MicroProcessFlowIconComponent } from './components/micro-process-flow-icon/micro-process-flow-icon.component';\nimport { MicroProcessFlowItemComponent } from './components/micro-process-flow-item/micro-process-flow-item.component';\nimport { MicroProcessFlowComponent } from './components/micro-process-flow/micro-process-flow.component';\nimport { MicroProcessFlowFocusableItemDirective } from './micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowIntermediaryItemDirective } from './micro-process-flow-intermediary-item.directive';\n\nconst components = [\n MicroProcessFlowComponent,\n MicroProcessFlowItemComponent,\n MicroProcessFlowIconComponent,\n MicroProcessFlowIntermediaryItemDirective,\n MicroProcessFlowFocusableItemDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class MicroProcessFlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-micro-process-flow.mjs","sources":["../../../../libs/core/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.html","../../../../libs/core/micro-process-flow/injection-tokens.ts","../../../../libs/core/micro-process-flow/micro-process-flow-focusable-item.directive.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.html","../../../../libs/core/micro-process-flow/components/micro-process-flow/micro-process-flow.component.ts","../../../../libs/core/micro-process-flow/components/micro-process-flow/micro-process-flow.component.html","../../../../libs/core/micro-process-flow/micro-process-flow-intermediary-item.directive.ts","../../../../libs/core/micro-process-flow/micro-process-flow.module.ts","../../../../libs/core/micro-process-flow/fundamental-ngx-core-micro-process-flow.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent, IconFont } from '@fundamental-ngx/core/icon';\n\n@Component({\n selector: 'fd-micro-process-flow-icon',\n templateUrl: './micro-process-flow-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow__icon-container'\n },\n standalone: true,\n imports: [IconComponent]\n})\nexport class MicroProcessFlowIconComponent {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n */\n @Input() glyph: string;\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n @Input() font: IconFont = 'SAP-icons';\n\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Aria-label for Icon. */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","<fd-icon\n class=\"fd-micro-process-flow__icon\"\n [ariaLabel]=\"ariaLabel\"\n [glyph]=\"glyph\"\n [class]=\"class\"\n [font]=\"font\"\n></fd-icon>\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface MicroProcessFlowComponentInterface {\n canItemsReceiveFocus: Subject<boolean>;\n setFocusedElementIndex(elm: HTMLElement): void;\n}\n\nexport const MICRO_PROCESS_FLOW = new InjectionToken<MicroProcessFlowComponentInterface>(\n 'Micro process flow component dependency'\n);\n","import { Directive, ElementRef, HostListener, Inject, OnInit, Optional } from '@angular/core';\nimport { MICRO_PROCESS_FLOW, MicroProcessFlowComponentInterface } from './injection-tokens';\n\n@Directive({\n selector: '[fdMicroProcessFlowFocusableItem], [fd-micro-process-flow-focusable-item]',\n host: {\n class: 'fd-micro-process-flow__focusable-item'\n },\n standalone: true\n})\nexport class MicroProcessFlowFocusableItemDirective implements OnInit {\n /** @hidden */\n constructor(\n public elRef: ElementRef<HTMLElement>,\n @Optional() @Inject(MICRO_PROCESS_FLOW) private _microProcessFlow: MicroProcessFlowComponentInterface\n ) {}\n\n /**\n * @hidden\n * Handler for focus events\n */\n @HostListener('focus')\n onFocus(): void {\n this._microProcessFlow?.setFocusedElementIndex(this.elRef.nativeElement);\n this._microProcessFlow?.canItemsReceiveFocus.next(false);\n }\n\n /** @hidden */\n @HostListener('blur')\n onBlur(): void {\n this._microProcessFlow?.canItemsReceiveFocus.next(true);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.setFocusable();\n }\n\n /** Sets ability to focus on the element or not. */\n setFocusable(focusable = false): void {\n this.elRef.nativeElement.setAttribute('tabindex', focusable ? '0' : '-1');\n }\n\n /** Focuses on the element without scrolling it to the viewport */\n focus(options: FocusOptions): void {\n this.elRef.nativeElement.focus(options);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { MicroProcessFlowFocusableItemDirective } from '../../micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowItemType } from '../../types';\n\n@Component({\n selector: 'fd-micro-process-flow-item',\n templateUrl: './micro-process-flow-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow__item',\n '[class.fd-micro-process-flow__item--positive]': 'state === \"positive\"',\n '[class.fd-micro-process-flow__item--critical]': 'state === \"critical\"',\n '[class.fd-micro-process-flow__item--negative]': 'state === \"negative\"',\n '[class.fd-micro-process-flow__item--information]': 'state === \"information\"'\n },\n styles: [\n `\n fd-micro-process-flow-item .fd-info-label__text {\n white-space: nowrap;\n }\n `\n ],\n standalone: true,\n imports: []\n})\nexport class MicroProcessFlowItemComponent {\n /** Item state */\n @Input()\n state: MicroProcessFlowItemType = 'none';\n\n /** Whether or not display connector line */\n @Input()\n intermediate = false;\n\n /** Element that can receive focus. */\n @ContentChild(MicroProcessFlowFocusableItemDirective)\n focusableElement: MicroProcessFlowFocusableItemDirective;\n\n /** @hidden */\n _lastItem = false;\n\n /** @hidden */\n constructor(\n private _cd: ChangeDetectorRef,\n public elRef: ElementRef\n ) {}\n\n /**\n * @param value Is current item the last one\n */\n setLastItem(value: boolean): void {\n if (value !== this._lastItem) {\n this._lastItem = value;\n this._cd.detectChanges();\n }\n }\n}\n","<div class=\"fd-micro-process-flow__content\">\n <div class=\"fd-micro-process-flow__content-wrapper\">\n <ng-content></ng-content>\n </div>\n @if (!_lastItem) {\n <div\n class=\"fd-micro-process-flow__connector\"\n [class.fd-micro-process-flow__connector--intermediate]=\"intermediate\"\n >\n <ng-content select=\"[fd-micro-process-flow-intermediary-item]\"></ng-content>\n </div>\n }\n</div>\n","import { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\nimport { MICRO_PROCESS_FLOW } from '../../injection-tokens';\nimport { MicroProcessFlowFocusableItemDirective } from '../../micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowItemComponent } from '../micro-process-flow-item/micro-process-flow-item.component';\n\n@Component({\n selector: 'fd-micro-process-flow',\n templateUrl: './micro-process-flow.component.html',\n styleUrl: './micro-process-flow.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-micro-process-flow',\n '[class.fd-micro-process-flow--independent-steps]': 'independentSteps'\n },\n providers: [\n {\n provide: MICRO_PROCESS_FLOW,\n useExisting: MicroProcessFlowComponent\n },\n contentDensityObserverProviders()\n ],\n standalone: true,\n imports: []\n})\nexport class MicroProcessFlowComponent implements OnInit, OnDestroy, AfterViewInit {\n /** Should connector between items be hidden. */\n @Input()\n independentSteps = false;\n\n /** Pagination transition speed in milliseconds */\n @Input()\n transitionSpeed = 300;\n\n /** Pagination transition effect */\n @Input()\n transitionTimingFunction = 'ease';\n\n /** Micro process flow items. */\n @ContentChildren(MicroProcessFlowItemComponent)\n items: QueryList<MicroProcessFlowItemComponent>;\n\n /** Micro process flow items. */\n @ContentChildren(MicroProcessFlowFocusableItemDirective, { descendants: true })\n focusableItems: QueryList<MicroProcessFlowFocusableItemDirective>;\n\n /** @hidden */\n @ViewChild('wrapperContainer')\n private _wrapperContainer: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('container')\n private _container: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('goNextButton')\n private _goNextButton: ElementRef<HTMLElement>;\n\n /**\n * Previous items outside the viewport.\n */\n previousItemsCount = 0;\n\n /**\n * Next items outside the viewport.\n */\n nextItemsCount = 0;\n\n /** Indicating whether or not any element is focused */\n canItemsReceiveFocus = new Subject<boolean>();\n\n /** Should show next button. */\n get showNextButton(): boolean {\n return this.nextItemsCount > 0;\n }\n\n /** Should show previous button. */\n get showPreviousButton(): boolean {\n return this.previousItemsCount > 0;\n }\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n private get _paginationDirection(): number {\n return this._isRtl ? 1 : -1;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _navigationKeys = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private _actionKeys = [SPACE, ENTER];\n\n /** @hidden */\n private _focusedElementIndex = -1;\n\n /** @hidden */\n constructor(\n private _cd: ChangeDetectorRef,\n @Optional() private _rtl: RtlService\n ) {\n inject(ContentDensityObserver).subscribe();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, this._navigationKeys)) {\n const isRightKey = KeyUtil.isKeyCode(event, RIGHT_ARROW);\n const direction = isRightKey ? 1 : -1;\n event.stopImmediatePropagation();\n\n const elementIndexToScroll = this._getPreviousItemsCount() + direction;\n const elementExists = this.items.get(elementIndexToScroll);\n\n if (!elementExists) {\n return;\n }\n\n this.previousItemsCount = 0;\n\n this._paginate(elementIndexToScroll);\n\n // Force browset not to scroll to the element since it's done with pagination function.\n this.items.get(this._getPreviousItemsCount())?.focusableElement?.focus({\n preventScroll: true\n });\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n // If any element is currently focused, disable ability to navigate bentween items with tab.\n this._subscriptions.add(\n this.canItemsReceiveFocus.pipe(debounceTime(10)).subscribe((value) => {\n if (value) {\n this._setFocusableVisibleItems();\n } else {\n this._disableFocusableItems();\n }\n })\n );\n\n if (this._rtl) {\n this._subscriptions.add(\n this._rtl.rtl.subscribe((value) => {\n this._isRtl = value;\n\n if (this.showPreviousButton) {\n this._paginate(0);\n }\n })\n );\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.listenOnItemsChange();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** Listens on items change and checks if navigation buttons should be visible. */\n listenOnItemsChange(): void {\n this._subscriptions.add(\n this.items.changes.pipe(startWith(0)).subscribe(() => {\n this.items.forEach((item) => {\n item.setLastItem(false);\n });\n\n this.items.last?.setLastItem(true);\n this._setNavigationButtons();\n this._paginate(0);\n })\n );\n }\n\n /** Scrolls to the next item. */\n goNext(): void {\n this._paginate();\n }\n\n /** Scrolls to the previous item. */\n goBack(): void {\n this._paginate(-1);\n }\n\n /**\n * Sets last focused element index.\n * @param elm Focused HTML element.\n */\n setFocusedElementIndex(elm: HTMLElement): void {\n this._focusedElementIndex = this.focusableItems.toArray().findIndex((item) => item.elRef.nativeElement === elm);\n }\n\n /**\n * Navigates to a specific page when the user presses 'Space' or 'Enter' key.\n * @param offset How much items needs to be scrolled relatively to the hidden previous items.\n * @param event The keyboard event.\n */\n onKeypressHandler(offset: number, event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, this._actionKeys)) {\n event.preventDefault();\n this._paginate(offset);\n }\n }\n\n /**\n * Checks if navigation buttons should be visible depending on the amount of items\n * and current pagination offset.\n */\n private _setNavigationButtons(): void {\n if (this._container === undefined) {\n return;\n }\n\n const containerWidth = this._container.nativeElement.offsetWidth;\n const itemsWidth = this._wrapperContainer.nativeElement.offsetWidth;\n const nextButtonWidth = this._goNextButton?.nativeElement.offsetWidth || 0;\n\n if (itemsWidth < containerWidth) {\n return;\n }\n\n // Skip previously shown items out of the calculation.\n const itemsToDisplay = this.items\n .toArray()\n .slice(this.previousItemsCount)\n .map((i) => i.elRef);\n\n // Check if all items can be fitted inside the container if we remove 'next' button.\n if (this.previousItemsCount > 0) {\n const remainingWidth = itemsToDisplay.reduce((width, elm) => elm.nativeElement.offsetWidth + width, 0);\n\n if (remainingWidth <= nextButtonWidth + containerWidth) {\n this.nextItemsCount = 0;\n this._cd.detectChanges();\n return;\n }\n }\n\n this._setNextItemsCount(itemsToDisplay, containerWidth);\n this._cd.detectChanges();\n }\n\n /**\n * Calculate how many items are out of the viewport.\n * @param itemsToDisplay Array of html elements that needs to be shown.\n * @param containerWidth Width of the parent container to calculate amount of items possible to fit.\n */\n private _setNextItemsCount(itemsToDisplay: ElementRef<HTMLElement>[], containerWidth: number): void {\n let visibleItemsWidth = 0;\n let newVisibleItemsWidth = 0;\n\n for (const [index, item] of itemsToDisplay.entries()) {\n newVisibleItemsWidth = visibleItemsWidth + item.nativeElement.offsetWidth;\n\n if (newVisibleItemsWidth <= containerWidth) {\n visibleItemsWidth = newVisibleItemsWidth;\n } else {\n this.nextItemsCount = itemsToDisplay.length - index;\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Performs scrolling to the defined element based on the offset argument.\n * @param offset How much items needs to be scrolled relatively to the hidden previous items.\n */\n private _paginate(offset: number = 1): void {\n if (this.items === undefined || this.items.length === 0) {\n return;\n }\n\n this.previousItemsCount = this._focusedElementIndex = this.previousItemsCount + offset;\n\n // We need to set prev button first.\n this._setNavigationButtons();\n this._setFocusableVisibleItems();\n\n const currentItem = this.items.get(this.previousItemsCount);\n const containerWidth = this._container.nativeElement.offsetWidth;\n const wrapperContainerWidth = this._wrapperContainer.nativeElement.offsetWidth;\n\n if (!currentItem || containerWidth >= wrapperContainerWidth) {\n // Cancel pagination and revert previous items count back.\n this.previousItemsCount = this.previousItemsCount - offset;\n }\n\n const elmOffset = this._getPreviousItemsWidth();\n\n this._wrapperContainer.nativeElement.style.transform = `translateX(${elmOffset * this._paginationDirection}px)`;\n\n this._setNavigationButtons();\n this._setFocusableVisibleItems();\n }\n\n /**\n * @hidden\n * Calculates total width of previously shown items.\n * @returns {Number} total width of previously shown items.\n */\n private _getPreviousItemsWidth(): number {\n return this.items\n .toArray()\n .slice(0, this.previousItemsCount)\n .reduce((width, item) => item.elRef.nativeElement.offsetWidth + width, 0);\n }\n\n /** @hidden */\n private _disableFocusableItems(): void {\n this.items.forEach((item) => item.focusableElement?.setFocusable(false));\n }\n\n /** @hidden */\n private _setFocusableVisibleItems(): void {\n this._disableFocusableItems();\n\n const containerWidth = this._container.nativeElement.offsetWidth;\n\n const itemsToDisplay = this.items.toArray().slice(this.previousItemsCount);\n\n let visibleItemsWidth = 0;\n let newVisibleItemsWidth = 0;\n\n for (const item of itemsToDisplay) {\n newVisibleItemsWidth = visibleItemsWidth + item.elRef.nativeElement.offsetWidth;\n\n if (newVisibleItemsWidth <= containerWidth) {\n visibleItemsWidth = newVisibleItemsWidth;\n item.focusableElement?.setFocusable(true);\n } else {\n break;\n }\n }\n }\n\n /** @hidden */\n private _getPreviousItemsCount(): number {\n return this._focusedElementIndex === -1 ? this.previousItemsCount : this._focusedElementIndex;\n }\n}\n","@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","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdMicroProcessFlowIntermediaryItem], [fd-micro-process-flow-intermediary-item]',\n host: {\n class: 'fd-micro-process-flow__intermediary-item'\n },\n standalone: true\n})\nexport class MicroProcessFlowIntermediaryItemDirective {}\n","import { NgModule } from '@angular/core';\nimport { MicroProcessFlowIconComponent } from './components/micro-process-flow-icon/micro-process-flow-icon.component';\nimport { MicroProcessFlowItemComponent } from './components/micro-process-flow-item/micro-process-flow-item.component';\nimport { MicroProcessFlowComponent } from './components/micro-process-flow/micro-process-flow.component';\nimport { MicroProcessFlowFocusableItemDirective } from './micro-process-flow-focusable-item.directive';\nimport { MicroProcessFlowIntermediaryItemDirective } from './micro-process-flow-intermediary-item.directive';\n\nconst components = [\n MicroProcessFlowComponent,\n MicroProcessFlowItemComponent,\n MicroProcessFlowIconComponent,\n MicroProcessFlowIntermediaryItemDirective,\n MicroProcessFlowFocusableItemDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class MicroProcessFlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1363,21 +1363,18 @@ class MultiComboboxComponent extends BaseMultiCombobox {
|
|
|
1363
1363
|
provide: MULTI_COMBOBOX_COMPONENT,
|
|
1364
1364
|
useExisting: MultiComboboxComponent
|
|
1365
1365
|
}
|
|
1366
|
-
], queries: [{ propertyName: "customTemplates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true, read: ElementRef }, { propertyName: "listComponent", first: true, predicate: FD_LIST_COMPONENT, descendants: true }, { propertyName: "mobileControlTemplate", first: true, predicate: ["mobileControlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "_inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i2.CvaDirective, inputs: ["id", "inputId", "placeholder", "placeholder", "state", "state", "stateMessage", "stateMessage", "disabled", "disabled", "readonly", "readonly", "name", "name"] }, { directive: i3$1.DataSourceDirective, inputs: ["dataSource", "dataSource"], outputs: ["dataChanged", "dataChanged"] }], ngImport: i0, template: "<div class=\"fd-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fd-multi-combobox__list-container\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"_cva.disabled\"\n [maxWidth]=\"_popoverMaxWidth\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n #inputGroup\n [id]=\"_cva.id + '-input-group-container'\"\n [state]=\"_cva.state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!_cva.readonly\"\n [glyph]=\"!_cva.readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"_cva.disabled || _cva.readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"_cva.disabled || _cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [glyphAriaLabel]=\"_cva.ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && _onPrimaryButtonClick(false)\"\n (keydown)=\"_navigateByTokens($event)\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"_moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"_cva.disabled\" (onCloseClick)=\"_removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdkAutoComplete\n (onComplete)=\"_onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"'coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate\"\n [attr.aria-labelledby]=\"_cva.ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? _cva.id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"_cva.id\"\n [name]=\"_cva.name\"\n (keydown)=\"_onInputKeydownHandler($event)\"\n [disabled]=\"_cva.disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"_searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : _cva.placeholder\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"!mobile && _onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"_cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [attr.aria-required]=\"_cva.required\"\n [displayFn]=\"_displayFn\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!_cva.stateMessage) {\n <fd-form-message [type]=\"_cva.state\" [innerHtml]=\"_cva.stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"_cva.id + '-input-group-container'\"\n class=\"fd-multi-combobox-input-group-custom\"\n [state]=\"_cva.state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"_cva.disabled || _cva.readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"_cva.disabled || _cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [glyphAriaLabel]=\"_cva.ariaLabel\"\n >\n <input\n fdkAutoComplete\n (onComplete)=\"_onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"'coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate\"\n [attr.aria-labelledby]=\"_cva.ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? _cva.id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"_cva.id\"\n [name]=\"_cva.name\"\n (keydown)=\"_onInputKeydownHandler($event)\"\n [disabled]=\"_cva.disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"_searchTermChanged()\"\n [placeholder]=\"_cva.placeholder\"\n (focus)=\"_cva.onTouched()\"\n (blur)=\"!mobile && _onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"_cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [displayFn]=\"_displayFn\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [byline]=\"byline\"\n [selection]=\"byline\"\n (focusEscapeList)=\"_handleListFocusEscape($event)\"\n class=\"fd-multi-combobox__list fd-list--multi-input\"\n [id]=\"_cva.id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width.px]=\"!mobile && minWidth\"\n [style.max-width.px]=\"autoResize && maxWidth\"\n [attr.aria-labelledby]=\"_cva.id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.shift.tab)=\"close()\"\n >\n @if (!!_cva.stateMessage) {\n <fd-form-message [type]=\"_cva.state\" [innerHtml]=\"_cva.stateMessage\"></fd-form-message>\n }\n @if (showSelectAll) {\n <fd-multi-combobox-select-all-toggler\n [selectAllHandler]=\"_handleSelectAllItems\"\n [valueChanges]=\"selectionChange\"\n [selectedItems]=\"_selectedSuggestions\"\n [flatItems]=\"_flatSuggestions\"\n ></fd-multi-combobox-select-all-toggler>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (click)=\"!mobile && _onOptionClicked($event, i)\"\n (keydown)=\"_onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"_onOptionCheckboxClicked($event, i)\"\n (ngModelChange)=\"_toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (click)=\"!mobile && _onOptionClicked($event, i)\"\n (keydown)=\"_onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"_onOptionCheckboxClicked($event, i)\"\n (ngModelChange)=\"_toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n fdTruncatedTitle\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\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 */.fd-margin--tiny{margin:.5rem!important}.fd-margin--sm{margin:1rem!important}.fd-margin--md{margin:2rem!important}.fd-margin--lg{margin:3rem!important}.fd-margin--none{margin:0!important}.fd-margin-top--tiny{margin-top:.5rem!important}.fd-margin-top--sm{margin-top:1rem!important}.fd-margin-top--md{margin-top:2rem!important}.fd-margin-top--lg{margin-top:3rem!important}.fd-margin-top--none{margin-top:0!important}.fd-margin-end--tiny{margin-right:.5rem!important}.fd-margin-end--tiny[dir=rtl],[dir=rtl] .fd-margin-end--tiny{margin-left:.5rem!important;margin-right:0!important}.fd-margin-end--sm{margin-right:1rem!important}.fd-margin-end--sm[dir=rtl],[dir=rtl] .fd-margin-end--sm{margin-left:1rem!important;margin-right:0!important}.fd-margin-end--md{margin-right:2rem!important}.fd-margin-end--md[dir=rtl],[dir=rtl] .fd-margin-end--md{margin-left:2rem!important;margin-right:0!important}.fd-margin-end--lg{margin-right:3rem!important}.fd-margin-end--lg[dir=rtl],[dir=rtl] .fd-margin-end--lg{margin-left:3rem!important;margin-right:0!important}.fd-margin-end--none{margin-right:0}.fd-margin-end--none[dir=rtl],[dir=rtl] .fd-margin-end--none{margin-left:0!important}.fd-margin-bottom--tiny{margin-bottom:.5rem!important}.fd-margin-bottom--sm{margin-bottom:1rem!important}.fd-margin-bottom--md{margin-bottom:2rem!important}.fd-margin-bottom--lg{margin-bottom:3rem!important}.fd-margin-bottom--none{margin-bottom:0!important}.fd-margin-begin--tiny{margin-left:.5rem!important}.fd-margin-begin--tiny[dir=rtl],[dir=rtl] .fd-margin-begin--tiny{margin-left:0!important;margin-right:.5rem!important}.fd-margin-begin--sm{margin-left:1rem!important}.fd-margin-begin--sm[dir=rtl],[dir=rtl] .fd-margin-begin--sm{margin-left:0!important;margin-right:1rem!important}.fd-margin-begin--md{margin-left:2rem!important}.fd-margin-begin--md[dir=rtl],[dir=rtl] .fd-margin-begin--md{margin-left:0!important;margin-right:2rem!important}.fd-margin-begin--lg{margin-left:3rem!important}.fd-margin-begin--lg[dir=rtl],[dir=rtl] .fd-margin-begin--lg{margin-left:0!important;margin-right:3rem!important}.fd-margin-begin--none{margin-left:0}.fd-margin-begin--none[dir=rtl],[dir=rtl] .fd-margin-begin--none{margin-right:0!important}.fd-margin-top-bottom--tiny{margin-bottom:.5rem!important;margin-top:.5rem!important}.fd-margin-top-bottom--sm{margin-bottom:1rem!important;margin-top:1rem!important}.fd-margin-top-bottom--md{margin-bottom:2rem!important;margin-top:2rem!important}.fd-margin-top-bottom--lg{margin-bottom:3rem!important;margin-top:3rem!important}.fd-margin-begin-end--tiny{margin-left:.5rem!important;margin-right:.5rem!important}.fd-margin-begin-end--sm{margin-left:1rem!important;margin-right:1rem!important}.fd-margin-begin-end--md{margin-left:2rem!important;margin-right:2rem!important}.fd-margin-begin-end--lg{margin-left:3rem!important;margin-right:3rem!important}.fd-margin-responsive--sm{margin:0 0 1rem!important}.fd-margin-responsive--md{margin:1rem!important}.fd-margin-responsive--lg{margin:1rem 2rem!important}.fd-margin-responsive--xl{margin:1rem 3rem!important}.fd-margin-negative-begin-end--tiny{margin:0 -.5rem!important}.fd-margin-negative-begin-end--sm{margin:0 -1rem!important}.fd-margin-negative-begin-end--md{margin:0 -2rem!important}.fd-margin-negative-begin-end--lg{margin:0 -3rem!important}.fd-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-combobox-tokenizer-custom[class*=--compact],.fd-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-combobox-input-group-custom{display:inline-block}.fd-multi-combobox .fd-popover-custom{display:block}.fd-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fd-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fd-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}.fd-multi-combobox__list-container fd-form-message{max-width:100%;border-radius:0!important}.fd-dialog__body fd-form-message{max-width:100%;border-radius:0!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: SelectAllTogglerComponent, selector: "fd-multi-combobox-select-all-toggler", inputs: ["selectAllHandler", "valueChanges", "selectedItems", "flatItems"] }, { kind: "directive", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "directive", type: TruncatedTitleDirective, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1366
|
+
], queries: [{ propertyName: "customTemplates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true, read: ElementRef }, { propertyName: "listComponent", first: true, predicate: FD_LIST_COMPONENT, descendants: true }, { propertyName: "mobileControlTemplate", first: true, predicate: ["mobileControlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "_inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i2.CvaDirective, inputs: ["id", "inputId", "placeholder", "placeholder", "state", "state", "stateMessage", "stateMessage", "disabled", "disabled", "readonly", "readonly", "name", "name"] }, { directive: i3$1.DataSourceDirective, inputs: ["dataSource", "dataSource"], outputs: ["dataChanged", "dataChanged"] }], ngImport: i0, template: "<div class=\"fd-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fd-multi-combobox__list-container\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"_cva.disabled\"\n [maxWidth]=\"_popoverMaxWidth\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n #inputGroup\n [id]=\"_cva.id + '-input-group-container'\"\n [state]=\"_cva.state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!_cva.readonly\"\n [glyph]=\"!_cva.readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"_cva.disabled || _cva.readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"_cva.disabled || _cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [glyphAriaLabel]=\"_cva.ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && _onPrimaryButtonClick(false)\"\n (keydown)=\"_navigateByTokens($event)\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"_moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"_cva.disabled\" (onCloseClick)=\"_removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdkAutoComplete\n (onComplete)=\"_onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"'coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate\"\n [attr.aria-labelledby]=\"_cva.ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? _cva.id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"_cva.id\"\n [name]=\"_cva.name\"\n (keydown)=\"_onInputKeydownHandler($event)\"\n [disabled]=\"_cva.disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"_searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : _cva.placeholder\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"!mobile && _onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"_cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [attr.aria-required]=\"_cva.required\"\n [displayFn]=\"_displayFn\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!_cva.stateMessage) {\n <fd-form-message [type]=\"_cva.state\" [innerHtml]=\"_cva.stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"_cva.id + '-input-group-container'\"\n class=\"fd-multi-combobox-input-group-custom\"\n [state]=\"_cva.state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"_cva.disabled || _cva.readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"_cva.disabled || _cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [glyphAriaLabel]=\"_cva.ariaLabel\"\n >\n <input\n fdkAutoComplete\n (onComplete)=\"_onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"'coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate\"\n [attr.aria-labelledby]=\"_cva.ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? _cva.id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"_cva.id\"\n [name]=\"_cva.name\"\n (keydown)=\"_onInputKeydownHandler($event)\"\n [disabled]=\"_cva.disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"_searchTermChanged()\"\n [placeholder]=\"_cva.placeholder\"\n (focus)=\"_cva.onTouched()\"\n (blur)=\"!mobile && _onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"_cva.readonly\"\n [attr.aria-readonly]=\"_cva.readonly\"\n [displayFn]=\"_displayFn\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [byline]=\"byline\"\n [selection]=\"byline\"\n (focusEscapeList)=\"_handleListFocusEscape($event)\"\n class=\"fd-multi-combobox__list fd-list--multi-input\"\n [id]=\"_cva.id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width.px]=\"!mobile && minWidth\"\n [style.max-width.px]=\"autoResize && maxWidth\"\n [attr.aria-labelledby]=\"_cva.id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.shift.tab)=\"close()\"\n >\n @if (!!_cva.stateMessage) {\n <fd-form-message [type]=\"_cva.state\" [innerHtml]=\"_cva.stateMessage\"></fd-form-message>\n }\n @if (showSelectAll) {\n <fd-multi-combobox-select-all-toggler\n [selectAllHandler]=\"_handleSelectAllItems\"\n [valueChanges]=\"selectionChange\"\n [selectedItems]=\"_selectedSuggestions\"\n [flatItems]=\"_flatSuggestions\"\n ></fd-multi-combobox-select-all-toggler>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (click)=\"!mobile && _onOptionClicked($event, i)\"\n (keydown)=\"_onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"_onOptionCheckboxClicked($event, i)\"\n (ngModelChange)=\"_toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (click)=\"!mobile && _onOptionClicked($event, i)\"\n (keydown)=\"_onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"_onOptionCheckboxClicked($event, i)\"\n (ngModelChange)=\"_toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n fdTruncatedTitle\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\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 */.fd-margin--tiny{margin:.5rem!important}.fd-margin--sm{margin:1rem!important}.fd-margin--md{margin:2rem!important}.fd-margin--lg{margin:3rem!important}.fd-margin--none{margin:0!important}.fd-margin-top--tiny{margin-top:.5rem!important}.fd-margin-top--sm{margin-top:1rem!important}.fd-margin-top--md{margin-top:2rem!important}.fd-margin-top--lg{margin-top:3rem!important}.fd-margin-top--none{margin-top:0!important}.fd-margin-end--tiny{margin-right:.5rem!important}.fd-margin-end--tiny[dir=rtl],[dir=rtl] .fd-margin-end--tiny{margin-left:.5rem!important;margin-right:0!important}.fd-margin-end--sm{margin-right:1rem!important}.fd-margin-end--sm[dir=rtl],[dir=rtl] .fd-margin-end--sm{margin-left:1rem!important;margin-right:0!important}.fd-margin-end--md{margin-right:2rem!important}.fd-margin-end--md[dir=rtl],[dir=rtl] .fd-margin-end--md{margin-left:2rem!important;margin-right:0!important}.fd-margin-end--lg{margin-right:3rem!important}.fd-margin-end--lg[dir=rtl],[dir=rtl] .fd-margin-end--lg{margin-left:3rem!important;margin-right:0!important}.fd-margin-end--none{margin-right:0}.fd-margin-end--none[dir=rtl],[dir=rtl] .fd-margin-end--none{margin-left:0!important}.fd-margin-bottom--tiny{margin-bottom:.5rem!important}.fd-margin-bottom--sm{margin-bottom:1rem!important}.fd-margin-bottom--md{margin-bottom:2rem!important}.fd-margin-bottom--lg{margin-bottom:3rem!important}.fd-margin-bottom--none{margin-bottom:0!important}.fd-margin-begin--tiny{margin-left:.5rem!important}.fd-margin-begin--tiny[dir=rtl],[dir=rtl] .fd-margin-begin--tiny{margin-left:0!important;margin-right:.5rem!important}.fd-margin-begin--sm{margin-left:1rem!important}.fd-margin-begin--sm[dir=rtl],[dir=rtl] .fd-margin-begin--sm{margin-left:0!important;margin-right:1rem!important}.fd-margin-begin--md{margin-left:2rem!important}.fd-margin-begin--md[dir=rtl],[dir=rtl] .fd-margin-begin--md{margin-left:0!important;margin-right:2rem!important}.fd-margin-begin--lg{margin-left:3rem!important}.fd-margin-begin--lg[dir=rtl],[dir=rtl] .fd-margin-begin--lg{margin-left:0!important;margin-right:3rem!important}.fd-margin-begin--none{margin-left:0}.fd-margin-begin--none[dir=rtl],[dir=rtl] .fd-margin-begin--none{margin-right:0!important}.fd-margin-top-bottom--tiny{margin-bottom:.5rem!important;margin-top:.5rem!important}.fd-margin-top-bottom--sm{margin-bottom:1rem!important;margin-top:1rem!important}.fd-margin-top-bottom--md{margin-bottom:2rem!important;margin-top:2rem!important}.fd-margin-top-bottom--lg{margin-bottom:3rem!important;margin-top:3rem!important}.fd-margin-begin-end--tiny{margin-left:.5rem!important;margin-right:.5rem!important}.fd-margin-begin-end--sm{margin-left:1rem!important;margin-right:1rem!important}.fd-margin-begin-end--md{margin-left:2rem!important;margin-right:2rem!important}.fd-margin-begin-end--lg{margin-left:3rem!important;margin-right:3rem!important}.fd-margin-responsive--sm{margin:0 0 1rem!important}.fd-margin-responsive--md{margin:1rem!important}.fd-margin-responsive--lg{margin:1rem 2rem!important}.fd-margin-responsive--xl{margin:1rem 3rem!important}.fd-margin-negative-begin-end--tiny{margin:0 -.5rem!important}.fd-margin-negative-begin-end--sm{margin:0 -1rem!important}.fd-margin-negative-begin-end--md{margin:0 -2rem!important}.fd-margin-negative-begin-end--lg{margin:0 -3rem!important}.fd-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-combobox-tokenizer-custom[class*=--compact],.fd-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-combobox-input-group-custom{display:inline-block}.fd-multi-combobox .fd-popover-custom{display:block}.fd-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fd-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fd-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}.fd-multi-combobox__list-container fd-form-message{max-width:100%;border-radius:0!important}.fd-dialog__body fd-form-message{max-width:100%;border-radius:0!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "displayFn", "matcher"], outputs: ["onComplete"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: SelectAllTogglerComponent, selector: "fd-multi-combobox-select-all-toggler", inputs: ["selectAllHandler", "valueChanges", "selectedItems", "flatItems"] }, { kind: "directive", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "directive", type: TruncatedTitleDirective, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1367
1367
|
}
|
|
1368
1368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MultiComboboxComponent, decorators: [{
|
|
1369
1369
|
type: Component,
|
|
1370
1370
|
args: [{ selector: 'fd-multi-combobox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
|
|
1371
1371
|
{
|
|
1372
1372
|
directive: CvaDirective,
|
|
1373
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1374
1373
|
inputs: ['id:inputId', 'placeholder', 'state', 'stateMessage', 'disabled', 'readonly', 'name']
|
|
1375
1374
|
},
|
|
1376
1375
|
{
|
|
1377
1376
|
directive: DataSourceDirective,
|
|
1378
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1379
1377
|
inputs: ['dataSource'],
|
|
1380
|
-
// eslint-disable-next-line @angular-eslint/no-outputs-metadata-property
|
|
1381
1378
|
outputs: ['dataChanged']
|
|
1382
1379
|
}
|
|
1383
1380
|
], providers: [
|