@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-checkbox.mjs","sources":["../../../../libs/core/checkbox/tokens.ts","../../../../libs/core/checkbox/checkbox/fd-checkbox-values.interface.ts","../../../../libs/core/checkbox/checkbox/checkbox.component.ts","../../../../libs/core/checkbox/checkbox/checkbox.component.html","../../../../libs/core/checkbox/checkbox.module.ts","../../../../libs/core/checkbox/fundamental-ngx-core-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_CHECKBOX_COMPONENT = new InjectionToken('FdCheckboxComponent');\n","export interface FdCheckboxValues {\n trueValue?: any;\n falseValue?: any;\n thirdStateValue?: any;\n}\n\nexport const FD_CHECKBOX_VALUES_DEFAULT: Readonly<FdCheckboxValues> = {\n trueValue: true,\n falseValue: false,\n thirdStateValue: null\n};\n","import { CdkPortalOutlet, DomPortal, Portal, PortalModule } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport equal from 'fast-deep-equal';\nimport { Subscription } from 'rxjs';\nimport { FD_CHECKBOX_COMPONENT } from '../tokens';\nimport { FD_CHECKBOX_VALUES_DEFAULT, FdCheckboxValues } from './fd-checkbox-values.interface';\n\nlet checkboxUniqueId = 0;\n\nexport type FdCheckboxTypes = 'checked' | 'unchecked' | 'indeterminate' | 'force-checked';\n\n@Component({\n selector: 'fd-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n },\n {\n provide: FD_CHECKBOX_COMPONENT,\n useExisting: CheckboxComponent\n },\n registerFormItemControl(CheckboxComponent),\n contentDensityObserverProviders()\n ],\n host: { '[attr.tabindex]': '-1' },\n standalone: true,\n imports: [FormsModule, NgClass, ContentDensityModule, PortalModule]\n})\nexport class CheckboxComponent<T = unknown> implements ControlValueAccessor, AfterViewInit, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('inputElement')\n inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('labelElement')\n labelElement: ElementRef;\n\n /** Whether input label should be wrapped */\n @Input() wrapLabel: boolean;\n\n /** Vertical position of the label compared to the checkbox box */\n @Input() valignLabel: 'top' | 'middle' = 'middle';\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Current selection state of the checkbox component */\n @Input()\n set value(value: T) {\n this.writeValue(value);\n }\n\n get value(): T {\n return this.checkboxValue;\n }\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: Nullable<string>;\n\n /** sets checkbox tooltip */\n @Input()\n title: Nullable<string>;\n\n /** Sets [id] property of input, binds input with input label using [for] property. */\n @Input()\n inputId = `fd-checkbox-${checkboxUniqueId++}`;\n\n /** State of control, changes visual appearance of control. */\n @Input()\n state?: FormStates;\n\n /** Sets [name] property of input. */\n @Input()\n name: string;\n\n /** Sets text of control label. */\n @Input()\n label: string;\n\n /** Allows to disable/enable control. */\n @Input()\n disabled: boolean;\n\n /** Enables controls third state. */\n @Input()\n tristate = false;\n\n /** Allows to prevent user from manually selecting controls third state. */\n @Input()\n tristateSelectable = false;\n\n /** Assigns given class to checkbox label element */\n @Input()\n labelClass: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the checkbox should be rendered in display-only mode. */\n @Input()\n displayOnly = false;\n\n /** Sets values returned by control. */\n @Input()\n set values(checkboxValues: FdCheckboxValues) {\n this._values = { ...FD_CHECKBOX_VALUES_DEFAULT, ...(checkboxValues ?? {}) };\n }\n\n get values(): FdCheckboxValues {\n return this._values;\n }\n\n /** Whether checkbox should be rendered standalone (without any text). */\n @HostBinding('class.fd-checkbox--standalone')\n @Input()\n standalone = false;\n\n /** @hidden */\n @HostBinding('style.position')\n readonly position = 'relative';\n\n /** @hidden */\n @HostBinding('style.outline')\n readonly outline = 'none';\n\n /** Emits event on focus change */\n @Output() focusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('domPortal')\n private readonly _domPortalContent: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild(CdkPortalOutlet, { static: false })\n private readonly _portalOutlet: CdkPortalOutlet;\n\n /** @hidden */\n _projectedDomPortal: Portal<any>;\n\n /** Stores current checkbox value. */\n checkboxValue: T;\n /** Stores current checkbox state. */\n checkboxState: FdCheckboxTypes;\n\n /** @hidden */\n _projectedContent = false;\n\n /** @hidden Used to define if control is in 'indeterminate' state.*/\n get isIndeterminate(): boolean {\n return this.checkboxState === 'indeterminate';\n }\n\n /** @hidden Used to define if control is in 'checked' / 'unchecked' state. */\n get isChecked(): boolean {\n return this.checkboxState === 'checked' || this.checkboxState === 'force-checked';\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden values returned by control. */\n private _values: FdCheckboxValues = { ...FD_CHECKBOX_VALUES_DEFAULT };\n\n /** @hidden */\n _domPortal: DomPortal<HTMLElement>;\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<Element>,\n @Attribute('tabIndexValue') public tabIndexValue: number = 0,\n private _changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this.tabIndexValue = tabIndexValue;\n }\n\n /** @hidden Reference to callback provided by FormControl.*/\n public onTouched = (): void => {};\n /** @hidden Reference to callback provided by FormControl.*/\n public onValueChange: (value: T) => void = () => {};\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.consume(\n {\n elementRef: this.inputElement\n },\n {\n elementRef: this.labelElement\n }\n );\n\n this._domPortal = new DomPortal(this._domPortalContent);\n this._projectedContent = !!this._domPortal.element.innerHTML.trim();\n this._changeDetectorRef.detectChanges();\n this._portalOutlet?.attach(this._domPortal);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden ControlValueAccessor interface\n * - sets new control value\n * - updates control state\n */\n writeValue(value: T): void {\n this.checkboxValue = value;\n this._setState();\n this._detectChanges();\n }\n\n /** @hidden ControlValueAccessor interface method - sets onValueChange callback.*/\n registerOnChange(fn: (value: T) => void): void {\n this.onValueChange = fn;\n }\n\n /** @hidden ControlValueAccessor interface method - sets onTouched callback.*/\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden Called by FormControl - used to disable / enable control.*/\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this._detectChanges();\n }\n\n /**\n * @hidden\n * Based on current control state:\n * - sets next control value\n * - emits new control value\n * - updates control state based on new control value\n * */\n nextValue(previousValue?: FdCheckboxTypes): void {\n switch (previousValue || this.checkboxState) {\n case 'checked':\n this.checkboxValue = this.values.falseValue;\n break;\n case 'unchecked':\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n case 'indeterminate':\n case 'force-checked':\n this.checkboxValue = this.values.trueValue;\n this.renderer.setProperty(this.inputElement.nativeElement, 'checked', 'true');\n break;\n default:\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n }\n this._setState();\n this.onValueChange(this.checkboxValue);\n this._detectChanges();\n }\n\n /** @hidden handles blur event */\n _onBlur(): void {\n if (typeof this.onTouched === 'function') {\n this.onTouched();\n }\n this.focusChange.emit(false);\n }\n\n /** @hidden handles focus event */\n _onFocus(): void {\n this.focusChange.emit(true);\n }\n\n /** @hidden handles click on the label associated with native checkbox input */\n _onLabelClick(event: MouseEvent): void {\n // We have to stop propagation for click events on the input label.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. This will lead to duplicated \"click\" event dispatched from the component\n event.stopPropagation();\n\n // If we have display-only mode, stop any possible actions by label click event.\n this._handleDisplayOnlyMode(event);\n }\n\n /**\n * @hidden\n * Event handler for cases when checkbox was toggled with the help of keyboard.\n * @param event\n */\n _onLabelKeydown(event: Event): void {\n // If we have display-only mode, stop any possible actions by label click event.\n this._handleDisplayOnlyMode(event);\n }\n\n /** @hidden handles click on the native checkbox input */\n _onInputClick(event: MouseEvent): void {\n // When there's a click event dispatched from the input, we have to catch it, process and then re-dispatch it further.\n // This is needed in order to set the value to the component before any external listeners will receive it.\n // Otherwise checkbox might be out of sync.\n event.stopPropagation();\n if (this.displayOnly) {\n return;\n }\n this.nextValue();\n this.elementRef.nativeElement.dispatchEvent(new MouseEvent(event.type, event));\n }\n\n /** @hidden */\n private _handleDisplayOnlyMode(event: Event): void {\n if (!this.displayOnly) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /** @hidden Based on current control value sets new control state. */\n private _setState(): void {\n if (equal(this.checkboxValue, this.values.trueValue)) {\n this.checkboxState = 'checked';\n } else if (equal(this.checkboxValue, this.values.falseValue)) {\n this.checkboxState = 'unchecked';\n } else if (this.tristate && equal(this.checkboxValue, this.values.thirdStateValue)) {\n this.checkboxState = 'indeterminate';\n } else if (!this.checkboxValue) {\n this.checkboxState = 'unchecked';\n }\n }\n\n /** Method to trigger change detection in component */\n private _detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<input\n #inputElement\n type=\"checkbox\"\n class=\"fd-checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [disabled]=\"disabled || displayOnly\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n [attr.tabindex]=\"tabIndexValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [ngClass]=\"[displayOnly ? 'is-display' : '', state ? 'is-' + state : '']\"\n (click)=\"_onInputClick($event)\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\"\n (keyup.enter)=\"_onLabelKeydown($event)\"\n (keyup.space)=\"_onLabelKeydown($event)\"\n/>\n<label\n class=\"fd-checkbox__label\"\n #labelElement\n [for]=\"inputId\"\n [class]=\"labelClass\"\n [attr.title]=\"title\"\n [class.fd-checkbox__label--required]=\"required\"\n [class.fd-checkbox__label--wrap]=\"wrapLabel && valignLabel === 'middle'\"\n [class.fd-checkbox__label--wrap-top-aligned]=\"wrapLabel && valignLabel === 'top'\"\n (keyup.enter)=\"_onLabelKeydown($event)\"\n (keyup.space)=\"_onLabelKeydown($event)\"\n (click)=\"_onLabelClick($event)\"\n>\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n @if (label || _projectedContent) {\n <div class=\"fd-checkbox__label-container\">\n @if (label) {\n <span class=\"fd-checkbox__text\">\n {{ label }}\n </span>\n } @else {\n <span class=\"fd-checkbox__text\">\n <ng-template cdkPortalOutlet></ng-template>\n </span>\n }\n </div>\n }\n</label>\n<span [attr.hidden]=\"!_projectedContent ? true : null\" #domPortal>\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\n\n@NgModule({\n imports: [ContentDensityModule, CheckboxComponent],\n exports: [CheckboxComponent, ContentDensityModule]\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-checkbox.mjs","sources":["../../../../libs/core/checkbox/tokens.ts","../../../../libs/core/checkbox/checkbox/fd-checkbox-values.interface.ts","../../../../libs/core/checkbox/checkbox/checkbox.component.ts","../../../../libs/core/checkbox/checkbox/checkbox.component.html","../../../../libs/core/checkbox/checkbox.module.ts","../../../../libs/core/checkbox/fundamental-ngx-core-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_CHECKBOX_COMPONENT = new InjectionToken('FdCheckboxComponent');\n","export interface FdCheckboxValues {\n trueValue?: any;\n falseValue?: any;\n thirdStateValue?: any;\n}\n\nexport const FD_CHECKBOX_VALUES_DEFAULT: Readonly<FdCheckboxValues> = {\n trueValue: true,\n falseValue: false,\n thirdStateValue: null\n};\n","import { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport equal from 'fast-deep-equal';\nimport { Subscription } from 'rxjs';\nimport { FD_CHECKBOX_COMPONENT } from '../tokens';\nimport { FD_CHECKBOX_VALUES_DEFAULT, FdCheckboxValues } from './fd-checkbox-values.interface';\n\nlet checkboxUniqueId = 0;\n\nexport type FdCheckboxTypes = 'checked' | 'unchecked' | 'indeterminate' | 'force-checked';\n\n@Component({\n selector: 'fd-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n },\n {\n provide: FD_CHECKBOX_COMPONENT,\n useExisting: CheckboxComponent\n },\n registerFormItemControl(CheckboxComponent),\n contentDensityObserverProviders()\n ],\n host: { '[attr.tabindex]': '-1' },\n standalone: true,\n imports: [FormsModule, NgClass, ContentDensityModule, PortalModule]\n})\nexport class CheckboxComponent<T = unknown> implements ControlValueAccessor, AfterViewInit, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('inputElement')\n inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('labelElement')\n labelElement: ElementRef;\n\n /** Whether input label should be wrapped */\n @Input() wrapLabel: boolean;\n\n /** Vertical position of the label compared to the checkbox box */\n @Input() valignLabel: 'top' | 'middle' = 'middle';\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Current selection state of the checkbox component */\n @Input()\n set value(value: T) {\n this.writeValue(value);\n }\n\n get value(): T {\n return this.checkboxValue;\n }\n\n /** Sets the `aria-labelledby` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets the `aria-describedby` attribute to the element. */\n @Input()\n ariaDescribedBy: Nullable<string>;\n\n /** sets checkbox tooltip */\n @Input()\n title: Nullable<string>;\n\n /** Sets [id] property of input, binds input with input label using [for] property. */\n @Input()\n inputId = `fd-checkbox-${checkboxUniqueId++}`;\n\n /** State of control, changes visual appearance of control. */\n @Input()\n state?: FormStates;\n\n /** Sets [name] property of input. */\n @Input()\n name: string;\n\n /** Sets text of control label. */\n @Input()\n label: string;\n\n /** Allows to disable/enable control. */\n @Input()\n disabled: boolean;\n\n /** Enables controls third state. */\n @Input()\n tristate = false;\n\n /** Allows to prevent user from manually selecting controls third state. */\n @Input()\n tristateSelectable = false;\n\n /** Assigns given class to checkbox label element */\n @Input()\n labelClass: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the checkbox should be rendered in display-only mode. */\n @Input()\n displayOnly = false;\n\n /** Sets values returned by control. */\n @Input()\n set values(checkboxValues: FdCheckboxValues) {\n this._values = { ...FD_CHECKBOX_VALUES_DEFAULT, ...(checkboxValues ?? {}) };\n }\n\n get values(): FdCheckboxValues {\n return this._values;\n }\n\n /** Whether checkbox should be rendered standalone (without any text). */\n @HostBinding('class.fd-checkbox--standalone')\n @Input()\n standalone = false;\n\n /** @hidden */\n @HostBinding('style.position')\n readonly position = 'relative';\n\n /** @hidden */\n @HostBinding('style.outline')\n readonly outline = 'none';\n\n /** Emits event on focus change */\n @Output() focusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('domPortal')\n private readonly _domPortalContent: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild(CdkPortalOutlet, { static: false })\n private readonly _portalOutlet: CdkPortalOutlet;\n\n /** Stores current checkbox value. */\n checkboxValue: T;\n /** Stores current checkbox state. */\n checkboxState: FdCheckboxTypes;\n\n /** @hidden */\n _projectedContent = false;\n\n /** @hidden Used to define if control is in 'indeterminate' state.*/\n get isIndeterminate(): boolean {\n return this.checkboxState === 'indeterminate';\n }\n\n /** @hidden Used to define if control is in 'checked' / 'unchecked' state. */\n get isChecked(): boolean {\n return this.checkboxState === 'checked' || this.checkboxState === 'force-checked';\n }\n\n /** @hidden */\n _domPortal: DomPortal<HTMLElement>;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden values returned by control. */\n private _values: FdCheckboxValues = { ...FD_CHECKBOX_VALUES_DEFAULT };\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<Element>,\n @Attribute('tabIndexValue') public tabIndexValue: number = 0,\n private _changeDetectorRef: ChangeDetectorRef,\n private renderer: Renderer2,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this.tabIndexValue = tabIndexValue;\n }\n\n /** @hidden Reference to callback provided by FormControl.*/\n public onTouched = (): void => {};\n /** @hidden Reference to callback provided by FormControl.*/\n public onValueChange: (value: T) => void = () => {};\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.consume(\n {\n elementRef: this.inputElement\n },\n {\n elementRef: this.labelElement\n }\n );\n\n this._domPortal = new DomPortal(this._domPortalContent);\n this._projectedContent = !!this._domPortal.element.innerHTML.trim();\n this._changeDetectorRef.detectChanges();\n this._portalOutlet?.attach(this._domPortal);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * @hidden ControlValueAccessor interface\n * - sets new control value\n * - updates control state\n */\n writeValue(value: T): void {\n this.checkboxValue = value;\n this._setState();\n this._detectChanges();\n }\n\n /** @hidden ControlValueAccessor interface method - sets onValueChange callback.*/\n registerOnChange(fn: (value: T) => void): void {\n this.onValueChange = fn;\n }\n\n /** @hidden ControlValueAccessor interface method - sets onTouched callback.*/\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden Called by FormControl - used to disable / enable control.*/\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this._detectChanges();\n }\n\n /**\n * @hidden\n * Based on current control state:\n * - sets next control value\n * - emits new control value\n * - updates control state based on new control value\n * */\n nextValue(previousValue?: FdCheckboxTypes): void {\n switch (previousValue || this.checkboxState) {\n case 'checked':\n this.checkboxValue = this.values.falseValue;\n break;\n case 'unchecked':\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n case 'indeterminate':\n case 'force-checked':\n this.checkboxValue = this.values.trueValue;\n this.renderer.setProperty(this.inputElement.nativeElement, 'checked', 'true');\n break;\n default:\n this.checkboxValue =\n this.tristate && this.tristateSelectable ? this.values.thirdStateValue : this.values.trueValue;\n break;\n }\n this._setState();\n this.onValueChange(this.checkboxValue);\n this._detectChanges();\n }\n\n /** @hidden handles blur event */\n _onBlur(): void {\n if (typeof this.onTouched === 'function') {\n this.onTouched();\n }\n this.focusChange.emit(false);\n }\n\n /** @hidden handles focus event */\n _onFocus(): void {\n this.focusChange.emit(true);\n }\n\n /** @hidden handles click on the label associated with native checkbox input */\n _onLabelClick(event: MouseEvent): void {\n // We have to stop propagation for click events on the input label.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. This will lead to duplicated \"click\" event dispatched from the component\n event.stopPropagation();\n\n // If we have display-only mode, stop any possible actions by label click event.\n this._handleDisplayOnlyMode(event);\n }\n\n /**\n * @hidden\n * Event handler for cases when checkbox was toggled with the help of keyboard.\n * @param event\n */\n _onLabelKeydown(event: Event): void {\n // If we have display-only mode, stop any possible actions by label click event.\n this._handleDisplayOnlyMode(event);\n }\n\n /** @hidden handles click on the native checkbox input */\n _onInputClick(event: MouseEvent): void {\n // When there's a click event dispatched from the input, we have to catch it, process and then re-dispatch it further.\n // This is needed in order to set the value to the component before any external listeners will receive it.\n // Otherwise checkbox might be out of sync.\n event.stopPropagation();\n if (this.displayOnly) {\n return;\n }\n this.nextValue();\n this.elementRef.nativeElement.dispatchEvent(new MouseEvent(event.type, event));\n }\n\n /** @hidden */\n private _handleDisplayOnlyMode(event: Event): void {\n if (!this.displayOnly) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /** @hidden Based on current control value sets new control state. */\n private _setState(): void {\n if (equal(this.checkboxValue, this.values.trueValue)) {\n this.checkboxState = 'checked';\n } else if (equal(this.checkboxValue, this.values.falseValue)) {\n this.checkboxState = 'unchecked';\n } else if (this.tristate && equal(this.checkboxValue, this.values.thirdStateValue)) {\n this.checkboxState = 'indeterminate';\n } else if (!this.checkboxValue) {\n this.checkboxState = 'unchecked';\n }\n }\n\n /** Method to trigger change detection in component */\n private _detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<input\n #inputElement\n type=\"checkbox\"\n class=\"fd-checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [disabled]=\"disabled || displayOnly\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n [attr.tabindex]=\"tabIndexValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [ngClass]=\"[displayOnly ? 'is-display' : '', state ? 'is-' + state : '']\"\n (click)=\"_onInputClick($event)\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\"\n (keyup.enter)=\"_onLabelKeydown($event)\"\n (keyup.space)=\"_onLabelKeydown($event)\"\n/>\n<label\n class=\"fd-checkbox__label\"\n #labelElement\n [for]=\"inputId\"\n [class]=\"labelClass\"\n [attr.title]=\"title\"\n [class.fd-checkbox__label--required]=\"required\"\n [class.fd-checkbox__label--wrap]=\"wrapLabel && valignLabel === 'middle'\"\n [class.fd-checkbox__label--wrap-top-aligned]=\"wrapLabel && valignLabel === 'top'\"\n (keyup.enter)=\"_onLabelKeydown($event)\"\n (keyup.space)=\"_onLabelKeydown($event)\"\n (click)=\"_onLabelClick($event)\"\n>\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n @if (label || _projectedContent) {\n <div class=\"fd-checkbox__label-container\">\n @if (label) {\n <span class=\"fd-checkbox__text\">\n {{ label }}\n </span>\n } @else {\n <span class=\"fd-checkbox__text\">\n <ng-template cdkPortalOutlet></ng-template>\n </span>\n }\n </div>\n }\n</label>\n<span [attr.hidden]=\"!_projectedContent ? true : null\" #domPortal>\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\n\n@NgModule({\n imports: [ContentDensityModule, CheckboxComponent],\n exports: [CheckboxComponent, ContentDensityModule]\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -701,7 +701,7 @@ class ComboboxComponent {
|
|
|
701
701
|
provide: FD_COMBOBOX_COMPONENT,
|
|
702
702
|
useExisting: ComboboxComponent
|
|
703
703
|
}
|
|
704
|
-
], queries: [{ propertyName: "_comboboxItemRenderer", first: true, predicate: ComboboxItemDirective, descendants: true }, { propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if (isSearch && showClearButton && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i4$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i4$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i4$1.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i5.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: ListGroupPipe, name: "listGroupPipe" }, { kind: "directive", type: TruncatedTitleDirective, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
704
|
+
], queries: [{ propertyName: "_comboboxItemRenderer", first: true, predicate: ComboboxItemDirective, descendants: true }, { propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if (isSearch && showClearButton && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i4$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i4$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i4$1.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i5.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "displayFn", "matcher"], outputs: ["onComplete"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: ListGroupPipe, name: "listGroupPipe" }, { kind: "directive", type: TruncatedTitleDirective, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
705
705
|
}
|
|
706
706
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
707
707
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-combobox.mjs","sources":["../../../../libs/core/combobox/combobox-item.directive.ts","../../../../libs/core/combobox/combobox.interface.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.html","../../../../libs/core/combobox/list-group.pipe.ts","../../../../libs/core/combobox/tokens.ts","../../../../libs/core/combobox/combobox.component.ts","../../../../libs/core/combobox/combobox.component.html","../../../../libs/core/combobox/combobox.module.ts","../../../../libs/core/combobox/fundamental-ngx-core-combobox.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { ComboboxItemDirectiveContext } from './combobox.interface';\n\n@Directive({\n selector: '[fdComboboxItem]',\n standalone: true\n})\nexport class ComboboxItemDirective<T = unknown> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdComboboxItemUse: T;\n\n /** Template reference. */\n templateRef = inject(TemplateRef<ComboboxItemDirectiveContext<T>>);\n\n /** @hidden */\n static ngTemplateContextGuard<T>(\n dir: ComboboxItemDirective<T>,\n ctx: ComboboxItemDirectiveContext<T>\n ): ctx is ComboboxItemDirectiveContext<T> {\n return true;\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const COMBOBOX_COMPONENT = new InjectionToken<string[]>('ComboboxInterface');\n\n/**\n * Combobox Interface to have typing and avoid circular dependency between\n * ComboboxComponent <==> ComboboxMobileComponent\n */\nexport interface ComboboxInterface extends MobileMode {\n inputText: string;\n openChange: EventEmitter<boolean>;\n inShellbar: boolean;\n\n getValue(): any;\n dialogApprove(): void;\n dialogDismiss(backup: string): void;\n}\n\nexport interface ComboboxItemDirectiveContext<T = unknown> {\n $implicit: T;\n inputText: string;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { observeOn } from 'rxjs/operators';\n\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { asyncScheduler } from 'rxjs';\nimport { COMBOBOX_COMPONENT, ComboboxInterface } from '../combobox.interface';\n\n@Component({\n selector: 'fd-combobox-mobile',\n templateUrl: './combobox-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n DialogModule,\n TitleComponent,\n TemplateDirective,\n BarModule,\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n InitialFocusDirective\n ]\n})\nexport class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * For internal usage\n * Control element, which will be rendered inside dialog.\n * List element, which will be rendered inside dialog.\n */\n childContent: { listTemplate: TemplateRef<any>; controlTemplate: TemplateRef<any> } | null = null;\n\n /** @hidden */\n private _selectedBackup: string;\n\n /** @hidden */\n constructor(@Inject(COMBOBOX_COMPONENT) comboboxComponent: ComboboxInterface) {\n super(comboboxComponent, MobileModeControl.COMBOBOX);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnMultiInputOpenChange();\n }\n\n /** @hidden */\n handleDismiss(): void {\n this.dialogRef.dismiss();\n this._component.dialogDismiss(this._selectedBackup);\n }\n\n /** @hidden */\n handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _toggleDialog(open: boolean): void {\n if (open) {\n this._selectedBackup = this._component.getValue();\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n }\n }\n\n /** @hidden */\n private _listenOnMultiInputOpenChange(): void {\n this._component.openChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isOpen) => this._toggleDialog(isOpen));\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n disablePaddings: true\n });\n\n this._focusInputElementOnceOpened();\n\n const refSub = this.dialogRef.afterClosed.subscribe({\n error: (type) => {\n if (type === 'escape') {\n this._component.dialogDismiss(this._selectedBackup);\n refSub.unsubscribe();\n }\n }\n });\n }\n\n /** @hidden */\n private _focusInputElementOnceOpened(): void {\n this.dialogRef.afterLoaded\n .pipe(\n observeOn(asyncScheduler), // making the listener async\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n try {\n const input = this._elementRef.nativeElement.querySelector('fd-input-group input[role=\"combobox\"]');\n input.focus();\n } catch (error) {\n if (isDevMode()) {\n console.error('Failed to focus combobox search input', error);\n }\n }\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button title=\"Close\" fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar fdkInitialFocus [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { KeyValue } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nexport type GroupFunction<T = any> = (items: T[]) => { [key: string]: T[] };\n\n@Pipe({\n name: 'listGroupPipe',\n standalone: true\n})\nexport class ListGroupPipe<T = any> implements PipeTransform {\n /** Group items */\n transform(items: any[], group: GroupFunction<T>): KeyValue<string, T[]>[] {\n return Object.entries(group(items)).map(([key, value]) => ({ key, value }));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ComboboxInterface } from './combobox.interface';\n\nexport const FD_COMBOBOX_COMPONENT = new InjectionToken<ComboboxInterface>('FdComboboxComponent');\n","import {\n BACKSPACE,\n CONTROL,\n DOWN_ARROW,\n ENTER,\n ESCAPE,\n LEFT_ARROW,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW\n} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport {\n AutoCompleteEvent,\n DynamicComponentService,\n FocusEscapeDirection,\n KeyUtil,\n Nullable,\n TruncatedTitleDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { InputGroupComponent } from '@fundamental-ngx/core/input-group';\nimport { FD_LIST_MESSAGE_DIRECTIVE, ListComponent, ListMessageDirective } from '@fundamental-ngx/core/list';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { PopoverFillMode } from '@fundamental-ngx/core/shared';\n\nimport { Overlay, RepositionScrollStrategy } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates, SingleDropdownValueControl } from '@fundamental-ngx/cdk/forms';\nimport { AutoCompleteDirective, DisplayFnPipe, SearchHighlightPipe } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ComboboxItem } from './combobox-item';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxMobileComponent } from './combobox-mobile/combobox-mobile.component';\nimport { COMBOBOX_COMPONENT, ComboboxInterface, ComboboxItemDirectiveContext } from './combobox.interface';\nimport { GroupFunction, ListGroupPipe } from './list-group.pipe';\nimport { FD_COMBOBOX_COMPONENT } from './tokens';\n\nlet comboboxUniqueId = 0;\n\n/**\n * Allows users to filter through results and select a value.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-combobox\n * [(ngModel)]=\"searchTerm\"\n * [dropdownValues]=\"dropdownValues\"\n * placeholder=\"Type some text...\">\n * </fd-combobox>\n * ```\n */\n@Component({\n selector: 'fd-combobox',\n templateUrl: './combobox.component.html',\n styleUrl: './combobox.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true\n },\n registerFormItemControl(ComboboxComponent),\n MenuKeyboardService,\n DynamicComponentService,\n contentDensityObserverProviders(),\n {\n provide: FD_COMBOBOX_COMPONENT,\n useExisting: ComboboxComponent\n }\n ],\n host: {\n '[class.fd-combobox-custom-class]': 'true',\n '[class.fd-combobox-input]': 'true',\n '[class.fd-combobox-custom-class--mobile]': 'mobile'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n ListModule,\n InputGroupModule,\n FormsModule,\n AutoCompleteDirective,\n ButtonComponent,\n IconComponent,\n ContentDensityModule,\n DisplayFnPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n ListGroupPipe,\n TruncatedTitleDirective\n ]\n})\nexport class ComboboxComponent<T = any>\n implements\n ComboboxInterface,\n SingleDropdownValueControl,\n ControlValueAccessor,\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n FormItemControl\n{\n /** Id for the Combobox. */\n @Input()\n comboboxId = `fd-combobox-${comboboxUniqueId++}`;\n\n /** Id attribute for input element inside Combobox component */\n @Input()\n inputId = '';\n\n /** Aria-label for Combobox. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing Combobox. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Values to be filtered in the search input. */\n @Input()\n dropdownValues: T[] = [];\n\n /** Filter function. Accepts an array of objects and a search term as arguments\n * and returns a string. See search input examples for details. */\n @Input()\n filterFn = this._defaultFilter;\n\n /** Whether the search input is disabled. **/\n @Input()\n disabled: boolean;\n\n /** Placeholder of the search input. **/\n @Input()\n placeholder: string;\n\n /**\n * Whether the Combobox is a Search Field\n */\n @Input()\n isSearch = false;\n\n /** Icon to display in the right-side button. */\n @Input()\n glyph = 'navigation-down-arrow';\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /**\n * Whether to show the clear search term button when the Combobox is a Search Field\n */\n @Input()\n showClearButton = true;\n\n /**\n * The trigger events that will open/close the options popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n @Input()\n triggers: string[] = [];\n\n /** Whether the combobox should close, when a click is performed outside its boundaries. True by default */\n @Input()\n closeOnOutsideClick = true;\n\n /**\n * Whether the combobox should open, when any key is pressed in input (except Escape, Space, Enter). True by default\n */\n @Input()\n openOnKeyboardEvent = true;\n\n /**\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n state?: FormStates;\n\n /**\n * The template with which to display the individual listed items.\n * Use it by passing an ng-template with implicit content. See examples for more info.\n */\n @Input()\n itemTemplate: TemplateRef<ComboboxItemDirectiveContext<T>>;\n\n /**\n * Function used to handle grouping of items.\n */\n @Input()\n groupFn: Nullable<GroupFunction>;\n\n /** Max height of the popover. Any overflowing elements will be accessible through scrolling. */\n @Input()\n maxHeight = '50vh';\n\n /** Search function to execute when the Enter key is pressed on the main input. */\n @Input()\n searchFn: () => void;\n\n /** Whether the matching string should be highlighted during filtration. */\n @Input()\n highlighting = true;\n\n /** Whether the popover should close when a user selects a result. */\n @Input()\n closeOnSelect = true;\n\n /** Whether the input field should be populated with the result picked by the user. */\n @Input()\n fillOnSelect = true;\n\n /** Whether the autocomplete should be enabled; Enabled by default */\n @Input()\n autoComplete = true;\n\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n @Input()\n fillControlMode: PopoverFillMode = 'at-least';\n\n /** Defines if combobox should behave same as dropdown. When it's enabled writing inside text input won't\n * trigger onChange function, until it matches one of displayed dropdown values. Also communicating with combobox\n * can be achieved only by objects with same type as dropdownValue */\n @Input()\n communicateByObject = false;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /**\n * Whether AddOn Button should be focusable\n * @default false\n */\n @Input()\n buttonFocusable = false;\n\n /**\n * Whether clear button should be focusable.\n * @default true\n */\n @Input()\n clearButtonFocusable = true;\n\n /** Whether the combobox is readonly. */\n @Input()\n readOnly = false;\n\n /** Whether the combobox should be built on mobile mode */\n @Input()\n mobile = false;\n\n /** Multi Input Mobile Configuration, it's applied only, when mobile is enabled */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether to display the addon button. */\n @Input()\n showDropdownButton = true;\n\n /**\n * Whether to return results where the input matches the entire string. By default, only results that start\n * with the input search term will be returned.\n */\n @Input()\n includes = false;\n\n /**\n * The tooltip for the multi-input icon.\n */\n @Input()\n title: string;\n\n /** Whether list item options should be rendered as byline. */\n @Input()\n byline = false;\n\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n @Input()\n tabOutStrategy: 'close' | 'closeAndSelect' = 'closeAndSelect';\n\n /** Event emitted when an item is clicked. Use *$event* to retrieve it. */\n @Output()\n readonly itemClicked: EventEmitter<ComboboxItem> = new EventEmitter<ComboboxItem>();\n\n /** Event emitted, when the combobox's popover body is opened or closed */\n @Output()\n readonly openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the input text changes. */\n @Output()\n inputTextChange: EventEmitter<string> = new EventEmitter<string>();\n\n /** @hidden */\n @ViewChild(ListComponent)\n listComponent: ListComponent;\n\n /** @hidden */\n @ViewChild('searchInputElement')\n searchInputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @ViewChild(InputGroupComponent)\n inputGroup: InputGroupComponent;\n\n /** @hidden */\n @ContentChildren(FD_LIST_MESSAGE_DIRECTIVE)\n listMessages: QueryList<ListMessageDirective>;\n\n /** @hidden */\n @ViewChild('controlTemplate')\n controlTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('listTemplate')\n listTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ContentChild(ComboboxItemDirective)\n private readonly _comboboxItemRenderer: ComboboxItemDirective;\n\n /** Whether the matching string should be highlighted after combobox value is selected. */\n filterHighlight = true;\n\n /** Keys, that won't trigger the popover's open state, when dispatched on search input */\n readonly nonOpeningKeys: number[] = [\n ESCAPE,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n DOWN_ARROW,\n UP_ARROW,\n CONTROL,\n TAB,\n SHIFT\n ];\n\n /** Keys, that will close popover's body, when dispatched on search input */\n readonly closingKeys: number[] = [ESCAPE];\n\n /** @hidden */\n readonly _repositionScrollStrategy: RepositionScrollStrategy;\n\n /** @hidden */\n readonly _defaultFontFamily = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Whether the combobox is opened. */\n open = false;\n\n /**\n * Whether or not the input coup is in the shellbar. Only for internal use by combobox component\n * @hidden\n */\n inShellbar = false;\n\n /** @hidden */\n displayedValues: any[] = [];\n\n /** @hidden */\n inputTextValue = '';\n\n /** @hidden */\n clearInputBtnFocused = false;\n\n /** @hidden */\n get _customRenderer(): Nullable<TemplateRef<ComboboxItemDirectiveContext<T>>> {\n return this._comboboxItemRenderer?.templateRef || this.itemTemplate;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _value: any;\n\n /** @hidden */\n constructor(\n private readonly _overlay: Overlay,\n private readonly _cdRef: ChangeDetectorRef,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this._repositionScrollStrategy = this._overlay.scrollStrategies.reposition({ autoClose: true });\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n if (this.readOnly) {\n this.showDropdownButton = false;\n }\n this._refreshDisplayedValues();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dropdownValues && (changes.dropdownValues || changes.searchTerm)) {\n this._refreshDisplayedValues();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addShellbarClass();\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n onInputKeydownHandler(event: KeyboardEvent | string): void {\n if (this.readOnly) {\n return;\n }\n\n if (typeof event === 'string') {\n if (event === 'fromPaste') {\n this.isOpenChangeHandle(true);\n }\n } else {\n if (KeyUtil.isKeyCode(event, TAB) && this.open) {\n this._close();\n return;\n }\n\n if (KeyUtil.isKeyCode(event, ENTER)) {\n if (this.searchFn) {\n this.searchFn();\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (event.altKey) {\n this._resetDisplayedValues();\n this.isOpenChangeHandle(true);\n }\n if (this.open && this.listComponent) {\n this.listComponent.setItemActive(0);\n } else if (!this.open) {\n this._chooseOtherItem(1);\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this._chooseOtherItem(-1);\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, this.closingKeys)) {\n this.isOpenChangeHandle(false);\n event.stopPropagation();\n } else if (\n this.openOnKeyboardEvent &&\n !event.ctrlKey &&\n !event.altKey &&\n !KeyUtil.isKeyCode(event, this.nonOpeningKeys)\n ) {\n this.isOpenChangeHandle(true);\n if (this.isEmptyValue && KeyUtil.isKeyType(event, 'control') && !KeyUtil.isKeyCode(event, BACKSPACE)) {\n this.listComponent.setItemActive(0);\n }\n }\n }\n }\n\n /** @hidden */\n onItemKeyDownHandler(event: KeyboardEvent, value: any): void {\n if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n event.preventDefault();\n this.onMenuClickHandler(value);\n }\n }\n\n /** @hidden */\n onMenuClickHandler(value: any): void {\n if (value || value === 0) {\n const index: number = this.dropdownValues.findIndex((_value) => _value === value);\n this._handleClickActions(value);\n this.filterHighlight = false;\n this.itemClicked.emit({ item: value, index });\n }\n }\n\n /** Handle dialog dismissing, closes popover and sets backup data. */\n dialogDismiss(term: any): void {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.isOpenChangeHandle(false);\n }\n\n /** Handle dialog approval, closes popover and propagates data changes. */\n dialogApprove(): void {\n this._propagateChange();\n this.isOpenChangeHandle(false);\n }\n\n /** If true value empty */\n get isEmptyValue(): boolean {\n return !this.inputText || this.inputText?.trim().length === 0;\n }\n\n /** Input text of the input. */\n set inputText(value: string) {\n this.inputTextValue = value;\n this.inputTextChange.emit(value);\n if (!this.mobile) {\n this._propagateChange();\n }\n }\n get inputText(): string {\n return this.inputTextValue;\n }\n\n /** Get the glyph value based on whether the combobox is used as a search field or not. */\n get glyphValue(): string {\n return this.isSearch ? 'search' : this.glyph;\n }\n\n /** @hidden */\n _handleClearSearchTerm(): void {\n this.inputTextValue = '';\n this.inputTextChange.emit('');\n this.displayedValues = this.dropdownValues || [];\n this.searchInputElement.nativeElement.focus();\n if (!this.mobile) {\n this._propagateChange();\n }\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(value: any): void {\n this.inputTextValue = this.displayFn(value);\n this.setValue(value);\n this._cdRef.markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Method passed to list component */\n handleListFocusEscape(direction: FocusEscapeDirection): void {\n if (direction === 'up') {\n this.searchInputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n handleSearchTermChange(): void {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n this.popoverComponent?.refreshPosition();\n }\n\n /** @hidden */\n onPrimaryButtonClick(): void {\n // Prevent primary button click behaviour on mobiles\n if (this.mobile) {\n return;\n }\n\n if (this.searchFn) {\n this.searchFn();\n }\n this._resetDisplayedValues();\n this.isOpenChangeHandle(!this.open);\n this.searchInputElement.nativeElement.focus();\n this.filterHighlight = false;\n if (this.open) {\n this.searchInputElement?.nativeElement.focus();\n }\n }\n\n /** @hidden */\n isOpenChangeHandle(isOpen: boolean): void {\n /** Reset displayed values on every mobile open */\n if (this.mobile && !this.open) {\n this._resetDisplayedValues();\n }\n if (this.open !== isOpen) {\n this.open = isOpen;\n this.openChange.emit(isOpen);\n }\n\n if (!this.open && !this.mobile) {\n this.handleBlur();\n this.searchInputElement.nativeElement.focus({ preventScroll: true });\n }\n\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdRef.detectChanges();\n }\n\n /** Method that handles complete event from auto complete directive, setting the new value, and closing popover */\n handleAutoComplete(event: AutoCompleteEvent): void {\n if (this.inputText !== event.term) {\n this.inputText = event.term;\n this.handleSearchTermChange();\n }\n if (event.forceClose && this.inputText) {\n this.isOpenChangeHandle(false);\n }\n }\n\n /** @hidden */\n handleBlur(): void {\n if (!this.open) {\n this.onTouched();\n this.handleAutoComplete({\n term: this.searchInputElement.nativeElement.value,\n forceClose: false\n });\n }\n }\n\n /** @hidden */\n clearInputBtnFocus(): void {\n this.clearInputBtnFocused = true;\n }\n\n /** @hidden */\n clearInputBtnBlur(): void {\n this.clearInputBtnFocused = false;\n }\n\n /** Current select value */\n getValue(): any {\n return this._value;\n }\n\n /** @hidden */\n _close(): void {\n this.inputText = this._value ? this.inputText : '';\n if (this.tabOutStrategy === 'closeAndSelect') {\n const focusedItem = this.listComponent.getActiveItem();\n if (focusedItem) {\n this._handleClickActions(focusedItem.value);\n return;\n }\n }\n this.isOpenChangeHandle(false);\n this.searchInputElement.nativeElement.focus();\n }\n\n /** @hidden */\n isSelected(term: any): boolean {\n const termValue = this.communicateByObject ? term : this.displayFn(term);\n return this.getValue() === termValue;\n }\n\n /** Method that picks other value moved from current one by offset, called only when combobox is closed */\n private _chooseOtherItem(offset: number): void {\n const activeValue: any = this._getOptionObjectByDisplayedValue(this.inputTextValue)[0];\n const index: number = this.dropdownValues.findIndex((value) => value === activeValue);\n if (this.dropdownValues[index + offset]) {\n this.onMenuClickHandler(this.dropdownValues[index + offset]);\n }\n }\n\n /** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */\n private _resetDisplayedValues(): void {\n this.displayedValues = this.dropdownValues || [];\n }\n\n /** @hidden */\n private _addShellbarClass(): void {\n if (this.inShellbar) {\n this.searchInputElement.nativeElement.classList.add('fd-shellbar__input-group-input');\n if (this.inputGroup) {\n this.inputGroup.setInShellbar(true);\n }\n }\n }\n\n /** @hidden */\n private _defaultDisplay(str: any): string {\n return `${str}`;\n }\n\n /** @hidden */\n private _defaultFilter(contentArray: any[], searchTerm: any): any[] {\n this.filterHighlight = true;\n if (typeof searchTerm === 'string') {\n const searchLower = searchTerm.toLocaleLowerCase();\n return contentArray.filter((item) => {\n if (item) {\n const term = this.displayFn(item).toLocaleLowerCase();\n return this.includes ? term.includes(searchLower) : term.startsWith(searchLower);\n }\n });\n } else if (typeof searchTerm === 'object') {\n return contentArray.filter((item) => item === searchTerm);\n }\n return contentArray || [];\n }\n\n /** @hidden */\n private _handleClickActions(term: any): void {\n if (this.closeOnSelect) {\n this.isOpenChangeHandle(false);\n }\n if (this.fillOnSelect) {\n this.setValue(term);\n this.inputText = this.displayFn(term);\n this.searchInputElement.nativeElement.value = this.inputText;\n this._cdRef.detectChanges();\n\n if (this.mobile) {\n this._propagateChange();\n }\n }\n this.handleSearchTermChange();\n }\n\n /** @hidden */\n private _getOptionObjectByDisplayedValue(displayValue: string): any {\n return this.dropdownValues.filter((value) => this.displayFn(value) === displayValue);\n }\n\n /** @hidden */\n private _refreshDisplayedValues(): void {\n if (this.inputText) {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n } else {\n this.displayedValues = this.dropdownValues || [];\n }\n }\n\n /** @hidden */\n private _propagateChange(): void {\n if (this.communicateByObject) {\n const values = this._getOptionObjectByDisplayedValue(this.inputText);\n // Do not set new value if theres multiple items that have same label.\n if (values.length === 1 && this.displayFn(values[0]) !== this.displayFn(this.getValue())) {\n this.setValue(values[0]);\n }\n this.onChange(this.getValue());\n } else {\n this.onChange(this.inputText);\n }\n }\n\n /** @hidden */\n private setValue(value: any): void {\n if (this.communicateByObject) {\n this._value = value;\n } else {\n this._value = this.displayFn(value);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: COMBOBOX_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { listTemplate: this.listTemplate, controlTemplate: this.controlTemplate },\n ComboboxMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if (isSearch && showClearButton && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxComponent } from './combobox.component';\nimport { ListGroupPipe } from './list-group.pipe';\n\n/**\n * @deprecated\n * Use `ComboboxComponent` import instead.\n */\n@NgModule({\n imports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe],\n exports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe]\n})\nexport class ComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-combobox.mjs","sources":["../../../../libs/core/combobox/combobox-item.directive.ts","../../../../libs/core/combobox/combobox.interface.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.html","../../../../libs/core/combobox/list-group.pipe.ts","../../../../libs/core/combobox/tokens.ts","../../../../libs/core/combobox/combobox.component.ts","../../../../libs/core/combobox/combobox.component.html","../../../../libs/core/combobox/combobox.module.ts","../../../../libs/core/combobox/fundamental-ngx-core-combobox.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { ComboboxItemDirectiveContext } from './combobox.interface';\n\n@Directive({\n selector: '[fdComboboxItem]',\n standalone: true\n})\nexport class ComboboxItemDirective<T = unknown> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdComboboxItemUse: T;\n\n /** Template reference. */\n templateRef = inject(TemplateRef<ComboboxItemDirectiveContext<T>>);\n\n /** @hidden */\n static ngTemplateContextGuard<T>(\n dir: ComboboxItemDirective<T>,\n ctx: ComboboxItemDirectiveContext<T>\n ): ctx is ComboboxItemDirectiveContext<T> {\n return true;\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const COMBOBOX_COMPONENT = new InjectionToken<string[]>('ComboboxInterface');\n\n/**\n * Combobox Interface to have typing and avoid circular dependency between\n * ComboboxComponent <==> ComboboxMobileComponent\n */\nexport interface ComboboxInterface extends MobileMode {\n inputText: string;\n openChange: EventEmitter<boolean>;\n inShellbar: boolean;\n\n getValue(): any;\n dialogApprove(): void;\n dialogDismiss(backup: string): void;\n}\n\nexport interface ComboboxItemDirectiveContext<T = unknown> {\n $implicit: T;\n inputText: string;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { observeOn } from 'rxjs/operators';\n\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { asyncScheduler } from 'rxjs';\nimport { COMBOBOX_COMPONENT, ComboboxInterface } from '../combobox.interface';\n\n@Component({\n selector: 'fd-combobox-mobile',\n templateUrl: './combobox-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n DialogModule,\n TitleComponent,\n TemplateDirective,\n BarModule,\n NgTemplateOutlet,\n CdkScrollable,\n ScrollbarDirective,\n InitialFocusDirective\n ]\n})\nexport class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * For internal usage\n * Control element, which will be rendered inside dialog.\n * List element, which will be rendered inside dialog.\n */\n childContent: { listTemplate: TemplateRef<any>; controlTemplate: TemplateRef<any> } | null = null;\n\n /** @hidden */\n private _selectedBackup: string;\n\n /** @hidden */\n constructor(@Inject(COMBOBOX_COMPONENT) comboboxComponent: ComboboxInterface) {\n super(comboboxComponent, MobileModeControl.COMBOBOX);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnMultiInputOpenChange();\n }\n\n /** @hidden */\n handleDismiss(): void {\n this.dialogRef.dismiss();\n this._component.dialogDismiss(this._selectedBackup);\n }\n\n /** @hidden */\n handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _toggleDialog(open: boolean): void {\n if (open) {\n this._selectedBackup = this._component.getValue();\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n }\n }\n\n /** @hidden */\n private _listenOnMultiInputOpenChange(): void {\n this._component.openChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isOpen) => this._toggleDialog(isOpen));\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n disablePaddings: true\n });\n\n this._focusInputElementOnceOpened();\n\n const refSub = this.dialogRef.afterClosed.subscribe({\n error: (type) => {\n if (type === 'escape') {\n this._component.dialogDismiss(this._selectedBackup);\n refSub.unsubscribe();\n }\n }\n });\n }\n\n /** @hidden */\n private _focusInputElementOnceOpened(): void {\n this.dialogRef.afterLoaded\n .pipe(\n observeOn(asyncScheduler), // making the listener async\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n try {\n const input = this._elementRef.nativeElement.querySelector('fd-input-group input[role=\"combobox\"]');\n input.focus();\n } catch (error) {\n if (isDevMode()) {\n console.error('Failed to focus combobox search input', error);\n }\n }\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button title=\"Close\" fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar fdkInitialFocus [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { KeyValue } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nexport type GroupFunction<T = any> = (items: T[]) => { [key: string]: T[] };\n\n@Pipe({\n name: 'listGroupPipe',\n standalone: true\n})\nexport class ListGroupPipe<T = any> implements PipeTransform {\n /** Group items */\n transform(items: any[], group: GroupFunction<T>): KeyValue<string, T[]>[] {\n return Object.entries(group(items)).map(([key, value]) => ({ key, value }));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ComboboxInterface } from './combobox.interface';\n\nexport const FD_COMBOBOX_COMPONENT = new InjectionToken<ComboboxInterface>('FdComboboxComponent');\n","import {\n BACKSPACE,\n CONTROL,\n DOWN_ARROW,\n ENTER,\n ESCAPE,\n LEFT_ARROW,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW\n} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport {\n AutoCompleteEvent,\n DynamicComponentService,\n FocusEscapeDirection,\n KeyUtil,\n Nullable,\n TruncatedTitleDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { InputGroupComponent } from '@fundamental-ngx/core/input-group';\nimport { FD_LIST_MESSAGE_DIRECTIVE, ListComponent, ListMessageDirective } from '@fundamental-ngx/core/list';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { PopoverFillMode } from '@fundamental-ngx/core/shared';\n\nimport { Overlay, RepositionScrollStrategy } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates, SingleDropdownValueControl } from '@fundamental-ngx/cdk/forms';\nimport { AutoCompleteDirective, DisplayFnPipe, SearchHighlightPipe } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ComboboxItem } from './combobox-item';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxMobileComponent } from './combobox-mobile/combobox-mobile.component';\nimport { COMBOBOX_COMPONENT, ComboboxInterface, ComboboxItemDirectiveContext } from './combobox.interface';\nimport { GroupFunction, ListGroupPipe } from './list-group.pipe';\nimport { FD_COMBOBOX_COMPONENT } from './tokens';\n\nlet comboboxUniqueId = 0;\n\n/**\n * Allows users to filter through results and select a value.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-combobox\n * [(ngModel)]=\"searchTerm\"\n * [dropdownValues]=\"dropdownValues\"\n * placeholder=\"Type some text...\">\n * </fd-combobox>\n * ```\n */\n@Component({\n selector: 'fd-combobox',\n templateUrl: './combobox.component.html',\n styleUrl: './combobox.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true\n },\n registerFormItemControl(ComboboxComponent),\n MenuKeyboardService,\n DynamicComponentService,\n contentDensityObserverProviders(),\n {\n provide: FD_COMBOBOX_COMPONENT,\n useExisting: ComboboxComponent\n }\n ],\n host: {\n '[class.fd-combobox-custom-class]': 'true',\n '[class.fd-combobox-input]': 'true',\n '[class.fd-combobox-custom-class--mobile]': 'mobile'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n ListModule,\n InputGroupModule,\n FormsModule,\n AutoCompleteDirective,\n ButtonComponent,\n IconComponent,\n ContentDensityModule,\n DisplayFnPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n ListGroupPipe,\n TruncatedTitleDirective\n ]\n})\nexport class ComboboxComponent<T = any>\n implements\n ComboboxInterface,\n SingleDropdownValueControl,\n ControlValueAccessor,\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n FormItemControl\n{\n /** Id for the Combobox. */\n @Input()\n comboboxId = `fd-combobox-${comboboxUniqueId++}`;\n\n /** Id attribute for input element inside Combobox component */\n @Input()\n inputId = '';\n\n /** Aria-label for Combobox. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing Combobox. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Values to be filtered in the search input. */\n @Input()\n dropdownValues: T[] = [];\n\n /** Filter function. Accepts an array of objects and a search term as arguments\n * and returns a string. See search input examples for details. */\n @Input()\n filterFn = this._defaultFilter;\n\n /** Whether the search input is disabled. **/\n @Input()\n disabled: boolean;\n\n /** Placeholder of the search input. **/\n @Input()\n placeholder: string;\n\n /**\n * Whether the Combobox is a Search Field\n */\n @Input()\n isSearch = false;\n\n /** Icon to display in the right-side button. */\n @Input()\n glyph = 'navigation-down-arrow';\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /**\n * Whether to show the clear search term button when the Combobox is a Search Field\n */\n @Input()\n showClearButton = true;\n\n /**\n * The trigger events that will open/close the options popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n @Input()\n triggers: string[] = [];\n\n /** Whether the combobox should close, when a click is performed outside its boundaries. True by default */\n @Input()\n closeOnOutsideClick = true;\n\n /**\n * Whether the combobox should open, when any key is pressed in input (except Escape, Space, Enter). True by default\n */\n @Input()\n openOnKeyboardEvent = true;\n\n /**\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n state?: FormStates;\n\n /**\n * The template with which to display the individual listed items.\n * Use it by passing an ng-template with implicit content. See examples for more info.\n */\n @Input()\n itemTemplate: TemplateRef<ComboboxItemDirectiveContext<T>>;\n\n /**\n * Function used to handle grouping of items.\n */\n @Input()\n groupFn: Nullable<GroupFunction>;\n\n /** Max height of the popover. Any overflowing elements will be accessible through scrolling. */\n @Input()\n maxHeight = '50vh';\n\n /** Search function to execute when the Enter key is pressed on the main input. */\n @Input()\n searchFn: () => void;\n\n /** Whether the matching string should be highlighted during filtration. */\n @Input()\n highlighting = true;\n\n /** Whether the popover should close when a user selects a result. */\n @Input()\n closeOnSelect = true;\n\n /** Whether the input field should be populated with the result picked by the user. */\n @Input()\n fillOnSelect = true;\n\n /** Whether the autocomplete should be enabled; Enabled by default */\n @Input()\n autoComplete = true;\n\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n @Input()\n fillControlMode: PopoverFillMode = 'at-least';\n\n /** Defines if combobox should behave same as dropdown. When it's enabled writing inside text input won't\n * trigger onChange function, until it matches one of displayed dropdown values. Also communicating with combobox\n * can be achieved only by objects with same type as dropdownValue */\n @Input()\n communicateByObject = false;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /**\n * Whether AddOn Button should be focusable\n * @default false\n */\n @Input()\n buttonFocusable = false;\n\n /**\n * Whether clear button should be focusable.\n * @default true\n */\n @Input()\n clearButtonFocusable = true;\n\n /** Whether the combobox is readonly. */\n @Input()\n readOnly = false;\n\n /** Whether the combobox should be built on mobile mode */\n @Input()\n mobile = false;\n\n /** Multi Input Mobile Configuration, it's applied only, when mobile is enabled */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether to display the addon button. */\n @Input()\n showDropdownButton = true;\n\n /**\n * Whether to return results where the input matches the entire string. By default, only results that start\n * with the input search term will be returned.\n */\n @Input()\n includes = false;\n\n /**\n * The tooltip for the multi-input icon.\n */\n @Input()\n title: string;\n\n /** Whether list item options should be rendered as byline. */\n @Input()\n byline = false;\n\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n @Input()\n tabOutStrategy: 'close' | 'closeAndSelect' = 'closeAndSelect';\n\n /** Event emitted when an item is clicked. Use *$event* to retrieve it. */\n @Output()\n readonly itemClicked: EventEmitter<ComboboxItem> = new EventEmitter<ComboboxItem>();\n\n /** Event emitted, when the combobox's popover body is opened or closed */\n @Output()\n readonly openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the input text changes. */\n @Output()\n inputTextChange: EventEmitter<string> = new EventEmitter<string>();\n\n /** @hidden */\n @ViewChild(ListComponent)\n listComponent: ListComponent;\n\n /** @hidden */\n @ViewChild('searchInputElement')\n searchInputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @ViewChild(InputGroupComponent)\n inputGroup: InputGroupComponent;\n\n /** @hidden */\n @ContentChildren(FD_LIST_MESSAGE_DIRECTIVE)\n listMessages: QueryList<ListMessageDirective>;\n\n /** @hidden */\n @ViewChild('controlTemplate')\n controlTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('listTemplate')\n listTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ContentChild(ComboboxItemDirective)\n private readonly _comboboxItemRenderer: ComboboxItemDirective;\n\n /** Whether the matching string should be highlighted after combobox value is selected. */\n filterHighlight = true;\n\n /** Keys, that won't trigger the popover's open state, when dispatched on search input */\n readonly nonOpeningKeys: number[] = [\n ESCAPE,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n DOWN_ARROW,\n UP_ARROW,\n CONTROL,\n TAB,\n SHIFT\n ];\n\n /** Keys, that will close popover's body, when dispatched on search input */\n readonly closingKeys: number[] = [ESCAPE];\n\n /** @hidden */\n readonly _repositionScrollStrategy: RepositionScrollStrategy;\n\n /** @hidden */\n readonly _defaultFontFamily = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Whether the combobox is opened. */\n open = false;\n\n /**\n * Whether or not the input coup is in the shellbar. Only for internal use by combobox component\n * @hidden\n */\n inShellbar = false;\n\n /** @hidden */\n displayedValues: any[] = [];\n\n /** @hidden */\n inputTextValue = '';\n\n /** @hidden */\n clearInputBtnFocused = false;\n\n /** @hidden */\n get _customRenderer(): Nullable<TemplateRef<ComboboxItemDirectiveContext<T>>> {\n return this._comboboxItemRenderer?.templateRef || this.itemTemplate;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _value: any;\n\n /** @hidden */\n constructor(\n private readonly _overlay: Overlay,\n private readonly _cdRef: ChangeDetectorRef,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this._repositionScrollStrategy = this._overlay.scrollStrategies.reposition({ autoClose: true });\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n if (this.readOnly) {\n this.showDropdownButton = false;\n }\n this._refreshDisplayedValues();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dropdownValues && (changes.dropdownValues || changes.searchTerm)) {\n this._refreshDisplayedValues();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addShellbarClass();\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n onInputKeydownHandler(event: KeyboardEvent | string): void {\n if (this.readOnly) {\n return;\n }\n\n if (typeof event === 'string') {\n if (event === 'fromPaste') {\n this.isOpenChangeHandle(true);\n }\n } else {\n if (KeyUtil.isKeyCode(event, TAB) && this.open) {\n this._close();\n return;\n }\n\n if (KeyUtil.isKeyCode(event, ENTER)) {\n if (this.searchFn) {\n this.searchFn();\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (event.altKey) {\n this._resetDisplayedValues();\n this.isOpenChangeHandle(true);\n }\n if (this.open && this.listComponent) {\n this.listComponent.setItemActive(0);\n } else if (!this.open) {\n this._chooseOtherItem(1);\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this._chooseOtherItem(-1);\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, this.closingKeys)) {\n this.isOpenChangeHandle(false);\n event.stopPropagation();\n } else if (\n this.openOnKeyboardEvent &&\n !event.ctrlKey &&\n !event.altKey &&\n !KeyUtil.isKeyCode(event, this.nonOpeningKeys)\n ) {\n this.isOpenChangeHandle(true);\n if (this.isEmptyValue && KeyUtil.isKeyType(event, 'control') && !KeyUtil.isKeyCode(event, BACKSPACE)) {\n this.listComponent.setItemActive(0);\n }\n }\n }\n }\n\n /** @hidden */\n onItemKeyDownHandler(event: KeyboardEvent, value: any): void {\n if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n event.preventDefault();\n this.onMenuClickHandler(value);\n }\n }\n\n /** @hidden */\n onMenuClickHandler(value: any): void {\n if (value || value === 0) {\n const index: number = this.dropdownValues.findIndex((_value) => _value === value);\n this._handleClickActions(value);\n this.filterHighlight = false;\n this.itemClicked.emit({ item: value, index });\n }\n }\n\n /** Handle dialog dismissing, closes popover and sets backup data. */\n dialogDismiss(term: any): void {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.isOpenChangeHandle(false);\n }\n\n /** Handle dialog approval, closes popover and propagates data changes. */\n dialogApprove(): void {\n this._propagateChange();\n this.isOpenChangeHandle(false);\n }\n\n /** If true value empty */\n get isEmptyValue(): boolean {\n return !this.inputText || this.inputText?.trim().length === 0;\n }\n\n /** Input text of the input. */\n set inputText(value: string) {\n this.inputTextValue = value;\n this.inputTextChange.emit(value);\n if (!this.mobile) {\n this._propagateChange();\n }\n }\n get inputText(): string {\n return this.inputTextValue;\n }\n\n /** Get the glyph value based on whether the combobox is used as a search field or not. */\n get glyphValue(): string {\n return this.isSearch ? 'search' : this.glyph;\n }\n\n /** @hidden */\n _handleClearSearchTerm(): void {\n this.inputTextValue = '';\n this.inputTextChange.emit('');\n this.displayedValues = this.dropdownValues || [];\n this.searchInputElement.nativeElement.focus();\n if (!this.mobile) {\n this._propagateChange();\n }\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(value: any): void {\n this.inputTextValue = this.displayFn(value);\n this.setValue(value);\n this._cdRef.markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Method passed to list component */\n handleListFocusEscape(direction: FocusEscapeDirection): void {\n if (direction === 'up') {\n this.searchInputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n handleSearchTermChange(): void {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n this.popoverComponent?.refreshPosition();\n }\n\n /** @hidden */\n onPrimaryButtonClick(): void {\n // Prevent primary button click behaviour on mobiles\n if (this.mobile) {\n return;\n }\n\n if (this.searchFn) {\n this.searchFn();\n }\n this._resetDisplayedValues();\n this.isOpenChangeHandle(!this.open);\n this.searchInputElement.nativeElement.focus();\n this.filterHighlight = false;\n if (this.open) {\n this.searchInputElement?.nativeElement.focus();\n }\n }\n\n /** @hidden */\n isOpenChangeHandle(isOpen: boolean): void {\n /** Reset displayed values on every mobile open */\n if (this.mobile && !this.open) {\n this._resetDisplayedValues();\n }\n if (this.open !== isOpen) {\n this.open = isOpen;\n this.openChange.emit(isOpen);\n }\n\n if (!this.open && !this.mobile) {\n this.handleBlur();\n this.searchInputElement.nativeElement.focus({ preventScroll: true });\n }\n\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdRef.detectChanges();\n }\n\n /** Method that handles complete event from auto complete directive, setting the new value, and closing popover */\n handleAutoComplete(event: AutoCompleteEvent): void {\n if (this.inputText !== event.term) {\n this.inputText = event.term;\n this.handleSearchTermChange();\n }\n if (event.forceClose && this.inputText) {\n this.isOpenChangeHandle(false);\n }\n }\n\n /** @hidden */\n handleBlur(): void {\n if (!this.open) {\n this.onTouched();\n this.handleAutoComplete({\n term: this.searchInputElement.nativeElement.value,\n forceClose: false\n });\n }\n }\n\n /** @hidden */\n clearInputBtnFocus(): void {\n this.clearInputBtnFocused = true;\n }\n\n /** @hidden */\n clearInputBtnBlur(): void {\n this.clearInputBtnFocused = false;\n }\n\n /** Current select value */\n getValue(): any {\n return this._value;\n }\n\n /** @hidden */\n _close(): void {\n this.inputText = this._value ? this.inputText : '';\n if (this.tabOutStrategy === 'closeAndSelect') {\n const focusedItem = this.listComponent.getActiveItem();\n if (focusedItem) {\n this._handleClickActions(focusedItem.value);\n return;\n }\n }\n this.isOpenChangeHandle(false);\n this.searchInputElement.nativeElement.focus();\n }\n\n /** @hidden */\n isSelected(term: any): boolean {\n const termValue = this.communicateByObject ? term : this.displayFn(term);\n return this.getValue() === termValue;\n }\n\n /** Method that picks other value moved from current one by offset, called only when combobox is closed */\n private _chooseOtherItem(offset: number): void {\n const activeValue: any = this._getOptionObjectByDisplayedValue(this.inputTextValue)[0];\n const index: number = this.dropdownValues.findIndex((value) => value === activeValue);\n if (this.dropdownValues[index + offset]) {\n this.onMenuClickHandler(this.dropdownValues[index + offset]);\n }\n }\n\n /** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */\n private _resetDisplayedValues(): void {\n this.displayedValues = this.dropdownValues || [];\n }\n\n /** @hidden */\n private _addShellbarClass(): void {\n if (this.inShellbar) {\n this.searchInputElement.nativeElement.classList.add('fd-shellbar__input-group-input');\n if (this.inputGroup) {\n this.inputGroup.setInShellbar(true);\n }\n }\n }\n\n /** @hidden */\n private _defaultDisplay(str: any): string {\n return `${str}`;\n }\n\n /** @hidden */\n private _defaultFilter(contentArray: any[], searchTerm: any): any[] {\n this.filterHighlight = true;\n if (typeof searchTerm === 'string') {\n const searchLower = searchTerm.toLocaleLowerCase();\n return contentArray.filter((item) => {\n if (item) {\n const term = this.displayFn(item).toLocaleLowerCase();\n return this.includes ? term.includes(searchLower) : term.startsWith(searchLower);\n }\n });\n } else if (typeof searchTerm === 'object') {\n return contentArray.filter((item) => item === searchTerm);\n }\n return contentArray || [];\n }\n\n /** @hidden */\n private _handleClickActions(term: any): void {\n if (this.closeOnSelect) {\n this.isOpenChangeHandle(false);\n }\n if (this.fillOnSelect) {\n this.setValue(term);\n this.inputText = this.displayFn(term);\n this.searchInputElement.nativeElement.value = this.inputText;\n this._cdRef.detectChanges();\n\n if (this.mobile) {\n this._propagateChange();\n }\n }\n this.handleSearchTermChange();\n }\n\n /** @hidden */\n private _getOptionObjectByDisplayedValue(displayValue: string): any {\n return this.dropdownValues.filter((value) => this.displayFn(value) === displayValue);\n }\n\n /** @hidden */\n private _refreshDisplayedValues(): void {\n if (this.inputText) {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n } else {\n this.displayedValues = this.dropdownValues || [];\n }\n }\n\n /** @hidden */\n private _propagateChange(): void {\n if (this.communicateByObject) {\n const values = this._getOptionObjectByDisplayedValue(this.inputText);\n // Do not set new value if theres multiple items that have same label.\n if (values.length === 1 && this.displayFn(values[0]) !== this.displayFn(this.getValue())) {\n this.setValue(values[0]);\n }\n this.onChange(this.getValue());\n } else {\n this.onChange(this.inputText);\n }\n }\n\n /** @hidden */\n private setValue(value: any): void {\n if (this.communicateByObject) {\n this._value = value;\n } else {\n this._value = this.displayFn(value);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: COMBOBOX_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { listTemplate: this.listTemplate, controlTemplate: this.controlTemplate },\n ComboboxMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if (isSearch && showClearButton && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxComponent } from './combobox.component';\nimport { ListGroupPipe } from './list-group.pipe';\n\n/**\n * @deprecated\n * Use `ComboboxComponent` import instead.\n */\n@NgModule({\n imports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe],\n exports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe]\n})\nexport class ComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i4"],"mappings":"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"}
|