@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-tree.mjs","sources":["../../../../libs/core/tree/data-source/tree-data-source.ts","../../../../libs/core/tree/data-source/tree-data-source-parser.ts","../../../../libs/core/tree/directives/tree-item-def.directive.ts","../../../../libs/core/tree/directives/tree-item.directive.ts","../../../../libs/core/tree/models/base-tree-item.class.ts","../../../../libs/core/tree/tree.service.ts","../../../../libs/core/tree/tree.component.ts","../../../../libs/core/tree/tree.component.html","../../../../libs/core/tree/components/tree-item/tree-item.component.ts","../../../../libs/core/tree/components/tree-item/tree-item.component.html","../../../../libs/core/tree/directives/tree-item-button.directive.ts","../../../../libs/core/tree/directives/tree-item-icon.directive.ts","../../../../libs/core/tree/tree.module.ts","../../../../libs/core/tree/tokens.ts","../../../../libs/core/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import { AbstractDataProvider, BaseDataSource, DataProvider } from '@fundamental-ngx/cdk/data-source';\nimport { Observable } from 'rxjs';\n\nexport class FdTreeDataSource<T> extends BaseDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: AbstractDataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new DataProvider(data));\n }\n}\n\nexport class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new DataProvider(data));\n }\n}\n\n/**\n * Type of acceptable objects as a datasource for the Multi-Combo Box component.\n */\nexport type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];\nexport type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X>\n ? X\n : Type extends Array<infer X>\n ? X\n : Type extends Observable<infer X>\n ? X extends Array<infer V>\n ? V\n : X\n : Type;\n","import { DataSourceParser, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nimport {\n ArrayTreeDataSource,\n FdTreeAcceptableDataSource,\n FdTreeDataSource,\n ObservableTreeDataSource\n} from './tree-data-source';\n\nexport class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined {\n if (isDataSource(source)) {\n return source as FdTreeDataSource<T>;\n }\n\n if (Array.isArray(source)) {\n return new ArrayTreeDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableTreeDataSource<T>(source);\n }\n\n return undefined;\n }\n}\n","import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { TreeItem } from '../models/tree-item';\nimport { TreeItemDefContext } from '../models/tree-item-def-context';\n\n@Directive({\n selector: '[fdTreeItemDef]',\n standalone: true\n})\nexport class TreeItemDefDirective<T extends TreeItem = TreeItem> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdTreeItemDefAs: T;\n /** Template reference. */\n readonly templateRef = inject<TemplateRef<TreeItemDefContext<T>>>(TemplateRef);\n /** @hidden */\n static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext {\n return true;\n }\n}\n","import { Directive, Injector, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseTreeItem } from '../models/base-tree-item.class';\nimport { TreeItem } from '../models/tree-item';\n\n@Directive({\n selector: '[fdTreeItem]',\n exportAs: 'fdTreeItem',\n standalone: true\n})\nexport class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {\n /** Tree item component instance. */\n treeItem: Nullable<BaseTreeItem<T, P>>;\n\n /** Injector to be used in a tree item component, to resolve a tree item directive. */\n readonly injector: Injector;\n\n /** @hidden */\n constructor(injector: Injector) {\n this.injector = Injector.create({ providers: [], parent: injector });\n }\n\n /** Sets tree item. */\n setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void {\n this.treeItem = item;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.treeItem = null;\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from './tree-item';\n\n@Directive()\nexport abstract class BaseTreeItem<T extends TreeItem = TreeItem, P = any>\n implements Partial<SelectableItemToken<HTMLElement, P>>\n{\n /**\n * Tree item value.\n */\n abstract value: P;\n /**\n * Tree item ID.\n */\n abstract id: string;\n\n /**\n * Tree item parent ID.\n */\n abstract parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n abstract navigatable: boolean;\n\n /**\n * Tree item state.\n */\n abstract state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n abstract childNodes: FdTreeAcceptableDataSource<T>;\n\n /**\n * Whether to wrap content.\n */\n abstract wrapContent: boolean;\n\n /**\n * Whether the tree item is expanded.\n */\n abstract expanded: boolean;\n\n /**\n * Tree item level.\n */\n abstract level: number;\n\n /**\n * Tree item children.\n */\n abstract children: T[];\n\n /**\n * Whether the tree item has content projected child nodes.\n */\n abstract hasProjectedChildren: boolean;\n\n /**\n * Whether the tree item has content projected child nodes or data source for children.\n */\n abstract hasChildren: boolean;\n\n /**\n * Focusable tree item container.\n */\n abstract itemContainer: Nullable<ElementRef>;\n\n /**\n * Whether the tree item is keyboard navigatable.\n */\n abstract keyboardAccessible: boolean;\n\n /**\n * Tree item selectable item.\n */\n abstract selectableListItem: SelectableItemToken;\n\n /**\n * Whether the tree item has Data Source children.\n */\n abstract hasDsChildren: boolean;\n\n /**\n * Whether the children nodes being loaded from the Data Source.\n */\n abstract childrenLoaded: boolean;\n\n abstract elementRef: ElementRef;\n\n /** Method to focus on the tree item. */\n abstract focus(): void;\n\n /** Method to set the position of the item in set. */\n abstract setPosition(totalItemsCount: number, currentIndex: number): void;\n\n /** Method for setting the focusable tabindex. */\n abstract setContainerTabIndex(value: number): void;\n}\n","import { Injectable, Signal, TemplateRef, signal } from '@angular/core';\nimport { Nullable, uuidv4 } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeItemDefContext } from './models/tree-item-def-context';\n\nexport interface SelectionModeModel {\n mode: SelectionType;\n placement: SelectionPlacement;\n}\n\n@Injectable()\nexport class TreeService {\n /** Tree item template ref. */\n treeItemTemplateRef: Nullable<TemplateRef<TreeItemDefContext>>;\n\n /** Currently focused tree item. */\n focusedTreeItem: Nullable<BaseTreeItem>;\n\n /** Current expanded level. */\n get expandedLevel(): Signal<number | undefined> {\n return this._expandedLevel.asReadonly();\n }\n\n /** Tree selection mode. */\n get selectionMode(): Signal<SelectionModeModel> {\n return this._selectionMode$.asReadonly();\n }\n\n /** Whether to show navigation indicator. */\n get navigationIndicator(): Signal<boolean> {\n return this._navigationIndicator$.asReadonly();\n }\n\n /**\n * @hidden\n */\n readonly detectChanges = new Subject<void>();\n\n /** @hidden */\n private readonly _expandableItems = new Map<number, { [key: string]: boolean }>();\n\n /** @hidden */\n private readonly _selectionMode$ = signal<SelectionModeModel>({ mode: 'none', placement: 'none' });\n\n /** @hidden */\n private readonly _expandedLevel = signal<number | undefined>(undefined);\n\n /** @hidden */\n private readonly _navigationIndicator$ = signal(false);\n\n /** Sets whether the navigation indicator should be visible. */\n setNavigationIndicator(value: boolean): void {\n this._navigationIndicator$.set(value);\n }\n\n /** @hidden */\n normalizeTreeItems<T extends TreeItem = TreeItem>(\n items: Nullable<T[]>,\n parentId: string | null = null,\n level = 1\n ): TreeItem<TreeItemGeneric<T>>[] {\n if (!items) {\n return [];\n }\n return [...items].map((item: T) => ({\n ...item,\n ...{\n level,\n parentId,\n renderer: this.treeItemTemplateRef,\n id: item.id || uuidv4()\n }\n }));\n }\n\n /**\n * Adds expandable item to the object of expandable items.\n * @param id\n * @param level\n */\n addExpandableItem(id: string, level: number, expanded: boolean): void {\n const levelCollection = this._expandableItems.get(level) || {};\n levelCollection[id] = expanded;\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Removes expandable item from the object of expandable items.\n * @param id\n * @param level\n */\n removeExpandableItem(id: string, level: number): void {\n const levelCollection = this._expandableItems.get(level) || {};\n delete levelCollection[id];\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Sets selection mode and it's placement.\n * @param mode Selection mode.\n * @param placement Selection control placement.\n */\n setSelectionMode(mode: SelectionType, placement: SelectionPlacement): void {\n this._selectionMode$.set({ mode, placement });\n }\n\n /** @hidden */\n private _emitNewExpandedLevel(): void {\n // We need to go from level 1 to deeper level since level 4 may be expanded, yet level 2 not.\n const levels = Array.from(this._expandableItems.keys()).sort();\n let lastLevel: number | undefined;\n\n for (const level of levels) {\n const levelExpandableItems = this._expandableItems.get(level)!;\n\n if (Object.values(levelExpandableItems).every((v) => !v)) {\n break;\n }\n\n lastLevel = level;\n }\n\n this._expandedLevel.set(lastLevel);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n effect,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RepeatDirective,\n RtlService,\n SelectComponentRootToken,\n SelectableItemDirective,\n SelectableListValueType,\n SelectionService,\n applyCssClass\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, filter, fromEvent, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource, FdTreeItemType } from './data-source/tree-data-source';\nimport { TreeDataSourceParser } from './data-source/tree-data-source-parser';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeService } from './tree.service';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrl: './tree.component.scss',\n hostDirectives: [\n {\n directive: DataSourceDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['dataSource'],\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['dataChanged']\n },\n {\n directive: CvaDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['name', 'id', 'state', 'stateMessage', 'disabled', 'readonly']\n }\n ],\n host: {\n role: 'tree'\n },\n providers: [\n contentDensityObserverProviders(),\n TreeService,\n SelectionService,\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n TreeItemDirective,\n SelectableItemDirective,\n FdTranslatePipe\n ]\n})\nexport class TreeComponent<P extends FdTreeAcceptableDataSource, T extends TreeItem = FdTreeItemType<P>>\n implements CssClassBuilder, OnInit, OnChanges, AfterViewInit, SelectComponentRootToken, OnDestroy\n{\n /** @hidden */\n @Input()\n class: string;\n\n /**\n * Whether the tree should be borderless.\n */\n @Input()\n noBorder = false;\n\n /** Type of tree items selection. */\n @Input()\n selection: SelectionType = 'none';\n\n /** Placement of the selection control. */\n @Input()\n selectionPlacement: SelectionPlacement = 'none';\n\n /**\n * Whether the sections should be dependent for selection mode.\n * If true, selection control will shift, according to the level.\n * If false, selection control will stay on the same place ignoring the item level.\n */\n @Input()\n independentSections = false;\n\n /**\n * Whether the Tree component has navigation indicators.\n */\n @Input()\n set navigationIndicator(value: boolean) {\n if (value === this._navigationIndicator) {\n return;\n }\n this._navigationIndicator = value;\n this._treeService.setNavigationIndicator(value);\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** Event emitted when data loading is started. */\n @Output()\n dataRequested = new EventEmitter<boolean>();\n\n /** Event emitted when data loading is finished. */\n @Output()\n dataReceived = new EventEmitter<boolean>();\n\n /** Event emitted when selected state changed. */\n @Output()\n selectedChange = new EventEmitter<any>();\n\n /** Tree item template definition. */\n @ContentChild(TreeItemDefDirective)\n set treeItemDef(value: Nullable<TreeItemDefDirective>) {\n this._treeItemDef = value;\n // Set new renderer\n this._treeService.treeItemTemplateRef = value?.templateRef;\n this._items = this._treeService.normalizeTreeItems(this._items);\n }\n\n get treeItemDef(): Nullable<TreeItemDefDirective> {\n return this._treeItemDef;\n }\n\n /** @hidden */\n @ViewChildren(TreeItemDirective)\n _treeItemDirectives: QueryList<TreeItemDirective<TreeItem, any>>;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem, { descendants: true })\n readonly _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** @hidden */\n _items: TreeItem<TreeItemGeneric<T>>[] = [];\n\n /** @hidden */\n get multiple(): boolean {\n return this.selection === 'multiple';\n }\n\n /** @hidden */\n get toggle(): boolean {\n return true;\n }\n\n /**\n * @hidden\n * Used for skeleton to appear before first meaningful data being loaded.\n */\n _initialDataLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private _navigationIndicator = false;\n\n /** @hidden */\n private _treeItemDef: Nullable<TreeItemDefDirective>;\n\n /** @hidden */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _selectionService = inject(SelectionService);\n\n /** @hidden */\n private readonly _rtl = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _cvaDirective = inject(CvaDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _dsSubscription: Subscription | null = null;\n\n /** @hidden */\n private _expandedLevel: number | undefined;\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<BaseTreeItem>;\n\n /**\n * @hidden\n * Sorted tree item components.\n */\n private _sortedTreeItems: BaseTreeItem[] = [];\n\n /**\n * @hidden\n * All tree item components.\n */\n private _allItems: BaseTreeItem[] = [];\n\n /** @hidden */\n private _eventSub: Subscription;\n\n /** @hidden */\n private _selectionSub: Subscription | undefined;\n\n /** @hidden */\n constructor() {\n this._selectionService.registerRootComponent(this);\n this._contentDensityObserver.subscribe();\n\n effect(() => {\n this._expandedLevel = this._treeService.expandedLevel();\n this.buildComponentCssClass();\n });\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class,\n this._expandedLevel ? `expanded-level-${this._expandedLevel}` : '',\n this.noBorder ? 'fd-tree--no-border' : '',\n this._items.length === 0 && this._initialDataLoaded ? 'fd-tree--no-data' : '',\n this.independentSections ? 'fd-tree--independent-multi-selection' : '',\n 'fd-tree'\n ];\n }\n\n /**\n * @hidden\n * Keyboard navigation\n * @param event Keyboard event.\n */\n @HostListener('keydown', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n this._focusKeyManager?.onKeydown(event);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._openDataStream();\n this.buildComponentCssClass();\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.detectChanges();\n });\n\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._cvaDirective.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n\n if ('selection' in changes || 'selectionPlacement' in changes) {\n this._treeService.setSelectionMode(this.selection, this.selectionPlacement);\n this._setSelectionListener();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToTreeItemsChanges();\n this._listenToTreeItemDirectiveChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._dsSubscription?.unsubscribe();\n this._eventSub?.unsubscribe();\n this._selectionSub?.unsubscribe();\n }\n\n /** @hidden */\n _onItemFocused(treeItem: BaseTreeItem): void {\n let focusedIndex = -1;\n this._sortedTreeItems.forEach((item, index) => {\n const isFocused = treeItem === item;\n item.setContainerTabIndex(isFocused ? 0 : -1);\n if (isFocused) {\n focusedIndex = index;\n }\n });\n\n if (focusedIndex === -1) {\n return;\n }\n\n this._focusKeyManager.setActiveItem(focusedIndex);\n }\n\n /** @hidden */\n _onItemKeyDown(event: KeyboardEvent, treeItem: Nullable<BaseTreeItem>): void {\n if (!treeItem) {\n return;\n }\n\n const isRtl = !!this._rtl?.rtlSignal();\n const expandKey = isRtl ? LEFT_ARROW : RIGHT_ARROW;\n const collapseKey = isRtl ? RIGHT_ARROW : LEFT_ARROW;\n\n if (KeyUtil.isKeyCode(event, expandKey) && (treeItem.hasDsChildren || treeItem.hasProjectedChildren)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._expandTreeSection(treeItem);\n return;\n }\n\n if (KeyUtil.isKeyCode(event, collapseKey)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._collapseTreeSection(treeItem);\n return;\n }\n }\n\n /** @hidden */\n _trackFn(index: number, item: TreeItem<TreeItemGeneric<T>>): string {\n return item.id;\n }\n\n /**\n * @hidden\n * Select list interface method implementation.\n * Sets value for control value accessor and emits it.\n * @param value value of the selection.\n */\n onChange(value: SelectableListValueType<any>): void {\n this._cvaDirective.setValue(value, true);\n }\n\n /** @hidden */\n private _expandTreeSection(treeItem: BaseTreeItem): void {\n if (treeItem.expanded) {\n // Shift focus on the first child item\n const itemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.id);\n const nextItem = this._sortedTreeItems[itemIndex + 1];\n if (nextItem?.parentId === treeItem.id) {\n this._focusKeyManager.setActiveItem(itemIndex + 1);\n }\n\n return;\n }\n\n treeItem.expanded = true;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _collapseTreeSection(treeItem: BaseTreeItem): void {\n if (!treeItem.expanded && treeItem.parentId) {\n const parentItemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.parentId);\n\n if (parentItemIndex > -1) {\n this._focusKeyManager.setActiveItem(parentItemIndex);\n return;\n }\n }\n treeItem.expanded = false;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _openDataStream(): void {\n this._dsSubscription?.unsubscribe();\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested)\n );\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived)\n );\n\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$)\n )\n .subscribe((data) => {\n this._initialDataLoaded = true;\n this._items = this._treeService.normalizeTreeItems(data);\n this.buildComponentCssClass();\n\n this._cdr.markForCheck();\n })\n );\n\n this._dataSourceDirective.dataSourceProvider?.match();\n }\n\n /** @hidden */\n private _setupEventListeners(): void {\n this._eventSub?.unsubscribe();\n this._eventSub = new Subscription();\n\n this._sortedTreeItems.forEach((item) => {\n this._eventSub.add(\n fromEvent<KeyboardEvent>(item.elementRef.nativeElement, 'keydown').subscribe((event) => {\n this._onItemKeyDown(event, item);\n })\n );\n this._eventSub.add(\n fromEvent(item.itemContainer?.nativeElement, 'focus').subscribe(() => {\n this._onItemFocused(item);\n })\n );\n });\n }\n\n /** @hidden */\n private _sortTreeItems(items: BaseTreeItem[]): BaseTreeItem[] {\n const components: BaseTreeItem[] = [];\n const rootItems = items.filter((item) => item.level === 1);\n\n rootItems.forEach((treeItem, index) => {\n treeItem.setPosition(rootItems.length, index + 1);\n });\n\n items.forEach((item) => {\n if (!item || components.includes(item)) {\n return;\n }\n\n components.push(item);\n\n if (item.children.length === 0) {\n return;\n }\n\n const childItems = this._sortTreeItems(this._allItems.filter((i) => i.parentId === item.id));\n\n childItems.forEach((treeItem, index) => {\n treeItem.setPosition(childItems.length, index + 1);\n });\n\n components.push(...childItems);\n });\n\n return components;\n }\n\n /** @hidden */\n private _setSelectionListener(): void {\n this._selectionSub?.unsubscribe();\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._selectionSub = this._cvaDirective.ngControl?.valueChanges\n ?.pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n private _listenToTreeItemDirectiveChanges(): void {\n this._treeItemDirectives.changes\n .pipe(\n startWith(null),\n filter(() => this.treeItemDef !== undefined),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._treeItemDirectives.toArray().map((item) => item.treeItem!);\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _listenToTreeItemsChanges(): void {\n this._projectedTreeItems.changes\n .pipe(\n startWith(null),\n filter(() => !this.treeItemDef),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._projectedTreeItems.toArray();\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _setFlattenedItems(items: BaseTreeItem[]): void {\n this._sortedTreeItems = items;\n\n const activeItem = this._focusKeyManager?.activeItem;\n const newActiveItemIndex = items.findIndex((item) => item === activeItem);\n this._focusKeyManager?.destroy();\n\n this._focusKeyManager = new FocusKeyManager(items)\n .withVerticalOrientation(true)\n .skipPredicate((item) => !item.keyboardAccessible);\n\n if (newActiveItemIndex > -1) {\n this._focusKeyManager.setActiveItem(newActiveItemIndex);\n }\n\n this._selectionService.initialize(this._sortedTreeItems.map((item) => item.selectableListItem));\n\n this._setupEventListeners();\n }\n}\n","<ng-template #dataSourceRenderer>\n <ng-template\n [ngTemplateOutlet]=\"!_initialDataLoaded ? loadingRenderer : dataLoadedTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: 1 }\"\n ></ng-template>\n <ng-template #loadingRenderer let-level>\n <div *fdkRepeat=\"5\" role=\"treeitem\" [attr.aria-level]=\"level\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">\n <fd-skeleton type=\"text\" width=\"100px\" textLines=\"1\"></fd-skeleton>\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #dataLoadedTpl>\n @if (_items.length > 0 && treeItemDef) {\n @for (item of _items; track _trackFn($index, item)) {\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n } @else {\n <div role=\"treeitem\" aria-level=\"1\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">{{ 'coreTree.noData' | fdTranslate }}</span>\n </div>\n </div>\n </div>\n }\n </ng-template>\n <ng-template #renderer let-item>\n <ng-container fdTreeItem fdkSelectableItem #treeItemDirective=\"fdTreeItem\">\n <ng-template\n [ngTemplateOutlet]=\"item.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"treeItemDirective.injector\"\n ></ng-template>\n </ng-container>\n @if (\n treeItemDirective.treeItem?.hasDsChildren &&\n !!treeItemDirective.treeItem?.expanded &&\n !treeItemDirective.treeItem?.childrenLoaded\n ) {\n <ng-template\n [ngTemplateOutlet]=\"loadingRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item.level + 1 }\"\n ></ng-template>\n }\n @if (treeItemDirective.treeItem?.children; as childItems) {\n @if (childItems && childItems.length > 0 && !!treeItemDirective?.treeItem?.expanded) {\n <div class=\"fd-tree\">\n @for (child of childItems; track _trackFn($index, child)) {\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n }\n </div>\n }\n }\n </ng-template>\n</ng-template>\n<ng-template #projectedContentRenderer>\n <ng-content select=\"fd-tree-item\"></ng-content>\n</ng-template>\n<ng-template [ngTemplateOutlet]=\"treeItemDef ? dataSourceRenderer : projectedContentRenderer\"></ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n ClickedDirective,\n FDK_SELECTABLE_ITEM_PROVIDER,\n HasElementRef,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subject, distinctUntilChanged, filter, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { TreeService } from '../../tree.service';\n\n@Component({\n selector: 'fd-tree-item',\n templateUrl: './tree-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [DataSourceDirective],\n host: {\n class: 'fd-tree__item',\n role: 'presentation'\n },\n providers: [\n {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ],\n standalone: true,\n imports: [\n SelectableItemDirective,\n NgClass,\n ClickedDirective,\n NgTemplateOutlet,\n IconComponent,\n SkeletonComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n FdTranslatePipe\n ]\n})\nexport class TreeItemComponent<T extends TreeItem = TreeItem, P = any>\n extends BaseTreeItem<T, P>\n implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy, HasElementRef\n{\n /**\n * Tree item value.\n */\n @Input()\n value: P;\n /**\n * Tree item ID.\n */\n @Input()\n id = uuidv4();\n\n /**\n * Tree item aria label.\n */\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel: string;\n\n /**\n * Tree item parent ID.\n */\n @Input()\n set parentId(value: Nullable<string>) {\n this._parentId = value;\n }\n\n get parentId(): Nullable<string> {\n return this._parentId || this._parentTreeItem?.id;\n }\n\n /**\n * Whether the tree item is navigatable.\n */\n @Input()\n navigatable = false;\n\n /**\n * Tree item state.\n */\n @Input()\n state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n @Input()\n childNodes: FdTreeAcceptableDataSource<T> = [];\n\n /**\n * Whether to wrap content.\n */\n @Input()\n wrapContent = false;\n\n /**\n * Tree item level.\n */\n @Input()\n @HostBinding('attr.aria-level')\n set level(value: number) {\n this._level = value;\n }\n\n get level(): number {\n return this._level || (this._parentTreeItem !== null ? this._parentTreeItem.level + 1 : 1);\n }\n\n /**\n * Whether the tree item is expanded.\n */\n @Input()\n set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n this._treeService.addExpandableItem(this.id, this.level, value);\n this._expanded = value;\n\n if (value) {\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._dataSourceDirective.dataSourceProvider?.match();\n });\n } else {\n this.children = [];\n this.childrenLoaded = false;\n this._treeService.detectChanges.next();\n }\n\n this._cdr.detectChanges();\n }\n\n get expanded(): boolean {\n return this._expanded;\n }\n\n /**\n * Event emitted when user clicks on tree item.\n */\n @Output()\n readonly treeItemClick = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n /**\n * Event emitted when `expanded` state changes.\n */\n @Output()\n expandedChange = new EventEmitter<boolean>();\n\n /** Tree item focusable container. */\n @ViewChild('itemContainer', { read: ElementRef })\n itemContainer: Nullable<ElementRef<HTMLElement>>;\n\n /** Selectable item. */\n @ViewChild(SelectableItemDirective)\n selectableListItem: SelectableItemToken;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem)\n _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /**\n * @hidden\n * Selection state.\n */\n _selectionState = false;\n\n /** @hidden */\n children: T[] = [];\n\n /** @hidden */\n childrenLoaded = false;\n\n /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\n\n /** Whether the tree item has any type of child nodes. */\n get hasChildren(): boolean {\n return !!this.childNodes || this.hasProjectedChildren;\n }\n\n /** Whether the tree item has content-projected child nodes. */\n get hasProjectedChildren(): boolean {\n return this._projectedTreeItems && this._projectedTreeItems.length > 0;\n }\n\n /** Whether the tree item has data source children. */\n get hasDsChildren(): boolean {\n return this._dsChildrenNumber > 0;\n }\n\n /** Whether the item is accessible via keyboard. */\n get keyboardAccessible(): boolean {\n return this._parentTreeItem === null\n ? true\n : this._parentTreeItem.keyboardAccessible && this._parentTreeItem.expanded;\n }\n\n /** @hidden */\n private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\n\n /** @hidden */\n readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((totalItems) => {\n this._dsChildrenNumber = totalItems;\n this._totalChildrenLoaded = true;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((data) => {\n this.children = this._treeService.normalizeTreeItems(data, this.id, this.level + 1) as T[];\n this.childrenLoaded = true;\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._cdr.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._projectedTreeItems.changes\n .pipe(startWith(null), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._cdr.detectChanges();\n this._projectedTreeItems.forEach((treeItem, index) => {\n treeItem.setPosition(this._projectedTreeItems.length, index + 1);\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._treeService.removeExpandableItem(this.id, this.level!);\n }\n\n /**\n * Sets position of the current item in the set.\n * @param totalItems Total items amount in the set.\n * @param currentIndex Current item position in the set.\n */\n setPosition(totalItems: number, currentIndex: number): void {\n this._setSize = totalItems;\n this._currentPosition = currentIndex;\n }\n\n /** Method to focus on the tree item. */\n focus(): void {\n this.itemContainer?.nativeElement.focus();\n }\n\n /** Method for setting the focusable tabindex. */\n setContainerTabIndex(value: number): void {\n this._containerTabIndex = value;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _toggleExpandState(event: MouseEvent): void {\n // Do not bubble up to selection change event.\n event.stopImmediatePropagation();\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n this.focus();\n }\n\n /** @hidden */\n _onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n this._clicked$.next(event);\n this.treeItemClick.emit(event);\n }\n\n /** @hidden */\n _setSelected(selected: boolean): void {\n this._selectionState = selected;\n }\n}\n","<div\n class=\"fd-tree__item-container\"\n [attr.tabindex]=\"_containerTabIndex\"\n (fdkClicked)=\"_onClick($event)\"\n fdkSelectableItem\n (selected)=\"_setSelected($event)\"\n [value]=\"value\"\n [attr.aria-haspopup]=\"children.length > 0 || hasProjectedChildren\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-setsize]=\"_setSize\"\n [attr.aria-posinset]=\"_currentPosition\"\n role=\"treeitem\"\n [attr.aria-level]=\"level\"\n #itemContainer\n [ngClass]=\"[\n state ? 'has-highlight-indicator has-highlight-indicator--' + state : '',\n navigatable ? 'fd-tree__item-container--active' : '',\n wrapContent ? 'fd-tree__content--wrap' : ''\n ]\"\n>\n @if (_treeService.selectionMode().placement === 'left') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n @if (hasChildren) {\n @if (hasDsChildren || hasProjectedChildren) {\n <span\n (click)=\"_toggleExpandState($event)\"\n class=\"fd-tree__expander\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.aria-label]=\"(expanded ? 'coreTree.collapse' : 'coreTree.expand') | fdTranslate\"\n [class.is-expanded]=\"expanded\"\n >\n <fd-icon\n class=\"fd-tree__icon\"\n [glyph]=\"expanded ? 'navigation-down-arrow' : 'navigation-right-arrow'\"\n ></fd-icon>\n </span>\n }\n @if (!_totalChildrenLoaded) {\n <div class=\"fd-tree__expander fd-tree__expander--loading\">\n <fd-skeleton type=\"rectangle\" width=\"1rem\" height=\"1rem\"></fd-skeleton>\n </div>\n }\n @if (_treeService.selectionMode().placement === 'afterExpand') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n }\n <div class=\"fd-tree__content\">\n <ng-content select=\"[fdTreeItemIcon]\"></ng-content>\n <ng-content select=\"[fdTreeItemText]\"></ng-content>\n </div>\n <ng-content select=\"[fdTreeItemButton]\"></ng-content>\n @if (_treeService.selectionMode().placement === 'right') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n @if (navigatable && _treeService.navigationIndicator()) {\n <fd-icon glyph=\"slim-arrow-right\" class=\"fd-tree__icon fd-tree__icon--navigation\"></fd-icon>\n }\n</div>\n@if (hasProjectedChildren && expanded) {\n <div class=\"fd-tree\">\n <ng-content select=\"fd-tree-item\"></ng-content>\n </div>\n}\n<ng-template #selection>\n <div class=\"fd-form-item\">\n @if (_treeService.selectionMode().mode === 'multiple') {\n <fd-checkbox\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n ></fd-checkbox>\n }\n @if (_treeService.selectionMode().mode === 'single') {\n <fd-radio-button\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [selectedValue]=\"_selectionState\"\n [value]=\"true\"\n tabIndex=\"-1\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n ></fd-radio-button>\n }\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n },\n standalone: true\n})\nexport class TreeItemButtonDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n },\n standalone: true\n})\nexport class TreeItemIconDirective {\n /** @hidden */\n @HostBinding('attr.role')\n private readonly _role = 'presentation';\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private readonly _ariaHidden = true;\n}\n\n@Directive({\n selector: '[fdTreeItemText]',\n host: {\n class: 'fd-tree__text'\n },\n standalone: true\n})\nexport class TreeItemTextDirective {}\n","import { NgModule } from '@angular/core';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n];\n\n/**\n * @deprecated\n *\n * Use direct imports of `TreeComponent`,\n `TreeItemComponent`,\n `TreeItemDefDirective`,\n `TreeItemDirective`,\n `TreeItemIconDirective`,\n `TreeItemTextDirective`,\n `TreeItemButtonDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TreeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_TREE_ITEM = new InjectionToken('FdTreeItem');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../libs/core/tree/data-source/tree-data-source.ts","../../../../libs/core/tree/data-source/tree-data-source-parser.ts","../../../../libs/core/tree/directives/tree-item-def.directive.ts","../../../../libs/core/tree/directives/tree-item.directive.ts","../../../../libs/core/tree/models/base-tree-item.class.ts","../../../../libs/core/tree/tree.service.ts","../../../../libs/core/tree/tree.component.ts","../../../../libs/core/tree/tree.component.html","../../../../libs/core/tree/components/tree-item/tree-item.component.ts","../../../../libs/core/tree/components/tree-item/tree-item.component.html","../../../../libs/core/tree/directives/tree-item-button.directive.ts","../../../../libs/core/tree/directives/tree-item-icon.directive.ts","../../../../libs/core/tree/tree.module.ts","../../../../libs/core/tree/tokens.ts","../../../../libs/core/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import { AbstractDataProvider, BaseDataSource, DataProvider } from '@fundamental-ngx/cdk/data-source';\nimport { Observable } from 'rxjs';\n\nexport class FdTreeDataSource<T> extends BaseDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: AbstractDataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new DataProvider(data));\n }\n}\n\nexport class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new DataProvider(data));\n }\n}\n\n/**\n * Type of acceptable objects as a datasource for the Multi-Combo Box component.\n */\nexport type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];\nexport type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X>\n ? X\n : Type extends Array<infer X>\n ? X\n : Type extends Observable<infer X>\n ? X extends Array<infer V>\n ? V\n : X\n : Type;\n","import { DataSourceParser, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nimport {\n ArrayTreeDataSource,\n FdTreeAcceptableDataSource,\n FdTreeDataSource,\n ObservableTreeDataSource\n} from './tree-data-source';\n\nexport class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined {\n if (isDataSource(source)) {\n return source as FdTreeDataSource<T>;\n }\n\n if (Array.isArray(source)) {\n return new ArrayTreeDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableTreeDataSource<T>(source);\n }\n\n return undefined;\n }\n}\n","import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { TreeItem } from '../models/tree-item';\nimport { TreeItemDefContext } from '../models/tree-item-def-context';\n\n@Directive({\n selector: '[fdTreeItemDef]',\n standalone: true\n})\nexport class TreeItemDefDirective<T extends TreeItem = TreeItem> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdTreeItemDefAs: T;\n /** Template reference. */\n readonly templateRef = inject<TemplateRef<TreeItemDefContext<T>>>(TemplateRef);\n /** @hidden */\n static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext {\n return true;\n }\n}\n","import { Directive, Injector, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseTreeItem } from '../models/base-tree-item.class';\nimport { TreeItem } from '../models/tree-item';\n\n@Directive({\n selector: '[fdTreeItem]',\n exportAs: 'fdTreeItem',\n standalone: true\n})\nexport class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {\n /** Tree item component instance. */\n treeItem: Nullable<BaseTreeItem<T, P>>;\n\n /** Injector to be used in a tree item component, to resolve a tree item directive. */\n readonly injector: Injector;\n\n /** @hidden */\n constructor(injector: Injector) {\n this.injector = Injector.create({ providers: [], parent: injector });\n }\n\n /** Sets tree item. */\n setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void {\n this.treeItem = item;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.treeItem = null;\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from './tree-item';\n\n@Directive()\nexport abstract class BaseTreeItem<T extends TreeItem = TreeItem, P = any>\n implements Partial<SelectableItemToken<HTMLElement, P>>\n{\n /**\n * Tree item value.\n */\n abstract value: P;\n /**\n * Tree item ID.\n */\n abstract id: string;\n\n /**\n * Tree item parent ID.\n */\n abstract parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n abstract navigatable: boolean;\n\n /**\n * Tree item state.\n */\n abstract state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n abstract childNodes: FdTreeAcceptableDataSource<T>;\n\n /**\n * Whether to wrap content.\n */\n abstract wrapContent: boolean;\n\n /**\n * Whether the tree item is expanded.\n */\n abstract expanded: boolean;\n\n /**\n * Tree item level.\n */\n abstract level: number;\n\n /**\n * Tree item children.\n */\n abstract children: T[];\n\n /**\n * Whether the tree item has content projected child nodes.\n */\n abstract hasProjectedChildren: boolean;\n\n /**\n * Whether the tree item has content projected child nodes or data source for children.\n */\n abstract hasChildren: boolean;\n\n /**\n * Focusable tree item container.\n */\n abstract itemContainer: Nullable<ElementRef>;\n\n /**\n * Whether the tree item is keyboard navigatable.\n */\n abstract keyboardAccessible: boolean;\n\n /**\n * Tree item selectable item.\n */\n abstract selectableListItem: SelectableItemToken;\n\n /**\n * Whether the tree item has Data Source children.\n */\n abstract hasDsChildren: boolean;\n\n /**\n * Whether the children nodes being loaded from the Data Source.\n */\n abstract childrenLoaded: boolean;\n\n abstract elementRef: ElementRef;\n\n /** Method to focus on the tree item. */\n abstract focus(): void;\n\n /** Method to set the position of the item in set. */\n abstract setPosition(totalItemsCount: number, currentIndex: number): void;\n\n /** Method for setting the focusable tabindex. */\n abstract setContainerTabIndex(value: number): void;\n}\n","import { Injectable, Signal, TemplateRef, signal } from '@angular/core';\nimport { Nullable, uuidv4 } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeItemDefContext } from './models/tree-item-def-context';\n\nexport interface SelectionModeModel {\n mode: SelectionType;\n placement: SelectionPlacement;\n}\n\n@Injectable()\nexport class TreeService {\n /** Tree item template ref. */\n treeItemTemplateRef: Nullable<TemplateRef<TreeItemDefContext>>;\n\n /** Currently focused tree item. */\n focusedTreeItem: Nullable<BaseTreeItem>;\n\n /** Current expanded level. */\n get expandedLevel(): Signal<number | undefined> {\n return this._expandedLevel.asReadonly();\n }\n\n /** Tree selection mode. */\n get selectionMode(): Signal<SelectionModeModel> {\n return this._selectionMode$.asReadonly();\n }\n\n /** Whether to show navigation indicator. */\n get navigationIndicator(): Signal<boolean> {\n return this._navigationIndicator$.asReadonly();\n }\n\n /**\n * @hidden\n */\n readonly detectChanges = new Subject<void>();\n\n /** @hidden */\n private readonly _expandableItems = new Map<number, { [key: string]: boolean }>();\n\n /** @hidden */\n private readonly _selectionMode$ = signal<SelectionModeModel>({ mode: 'none', placement: 'none' });\n\n /** @hidden */\n private readonly _expandedLevel = signal<number | undefined>(undefined);\n\n /** @hidden */\n private readonly _navigationIndicator$ = signal(false);\n\n /** Sets whether the navigation indicator should be visible. */\n setNavigationIndicator(value: boolean): void {\n this._navigationIndicator$.set(value);\n }\n\n /** @hidden */\n normalizeTreeItems<T extends TreeItem = TreeItem>(\n items: Nullable<T[]>,\n parentId: string | null = null,\n level = 1\n ): TreeItem<TreeItemGeneric<T>>[] {\n if (!items) {\n return [];\n }\n return [...items].map((item: T) => ({\n ...item,\n ...{\n level,\n parentId,\n renderer: this.treeItemTemplateRef,\n id: item.id || uuidv4()\n }\n }));\n }\n\n /**\n * Adds expandable item to the object of expandable items.\n * @param id\n * @param level\n */\n addExpandableItem(id: string, level: number, expanded: boolean): void {\n const levelCollection = this._expandableItems.get(level) || {};\n levelCollection[id] = expanded;\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Removes expandable item from the object of expandable items.\n * @param id\n * @param level\n */\n removeExpandableItem(id: string, level: number): void {\n const levelCollection = this._expandableItems.get(level) || {};\n delete levelCollection[id];\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Sets selection mode and it's placement.\n * @param mode Selection mode.\n * @param placement Selection control placement.\n */\n setSelectionMode(mode: SelectionType, placement: SelectionPlacement): void {\n this._selectionMode$.set({ mode, placement });\n }\n\n /** @hidden */\n private _emitNewExpandedLevel(): void {\n // We need to go from level 1 to deeper level since level 4 may be expanded, yet level 2 not.\n const levels = Array.from(this._expandableItems.keys()).sort();\n let lastLevel: number | undefined;\n\n for (const level of levels) {\n const levelExpandableItems = this._expandableItems.get(level)!;\n\n if (Object.values(levelExpandableItems).every((v) => !v)) {\n break;\n }\n\n lastLevel = level;\n }\n\n this._expandedLevel.set(lastLevel);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n effect,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RepeatDirective,\n RtlService,\n SelectComponentRootToken,\n SelectableItemDirective,\n SelectableListValueType,\n SelectionService,\n applyCssClass\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, filter, fromEvent, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource, FdTreeItemType } from './data-source/tree-data-source';\nimport { TreeDataSourceParser } from './data-source/tree-data-source-parser';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeService } from './tree.service';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrl: './tree.component.scss',\n hostDirectives: [\n {\n directive: DataSourceDirective,\n inputs: ['dataSource'],\n outputs: ['dataChanged']\n },\n {\n directive: CvaDirective,\n inputs: ['name', 'id', 'state', 'stateMessage', 'disabled', 'readonly']\n }\n ],\n host: {\n role: 'tree'\n },\n providers: [\n contentDensityObserverProviders(),\n TreeService,\n SelectionService,\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n TreeItemDirective,\n SelectableItemDirective,\n FdTranslatePipe\n ]\n})\nexport class TreeComponent<P extends FdTreeAcceptableDataSource, T extends TreeItem = FdTreeItemType<P>>\n implements CssClassBuilder, OnInit, OnChanges, AfterViewInit, SelectComponentRootToken, OnDestroy\n{\n /** @hidden */\n @Input()\n class: string;\n\n /**\n * Whether the tree should be borderless.\n */\n @Input()\n noBorder = false;\n\n /** Type of tree items selection. */\n @Input()\n selection: SelectionType = 'none';\n\n /** Placement of the selection control. */\n @Input()\n selectionPlacement: SelectionPlacement = 'none';\n\n /**\n * Whether the sections should be dependent for selection mode.\n * If true, selection control will shift, according to the level.\n * If false, selection control will stay on the same place ignoring the item level.\n */\n @Input()\n independentSections = false;\n\n /**\n * Whether the Tree component has navigation indicators.\n */\n @Input()\n set navigationIndicator(value: boolean) {\n if (value === this._navigationIndicator) {\n return;\n }\n this._navigationIndicator = value;\n this._treeService.setNavigationIndicator(value);\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** Event emitted when data loading is started. */\n @Output()\n dataRequested = new EventEmitter<boolean>();\n\n /** Event emitted when data loading is finished. */\n @Output()\n dataReceived = new EventEmitter<boolean>();\n\n /** Event emitted when selected state changed. */\n @Output()\n selectedChange = new EventEmitter<any>();\n\n /** Tree item template definition. */\n @ContentChild(TreeItemDefDirective)\n set treeItemDef(value: Nullable<TreeItemDefDirective>) {\n this._treeItemDef = value;\n // Set new renderer\n this._treeService.treeItemTemplateRef = value?.templateRef;\n this._items = this._treeService.normalizeTreeItems(this._items);\n }\n\n get treeItemDef(): Nullable<TreeItemDefDirective> {\n return this._treeItemDef;\n }\n\n /** @hidden */\n @ViewChildren(TreeItemDirective)\n _treeItemDirectives: QueryList<TreeItemDirective<TreeItem, any>>;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem, { descendants: true })\n readonly _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** @hidden */\n _items: TreeItem<TreeItemGeneric<T>>[] = [];\n\n /** @hidden */\n get multiple(): boolean {\n return this.selection === 'multiple';\n }\n\n /** @hidden */\n get toggle(): boolean {\n return true;\n }\n\n /**\n * @hidden\n * Used for skeleton to appear before first meaningful data being loaded.\n */\n _initialDataLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private _navigationIndicator = false;\n\n /** @hidden */\n private _treeItemDef: Nullable<TreeItemDefDirective>;\n\n /** @hidden */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _selectionService = inject(SelectionService);\n\n /** @hidden */\n private readonly _rtl = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _cvaDirective = inject(CvaDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _dsSubscription: Subscription | null = null;\n\n /** @hidden */\n private _expandedLevel: number | undefined;\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<BaseTreeItem>;\n\n /**\n * @hidden\n * Sorted tree item components.\n */\n private _sortedTreeItems: BaseTreeItem[] = [];\n\n /**\n * @hidden\n * All tree item components.\n */\n private _allItems: BaseTreeItem[] = [];\n\n /** @hidden */\n private _eventSub: Subscription;\n\n /** @hidden */\n private _selectionSub: Subscription | undefined;\n\n /** @hidden */\n constructor() {\n this._selectionService.registerRootComponent(this);\n this._contentDensityObserver.subscribe();\n\n effect(() => {\n this._expandedLevel = this._treeService.expandedLevel();\n this.buildComponentCssClass();\n });\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class,\n this._expandedLevel ? `expanded-level-${this._expandedLevel}` : '',\n this.noBorder ? 'fd-tree--no-border' : '',\n this._items.length === 0 && this._initialDataLoaded ? 'fd-tree--no-data' : '',\n this.independentSections ? 'fd-tree--independent-multi-selection' : '',\n 'fd-tree'\n ];\n }\n\n /**\n * @hidden\n * Keyboard navigation\n * @param event Keyboard event.\n */\n @HostListener('keydown', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n this._focusKeyManager?.onKeydown(event);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._openDataStream();\n this.buildComponentCssClass();\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.detectChanges();\n });\n\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._cvaDirective.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n\n if ('selection' in changes || 'selectionPlacement' in changes) {\n this._treeService.setSelectionMode(this.selection, this.selectionPlacement);\n this._setSelectionListener();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToTreeItemsChanges();\n this._listenToTreeItemDirectiveChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._dsSubscription?.unsubscribe();\n this._eventSub?.unsubscribe();\n this._selectionSub?.unsubscribe();\n }\n\n /** @hidden */\n _onItemFocused(treeItem: BaseTreeItem): void {\n let focusedIndex = -1;\n this._sortedTreeItems.forEach((item, index) => {\n const isFocused = treeItem === item;\n item.setContainerTabIndex(isFocused ? 0 : -1);\n if (isFocused) {\n focusedIndex = index;\n }\n });\n\n if (focusedIndex === -1) {\n return;\n }\n\n this._focusKeyManager.setActiveItem(focusedIndex);\n }\n\n /** @hidden */\n _onItemKeyDown(event: KeyboardEvent, treeItem: Nullable<BaseTreeItem>): void {\n if (!treeItem) {\n return;\n }\n\n const isRtl = !!this._rtl?.rtlSignal();\n const expandKey = isRtl ? LEFT_ARROW : RIGHT_ARROW;\n const collapseKey = isRtl ? RIGHT_ARROW : LEFT_ARROW;\n\n if (KeyUtil.isKeyCode(event, expandKey) && (treeItem.hasDsChildren || treeItem.hasProjectedChildren)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._expandTreeSection(treeItem);\n return;\n }\n\n if (KeyUtil.isKeyCode(event, collapseKey)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._collapseTreeSection(treeItem);\n return;\n }\n }\n\n /** @hidden */\n _trackFn(index: number, item: TreeItem<TreeItemGeneric<T>>): string {\n return item.id;\n }\n\n /**\n * @hidden\n * Select list interface method implementation.\n * Sets value for control value accessor and emits it.\n * @param value value of the selection.\n */\n onChange(value: SelectableListValueType<any>): void {\n this._cvaDirective.setValue(value, true);\n }\n\n /** @hidden */\n private _expandTreeSection(treeItem: BaseTreeItem): void {\n if (treeItem.expanded) {\n // Shift focus on the first child item\n const itemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.id);\n const nextItem = this._sortedTreeItems[itemIndex + 1];\n if (nextItem?.parentId === treeItem.id) {\n this._focusKeyManager.setActiveItem(itemIndex + 1);\n }\n\n return;\n }\n\n treeItem.expanded = true;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _collapseTreeSection(treeItem: BaseTreeItem): void {\n if (!treeItem.expanded && treeItem.parentId) {\n const parentItemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.parentId);\n\n if (parentItemIndex > -1) {\n this._focusKeyManager.setActiveItem(parentItemIndex);\n return;\n }\n }\n treeItem.expanded = false;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _openDataStream(): void {\n this._dsSubscription?.unsubscribe();\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested)\n );\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived)\n );\n\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$)\n )\n .subscribe((data) => {\n this._initialDataLoaded = true;\n this._items = this._treeService.normalizeTreeItems(data);\n this.buildComponentCssClass();\n\n this._cdr.markForCheck();\n })\n );\n\n this._dataSourceDirective.dataSourceProvider?.match();\n }\n\n /** @hidden */\n private _setupEventListeners(): void {\n this._eventSub?.unsubscribe();\n this._eventSub = new Subscription();\n\n this._sortedTreeItems.forEach((item) => {\n this._eventSub.add(\n fromEvent<KeyboardEvent>(item.elementRef.nativeElement, 'keydown').subscribe((event) => {\n this._onItemKeyDown(event, item);\n })\n );\n this._eventSub.add(\n fromEvent(item.itemContainer?.nativeElement, 'focus').subscribe(() => {\n this._onItemFocused(item);\n })\n );\n });\n }\n\n /** @hidden */\n private _sortTreeItems(items: BaseTreeItem[]): BaseTreeItem[] {\n const components: BaseTreeItem[] = [];\n const rootItems = items.filter((item) => item.level === 1);\n\n rootItems.forEach((treeItem, index) => {\n treeItem.setPosition(rootItems.length, index + 1);\n });\n\n items.forEach((item) => {\n if (!item || components.includes(item)) {\n return;\n }\n\n components.push(item);\n\n if (item.children.length === 0) {\n return;\n }\n\n const childItems = this._sortTreeItems(this._allItems.filter((i) => i.parentId === item.id));\n\n childItems.forEach((treeItem, index) => {\n treeItem.setPosition(childItems.length, index + 1);\n });\n\n components.push(...childItems);\n });\n\n return components;\n }\n\n /** @hidden */\n private _setSelectionListener(): void {\n this._selectionSub?.unsubscribe();\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._selectionSub = this._cvaDirective.ngControl?.valueChanges\n ?.pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n private _listenToTreeItemDirectiveChanges(): void {\n this._treeItemDirectives.changes\n .pipe(\n startWith(null),\n filter(() => this.treeItemDef !== undefined),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._treeItemDirectives.toArray().map((item) => item.treeItem!);\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _listenToTreeItemsChanges(): void {\n this._projectedTreeItems.changes\n .pipe(\n startWith(null),\n filter(() => !this.treeItemDef),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._projectedTreeItems.toArray();\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _setFlattenedItems(items: BaseTreeItem[]): void {\n this._sortedTreeItems = items;\n\n const activeItem = this._focusKeyManager?.activeItem;\n const newActiveItemIndex = items.findIndex((item) => item === activeItem);\n this._focusKeyManager?.destroy();\n\n this._focusKeyManager = new FocusKeyManager(items)\n .withVerticalOrientation(true)\n .skipPredicate((item) => !item.keyboardAccessible);\n\n if (newActiveItemIndex > -1) {\n this._focusKeyManager.setActiveItem(newActiveItemIndex);\n }\n\n this._selectionService.initialize(this._sortedTreeItems.map((item) => item.selectableListItem));\n\n this._setupEventListeners();\n }\n}\n","<ng-template #dataSourceRenderer>\n <ng-template\n [ngTemplateOutlet]=\"!_initialDataLoaded ? loadingRenderer : dataLoadedTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: 1 }\"\n ></ng-template>\n <ng-template #loadingRenderer let-level>\n <div *fdkRepeat=\"5\" role=\"treeitem\" [attr.aria-level]=\"level\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">\n <fd-skeleton type=\"text\" width=\"100px\" textLines=\"1\"></fd-skeleton>\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #dataLoadedTpl>\n @if (_items.length > 0 && treeItemDef) {\n @for (item of _items; track _trackFn($index, item)) {\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n } @else {\n <div role=\"treeitem\" aria-level=\"1\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">{{ 'coreTree.noData' | fdTranslate }}</span>\n </div>\n </div>\n </div>\n }\n </ng-template>\n <ng-template #renderer let-item>\n <ng-container fdTreeItem fdkSelectableItem #treeItemDirective=\"fdTreeItem\">\n <ng-template\n [ngTemplateOutlet]=\"item.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"treeItemDirective.injector\"\n ></ng-template>\n </ng-container>\n @if (\n treeItemDirective.treeItem?.hasDsChildren &&\n !!treeItemDirective.treeItem?.expanded &&\n !treeItemDirective.treeItem?.childrenLoaded\n ) {\n <ng-template\n [ngTemplateOutlet]=\"loadingRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item.level + 1 }\"\n ></ng-template>\n }\n @if (treeItemDirective.treeItem?.children; as childItems) {\n @if (childItems && childItems.length > 0 && !!treeItemDirective?.treeItem?.expanded) {\n <div class=\"fd-tree\">\n @for (child of childItems; track _trackFn($index, child)) {\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n }\n </div>\n }\n }\n </ng-template>\n</ng-template>\n<ng-template #projectedContentRenderer>\n <ng-content select=\"fd-tree-item\"></ng-content>\n</ng-template>\n<ng-template [ngTemplateOutlet]=\"treeItemDef ? dataSourceRenderer : projectedContentRenderer\"></ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n ClickedDirective,\n FDK_SELECTABLE_ITEM_PROVIDER,\n HasElementRef,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Observable, Subject, distinctUntilChanged, filter, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { TreeService } from '../../tree.service';\n\n@Component({\n selector: 'fd-tree-item',\n templateUrl: './tree-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [DataSourceDirective],\n host: {\n class: 'fd-tree__item',\n role: 'presentation'\n },\n providers: [\n {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ],\n standalone: true,\n imports: [\n SelectableItemDirective,\n NgClass,\n ClickedDirective,\n NgTemplateOutlet,\n IconComponent,\n SkeletonComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n FdTranslatePipe\n ]\n})\nexport class TreeItemComponent<T extends TreeItem = TreeItem, P = any>\n extends BaseTreeItem<T, P>\n implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy, HasElementRef\n{\n /**\n * Tree item value.\n */\n @Input()\n value: P;\n /**\n * Tree item ID.\n */\n @Input()\n id = uuidv4();\n\n /**\n * Tree item aria label.\n */\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel: string;\n\n /**\n * Tree item parent ID.\n */\n @Input()\n set parentId(value: Nullable<string>) {\n this._parentId = value;\n }\n\n get parentId(): Nullable<string> {\n return this._parentId || this._parentTreeItem?.id;\n }\n\n /**\n * Whether the tree item is navigatable.\n */\n @Input()\n navigatable = false;\n\n /**\n * Tree item state.\n */\n @Input()\n state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n @Input()\n childNodes: FdTreeAcceptableDataSource<T> = [];\n\n /**\n * Whether to wrap content.\n */\n @Input()\n wrapContent = false;\n\n /**\n * Tree item level.\n */\n @Input()\n @HostBinding('attr.aria-level')\n set level(value: number) {\n this._level = value;\n }\n\n get level(): number {\n return this._level || (this._parentTreeItem !== null ? this._parentTreeItem.level + 1 : 1);\n }\n\n /**\n * Whether the tree item is expanded.\n */\n @Input()\n set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n this._treeService.addExpandableItem(this.id, this.level, value);\n this._expanded = value;\n\n if (value) {\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._dataSourceDirective.dataSourceProvider?.match();\n });\n } else {\n this.children = [];\n this.childrenLoaded = false;\n this._treeService.detectChanges.next();\n }\n\n this._cdr.detectChanges();\n }\n\n get expanded(): boolean {\n return this._expanded;\n }\n\n /**\n * Event emitted when user clicks on tree item.\n */\n @Output()\n readonly treeItemClick = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n /**\n * Event emitted when `expanded` state changes.\n */\n @Output()\n expandedChange = new EventEmitter<boolean>();\n\n /** Tree item focusable container. */\n @ViewChild('itemContainer', { read: ElementRef })\n itemContainer: Nullable<ElementRef<HTMLElement>>;\n\n /** Selectable item. */\n @ViewChild(SelectableItemDirective)\n selectableListItem: SelectableItemToken;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem)\n _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /**\n * @hidden\n * Selection state.\n */\n _selectionState = false;\n\n /** @hidden */\n children: T[] = [];\n\n /** @hidden */\n childrenLoaded = false;\n\n /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** Clicked behavior implementation. */\n clicked: Observable<MouseEvent | KeyboardEvent>;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _treeService = inject(TreeService);\n\n /** Whether the tree item has any type of child nodes. */\n get hasChildren(): boolean {\n return !!this.childNodes || this.hasProjectedChildren;\n }\n\n /** Whether the tree item has content-projected child nodes. */\n get hasProjectedChildren(): boolean {\n return this._projectedTreeItems && this._projectedTreeItems.length > 0;\n }\n\n /** Whether the tree item has data source children. */\n get hasDsChildren(): boolean {\n return this._dsChildrenNumber > 0;\n }\n /** Whether the item is accessible via keyboard. */\n get keyboardAccessible(): boolean {\n return this._parentTreeItem === null\n ? true\n : this._parentTreeItem.keyboardAccessible && this._parentTreeItem.expanded;\n }\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\n /** @hidden */\n private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n this.clicked = this._clicked$.asObservable();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((totalItems) => {\n this._dsChildrenNumber = totalItems;\n this._totalChildrenLoaded = true;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((data) => {\n this.children = this._treeService.normalizeTreeItems(data, this.id, this.level + 1) as T[];\n this.childrenLoaded = true;\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._cdr.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._projectedTreeItems.changes\n .pipe(startWith(null), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._cdr.detectChanges();\n this._projectedTreeItems.forEach((treeItem, index) => {\n treeItem.setPosition(this._projectedTreeItems.length, index + 1);\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._treeService.removeExpandableItem(this.id, this.level!);\n }\n\n /**\n * Sets position of the current item in the set.\n * @param totalItems Total items amount in the set.\n * @param currentIndex Current item position in the set.\n */\n setPosition(totalItems: number, currentIndex: number): void {\n this._setSize = totalItems;\n this._currentPosition = currentIndex;\n }\n\n /** Method to focus on the tree item. */\n focus(): void {\n this.itemContainer?.nativeElement.focus();\n }\n\n /** Method for setting the focusable tabindex. */\n setContainerTabIndex(value: number): void {\n this._containerTabIndex = value;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _toggleExpandState(event: MouseEvent): void {\n // Do not bubble up to selection change event.\n event.stopImmediatePropagation();\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n this.focus();\n }\n\n /** @hidden */\n _onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n this._clicked$.next(event);\n this.treeItemClick.emit(event);\n }\n\n /** @hidden */\n _setSelected(selected: boolean): void {\n this._selectionState = selected;\n }\n}\n","<div\n class=\"fd-tree__item-container\"\n [attr.tabindex]=\"_containerTabIndex\"\n (fdkClicked)=\"_onClick($event)\"\n fdkSelectableItem\n (selected)=\"_setSelected($event)\"\n [value]=\"value\"\n [attr.aria-haspopup]=\"children.length > 0 || hasProjectedChildren\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-setsize]=\"_setSize\"\n [attr.aria-posinset]=\"_currentPosition\"\n role=\"treeitem\"\n [attr.aria-level]=\"level\"\n #itemContainer\n [ngClass]=\"[\n state ? 'has-highlight-indicator has-highlight-indicator--' + state : '',\n navigatable ? 'fd-tree__item-container--active' : '',\n wrapContent ? 'fd-tree__content--wrap' : ''\n ]\"\n>\n @if (_treeService.selectionMode().placement === 'left') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n @if (hasChildren) {\n @if (hasDsChildren || hasProjectedChildren) {\n <span\n (click)=\"_toggleExpandState($event)\"\n class=\"fd-tree__expander\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.aria-label]=\"(expanded ? 'coreTree.collapse' : 'coreTree.expand') | fdTranslate\"\n [class.is-expanded]=\"expanded\"\n >\n <fd-icon\n class=\"fd-tree__icon\"\n [glyph]=\"expanded ? 'navigation-down-arrow' : 'navigation-right-arrow'\"\n ></fd-icon>\n </span>\n }\n @if (!_totalChildrenLoaded) {\n <div class=\"fd-tree__expander fd-tree__expander--loading\">\n <fd-skeleton type=\"rectangle\" width=\"1rem\" height=\"1rem\"></fd-skeleton>\n </div>\n }\n @if (_treeService.selectionMode().placement === 'afterExpand') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n }\n <div class=\"fd-tree__content\">\n <ng-content select=\"[fdTreeItemIcon]\"></ng-content>\n <ng-content select=\"[fdTreeItemText]\"></ng-content>\n </div>\n <ng-content select=\"[fdTreeItemButton]\"></ng-content>\n @if (_treeService.selectionMode().placement === 'right') {\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n }\n @if (navigatable && _treeService.navigationIndicator()) {\n <fd-icon glyph=\"slim-arrow-right\" class=\"fd-tree__icon fd-tree__icon--navigation\"></fd-icon>\n }\n</div>\n@if (hasProjectedChildren && expanded) {\n <div class=\"fd-tree\">\n <ng-content select=\"fd-tree-item\"></ng-content>\n </div>\n}\n<ng-template #selection>\n <div class=\"fd-form-item\">\n @if (_treeService.selectionMode().mode === 'multiple') {\n <fd-checkbox\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n ></fd-checkbox>\n }\n @if (_treeService.selectionMode().mode === 'single') {\n <fd-radio-button\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [selectedValue]=\"_selectionState\"\n [value]=\"true\"\n tabIndex=\"-1\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n ></fd-radio-button>\n }\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n },\n standalone: true\n})\nexport class TreeItemButtonDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n },\n standalone: true\n})\nexport class TreeItemIconDirective {\n /** @hidden */\n @HostBinding('attr.role')\n private readonly _role = 'presentation';\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private readonly _ariaHidden = true;\n}\n\n@Directive({\n selector: '[fdTreeItemText]',\n host: {\n class: 'fd-tree__text'\n },\n standalone: true\n})\nexport class TreeItemTextDirective {}\n","import { NgModule } from '@angular/core';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n];\n\n/**\n * @deprecated\n *\n * Use direct imports of `TreeComponent`,\n `TreeItemComponent`,\n `TreeItemDefDirective`,\n `TreeItemDirective`,\n `TreeItemIconDirective`,\n `TreeItemTextDirective`,\n `TreeItemButtonDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class TreeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_TREE_ITEM = new InjectionToken('FdTreeItem');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -259,9 +259,9 @@ class UploadCollectionItemDirective {
|
|
|
259
259
|
/** Event emitted when presses the delete button. */
|
|
260
260
|
this.deleteClicked = new EventEmitter();
|
|
261
261
|
/** @hidden */
|
|
262
|
-
this._subscriptions = new Subscription();
|
|
263
|
-
/** @hidden */
|
|
264
262
|
this.elementRef = inject(ElementRef);
|
|
263
|
+
/** @hidden */
|
|
264
|
+
this._subscriptions = new Subscription();
|
|
265
265
|
}
|
|
266
266
|
/** @hidden */
|
|
267
267
|
onResize() {
|