@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-timeline.mjs","sources":["../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header.directive.ts","../../../../libs/core/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/timeline/services/timeline-position-control.service.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/timeline/timeline.component.ts","../../../../libs/core/timeline/timeline.component.html","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/timeline/timeline.module.ts","../../../../libs/core/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header',\n host: {\n class: 'fd-timeline__post-header-container'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderDirective {}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Offset between nodes lines */\n private readonly SMALL_OFFSET = 14;\n\n /** Offset between nodes lines with icon */\n private readonly BIG_OFFSET = 30;\n\n /** Offset for second list in within vertical axis */\n private readonly VERTICAL_TOP_LIST_OFFSET = 24;\n\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponentInterface[]): any;\n\n /** @hidden */\n protected _getOffset(node: TimelineNodeComponentInterface): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(\n nodes: TimelineNodeComponentInterface[]\n ): [TimelineNodeComponentInterface[], TimelineNodeComponentInterface[]] {\n const lastIndexInFirstList = Math.ceil(nodes.length / 2);\n const firstList = nodes.slice(0, lastIndexInFirstList);\n const secondList = nodes.slice(lastIndexInFirstList, nodes.length);\n return [firstList, secondList];\n }\n\n /** @hidden */\n protected _setStylesForSingleList(nodes: TimelineNodeComponentInterface[], axis: TimelineAxis): void {\n const [offsetProperty, sizeProperty] =\n axis === 'horizontal' ? ['offsetLeft', 'width'] : ['offsetTop', 'height'];\n\n nodes.forEach((node, index) => {\n const nextNode = nodes[index + 1];\n // Set line size depend on where next node item is started\n if (nextNode) {\n const size =\n nextNode.el.nativeElement[offsetProperty] -\n node.el.nativeElement[offsetProperty] -\n this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProperty] = size + 'px';\n } else {\n // Hide last timeline line in list\n node.lineEl.nativeElement.style.opacity = '0';\n }\n });\n }\n\n /** @hidden */\n protected _setStylesForDoubleList(nodes: TimelineNodeComponentInterface[], axis: TimelineAxis): void {\n const [firstList, secondList] = this._getTwoListFromOne(nodes);\n const [offsetProp, sizeProp, sizeOffsetProp] =\n axis === 'horizontal' ? ['offsetLeft', 'width', 'offsetWidth'] : ['offsetTop', 'height', 'offsetHeight'];\n\n // Set styles for second list\n secondList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNodeEl = firstList[index].el.nativeElement;\n\n // Handle case when bottom edge of item in second list higher than top edge of next item in first list\n // Actual only for vertical axis because items in horizontal axis have fixed size\n if (axis === 'vertical') {\n secondList[index].el.nativeElement.style.marginTop = `${this.SMALL_OFFSET}px`;\n const prevNode = secondList[index - 1];\n const diffBetween = prevNode\n ? parallelNodeEl.offsetTop +\n this.VERTICAL_TOP_LIST_OFFSET -\n (prevNode.el.nativeElement.offsetTop + prevNode.el.nativeElement.offsetHeight)\n : -1;\n if (diffBetween > 0) {\n prevNode.el.nativeElement.style.marginBottom = `${diffBetween}px`;\n }\n }\n\n // Set line size depend on where next node item is started\n const diff =\n parallelNodeEl[offsetProp] + parallelNodeEl[sizeOffsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n });\n\n // Set styles for first list\n firstList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNode = secondList[index];\n // Set line size depend on where next node item is started\n if (parallelNode) {\n const diff = parallelNode.el.nativeElement[offsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n }\n });\n\n // Hide last timeline line in lists\n const lastNode =\n firstList.length === secondList.length\n ? secondList[secondList.length - 1]\n : firstList[firstList.length - 1];\n lastNode.lineEl.nativeElement.style.opacity = '0';\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { TimeLinePositionStrategy } from '../../types';\nimport { BaseStrategy } from './base-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n /** Get timeline position strategy */\n static getStrategy(strategy: TimeLinePositionStrategy): BaseStrategy {\n switch (strategy) {\n case 'vertical-right':\n return new VerticalSingleSideStrategy();\n case 'vertical-left':\n return new VerticalSingleSideStrategy();\n case 'vertical-double':\n return new VerticalDoubleSidesStrategy();\n case 'horizontal-top':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-bottom':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-double':\n return new HorizontalDoubleSidesStrategy();\n default:\n throw Error(`Unsupported strategy: ${strategy}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimelineNodeComponentInterface } from '../components/timeline-node/timeline-node-component.interface';\nimport { TimeLinePositionStrategy } from '../types';\nimport { BaseStrategy } from './position-strategies/base-strategy';\nimport { PositionStrategyFactory } from './position-strategies/position-strategy-factory';\n\n@Injectable()\nexport class TimelinePositionControlService {\n /* List of TimelineNodeComponent */\n /** @hidden */\n private _nodeItems: TimelineNodeComponentInterface[] = [];\n\n /* Current position strategy. It depends on axis and layout */\n /** @hidden */\n private _positionStrategy: BaseStrategy;\n\n /** Calculate styles for timeline nodes */\n calculatePositions(): void {\n this._positionStrategy.calculateStyles(this._nodeItems);\n }\n\n /** Set strategy for current axis and layout */\n setStrategy(strategy: TimeLinePositionStrategy): void {\n this._positionStrategy = PositionStrategyFactory.getStrategy(strategy);\n }\n\n /** Register TimelineNodeComponent */\n registerNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems.push(node);\n }\n\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { TimelineNodeComponentInterface } from './timeline-node-component.interface';\n\n@Component({\n selector: 'fd-timeline-node',\n templateUrl: './timeline-node.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-timeline__node-wrapper',\n '[class.fd-timeline__node-wrapper--icon]': '!!glyph'\n },\n standalone: true,\n imports: [IconComponent]\n})\nexport class TimelineNodeComponent implements TimelineNodeComponentInterface, OnInit, OnDestroy {\n /** Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Aria label for the current timeline node. */\n @Input()\n ariaLabel = 'timelineitem';\n\n /** Reference to the line of timeline node*/\n @ViewChild('lineEl')\n lineEl: ElementRef;\n\n /** @hidden */\n constructor(\n public el: ElementRef,\n private _timelinePositionControl: TimelinePositionControlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._timelinePositionControl.registerNode(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._timelinePositionControl.removeNode(this);\n }\n}\n","<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n @if (glyph) {\n <fd-icon [glyph]=\"glyph\" [font]=\"glyphFont\"></fd-icon>\n }\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]',\n standalone: true\n})\nexport class TimelineFirstListOutletDirective {\n /** Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n/** Context provided to the timeline node component. */\nexport class TimelineNodeOutletContext<T> {\n /** Data for the node. */\n $implicit: T;\n\n /** Index location of the node. */\n index?: number;\n\n /** Length of the number of total dataNodes. */\n count?: number;\n\n /** @hidden */\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]',\n standalone: true\n})\nexport class TimelineNodeDefDirective<T> {\n /** Data passed to the template*/\n @Input()\n fdTimelineNodeData: T;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]',\n standalone: true\n})\nexport class TimelineSecondListOutletDirective {\n /** Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimeLinePositionStrategy, TimelineAxis, TimelineSidePosition } from './types';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrl: './timeline.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TimelinePositionControlService],\n host: {\n role: 'timeline',\n 'arial-label': 'timeline',\n class: 'fd-timeline',\n '[class.fd-timeline--horizontal]': 'axis === \"horizontal\"',\n '[class.fd-timeline--vertical]': 'axis === \"vertical\"'\n },\n standalone: true,\n imports: [\n TimelineFirstListOutletDirective,\n TimelineSecondListOutletDirective,\n RepeatDirective,\n TimelineNodeComponent,\n TimelineNodeHeaderDirective,\n SkeletonComponent\n ]\n})\nexport class TimelineComponent<T> implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Data array to render\n */\n @Input()\n dataSource: T[];\n\n /**\n * Tracking function that will be used to check the differences in data changes.\n */\n @Input()\n trackBy: TrackByFunction<T>;\n\n /**\n * Axis for timeline\n */\n @Input()\n axis: TimelineAxis = 'vertical';\n\n /**\n * Layout for timeline\n */\n @Input()\n layout: TimelineSidePosition = 'right';\n\n /* First outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n\n /** The timeline node template for the timeline */\n /** @hidden */\n @ContentChildren(TimelineNodeDefDirective, { descendants: true })\n private _nodeDefs: QueryList<TimelineNodeDefDirective<T>>;\n\n /** @hidden */\n _canShowFirstList = true;\n\n /** @hidden */\n _canShowSecondList = true;\n\n /** @hidden */\n _loading = true;\n\n /** @hidden */\n @ViewChild('loadingTemplate')\n _loadingTemplate: TemplateRef<any>;\n\n /** @hidden\n * Differ used to find the changes in the data provided by the data source.\n */\n private _dataDifferForFirstList: IterableDiffer<T>;\n\n /** @hidden */\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dataDifferForFirstList = this._differs.find([]).create(this.trackBy);\n this._dataDifferForSecondList = this._differs.find([]).create(this.trackBy);\n\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('axis' in changes || 'layout' in changes) {\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n if ('dataSource' in changes && !changes['dataSource'].firstChange) {\n const value = changes['dataSource'].currentValue;\n this.switchDataSource(value);\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(50), takeUntilDestroyed(this._onDestroy))\n .subscribe(() => this._timelinePositionControlService.calculatePositions());\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\n }\n\n /**\n * Update state by new data source\n * If the data source is null, interpret this by clearing the node outlet.\n */\n /** @hidden */\n private switchDataSource(data: T[]): void {\n this._loading = true;\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n this._firstListOutlet.viewContainer.createEmbeddedView(this._loadingTemplate);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\n return;\n }\n if (this._nodeDefs) {\n const [first, second] = this._splitList(data);\n this._renderNodeChanges(first, this._dataDifferForFirstList, this._firstListOutlet?.viewContainer);\n this._renderNodeChanges(second, this._dataDifferForSecondList, this._secondListOutlet?.viewContainer);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._loading = false;\n this._cd.detectChanges();\n }\n }\n\n /** Check for changes made in the data and render each change (node added/removed/moved). */\n /** @hidden */\n private _renderNodeChanges(data: T[], differ: IterableDiffer<T>, vcr: ViewContainerRef): void {\n const changes = differ.diff(data);\n if (!changes) {\n return;\n }\n changes.forEachOperation(\n (item: IterableChangeRecord<T>, adjustedPreviousIndex: number | null, currentIndex: number | null) => {\n if (currentIndex != null && item.previousIndex === null) {\n this._insertNode(data[currentIndex], currentIndex, vcr);\n } else if (currentIndex === null && adjustedPreviousIndex != null) {\n vcr.remove(adjustedPreviousIndex);\n } else if (adjustedPreviousIndex != null && currentIndex != null) {\n const view = vcr.get(adjustedPreviousIndex);\n if (view) {\n vcr.move(view, currentIndex);\n }\n }\n }\n );\n }\n\n /** @hidden */\n private _setPositionStrategy(): void {\n this._timelinePositionControlService.setStrategy(`${this.axis}-${this.layout}` as TimeLinePositionStrategy);\n }\n\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n */\n /** @hidden */\n private _insertNode(nodeData: T, index: number, vcr: ViewContainerRef): void {\n const node = this._getNodeDef(index);\n\n // Node context that will be provided to created embedded view\n const context = new TimelineNodeOutletContext<T>(nodeData);\n\n vcr.createEmbeddedView(node.template, context, index);\n }\n\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned.\n */\n /** @hidden */\n private _getNodeDef(i: number): TimelineNodeDefDirective<T> {\n if (this._nodeDefs.length === 1) {\n return this._nodeDefs.first;\n }\n return this._nodeDefs[i];\n }\n\n /**\n * Split data list to two list first and second to represent timelines in two lists.\n */\n /** @hidden */\n private _splitList(dataSource: T[]): T[][] {\n let dataForFirstList: T[] = [];\n let dataForSecondList: T[] = [];\n if (this.layout === 'left' || this.layout === 'top') {\n dataForFirstList = [...dataSource];\n } else if (this.layout === 'right' || this.layout === 'bottom') {\n dataForSecondList = [...dataSource];\n } else {\n dataSource.forEach((item, index) => {\n if (index % 2 === 0) {\n dataForFirstList.push(item);\n } else {\n dataForSecondList.push(item);\n }\n });\n }\n return [dataForFirstList, dataForSecondList];\n }\n}\n","<div\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <fd-timeline-node *fdkRepeat=\"3\">\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TextComponent } from '@fundamental-ngx/core/text';\nimport { first } from 'rxjs/operators';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\n\n@Component({\n selector: 'fd-timeline-node-body',\n templateUrl: './timeline-node-body.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-content'\n },\n standalone: true,\n imports: [TextComponent]\n})\nexport class TimelineNodeBodyComponent {\n /** Text content of timeline node*/\n @Input()\n content: string;\n\n /**\n * The number of lines to be visible.\n * If user doesn't provide it, all lines will be visible\n */\n @Input()\n maxLines: number;\n\n /** @hidden */\n constructor(\n private _ngZone: NgZone,\n private _timelinePositionControlService: TimelinePositionControlService\n ) {}\n\n /** @hidden */\n calculatePositions(): void {\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._timelinePositionControlService.calculatePositions();\n });\n }\n}\n","<fd-text\n [maxLines]=\"maxLines || 0\"\n [text]=\"content\"\n [isCollapsed]=\"!!maxLines\"\n [expandable]=\"!!maxLines\"\n (isCollapsedChange)=\"calculatePositions()\"\n></fd-text>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-actions'\n },\n styles: [\n `\n .fd-timeline__post-actions button + button {\n margin-left: 0.5rem;\n }\n `\n ],\n standalone: true\n})\nexport class TimelineNodeFooterComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header-info',\n host: {\n class: 'fd-timeline__post-header'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderInfoDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]',\n standalone: true\n})\nexport class TimelineHeaderInfoSubTitleDirective {\n /** add/remove fd-timeline__post-subheader class*/\n @HostBinding('class.fd-timeline__post-subheader')\n fdTimelineNodeHeaderInfoSubTitleClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTextDirective {\n /** add/remove fd-timeline__post-header-text class*/\n @HostBinding('class.fd-timeline__post-header-text')\n fdTimelineNodeHeaderInfoTextClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeHeaderInfoDirective } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineComponent } from './timeline.component';\n\nconst components = [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of `TimelineComponent`,\n `TimelineNodeDefDirective`,\n `TimelineNodeHeaderComponent`,\n `TimelineNodeHeaderInfoComponent`,\n `TimelineNodeBodyComponent`,\n `TimelineNodeFooterComponent`,\n `TimelineNodeComponent`,\n `TimelineNodeHeaderInfoTitleDirective`,\n `TimelineNodeHeaderInfoTextDirective`,\n `TimelineHeaderInfoSubTitleDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TimelinePositionControlService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-timeline.mjs","sources":["../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header.directive.ts","../../../../libs/core/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/timeline/services/timeline-position-control.service.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/timeline/timeline.component.ts","../../../../libs/core/timeline/timeline.component.html","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/timeline/timeline.module.ts","../../../../libs/core/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header',\n host: {\n class: 'fd-timeline__post-header-container'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderDirective {}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponentInterface[]): any;\n\n /** Offset between nodes lines */\n private readonly SMALL_OFFSET = 14;\n\n /** Offset between nodes lines with icon */\n private readonly BIG_OFFSET = 30;\n\n /** Offset for second list in within vertical axis */\n private readonly VERTICAL_TOP_LIST_OFFSET = 24;\n\n /** @hidden */\n protected _getOffset(node: TimelineNodeComponentInterface): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(\n nodes: TimelineNodeComponentInterface[]\n ): [TimelineNodeComponentInterface[], TimelineNodeComponentInterface[]] {\n const lastIndexInFirstList = Math.ceil(nodes.length / 2);\n const firstList = nodes.slice(0, lastIndexInFirstList);\n const secondList = nodes.slice(lastIndexInFirstList, nodes.length);\n return [firstList, secondList];\n }\n\n /** @hidden */\n protected _setStylesForSingleList(nodes: TimelineNodeComponentInterface[], axis: TimelineAxis): void {\n const [offsetProperty, sizeProperty] =\n axis === 'horizontal' ? ['offsetLeft', 'width'] : ['offsetTop', 'height'];\n\n nodes.forEach((node, index) => {\n const nextNode = nodes[index + 1];\n // Set line size depend on where next node item is started\n if (nextNode) {\n const size =\n nextNode.el.nativeElement[offsetProperty] -\n node.el.nativeElement[offsetProperty] -\n this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProperty] = size + 'px';\n } else {\n // Hide last timeline line in list\n node.lineEl.nativeElement.style.opacity = '0';\n }\n });\n }\n\n /** @hidden */\n protected _setStylesForDoubleList(nodes: TimelineNodeComponentInterface[], axis: TimelineAxis): void {\n const [firstList, secondList] = this._getTwoListFromOne(nodes);\n const [offsetProp, sizeProp, sizeOffsetProp] =\n axis === 'horizontal' ? ['offsetLeft', 'width', 'offsetWidth'] : ['offsetTop', 'height', 'offsetHeight'];\n\n // Set styles for second list\n secondList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNodeEl = firstList[index].el.nativeElement;\n\n // Handle case when bottom edge of item in second list higher than top edge of next item in first list\n // Actual only for vertical axis because items in horizontal axis have fixed size\n if (axis === 'vertical') {\n secondList[index].el.nativeElement.style.marginTop = `${this.SMALL_OFFSET}px`;\n const prevNode = secondList[index - 1];\n const diffBetween = prevNode\n ? parallelNodeEl.offsetTop +\n this.VERTICAL_TOP_LIST_OFFSET -\n (prevNode.el.nativeElement.offsetTop + prevNode.el.nativeElement.offsetHeight)\n : -1;\n if (diffBetween > 0) {\n prevNode.el.nativeElement.style.marginBottom = `${diffBetween}px`;\n }\n }\n\n // Set line size depend on where next node item is started\n const diff =\n parallelNodeEl[offsetProp] + parallelNodeEl[sizeOffsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n });\n\n // Set styles for first list\n firstList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNode = secondList[index];\n // Set line size depend on where next node item is started\n if (parallelNode) {\n const diff = parallelNode.el.nativeElement[offsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n }\n });\n\n // Hide last timeline line in lists\n const lastNode =\n firstList.length === secondList.length\n ? secondList[secondList.length - 1]\n : firstList[firstList.length - 1];\n lastNode.lineEl.nativeElement.style.opacity = '0';\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { TimeLinePositionStrategy } from '../../types';\nimport { BaseStrategy } from './base-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n /** Get timeline position strategy */\n static getStrategy(strategy: TimeLinePositionStrategy): BaseStrategy {\n switch (strategy) {\n case 'vertical-right':\n return new VerticalSingleSideStrategy();\n case 'vertical-left':\n return new VerticalSingleSideStrategy();\n case 'vertical-double':\n return new VerticalDoubleSidesStrategy();\n case 'horizontal-top':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-bottom':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-double':\n return new HorizontalDoubleSidesStrategy();\n default:\n throw Error(`Unsupported strategy: ${strategy}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimelineNodeComponentInterface } from '../components/timeline-node/timeline-node-component.interface';\nimport { TimeLinePositionStrategy } from '../types';\nimport { BaseStrategy } from './position-strategies/base-strategy';\nimport { PositionStrategyFactory } from './position-strategies/position-strategy-factory';\n\n@Injectable()\nexport class TimelinePositionControlService {\n /* List of TimelineNodeComponent */\n /** @hidden */\n private _nodeItems: TimelineNodeComponentInterface[] = [];\n\n /* Current position strategy. It depends on axis and layout */\n /** @hidden */\n private _positionStrategy: BaseStrategy;\n\n /** Calculate styles for timeline nodes */\n calculatePositions(): void {\n this._positionStrategy.calculateStyles(this._nodeItems);\n }\n\n /** Set strategy for current axis and layout */\n setStrategy(strategy: TimeLinePositionStrategy): void {\n this._positionStrategy = PositionStrategyFactory.getStrategy(strategy);\n }\n\n /** Register TimelineNodeComponent */\n registerNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems.push(node);\n }\n\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { TimelineNodeComponentInterface } from './timeline-node-component.interface';\n\n@Component({\n selector: 'fd-timeline-node',\n templateUrl: './timeline-node.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-timeline__node-wrapper',\n '[class.fd-timeline__node-wrapper--icon]': '!!glyph'\n },\n standalone: true,\n imports: [IconComponent]\n})\nexport class TimelineNodeComponent implements TimelineNodeComponentInterface, OnInit, OnDestroy {\n /** Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Aria label for the current timeline node. */\n @Input()\n ariaLabel = 'timelineitem';\n\n /** Reference to the line of timeline node*/\n @ViewChild('lineEl')\n lineEl: ElementRef;\n\n /** @hidden */\n constructor(\n public el: ElementRef,\n private _timelinePositionControl: TimelinePositionControlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._timelinePositionControl.registerNode(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._timelinePositionControl.removeNode(this);\n }\n}\n","<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n @if (glyph) {\n <fd-icon [glyph]=\"glyph\" [font]=\"glyphFont\"></fd-icon>\n }\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]',\n standalone: true\n})\nexport class TimelineFirstListOutletDirective {\n /** Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n/** Context provided to the timeline node component. */\nexport class TimelineNodeOutletContext<T> {\n /** Data for the node. */\n $implicit: T;\n\n /** Index location of the node. */\n index?: number;\n\n /** Length of the number of total dataNodes. */\n count?: number;\n\n /** @hidden */\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]',\n standalone: true\n})\nexport class TimelineNodeDefDirective<T> {\n /** Data passed to the template*/\n @Input()\n fdTimelineNodeData: T;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]',\n standalone: true\n})\nexport class TimelineSecondListOutletDirective {\n /** Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimeLinePositionStrategy, TimelineAxis, TimelineSidePosition } from './types';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrl: './timeline.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TimelinePositionControlService],\n host: {\n role: 'timeline',\n 'arial-label': 'timeline',\n class: 'fd-timeline',\n '[class.fd-timeline--horizontal]': 'axis === \"horizontal\"',\n '[class.fd-timeline--vertical]': 'axis === \"vertical\"'\n },\n standalone: true,\n imports: [\n TimelineFirstListOutletDirective,\n TimelineSecondListOutletDirective,\n RepeatDirective,\n TimelineNodeComponent,\n TimelineNodeHeaderDirective,\n SkeletonComponent\n ]\n})\nexport class TimelineComponent<T> implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Data array to render\n */\n @Input()\n dataSource: T[];\n\n /**\n * Tracking function that will be used to check the differences in data changes.\n */\n @Input()\n trackBy: TrackByFunction<T>;\n\n /**\n * Axis for timeline\n */\n @Input()\n axis: TimelineAxis = 'vertical';\n\n /**\n * Layout for timeline\n */\n @Input()\n layout: TimelineSidePosition = 'right';\n\n /* First outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild('loadingTemplate')\n _loadingTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n /** The timeline node template for the timeline */\n\n /** @hidden */\n @ContentChildren(TimelineNodeDefDirective, { descendants: true })\n private _nodeDefs: QueryList<TimelineNodeDefDirective<T>>;\n\n /** @hidden */\n _canShowFirstList = true;\n\n /** @hidden */\n _canShowSecondList = true;\n\n /** @hidden */\n _loading = true;\n\n /** @hidden\n * Differ used to find the changes in the data provided by the data source.\n */\n private _dataDifferForFirstList: IterableDiffer<T>;\n\n /** @hidden */\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dataDifferForFirstList = this._differs.find([]).create(this.trackBy);\n this._dataDifferForSecondList = this._differs.find([]).create(this.trackBy);\n\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('axis' in changes || 'layout' in changes) {\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n if ('dataSource' in changes && !changes['dataSource'].firstChange) {\n const value = changes['dataSource'].currentValue;\n this.switchDataSource(value);\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(50), takeUntilDestroyed(this._onDestroy))\n .subscribe(() => this._timelinePositionControlService.calculatePositions());\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\n }\n\n /**\n * Update state by new data source\n * If the data source is null, interpret this by clearing the node outlet.\n */\n /** @hidden */\n private switchDataSource(data: T[]): void {\n this._loading = true;\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n this._firstListOutlet.viewContainer.createEmbeddedView(this._loadingTemplate);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\n return;\n }\n if (this._nodeDefs) {\n const [first, second] = this._splitList(data);\n this._renderNodeChanges(first, this._dataDifferForFirstList, this._firstListOutlet?.viewContainer);\n this._renderNodeChanges(second, this._dataDifferForSecondList, this._secondListOutlet?.viewContainer);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._loading = false;\n this._cd.detectChanges();\n }\n }\n\n /** Check for changes made in the data and render each change (node added/removed/moved). */\n /** @hidden */\n private _renderNodeChanges(data: T[], differ: IterableDiffer<T>, vcr: ViewContainerRef): void {\n const changes = differ.diff(data);\n if (!changes) {\n return;\n }\n changes.forEachOperation(\n (item: IterableChangeRecord<T>, adjustedPreviousIndex: number | null, currentIndex: number | null) => {\n if (currentIndex != null && item.previousIndex === null) {\n this._insertNode(data[currentIndex], currentIndex, vcr);\n } else if (currentIndex === null && adjustedPreviousIndex != null) {\n vcr.remove(adjustedPreviousIndex);\n } else if (adjustedPreviousIndex != null && currentIndex != null) {\n const view = vcr.get(adjustedPreviousIndex);\n if (view) {\n vcr.move(view, currentIndex);\n }\n }\n }\n );\n }\n\n /** @hidden */\n private _setPositionStrategy(): void {\n this._timelinePositionControlService.setStrategy(`${this.axis}-${this.layout}` as TimeLinePositionStrategy);\n }\n\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n */\n /** @hidden */\n private _insertNode(nodeData: T, index: number, vcr: ViewContainerRef): void {\n const node = this._getNodeDef(index);\n\n // Node context that will be provided to created embedded view\n const context = new TimelineNodeOutletContext<T>(nodeData);\n\n vcr.createEmbeddedView(node.template, context, index);\n }\n\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned.\n */\n /** @hidden */\n private _getNodeDef(i: number): TimelineNodeDefDirective<T> {\n if (this._nodeDefs.length === 1) {\n return this._nodeDefs.first;\n }\n return this._nodeDefs[i];\n }\n\n /**\n * Split data list to two list first and second to represent timelines in two lists.\n */\n /** @hidden */\n private _splitList(dataSource: T[]): T[][] {\n let dataForFirstList: T[] = [];\n let dataForSecondList: T[] = [];\n if (this.layout === 'left' || this.layout === 'top') {\n dataForFirstList = [...dataSource];\n } else if (this.layout === 'right' || this.layout === 'bottom') {\n dataForSecondList = [...dataSource];\n } else {\n dataSource.forEach((item, index) => {\n if (index % 2 === 0) {\n dataForFirstList.push(item);\n } else {\n dataForSecondList.push(item);\n }\n });\n }\n return [dataForFirstList, dataForSecondList];\n }\n}\n","<div\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <fd-timeline-node *fdkRepeat=\"3\">\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TextComponent } from '@fundamental-ngx/core/text';\nimport { first } from 'rxjs/operators';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\n\n@Component({\n selector: 'fd-timeline-node-body',\n templateUrl: './timeline-node-body.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-content'\n },\n standalone: true,\n imports: [TextComponent]\n})\nexport class TimelineNodeBodyComponent {\n /** Text content of timeline node*/\n @Input()\n content: string;\n\n /**\n * The number of lines to be visible.\n * If user doesn't provide it, all lines will be visible\n */\n @Input()\n maxLines: number;\n\n /** @hidden */\n constructor(\n private _ngZone: NgZone,\n private _timelinePositionControlService: TimelinePositionControlService\n ) {}\n\n /** @hidden */\n calculatePositions(): void {\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._timelinePositionControlService.calculatePositions();\n });\n }\n}\n","<fd-text\n [maxLines]=\"maxLines || 0\"\n [text]=\"content\"\n [isCollapsed]=\"!!maxLines\"\n [expandable]=\"!!maxLines\"\n (isCollapsedChange)=\"calculatePositions()\"\n></fd-text>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-actions'\n },\n styles: [\n `\n .fd-timeline__post-actions button + button {\n margin-left: 0.5rem;\n }\n `\n ],\n standalone: true\n})\nexport class TimelineNodeFooterComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header-info',\n host: {\n class: 'fd-timeline__post-header'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderInfoDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]',\n standalone: true\n})\nexport class TimelineHeaderInfoSubTitleDirective {\n /** add/remove fd-timeline__post-subheader class*/\n @HostBinding('class.fd-timeline__post-subheader')\n fdTimelineNodeHeaderInfoSubTitleClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTextDirective {\n /** add/remove fd-timeline__post-header-text class*/\n @HostBinding('class.fd-timeline__post-header-text')\n fdTimelineNodeHeaderInfoTextClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeHeaderInfoDirective } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineComponent } from './timeline.component';\n\nconst components = [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of `TimelineComponent`,\n `TimelineNodeDefDirective`,\n `TimelineNodeHeaderComponent`,\n `TimelineNodeHeaderInfoComponent`,\n `TimelineNodeBodyComponent`,\n `TimelineNodeFooterComponent`,\n `TimelineNodeComponent`,\n `TimelineNodeHeaderInfoTitleDirective`,\n `TimelineNodeHeaderInfoTextDirective`,\n `TimelineHeaderInfoSubTitleDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TimelinePositionControlService"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ class TitleComponent extends TitleToken {
|
|
|
7
7
|
/** Header size of the title. */
|
|
8
8
|
set headerSize(value) {
|
|
9
9
|
this._headerSize = value;
|
|
10
|
-
if (this._appliedHeaderSize !== this.
|
|
10
|
+
if (this._appliedHeaderSize !== this._headerSize) {
|
|
11
11
|
this._setHeaderSize();
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -18,10 +18,10 @@ class TitleComponent extends TitleToken {
|
|
|
18
18
|
constructor(_elementRef) {
|
|
19
19
|
super();
|
|
20
20
|
this._elementRef = _elementRef;
|
|
21
|
-
/** The size of the header */
|
|
22
|
-
this._headerSize = null;
|
|
23
21
|
/** Whether or not the title should wrap (truncates by default) */
|
|
24
22
|
this.wrap = false;
|
|
23
|
+
/** The size of the header */
|
|
24
|
+
this._headerSize = null;
|
|
25
25
|
}
|
|
26
26
|
/** @hidden */
|
|
27
27
|
ngOnInit() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-title.mjs","sources":["../../../../libs/core/title/title.component.ts","../../../../libs/core/title/title.module.ts","../../../../libs/core/title/fundamental-ngx-core-title.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport type HeaderSizes = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport abstract class TitleToken {\n abstract elementRef: ElementRef;\n}\n\n@Component({\n // eslint-disable-next-line\n selector: '[fd-title], [fdTitle]',\n // eslint-disable-next-line\n exportAs: 'fd-title',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-title',\n '[class.fd-title--wrap]': 'wrap'\n },\n styleUrl: './title.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: TitleToken, useExisting: TitleComponent }],\n standalone: true\n})\nexport class TitleComponent extends TitleToken implements OnInit {\n /**
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-title.mjs","sources":["../../../../libs/core/title/title.component.ts","../../../../libs/core/title/title.module.ts","../../../../libs/core/title/fundamental-ngx-core-title.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport type HeaderSizes = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport abstract class TitleToken {\n abstract elementRef: ElementRef;\n}\n\n@Component({\n // eslint-disable-next-line\n selector: '[fd-title], [fdTitle]',\n // eslint-disable-next-line\n exportAs: 'fd-title',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-title',\n '[class.fd-title--wrap]': 'wrap'\n },\n styleUrl: './title.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: TitleToken, useExisting: TitleComponent }],\n standalone: true\n})\nexport class TitleComponent extends TitleToken implements OnInit {\n /** Header size of the title. */\n @Input()\n set headerSize(value: Nullable<HeaderSizes>) {\n this._headerSize = value;\n if (this._appliedHeaderSize !== this._headerSize) {\n this._setHeaderSize();\n }\n }\n\n get headerSize(): Nullable<HeaderSizes> {\n return this._headerSize;\n }\n /** Whether or not the title should wrap (truncates by default) */\n @Input()\n wrap = false;\n\n /** The size of the header */\n _headerSize: Nullable<HeaderSizes> = null;\n\n /** @hidden */\n private _appliedHeaderSize: number;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._setHeaderSize();\n }\n\n /** returns the reference to the title element */\n get elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden */\n private _setHeaderSize(): void {\n let headerSize;\n if (this.headerSize) {\n headerSize = this.headerSize;\n } else {\n headerSize = this._elementRef.nativeElement.tagName.charAt(1);\n }\n\n this._elementRef.nativeElement.classList.remove(`fd-title--h${this._appliedHeaderSize}`);\n this._elementRef.nativeElement.classList.add(`fd-title--h${headerSize}`);\n this._appliedHeaderSize = headerSize;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TitleComponent } from './title.component';\n\n@NgModule({\n imports: [TitleComponent],\n exports: [TitleComponent]\n})\nexport class TitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -261,6 +261,38 @@ class TokenizerComponent {
|
|
|
261
261
|
}
|
|
262
262
|
}));
|
|
263
263
|
}
|
|
264
|
+
/** @hidden
|
|
265
|
+
* CssClassBuilder interface implementation
|
|
266
|
+
* function must return single string
|
|
267
|
+
* function is responsible for order which css classes are applied
|
|
268
|
+
*/
|
|
269
|
+
buildComponentCssClass() {
|
|
270
|
+
return [this.class];
|
|
271
|
+
}
|
|
272
|
+
/** @hidden */
|
|
273
|
+
keyDown(keyboardEvent) {
|
|
274
|
+
if (KeyUtil.isKeyCode(keyboardEvent, [DELETE, BACKSPACE]) &&
|
|
275
|
+
(!this._isInputFocused() || this._tokensSelected()) &&
|
|
276
|
+
!this.disableKeyboardDeletion) {
|
|
277
|
+
const selectedElements = this._getActiveTokens();
|
|
278
|
+
const focusedTokenIndex = this._getFocusedTokenIndex();
|
|
279
|
+
selectedElements.forEach((element) => element.onCloseClick.emit());
|
|
280
|
+
if (selectedElements.length > 0) {
|
|
281
|
+
if (KeyUtil.isKeyCode(keyboardEvent, DELETE)) {
|
|
282
|
+
this._focusInput();
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
this.focusTokenElement(focusedTokenIndex - 1);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (KeyUtil.isKeyCode(keyboardEvent, BACKSPACE) &&
|
|
290
|
+
this._isInputFocused() &&
|
|
291
|
+
!this._getInputValue() &&
|
|
292
|
+
!this.disableKeyboardDeletion) {
|
|
293
|
+
this.focusTokenElement(this.tokenList.length - 1);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
264
296
|
/** @hidden */
|
|
265
297
|
ngAfterViewInit() {
|
|
266
298
|
if (this.input?.nativeElement) {
|
|
@@ -302,14 +334,6 @@ class TokenizerComponent {
|
|
|
302
334
|
ngOnChanges() {
|
|
303
335
|
this.buildComponentCssClass();
|
|
304
336
|
}
|
|
305
|
-
/** @hidden
|
|
306
|
-
* CssClassBuilder interface implementation
|
|
307
|
-
* function must return single string
|
|
308
|
-
* function is responsible for order which css classes are applied
|
|
309
|
-
*/
|
|
310
|
-
buildComponentCssClass() {
|
|
311
|
-
return [this.class];
|
|
312
|
-
}
|
|
313
337
|
/** @hidden */
|
|
314
338
|
handleTokenClickSubscriptions() {
|
|
315
339
|
this._unsubscribeClicks();
|
|
@@ -348,30 +372,6 @@ class TokenizerComponent {
|
|
|
348
372
|
return elementToFocus;
|
|
349
373
|
}
|
|
350
374
|
/** @hidden */
|
|
351
|
-
keyDown(keyboardEvent) {
|
|
352
|
-
if (KeyUtil.isKeyCode(keyboardEvent, [DELETE, BACKSPACE]) &&
|
|
353
|
-
(!this._isInputFocused() || this._tokensSelected()) &&
|
|
354
|
-
!this.disableKeyboardDeletion) {
|
|
355
|
-
const selectedElements = this._getActiveTokens();
|
|
356
|
-
const focusedTokenIndex = this._getFocusedTokenIndex();
|
|
357
|
-
selectedElements.forEach((element) => element.onCloseClick.emit());
|
|
358
|
-
if (selectedElements.length > 0) {
|
|
359
|
-
if (KeyUtil.isKeyCode(keyboardEvent, DELETE)) {
|
|
360
|
-
this._focusInput();
|
|
361
|
-
}
|
|
362
|
-
else {
|
|
363
|
-
this.focusTokenElement(focusedTokenIndex - 1);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
if (KeyUtil.isKeyCode(keyboardEvent, BACKSPACE) &&
|
|
368
|
-
this._isInputFocused() &&
|
|
369
|
-
!this._getInputValue() &&
|
|
370
|
-
!this.disableKeyboardDeletion) {
|
|
371
|
-
this.focusTokenElement(this.tokenList.length - 1);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
/** @hidden */
|
|
375
375
|
onResize() {
|
|
376
376
|
if (this.elementRef) {
|
|
377
377
|
const elementWidth = this.elementRef.nativeElement.getBoundingClientRect().width;
|
|
@@ -432,6 +432,43 @@ class TokenizerComponent {
|
|
|
432
432
|
});
|
|
433
433
|
return totalTokenWidth;
|
|
434
434
|
}
|
|
435
|
+
/** @hidden */
|
|
436
|
+
moreClicked() {
|
|
437
|
+
this.moreClickedEvent.emit();
|
|
438
|
+
}
|
|
439
|
+
/** Removes all selected tokens */
|
|
440
|
+
removeSelectedTokens() {
|
|
441
|
+
const selectedElements = this._getActiveTokens();
|
|
442
|
+
selectedElements.forEach((element) => element.onRemove.emit());
|
|
443
|
+
}
|
|
444
|
+
/** @hidden */
|
|
445
|
+
_showAllTokens() {
|
|
446
|
+
this._forceAllTokensToDisplay = true;
|
|
447
|
+
this._inputElementFocused = true;
|
|
448
|
+
this.tokenList.forEach((token) => {
|
|
449
|
+
this._makeElementVisible(token.elementRef);
|
|
450
|
+
token._viewContainer.createEmbeddedView(token._content);
|
|
451
|
+
});
|
|
452
|
+
this._tokensContainerWidth = 'auto';
|
|
453
|
+
this._showMoreElement = false;
|
|
454
|
+
this._cdRef.detectChanges();
|
|
455
|
+
this.tokenizerInnerEl.nativeElement.scrollLeft = this.tokenizerInnerEl.nativeElement.scrollWidth;
|
|
456
|
+
}
|
|
457
|
+
/** @hidden */
|
|
458
|
+
_hideTokens() {
|
|
459
|
+
setTimeout(() => {
|
|
460
|
+
this._inputElementFocused = false;
|
|
461
|
+
const tokenFocused = this._getFocusedTokenIndex() > -1;
|
|
462
|
+
if (tokenFocused) {
|
|
463
|
+
this._waitForFocusToDisappear();
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
this._forceAllTokensToDisplay = false;
|
|
467
|
+
this._resetTokens();
|
|
468
|
+
this._cdRef.detectChanges();
|
|
469
|
+
this.tokenizerInnerEl.nativeElement.scrollLeft = this.tokenizerInnerEl.nativeElement.scrollWidth;
|
|
470
|
+
});
|
|
471
|
+
}
|
|
435
472
|
/**
|
|
436
473
|
* @hidden
|
|
437
474
|
* Check whether user intends to go back to the previous token
|
|
@@ -466,15 +503,6 @@ class TokenizerComponent {
|
|
|
466
503
|
return totalTokenWidth;
|
|
467
504
|
}
|
|
468
505
|
/** @hidden */
|
|
469
|
-
moreClicked() {
|
|
470
|
-
this.moreClickedEvent.emit();
|
|
471
|
-
}
|
|
472
|
-
/** Removes all selected tokens */
|
|
473
|
-
removeSelectedTokens() {
|
|
474
|
-
const selectedElements = this._getActiveTokens();
|
|
475
|
-
selectedElements.forEach((element) => element.onRemove.emit());
|
|
476
|
-
}
|
|
477
|
-
/** @hidden */
|
|
478
506
|
_handleArrowLeft(fromIndex) {
|
|
479
507
|
// if the leftmost visible token is selected, and there are moreTokensLeft, need to display a moreTokenLeft
|
|
480
508
|
if (fromIndex === this.moreTokensLeft.length) {
|
|
@@ -488,34 +516,6 @@ class TokenizerComponent {
|
|
|
488
516
|
}
|
|
489
517
|
}
|
|
490
518
|
/** @hidden */
|
|
491
|
-
_showAllTokens() {
|
|
492
|
-
this._forceAllTokensToDisplay = true;
|
|
493
|
-
this._inputElementFocused = true;
|
|
494
|
-
this.tokenList.forEach((token) => {
|
|
495
|
-
this._makeElementVisible(token.elementRef);
|
|
496
|
-
token._viewContainer.createEmbeddedView(token._content);
|
|
497
|
-
});
|
|
498
|
-
this._tokensContainerWidth = 'auto';
|
|
499
|
-
this._showMoreElement = false;
|
|
500
|
-
this._cdRef.detectChanges();
|
|
501
|
-
this.tokenizerInnerEl.nativeElement.scrollLeft = this.tokenizerInnerEl.nativeElement.scrollWidth;
|
|
502
|
-
}
|
|
503
|
-
/** @hidden */
|
|
504
|
-
_hideTokens() {
|
|
505
|
-
setTimeout(() => {
|
|
506
|
-
this._inputElementFocused = false;
|
|
507
|
-
const tokenFocused = this._getFocusedTokenIndex() > -1;
|
|
508
|
-
if (tokenFocused) {
|
|
509
|
-
this._waitForFocusToDisappear();
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
this._forceAllTokensToDisplay = false;
|
|
513
|
-
this._resetTokens();
|
|
514
|
-
this._cdRef.detectChanges();
|
|
515
|
-
this.tokenizerInnerEl.nativeElement.scrollLeft = this.tokenizerInnerEl.nativeElement.scrollWidth;
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
/** @hidden */
|
|
519
519
|
_waitForFocusToDisappear() {
|
|
520
520
|
this._tokenElementFocusedSub?.unsubscribe();
|
|
521
521
|
// 5 ms delay for other token to receive focus, check if _showAllTokens was called again
|
|
@@ -803,7 +803,7 @@ class TokenizerComponent {
|
|
|
803
803
|
this._cdRef.detectChanges();
|
|
804
804
|
}
|
|
805
805
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TokenizerComponent, deps: [{ token: i1.ContentDensityObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.RtlService, optional: true }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: TokenizerComponent, isStandalone: true, selector: "fd-tokenizer", inputs: { class: "class", disableKeyboardDeletion: "disableKeyboardDeletion", compactCollapse: "compactCollapse", tokenizerFocusable: "tokenizerFocusable", inputValue: "inputValue", glyph: "glyph", glyphFont: "glyphFont", moreTerm: "moreTerm", open: "open", showOverflowPopover: "showOverflowPopover" }, outputs: { moreClickedEvent: "moreClickedEvent" }, host: { listeners: { "keydown": "keyDown($event)" } }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "input", first: true, predicate: i0.forwardRef(() => FormControlComponent), descendants: true, read: ElementRef }, { propertyName: "tokenList", predicate: i0.forwardRef(() => TokenComponent) }], viewQueries: [{ propertyName: "tokenizerInnerEl", first: true, predicate: ["tokenizerInner"], descendants: true }, { propertyName: "moreElement", first: true, predicate: ["moreElementSpan"], descendants: true }, { propertyName: "content", first: true, predicate: ["inputGroupAddOn"], descendants: true }, { propertyName: "_viewContainer", predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-tokenizer fd-tokenizer--scrollable\" [class.is-focus]=\"_tokenizerHasFocus\">\n <div class=\"fd-tokenizer__inner\" #tokenizerInner>\n <div\n [attr.aria-hidden]=\"tokenList.length === 0\"\n role=\"listbox\"\n [attr.aria-label]=\"'coreTokenizer.tokenizerLabel' | fdTranslate\"\n [style.width]=\"_tokensContainerWidth\"\n >\n <ng-content select=\"fd-token\"></ng-content>\n </div>\n @if (showOverflowPopover && (_contentDensityObserver.isCompactSignal() || compactCollapse)) {\n <ng-template [ngTemplateOutlet]=\"tokensOverflow\"></ng-template>\n } @else {\n @if (_showMoreElement && _hiddenTokens.length > 0) {\n <span (click)=\"moreClicked()\" #moreElementSpan class=\"fd-tokenizer-more\" role=\"button\" tabindex=\"-1\">\n @if (_contentDensityObserver.isCompactSignal() || compactCollapse) {\n {{\n 'coreTokenizer.moreLabel'\n | fdTranslate: { count: moreTokensLeft.length + moreTokensRight.length }\n }}\n }\n @if (!_contentDensityObserver.isCompactSignal() && !compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: hiddenCozyTokenCount } }}\n }\n </span>\n }\n }\n <ng-content select=\"[fd-form-control]\"></ng-content>\n </div>\n @if (glyph) {\n <span fd-input-group-addon #inputGroupAddOn [button]=\"true\" placement=\"after\">\n <button\n fd-button\n class=\"fd-tokenizer-addon\"\n fdType=\"transparent\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n type=\"button\"\n ></button>\n </span>\n }\n</div>\n<ng-template #tokensOverflow>\n <fd-popover placement=\"bottom-start\" title=\"\" [noArrow]=\"false\" [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"moreElement\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"fd-tokenizer__overflow-list\">\n @for (token of _hiddenTokens; track token) {\n <li fd-list-item class=\"fd-tokenizer__overflow-list-item\">\n <ng-container #viewContainer></ng-container>\n @if (!token.readOnly) {\n <span\n class=\"fd-token__close\"\n role=\"button\"\n [attr.aria-label]=\"'coreToken.deleteButtonLabel' | fdTranslate\"\n (click)=\"token.closeClickHandler($event)\"\n ></span>\n }\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #moreElement>\n @if (_showMoreElement && _hiddenTokens.length > 0) {\n <span (click)=\"moreClicked()\" #moreElementSpan class=\"fd-tokenizer-more\" role=\"button\" tabindex=\"-1\">\n @if (_contentDensityObserver.isCompactSignal() || compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: moreTokensLeft.length + moreTokensRight.length } }}\n }\n @if (!_contentDensityObserver.isCompactSignal() && !compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: hiddenCozyTokenCount } }}\n }\n </span>\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-tokenizer{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;-moz-appearance:none;align-items:center;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:none;border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height, var(--sapElement_Height));line-height:normal;margin:0;min-height:var(--fdInput_Height, var(--sapElement_Height));min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-tokenizer:after,.fd-tokenizer:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-tokenizer[dir=rtl]::placeholder,[dir=rtl] .fd-tokenizer::placeholder{text-indent:.125rem}.fd-tokenizer::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-tokenizer::-ms-clear{display:none}.fd-tokenizer.is-hover,.fd-tokenizer:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-tokenizer.is-focus,.fd-tokenizer:focus{background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset)}.fd-tokenizer.is-hover,.fd-tokenizer:hover{box-shadow:none}.fd-tokenizer__inner{-ms-overflow-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;display:flex;float:right;height:100%;justify-content:flex-end;overflow:hidden;padding:var(--fdTokenizer_Inner_Padding, 0 .3125rem);scrollbar-width:none;white-space:nowrap;width:100%}.fd-tokenizer__inner::-webkit-scrollbar{display:none}.fd-tokenizer .fd-token{margin-right:.3125rem;max-width:calc(100% - 3.3125rem)}.fd-tokenizer .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer__indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdTokenizer_Indicator_Color);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-tokenizer__indicator:after,.fd-tokenizer__indicator:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer .fd-tokenizer__input{-webkit-box-shadow:none;background:transparent;box-shadow:none;height:100%;min-height:100%}.fd-tokenizer .fd-tokenizer__input.fd-input{border:none;min-width:var(--fdTokenizer_Input_Width, 3rem);padding:0}.fd-tokenizer .fd-tokenizer__input:first-child{padding:0 .3125rem}.fd-tokenizer .fd-tokenizer__input:last-child{flex-basis:100%}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input:focus{border:none;outline:none;z-index:5}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input.is-hover,.fd-tokenizer .fd-tokenizer__input:focus,.fd-tokenizer .fd-tokenizer__input:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer.is-focus,.fd-tokenizer:focus{-webkit-box-shadow:none;border:none;box-shadow:none;outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.0625rem;z-index:5}.fd-tokenizer[class*=-compact],.fd-tokenizer[class*=-condensed],[class*=-compact] .fd-tokenizer:not([class*=-cozy]),[class*=-condensed] .fd-tokenizer:not([class*=-cozy]){--fdTokenizer_Inner_Padding:0 .25rem;--fdInput_Field_Compact_Min_Width:2rem;height:1.625rem;min-height:1.625rem}.fd-tokenizer[class*=-compact] .fd-tokenizer__input:first-child,.fd-tokenizer[class*=-condensed] .fd-tokenizer__input:first-child,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child{padding:0 .25rem}.fd-tokenizer[class*=-compact] .fd-token,.fd-tokenizer[class*=-condensed] .fd-token,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin-right:.25rem;max-width:calc(100% - 2.25rem)}.fd-tokenizer[class*=-compact] .fd-token[dir=rtl],.fd-tokenizer[class*=-condensed] .fd-token[dir=rtl],[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer[class*=-compact] .fd-token,[dir=rtl] .fd-tokenizer[class*=-condensed] .fd-token,[dir=rtl] [class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[dir=rtl] [class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer--readonly{background-color:var(--sapField_ReadOnly_Background);overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__inner{overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true],.fd-tokenizer--readonly .fd-tokenizer__input[readonly]{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly.is-focus,.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly:focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true]:focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly]:focus{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none;z-index:5}.fd-tokenizer--scrollable .fd-tokenizer__inner{justify-content:normal;overflow-x:scroll}.fd-tokenizer .fd-token{max-width:inherit!important}input.fd-input.fd-tokenizer__input{background-color:transparent;margin-right:1px;border:none;outline:none}.fd-tokenizer-more{padding-right:.5rem;color:var(--sapLinkColor);cursor:pointer}[dir=rtl] .fd-tokenizer-more,.fd-tokenizer-more[dir=rtl]{padding-left:.5rem;padding-right:0}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon{height:2.25rem}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon--compact{height:1.625rem}.fd-tokenizer__overflow-list-item{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "directive", type: i3.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { 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: "ngmodule", type: ListModule }, { kind: "component", type: i4.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
806
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: TokenizerComponent, isStandalone: true, selector: "fd-tokenizer", inputs: { class: "class", disableKeyboardDeletion: "disableKeyboardDeletion", compactCollapse: "compactCollapse", tokenizerFocusable: "tokenizerFocusable", inputValue: "inputValue", glyph: "glyph", glyphFont: "glyphFont", moreTerm: "moreTerm", open: "open", showOverflowPopover: "showOverflowPopover" }, outputs: { moreClickedEvent: "moreClickedEvent" }, host: { listeners: { "keydown": "keyDown($event)" } }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "input", first: true, predicate: i0.forwardRef(() => FormControlComponent), descendants: true, read: ElementRef }, { propertyName: "tokenList", predicate: i0.forwardRef(() => TokenComponent) }], viewQueries: [{ propertyName: "tokenizerInnerEl", first: true, predicate: ["tokenizerInner"], descendants: true }, { propertyName: "moreElement", first: true, predicate: ["moreElementSpan"], descendants: true }, { propertyName: "content", first: true, predicate: ["inputGroupAddOn"], descendants: true }, { propertyName: "_viewContainer", predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-tokenizer fd-tokenizer--scrollable\" [class.is-focus]=\"_tokenizerHasFocus\">\n <div class=\"fd-tokenizer__inner\" #tokenizerInner>\n <div\n [attr.aria-hidden]=\"tokenList.length === 0\"\n role=\"listbox\"\n [attr.aria-label]=\"'coreTokenizer.tokenizerLabel' | fdTranslate\"\n [style.width]=\"_tokensContainerWidth\"\n >\n <ng-content select=\"fd-token\"></ng-content>\n </div>\n @if (showOverflowPopover && (_contentDensityObserver.isCompactSignal() || compactCollapse)) {\n <ng-template [ngTemplateOutlet]=\"tokensOverflow\"></ng-template>\n } @else {\n @if (_showMoreElement && _hiddenTokens.length > 0) {\n <span (click)=\"moreClicked()\" #moreElementSpan class=\"fd-tokenizer-more\" role=\"button\" tabindex=\"-1\">\n @if (_contentDensityObserver.isCompactSignal() || compactCollapse) {\n {{\n 'coreTokenizer.moreLabel'\n | fdTranslate: { count: moreTokensLeft.length + moreTokensRight.length }\n }}\n }\n @if (!_contentDensityObserver.isCompactSignal() && !compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: hiddenCozyTokenCount } }}\n }\n </span>\n }\n }\n <ng-content select=\"[fd-form-control]\"></ng-content>\n </div>\n @if (glyph) {\n <span fd-input-group-addon #inputGroupAddOn [button]=\"true\" placement=\"after\">\n <button\n fd-button\n class=\"fd-tokenizer-addon\"\n fdType=\"transparent\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n type=\"button\"\n ></button>\n </span>\n }\n</div>\n<ng-template #tokensOverflow>\n <fd-popover placement=\"bottom-start\" title=\"\" [noArrow]=\"false\" [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"moreElement\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"fd-tokenizer__overflow-list\">\n @for (token of _hiddenTokens; track token) {\n <li fd-list-item class=\"fd-tokenizer__overflow-list-item\">\n <ng-container #viewContainer></ng-container>\n @if (!token.readOnly) {\n <span\n class=\"fd-token__close\"\n role=\"button\"\n [attr.aria-label]=\"'coreToken.deleteButtonLabel' | fdTranslate\"\n (click)=\"token.closeClickHandler($event)\"\n ></span>\n }\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #moreElement>\n @if (_showMoreElement && _hiddenTokens.length > 0) {\n <span (click)=\"moreClicked()\" #moreElementSpan class=\"fd-tokenizer-more\" role=\"button\" tabindex=\"-1\">\n @if (_contentDensityObserver.isCompactSignal() || compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: moreTokensLeft.length + moreTokensRight.length } }}\n }\n @if (!_contentDensityObserver.isCompactSignal() && !compactCollapse) {\n {{ 'coreTokenizer.moreLabel' | fdTranslate: { count: hiddenCozyTokenCount } }}\n }\n </span>\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-tokenizer{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;-moz-appearance:none;align-items:center;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:none;border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height, var(--sapElement_Height));line-height:normal;margin:0;min-height:var(--fdInput_Height, var(--sapElement_Height));min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-tokenizer:after,.fd-tokenizer:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-tokenizer[dir=rtl]::placeholder,[dir=rtl] .fd-tokenizer::placeholder{text-indent:.125rem}.fd-tokenizer::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-tokenizer::-ms-clear{display:none}.fd-tokenizer.is-hover,.fd-tokenizer:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-tokenizer.is-focus,.fd-tokenizer:focus{background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset)}.fd-tokenizer.is-hover,.fd-tokenizer:hover{box-shadow:none}.fd-tokenizer__inner{-ms-overflow-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;display:flex;float:right;height:100%;justify-content:flex-end;overflow:hidden;padding:var(--fdTokenizer_Inner_Padding, 0 .3125rem);scrollbar-width:none;white-space:nowrap;width:100%}.fd-tokenizer__inner::-webkit-scrollbar{display:none}.fd-tokenizer .fd-token{margin-right:.3125rem;max-width:calc(100% - 3.3125rem)}.fd-tokenizer .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer__indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdTokenizer_Indicator_Color);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-tokenizer__indicator:after,.fd-tokenizer__indicator:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer .fd-tokenizer__input{-webkit-box-shadow:none;background:transparent;box-shadow:none;height:100%;min-height:100%}.fd-tokenizer .fd-tokenizer__input.fd-input{border:none;min-width:var(--fdTokenizer_Input_Width, 3rem);padding:0}.fd-tokenizer .fd-tokenizer__input:first-child{padding:0 .3125rem}.fd-tokenizer .fd-tokenizer__input:last-child{flex-basis:100%}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input:focus{border:none;outline:none;z-index:5}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input.is-hover,.fd-tokenizer .fd-tokenizer__input:focus,.fd-tokenizer .fd-tokenizer__input:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer.is-focus,.fd-tokenizer:focus{-webkit-box-shadow:none;border:none;box-shadow:none;outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.0625rem;z-index:5}.fd-tokenizer[class*=-compact],.fd-tokenizer[class*=-condensed],[class*=-compact] .fd-tokenizer:not([class*=-cozy]),[class*=-condensed] .fd-tokenizer:not([class*=-cozy]){--fdTokenizer_Inner_Padding:0 .25rem;--fdInput_Field_Compact_Min_Width:2rem;height:1.625rem;min-height:1.625rem}.fd-tokenizer[class*=-compact] .fd-tokenizer__input:first-child,.fd-tokenizer[class*=-condensed] .fd-tokenizer__input:first-child,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child{padding:0 .25rem}.fd-tokenizer[class*=-compact] .fd-token,.fd-tokenizer[class*=-condensed] .fd-token,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin-right:.25rem;max-width:calc(100% - 2.25rem)}.fd-tokenizer[class*=-compact] .fd-token[dir=rtl],.fd-tokenizer[class*=-condensed] .fd-token[dir=rtl],[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer[class*=-compact] .fd-token,[dir=rtl] .fd-tokenizer[class*=-condensed] .fd-token,[dir=rtl] [class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[dir=rtl] [class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer--readonly{background-color:var(--sapField_ReadOnly_Background);overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__inner{overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true],.fd-tokenizer--readonly .fd-tokenizer__input[readonly]{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly.is-focus,.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly:focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true]:focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly]:focus{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none;z-index:5}.fd-tokenizer--scrollable .fd-tokenizer__inner{justify-content:normal;overflow-x:scroll}.fd-tokenizer .fd-token{max-width:inherit!important}input.fd-input.fd-tokenizer__input{background-color:transparent;margin-right:1px;border:none;outline:none}.fd-tokenizer-more{padding-right:.5rem;color:var(--sapLinkColor);cursor:pointer}[dir=rtl] .fd-tokenizer-more,.fd-tokenizer-more[dir=rtl]{padding-left:.5rem;padding-right:0}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon{height:2.25rem}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon--compact{height:1.625rem}.fd-tokenizer__overflow-list-item{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "directive", type: i3.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { 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: "ngmodule", type: ListModule }, { kind: "component", type: i4.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
807
807
|
}
|
|
808
808
|
__decorate([
|
|
809
809
|
applyCssClass,
|