@fundamental-ngx/platform 0.48.0-rc.8 → 0.48.0
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/approval-flow/approval-flow-node/approval-flow-node.component.d.ts +0 -2
- package/button/button.component.d.ts +7 -8
- package/dynamic-page/dynamic-page.component.d.ts +24 -15
- package/dynamic-page/dynamic-page.tokens.d.ts +3 -0
- package/dynamic-page/index.d.ts +2 -1
- package/dynamic-page/platform-dynamic-page.interface.d.ts +22 -0
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +4 -4
- package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +4 -4
- package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +5 -7
- package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
- package/esm2022/approval-flow/approval-flow.component.mjs +5 -5
- package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
- package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
- package/esm2022/button/button.component.mjs +14 -15
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
- package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.component.mjs +48 -35
- package/esm2022/dynamic-page/dynamic-page.config.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2022/dynamic-page/dynamic-page.tokens.mjs +3 -0
- package/esm2022/dynamic-page/index.mjs +3 -2
- package/esm2022/dynamic-page/platform-dynamic-page.interface.mjs +2 -0
- package/esm2022/feed-input/feed-input.component.mjs +6 -6
- package/esm2022/feed-input/feed-input.module.mjs +4 -4
- package/esm2022/form/auto-complete/auto-complete.directive.mjs +3 -3
- package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2022/form/checkbox/checkbox.component.mjs +11 -43
- package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +21 -63
- package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
- package/esm2022/form/combobox/combobox/combobox.component.mjs +33 -63
- package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +15 -22
- package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2022/form/combobox/combobox.config.mjs +3 -3
- package/esm2022/form/combobox/combobox.module.mjs +4 -4
- package/esm2022/form/combobox/commons/base-combobox.mjs +24 -58
- package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
- package/esm2022/form/date-picker/date-picker.component.mjs +21 -57
- package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +22 -60
- package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
- package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +4 -4
- package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +5 -9
- package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -9
- package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +3 -3
- package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
- package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +27 -13
- package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
- package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +3 -3
- package/esm2022/form/form-generator/form-generator.service.mjs +11 -16
- package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
- package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +3 -3
- package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
- package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
- package/esm2022/form/form-group/form-field/form-field.component.mjs +40 -47
- package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +3 -3
- package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
- package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +4 -4
- package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +3 -3
- package/esm2022/form/form-group/form-group.component.mjs +40 -50
- package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
- package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
- package/esm2022/form/input/fdp-input.module.mjs +4 -4
- package/esm2022/form/input/input.component.mjs +16 -48
- package/esm2022/form/input-group/addon-body.component.mjs +4 -5
- package/esm2022/form/input-group/addon.component.mjs +3 -3
- package/esm2022/form/input-group/input-group.component.mjs +13 -46
- package/esm2022/form/input-group/input-group.config.mjs +3 -3
- package/esm2022/form/input-group/input-group.module.mjs +4 -4
- package/esm2022/form/input-group/input.component.mjs +3 -3
- package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +3 -3
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +64 -102
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +25 -71
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +18 -26
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
- package/esm2022/form/multi-combobox/multi-combobox.config.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
- package/esm2022/form/multi-input/base-multi-input.mjs +43 -83
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +13 -21
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2022/form/multi-input/multi-input.component.mjs +32 -91
- package/esm2022/form/multi-input/multi-input.config.mjs +3 -3
- package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
- package/esm2022/form/radio-group/radio/radio.component.mjs +12 -44
- package/esm2022/form/radio-group/radio-group.component.mjs +32 -74
- package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
- package/esm2022/form/select/commons/base-select.mjs +59 -101
- package/esm2022/form/select/select/select.component.mjs +17 -60
- package/esm2022/form/select/select.config.mjs +3 -3
- package/esm2022/form/select/select.module.mjs +4 -4
- package/esm2022/form/step-input/base.step-input.mjs +72 -85
- package/esm2022/form/step-input/number/number-step-input.component.mjs +14 -53
- package/esm2022/form/step-input/step-input-action-button.mjs +9 -13
- package/esm2022/form/step-input/step-input-control.directive.mjs +3 -3
- package/esm2022/form/step-input/step-input-decrement.directive.mjs +9 -13
- package/esm2022/form/step-input/step-input-increment.directive.mjs +9 -13
- package/esm2022/form/step-input/step-input.config.mjs +3 -3
- package/esm2022/form/step-input/step-input.module.mjs +4 -4
- package/esm2022/form/switch/switch/switch.component.mjs +12 -49
- package/esm2022/form/switch/switch/switch.config.mjs +3 -3
- package/esm2022/form/switch/switch.module.mjs +4 -4
- package/esm2022/form/text-area/text-area.component.mjs +14 -45
- package/esm2022/form/text-area/text-area.config.mjs +3 -3
- package/esm2022/form/text-area/text-area.module.mjs +4 -4
- package/esm2022/form/time-picker/time-picker.component.mjs +11 -42
- package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/fundamental-ngx.module.mjs +4 -4
- package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +6 -6
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +85 -90
- package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +21 -9
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +26 -9
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +40 -26
- package/esm2022/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.mjs +76 -0
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +28 -16
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +14 -5
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +5 -5
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +12 -21
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +10 -12
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +10 -11
- package/esm2022/icon-tab-bar/directives/icon-tab-bar-free-content.directive.mjs +14 -0
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +208 -27
- package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +19 -9
- package/esm2022/icon-tab-bar/index.mjs +3 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/esm2022/info-label/info-label.component.mjs +6 -4
- package/esm2022/info-label/info-label.module.mjs +4 -4
- package/esm2022/link/link.component.mjs +15 -23
- package/esm2022/link/link.module.mjs +4 -4
- package/esm2022/list/action-list-item/action-list-item.component.mjs +5 -5
- package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
- package/esm2022/list/base-list-item.mjs +20 -22
- package/esm2022/list/display-list-item/display-list-item.component.mjs +5 -5
- package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +5 -5
- package/esm2022/list/list-group-footer.component.mjs +5 -5
- package/esm2022/list/list-group-header.component.mjs +7 -7
- package/esm2022/list/list.component.mjs +25 -66
- package/esm2022/list/list.config.mjs +3 -3
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/load-more-content.directive.mjs +3 -3
- package/esm2022/list/object-list-item/object-list-item-row.component.mjs +6 -6
- package/esm2022/list/object-list-item/object-list-item.component.mjs +5 -5
- package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +5 -5
- package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
- package/esm2022/menu/menu-item.component.mjs +5 -5
- package/esm2022/menu/menu-trigger.directive.mjs +3 -3
- package/esm2022/menu/menu.component.mjs +5 -6
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/menu-button/menu-button.component.mjs +14 -9
- package/esm2022/menu-button/menu-button.module.mjs +4 -4
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +11 -14
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +4 -4
- package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +3 -3
- package/esm2022/message-popover/message-popover.component.mjs +53 -54
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
- package/esm2022/object-marker/object-marker.component.mjs +10 -5
- package/esm2022/object-marker/object-marker.module.mjs +4 -4
- package/esm2022/object-status/object-status.component.mjs +13 -8
- package/esm2022/object-status/object-status.module.mjs +4 -4
- package/esm2022/page-footer/page-footer.component.mjs +8 -10
- package/esm2022/page-footer/page-footer.module.mjs +4 -4
- package/esm2022/panel/panel-actions.component.mjs +3 -3
- package/esm2022/panel/panel-content/panel-content.component.mjs +3 -3
- package/esm2022/panel/panel.component.mjs +8 -9
- package/esm2022/panel/panel.config.mjs +3 -3
- package/esm2022/panel/panel.module.mjs +4 -4
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +12 -22
- package/esm2022/search-field/search-field.component.mjs +36 -42
- package/esm2022/search-field/search-field.module.mjs +4 -4
- package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -6
- package/esm2022/settings-generator/default-config.mjs +2 -2
- package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +3 -3
- package/esm2022/settings-generator/models/settings.model.mjs +1 -1
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +34 -28
- package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +4 -5
- package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
- package/esm2022/settings-generator/settings-generator.component.mjs +6 -6
- package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
- package/esm2022/settings-generator/settings-generator.service.mjs +12 -13
- package/esm2022/shared/base.mjs +30 -18
- package/esm2022/shared/form/base.input.mjs +70 -69
- package/esm2022/shared/form/collection-base.input.mjs +7 -49
- package/esm2022/shared/form/inline-layout-collection-base.input.mjs +25 -66
- package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
- package/esm2022/shared/pipes/pipe.module.mjs +4 -4
- package/esm2022/shared/platform.config.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +11 -43
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +11 -14
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +8 -16
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -6
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +13 -18
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +22 -47
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +12 -10
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +3 -3
- package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +73 -57
- package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +3 -3
- package/esm2022/split-menu-button/split-menu-button.component.mjs +17 -24
- package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
- package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
- package/esm2022/table/components/reset-button/reset-button.component.mjs +8 -9
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +10 -9
- package/esm2022/table/components/table-column/table-column.component.mjs +3 -3
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +11 -14
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +4 -4
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +6 -10
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +31 -15
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +19 -24
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +9 -11
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +4 -4
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +8 -11
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +8 -11
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +11 -14
- package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -8
- package/esm2022/table/components/table-row/table-row.component.mjs +12 -17
- package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +38 -23
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +4 -4
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +4 -4
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +8 -11
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +9 -12
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +9 -12
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +3 -3
- package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +138 -62
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +20 -23
- package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-cell.directive.mjs +12 -12
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +10 -9
- package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-header.directive.mjs +6 -6
- package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +5 -5
- package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +3 -3
- package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
- package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
- package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +22 -20
- package/esm2022/table-helpers/services/table-responsive.service.mjs +9 -14
- package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
- package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
- package/esm2022/table-helpers/services/table.service.mjs +23 -21
- package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
- package/esm2022/table-helpers/table.mjs +1 -1
- package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +3 -3
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -4
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +28 -8
- package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +9 -5
- package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +3 -3
- package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
- package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
- package/esm2022/value-help-dialog/index.mjs +3 -1
- package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
- package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +59 -32
- package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
- package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +4 -4
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -6
- package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
- package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +3 -3
- package/esm2022/variant-management/variant-management.component.mjs +47 -13
- package/esm2022/variant-management/variant-management.module.mjs +4 -4
- package/esm2022/wizard-generator/base-wizard-generator.mjs +21 -28
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +19 -19
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +12 -18
- package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +7 -12
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +11 -10
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -4
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
- package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
- package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +3 -3
- package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
- package/esm2022/wizard-generator/wizard-generator.service.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +42 -44
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +16 -17
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +88 -130
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -9
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +853 -1636
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +532 -220
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-info-label.mjs +9 -7
- package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +18 -26
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +104 -143
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +16 -11
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +16 -16
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +71 -74
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +13 -8
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +16 -11
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +10 -12
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -20
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +49 -77
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +75 -72
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +162 -218
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-slider.mjs +12 -44
- package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +144 -162
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +20 -27
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +143 -148
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +366 -291
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +144 -53
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +63 -30
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +82 -98
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform.mjs +4 -4
- package/form/checkbox/checkbox.component.d.ts +4 -6
- package/form/checkbox-group/checkbox-group.component.d.ts +3 -8
- package/form/combobox/combobox/combobox.component.d.ts +4 -12
- package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +5 -8
- package/form/combobox/commons/base-combobox.d.ts +4 -9
- package/form/date-picker/date-picker.component.d.ts +8 -11
- package/form/datetime-picker/datetime-picker.component.d.ts +9 -11
- package/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.d.ts +0 -2
- package/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.d.ts +0 -2
- package/form/form-generator/form-generator/form-generator.component.d.ts +3 -1
- package/form/form-generator/form-generator.service.d.ts +3 -7
- package/form/form-generator/interfaces/dynamic-form-item.d.ts +5 -5
- package/form/form-group/form-field/form-field.component.d.ts +16 -20
- package/form/form-group/form-group.component.d.ts +36 -35
- package/form/input/input.component.d.ts +3 -6
- package/form/input-group/addon-body.component.d.ts +0 -1
- package/form/input-group/input-group.component.d.ts +4 -5
- package/form/multi-combobox/commons/base-multi-combobox.d.ts +13 -16
- package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +4 -12
- package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +6 -9
- package/form/multi-combobox/multi-combobox.interface.d.ts +3 -3
- package/form/multi-input/base-multi-input.d.ts +10 -15
- package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +5 -8
- package/form/multi-input/multi-input.component.d.ts +7 -37
- package/form/radio-group/radio/radio.component.d.ts +4 -5
- package/form/radio-group/radio-group.component.d.ts +7 -11
- package/form/select/commons/base-select.d.ts +11 -18
- package/form/select/select/select.component.d.ts +2 -15
- package/form/step-input/base.step-input.d.ts +13 -14
- package/form/step-input/number/number-step-input.component.d.ts +2 -7
- package/form/step-input/step-input-action-button.d.ts +4 -7
- package/form/step-input/step-input-decrement.directive.d.ts +2 -5
- package/form/step-input/step-input-increment.directive.d.ts +2 -5
- package/form/switch/switch/switch.component.d.ts +5 -8
- package/form/text-area/text-area.component.d.ts +4 -5
- package/form/time-picker/time-picker.component.d.ts +4 -5
- package/fundamental-ngx-platform-v0.48.0.tgz +0 -0
- package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +19 -20
- package/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.d.ts +2 -0
- package/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.d.ts +45 -0
- package/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.d.ts +1 -3
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.d.ts +5 -8
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.d.ts +1 -1
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.d.ts +1 -1
- package/icon-tab-bar/directives/icon-tab-bar-free-content.directive.d.ts +5 -0
- package/icon-tab-bar/icon-tab-bar.component.d.ts +82 -8
- package/icon-tab-bar/icon-tab-bar.module.d.ts +7 -1
- package/icon-tab-bar/index.d.ts +2 -0
- package/icon-tab-bar/interfaces/tab-config.interface.d.ts +13 -5
- package/info-label/info-label.component.d.ts +2 -2
- package/link/link.component.d.ts +4 -7
- package/list/base-list-item.d.ts +4 -6
- package/list/list.component.d.ts +6 -15
- package/menu-button/menu-button.component.d.ts +7 -4
- package/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.d.ts +2 -4
- package/message-popover/message-popover.component.d.ts +13 -20
- package/message-popover/models/message-popover-wrapper.interface.d.ts +2 -2
- package/object-marker/object-marker.component.d.ts +4 -1
- package/object-status/object-status.component.d.ts +4 -1
- package/package.json +4 -4
- package/page-footer/page-footer.component.d.ts +2 -4
- package/panel/panel.component.d.ts +2 -3
- package/search-field/search-field-mobile/search-field/search-field-mobile.component.d.ts +7 -10
- package/search-field/search-field.component.d.ts +10 -19
- package/settings-generator/models/settings.model.d.ts +7 -6
- package/settings-generator/settings-generator-content/settings-generator-content.component.d.ts +31 -12
- package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +0 -2
- package/settings-generator/settings-generator.component.d.ts +3 -3
- package/settings-generator/settings-generator.service.d.ts +1 -1
- package/shared/base.d.ts +11 -4
- package/shared/form/base.input.d.ts +24 -16
- package/shared/form/collection-base.input.d.ts +1 -9
- package/shared/form/inline-layout-collection-base.input.d.ts +5 -12
- package/slider/slider.component.d.ts +3 -6
- package/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.d.ts +3 -5
- package/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.d.ts +0 -5
- package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +4 -8
- package/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.d.ts +8 -17
- package/smart-filter-bar/directives/smart-filter-bar-subject.directive.d.ts +2 -0
- package/smart-filter-bar/smart-filter-bar.component.d.ts +28 -22
- package/split-menu-button/split-menu-button.component.d.ts +11 -14
- package/table/components/reset-button/reset-button.component.d.ts +2 -3
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +4 -3
- package/table/components/table-column-resizer/table-column-resizer.component.d.ts +4 -5
- package/table/components/table-group-row/table-group-row.component.d.ts +2 -5
- package/table/components/table-header-cell-content/table-header-cell-content.component.d.ts +11 -6
- package/table/components/table-header-row/table-header-row.component.d.ts +1 -3
- package/table/components/table-p13-dialog/columns/columns.component.d.ts +2 -4
- package/table/components/table-p13-dialog/filtering/filtering.component.d.ts +1 -4
- package/table/components/table-p13-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-p13-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/components/table-row/table-row.component.d.ts +2 -2
- package/table/components/table-toolbar/table-toolbar.component.d.ts +24 -8
- package/table/components/table-view-settings-dialog/filtering/filters.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/table.component.d.ts +29 -19
- package/table-helpers/directives/table-cell-header-popover.directive.d.ts +2 -3
- package/table-helpers/directives/table-cell-resizable.directive.d.ts +1 -3
- package/table-helpers/directives/table-data-source.directive.d.ts +1 -1
- package/table-helpers/services/table-column-resize.service.d.ts +4 -2
- package/table-helpers/services/table-responsive.service.d.ts +3 -5
- package/table-helpers/services/table.service.d.ts +12 -10
- package/table-helpers/table.d.ts +1 -0
- package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
- package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
- package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
- package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
- package/value-help-dialog/index.d.ts +2 -0
- package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
- package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +14 -7
- package/variant-management/variant-management.component.d.ts +19 -6
- package/wizard-generator/base-wizard-generator.d.ts +9 -12
- package/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.d.ts +2 -3
- package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +3 -7
- package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -4
- package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
- package/dynamic-page/dynamic-page.service.d.ts +0 -35
- package/esm2022/dynamic-page/dynamic-page.service.mjs +0 -58
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +0 -16
- package/fundamental-ngx-platform-v0.48.0-rc.8.tgz +0 -0
- package/search-field/search-field-mobile/search-field-mobile.module.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-list.mjs","sources":["../../../../libs/platform/list/fdpListComponent.token.ts","../../../../libs/platform/list/list.config.ts","../../../../libs/platform/list/base-list-item.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.html","../../../../libs/platform/list/action-list-item/action-list-item.module.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.html","../../../../libs/platform/list/display-list-item/display-list-item.module.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.html","../../../../libs/platform/list/list-group-footer.component.ts","../../../../libs/platform/list/list-group-header.component.ts","../../../../libs/platform/list/load-more-content.directive.ts","../../../../libs/platform/list/list.component.ts","../../../../libs/platform/list/list.component.html","../../../../libs/platform/list/object-list-item/object-list-item-row.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.html","../../../../libs/platform/list/object-list-item/object-list-item.module.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.html","../../../../libs/platform/list/standard-list-item/standard-list-item.module.ts","../../../../libs/platform/list/list.module.ts","../../../../libs/platform/list/fundamental-ngx-platform-list.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FdpListComponent = new InjectionToken('List Component');\n","import { Injectable } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { DataProvider } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform List\n */\n@Injectable({ providedIn: 'root' })\nexport class ListConfig {\n /**\n * Content Density of element. 'cozy' | 'compact'\n */\n contentDensity: ContentDensity = 'cozy';\n\n /**\n * Maps data providers\n */\n providers: Map<string, DataProvider<any>> | null = new Map();\n\n /**\n * Create Provider factory function\n */\n static createProviderFactory(obj: Partial<ListConfig>): () => ListConfig {\n const useFactory = (): ListConfig => Object.assign(new ListConfig(), obj);\n return useFactory;\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ColorAccent, KeyUtil, Nullable, Size } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LIST_UNREAD_INDICATOR, ListUnreadIndicator } from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { BaseComponent, isPresent } from '@fundamental-ngx/platform/shared';\nimport { merge } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { ListConfig } from './list.config';\nimport { FdpList, ListType, SelectionType } from './models/list';\n\nexport const IS_ACTIVE_CLASS = 'is-active';\nlet nextListItemId = 0;\nexport type StatusType = 'negative' | 'critical' | 'positive' | 'informative';\n\nexport class ListIconConfig {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n glyph: IconComponent['glyph'];\n /** user's custom classes */\n class: IconComponent['class'] = '';\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n font: IconComponent['font'] = 'SAP-icons';\n /** Aria-label for Icon. */\n ariaLabel: IconComponent['ariaLabel'];\n}\n\nexport class ListAvatarConfig {\n /** @hidden */\n class = '';\n /** @hidden */\n ariaLabel: Nullable<string> = null;\n /** @hidden */\n ariaLabelledby: Nullable<string> = null;\n /** @hidden */\n label: Nullable<string> = null;\n /** @hidden */\n size: Size = 's';\n /** @hidden */\n glyph: Nullable<string> = null;\n /** @hidden */\n zoomGlyph: Nullable<string> = null;\n /** @hidden */\n circle = false;\n /** @hidden */\n transparent = false;\n /** @hidden */\n contain = false;\n /** @hidden */\n placeholder = false;\n /** @hidden */\n tile = false;\n /** @hidden */\n border = false;\n /** @hidden */\n colorAccent: Nullable<ColorAccent> = null;\n /** @hidden */\n random = false;\n /** @hidden */\n clickable = false;\n /** @hidden */\n image: Nullable<string> = null;\n /** @hidden */\n alterIcon: Nullable<string> = null;\n /** @hidden */\n backupImage: Nullable<string> = null;\n}\n\n/**\n * Base interface for a list variant definition.\n * Captures a list item template definition.\n */\nexport interface ItemDef {\n templateRef: TemplateRef<any>;\n}\n\nexport interface ListAdvancedDescription {\n text: string;\n ariaLabel?: string;\n title?: string;\n}\n\nexport type ListDescription = string | ListAdvancedDescription;\n\nexport enum LIST_ITEM_TYPE {\n ITEM = 'item',\n GROUP = 'group',\n FOOTER = 'footer',\n HEADER = 'header'\n}\n\nexport class ModifyItemEvent {\n /** List Item component */\n source: BaseListItem;\n /** Action */\n action: 'delete' | 'edit';\n}\n\n@Directive({\n selector: '[fdpItemDef]',\n standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ListItemDef implements ItemDef {\n /** @hidden */\n constructor(/** @docs-private */ public templateRef: TemplateRef<any>) {}\n}\n\n/**\n * This class contains common properties used across list Item components.\n * this can be extended to reduce the code duplication across list Item components.\n */\n@Directive()\nexport class BaseListItem extends BaseComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n /** define label for screen reader */\n @Input()\n ariaLabelledBy: string;\n\n /** define level of item for screen reader */\n @Input()\n ariaLevel: number;\n\n /** define position of item for screen reader */\n @Input()\n ariaPosinset: number;\n\n /** Avatar component properties. @see AvatarComponent for more details */\n @Input()\n set avatar(value: Nullable<Partial<ListAvatarConfig> | string>) {\n if (!value) {\n return;\n }\n value = typeof value === 'string' ? { image: value } : value;\n this._avatarConfig = merge(new ListAvatarConfig(), value);\n }\n\n get avatar(): ListAvatarConfig {\n return this._avatarConfig;\n }\n\n /** attribute to hold counter value */\n @Input()\n counter?: string;\n\n /** Description of the title */\n @Input()\n description: Nullable<ListDescription>;\n\n /** To invert the status of secondary text */\n @Input()\n inverted = false;\n\n /** Whether there is no data inside list item */\n @Input()\n noDataText: string;\n\n /**\n * The type of the secondary text.fd-list__byline-right--*\n * Can be one of *positive*, *negative*, *informative*, *critical*, *neutral\n */\n @Input()\n statusType?: StatusType;\n\n /** attribute to hold secondary text*/\n @Input()\n secondary: Nullable<ListDescription>;\n\n /**\n * Enabling this flag causes forcing secondary item directive to not wrap text,\n * instead of wrapping there will be text truncation\n */\n @Input()\n secondaryWrap?: boolean;\n\n /** Tooltip text to show when focused for more than timeout value*/\n @Input()\n title?: string;\n\n /** Used for placeing navigation Link */\n @Input()\n link: Nullable<string>;\n\n /**\n * Enabling this flag causes forcing title directive to not wrap text,\n * instead of wrapping there will be text truncation\n */\n @Input()\n titleWrap?: boolean;\n\n /**\n * List item icon configuration.\n */\n @Input()\n set icon(value: Partial<ListIconConfig>) {\n this._iconConfig = merge(new ListIconConfig(), value);\n }\n\n get icon(): ListIconConfig {\n return this._iconConfig;\n }\n\n /**\n * sets the list item in bold text\n * which respresents unread data\n */\n @Input()\n unRead: boolean;\n\n /**\n * Whether to display unread notification circle.\n */\n get displayUnreadNotification(): boolean {\n return !!this._list?.unreadIndicator;\n }\n\n /** radio button value */\n @Input()\n value: string;\n\n /** By default selection mode is 'none' */\n @Input()\n set selectionMode(value: SelectionType) {\n this._selectionMode = value;\n this._setAttrRole();\n }\n\n get selectionMode(): SelectionType {\n return this._selectionMode;\n }\n\n /** By default selection mode is 'active' */\n @Input()\n listType: ListType = 'active';\n\n /**\n * Whether Navigation mode is included to list component\n * for all the items\n */\n @Input()\n navigated = false;\n\n /**\n * Whether Navigation mode is included to list component\n * only a subset of the list items are navigable\n * you should indicate those by displaying a navigation arrow\n */\n @Input()\n navigationIndicator = false;\n\n /** role */\n @Input()\n role: Nullable<string>;\n\n /**\n * event emitter for selected item\n * seprate PR for custom event\n */\n @Output()\n itemSelected = new EventEmitter<ModifyItemEvent>();\n\n /**\n * Event emitted for selected item through the checkbox.\n */\n @Output()\n itemCheckboxSelected = new EventEmitter<ModifyItemEvent>();\n\n /** Event sent when delete, details or any other action buttons are clicked */\n @Output()\n buttonClicked = new EventEmitter<ModifyItemEvent>();\n\n /** @hidden */\n @ViewChild('listItem', { read: ElementRef })\n listItem: ElementRef<HTMLLIElement>;\n\n /** Access child element, for checking link content*/\n @ViewChild('linkElement', { read: ElementRef })\n anchor: ElementRef<HTMLLinkElement>;\n\n /** Access edit button*/\n @ViewChild('edit', { read: ElementRef })\n edit: ElementRef<HTMLButtonElement>;\n\n /** Access delete button*/\n @ViewChild('delete', { read: ElementRef })\n delete: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild(CheckboxComponent)\n checkboxComponent: CheckboxComponent;\n\n /** @hidden */\n @ViewChild(RadioButtonComponent)\n radioButtonComponent: RadioButtonComponent;\n\n /** @hidden */\n _type: LIST_ITEM_TYPE = LIST_ITEM_TYPE.ITEM;\n\n /**\n * @hidden\n * Whether By line mode is included to list component, by which\n * list item will accomdate the data in 2 column\n */\n _hasByLine = false;\n\n /**\n * @hidden\n * Whether listitem has row level selection enabled\n */\n set rowSelection(value: boolean) {\n this._rowSelection = value;\n this._setAttrRole();\n }\n\n get rowSelection(): boolean {\n return this._rowSelection;\n }\n\n /**\n * @hidden\n * Whether listitem is selected binded to template\n */\n _selected = false;\n\n /** @hidden */\n get _selectedAttr(): boolean | null {\n return !this.rowSelection && this.selectionMode === 'none' ? null : this._selected;\n }\n\n /**\n * @hidden\n * get the focused element for key manager\n */\n _focused: boolean;\n\n /** @hidden */\n get _listItemRole(): string {\n return this.role || this._defaultRole;\n }\n\n /** @hidden */\n ariaSetSize: Observable<number>;\n\n /** @hidden */\n private _rowSelection = false;\n\n /** @hidden */\n private _defaultRole = 'listitem';\n\n /** @hidden */\n private _listComponent = inject<FdpList>(FdpListComponent);\n\n /** @hidden */\n private _avatarConfig: ListAvatarConfig = new ListAvatarConfig();\n\n /** @hidden */\n private _iconConfig: ListIconConfig = new ListIconConfig();\n\n /**\n * @hidden\n * radio button selected value binded to template\n */\n private _selectionValue: Nullable<string>;\n\n /** @hidden */\n private _selectionMode: SelectionType = 'none';\n\n /** @hidden */\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n public itemEl: ElementRef<HTMLElement>,\n protected _listConfig: ListConfig,\n @Optional() @Inject(FD_LIST_UNREAD_INDICATOR) private readonly _list: ListUnreadIndicator\n ) {\n super(_changeDetectorRef);\n }\n\n /** Selection value */\n @Input()\n set selectionValue(value: Nullable<string>) {\n this._selected = false;\n this._selectionValue = value;\n if (this._selectionValue !== undefined && this.selectionValue !== null) {\n this._selected = this.value === this._selectionValue;\n }\n }\n get selectionValue(): Nullable<string> {\n return this._selectionValue;\n }\n\n /**\n * @hidden\n * On item click event will be emitted\n */\n @HostListener('click')\n _onItemClick(): void {\n if (this.rowSelection && this.selectionMode === 'multi') {\n this._selected = !this._selected;\n }\n\n const event = new ModifyItemEvent();\n event.source = this;\n this._focused = !this._focused;\n this.itemSelected.emit(event);\n this._cd.markForCheck();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _handleKeyboardEvent(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n if (this.checkboxComponent || this.radioButtonComponent) {\n this._onKeyboardClick(event);\n }\n\n this.anchor?.nativeElement.click();\n\n if (this.rowSelection) {\n this._selected = !this._selected;\n }\n\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n this._cd.markForCheck();\n }\n\n /**\n * @hidden\n * Handler for mouse events\n */\n @HostListener('click', ['$event'])\n _onClick(event: MouseEvent): void {\n if (this.checkboxComponent && !this.anchor) {\n if (!this.checkboxComponent.elementRef.nativeElement.contains(event.target as Node)) {\n // clicking on the checkbox is not suppressed\n // so we should only process clicks if clicked on the list-item, not checkbox itself\n this.checkboxComponent.nextValue();\n }\n\n this.radioButtonComponent?.valueChange(event);\n }\n\n this._cd.markForCheck();\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n }\n\n /**\n * @hidden\n * helps to avoid multi rows active class with navigation\n */\n @HostListener('focusout', ['$event'])\n _onBlur(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && !KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * Show navigation for single list\n */\n ngOnInit(): void {\n this.id = `fdp-list-item-${nextListItemId++}`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.itemSelected.complete();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listComponent._setupListItem(this);\n }\n\n /**\n * @hidden\n * To detect changes from parent-listbox to list item\n * for example single, multi option selection those details\n * will be deducted in list item\n */\n ngAfterViewChecked(): void {\n const currentItem: Nullable<HTMLLIElement> = this.itemEl.nativeElement.querySelector('li');\n if (!currentItem) {\n return;\n }\n\n const parentNode = currentItem.parentNode instanceof HTMLElement && currentItem.parentNode;\n if (parentNode) {\n parentNode.removeAttribute('title');\n parentNode.removeAttribute('aria-label');\n }\n this._cd.detectChanges();\n }\n\n /**\n * @hidden\n * Created focus on list item on mouseclick,\n * Up,down arrow press\n */\n focus(): void {\n this.listItem.nativeElement.focus();\n }\n\n /**\n * Programmatically set selected state of the list item.\n * @param selected Whether the list item is selected\n */\n setSelected(selected: boolean): void {\n if (selected === this._selected) {\n return;\n }\n const event = new ModifyItemEvent();\n event.source = this;\n this._selected = selected;\n this._cd.detectChanges();\n }\n\n /**\n * @hidden\n * on keydown append active styles on actionable item\n */\n _onKeyDown(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.add(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * on keyup remove active styles from actionable item\n */\n _onKeyUp(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n }\n }\n\n /** @hidden */\n _onCheckboxModelChange(): void {\n const event = new ModifyItemEvent();\n event.source = this;\n this.itemCheckboxSelected.emit(event);\n }\n\n /**\n * @hidden\n * Handles action button click\n */\n _onActionButtonClick(action: 'delete' | 'edit'): void {\n const event = new ModifyItemEvent();\n event.source = this;\n event.action = action;\n this.buttonClicked.emit(event);\n }\n\n /**\n * @hidden\n * Handles action button click on key press\n */\n _onKeyButtonClick(event: KeyboardEvent, action: 'delete' | 'edit'): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this._onActionButtonClick(action);\n }\n }\n\n /** @hidden */\n _isAdvancedText(text: ListDescription): text is ListAdvancedDescription {\n return typeof text !== 'string' && !!text.text;\n }\n\n /** @hidden */\n private _onKeyboardClick(event: KeyboardEvent): void {\n this.checkboxComponent?.nextValue();\n this.radioButtonComponent?.valueChange(event);\n\n this._cd.markForCheck();\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n }\n\n /** @hidden */\n private _setAttrRole(): void {\n this._defaultRole =\n this.rowSelection || this.selectionMode === 'single' || this.selectionMode === 'multi'\n ? 'option'\n : 'listitem';\n this._cd.markForCheck();\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Output,\n ViewChild,\n forwardRef\n} from '@angular/core';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem, IS_ACTIVE_CLASS } from '../base-list-item';\n\nexport class ActionChangeEvent {\n /** Action List Item component */\n source: ActionListItemComponent;\n}\n\n@Component({\n selector: 'fdp-action-list-item',\n templateUrl: './action-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ActionListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListItemComponent, AsyncPipe]\n})\nexport class ActionListItemComponent extends BaseListItem {\n /** Access button element*/\n @ViewChild('action', { read: ElementRef })\n button: ElementRef<HTMLButtonElement>;\n\n /** Event sent when action in clicked */\n @Output()\n actionClicked = new EventEmitter<ActionChangeEvent>();\n\n /**\n * @hidden\n * Handles action click\n */\n _onActionClick(): void {\n const event = new ActionChangeEvent();\n event.source = this;\n this.actionClicked.emit(event);\n }\n\n /**\n * @hidden\n * on keydown append active styles on actionable item\n */\n _onKeyDown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.button.nativeElement.classList.add(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * on keyup remove active styles from actionable item\n */\n _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.button.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n this._onActionClick();\n }\n }\n}\n","<li\n #listItem\n fd-list-item\n class=\"fd-list__item--action\"\n [attr.id]=\"id\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n>\n <button #action class=\"fd-list__title\" [attr.aria-label]=\"title\" [attr.title]=\"title\" (click)=\"_onActionClick()\">\n {{ title }}\n </button>\n</li>\n","import { NgModule } from '@angular/core';\n\nimport { ActionListItemComponent } from './action-list-item.component';\n\n@NgModule({\n imports: [ActionListItemComponent],\n exports: [ActionListItemComponent]\n})\nexport class ActionListItemModule {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport {\n ListItemComponent,\n ListLinkDirective,\n ListSecondaryDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-display-list-item',\n templateUrl: './display-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => DisplayListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n ListLinkDirective,\n RouterLink,\n NgTemplateOutlet,\n ListTitleDirective,\n NgClass,\n ListSecondaryDirective,\n AsyncPipe\n ]\n})\nexport class DisplayListItemComponent extends BaseListItem {}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n </a>\n </li>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n </li>\n}\n<ng-template #commonTemplate>\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">{{ title }}</span>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { DisplayListItemComponent } from './display-list-item.component';\n\n@NgModule({\n imports: [DisplayListItemComponent],\n exports: [DisplayListItemComponent]\n})\nexport class DisplayListItemModule {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-free-content-list-item',\n templateUrl: './free-content-list-item.component.html',\n styleUrl: './free-content-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => FreeContentListItemComponent) }],\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListItemComponent, AsyncPipe]\n})\nexport class FreeContentListItemComponent extends BaseListItem {}\n","<li\n #listItem\n [class.fd-list__item--unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (click)=\"_onItemClick()\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n>\n <ng-content></ng-content>\n</li>\n","import { Component } from '@angular/core';\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\nimport { LIST_ITEM_TYPE } from './base-list-item';\n\n@Component({\n selector: 'fdp-list-footer',\n template: `<li #listFooter class=\"fd-list__footer\" [attr.id]=\"id\" role=\"option\"><ng-content></ng-content></li>`,\n standalone: true,\n host: {\n role: 'none'\n }\n})\nexport class ListFooterComponent extends BaseComponent {\n /** @hidden */\n _type = LIST_ITEM_TYPE.FOOTER;\n}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { ListGroupHeaderDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { BaseListItem, LIST_ITEM_TYPE } from './base-list-item';\n\nlet nextListGrpHeaderId = 0;\n\n@Component({\n selector: 'fdp-list-group-header',\n template: ` <li\n #listItem\n fd-list-group-header\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.id]=\"id\"\n role=\"group\"\n [tabindex]=\"0\"\n >\n <span fd-list-title>{{ groupHeaderTitle }}</span>\n <ng-content></ng-content>\n </li>`,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ListGroupHeaderComponent) }],\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListGroupHeaderDirective, ListTitleDirective]\n})\nexport class ListGroupHeaderComponent extends BaseListItem implements OnInit {\n /** Displays list group header title */\n @Input()\n groupHeaderTitle?: string;\n\n /** @hidden */\n _type = LIST_ITEM_TYPE.HEADER;\n\n /**\n * @hidden\n * Initialization of the list header component\n */\n ngOnInit(): void {\n this.id = `fdp-list-${nextListGrpHeaderId++}`;\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[fdpListLoadMoreContent]',\n standalone: true\n})\nexport class LoadMoreContentDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<LoadMoreContentContext>) {}\n}\n\ninterface _LoadMoreContentContext {\n loadTitle: string;\n loading: boolean;\n loadingLabel: Observable<string>;\n lastChunk: {\n start: number;\n end: number;\n };\n total: number;\n}\n\nexport interface LoadMoreContentContext extends _LoadMoreContentContext {\n $implicit: _LoadMoreContentContext;\n}\n","import { FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, ENTER, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n asyncScheduler,\n filter,\n firstValueFrom,\n isObservable,\n map,\n observeOn,\n of,\n startWith,\n switchMap\n} from 'rxjs';\nimport { delay, takeUntil, tap } from 'rxjs/operators';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { KeyUtil, Nullable, RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';\nimport { InfiniteScrollDirective } from '@fundamental-ngx/core/infinite-scroll';\nimport {\n ListComponent as CoreListComponent,\n FD_LIST_UNREAD_INDICATOR,\n ListItemComponent,\n ListUnreadIndicator\n} from '@fundamental-ngx/core/list';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FD_LANGUAGE, FdLanguage, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport {\n ArrayListDataSource,\n CollectionBaseInput,\n ListDataSource,\n ObservableListDataSource,\n PlatformFormField,\n PlatformFormFieldControl,\n isBlank,\n isDataSource,\n isPresent\n} from '@fundamental-ngx/platform/shared';\nimport { BaseListItem, LIST_ITEM_TYPE, ListItemDef } from './base-list-item';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { ListConfig } from './list.config';\nimport { LoadMoreContentContext, LoadMoreContentDirective } from './load-more-content.directive';\nimport { FdpList, FdpListDataSource, ListType, SelectionType } from './models/list';\n\nexport class SelectionChangeEvent {\n /** Selected items */\n selectedItems: BaseListItem[];\n /** Index */\n index: number;\n}\n\nlet nextListId = 0;\n\n/**\n * The List component represents a container for list item types.\n * It is used to display a list features.\n */\n@Component({\n selector: 'fdp-list',\n templateUrl: './list.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrl: './list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: FD_FORM_FIELD_CONTROL, useExisting: ListComponent, multi: true },\n { provide: FdpListComponent, useExisting: ListComponent },\n {\n provide: FD_LIST_UNREAD_INDICATOR,\n useExisting: ListComponent\n }\n ],\n host: {\n '[attr.tabindex]': '-1'\n },\n standalone: true,\n imports: [\n CoreListComponent,\n BusyIndicatorComponent,\n InfiniteScrollDirective,\n ListItemComponent,\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class ListComponent<T>\n extends CollectionBaseInput\n implements ListUnreadIndicator, OnInit, AfterViewInit, OnDestroy, FdpList<BaseListItem>\n{\n /** An array that holds a list of all selected items. **/\n @Input()\n selectedItems: BaseListItem[];\n\n /** define size of items for screen reader. */\n @Input()\n ariaSetsize: number;\n\n /** Defines whether items are multiselectable for screen reader. */\n @Input()\n ariaMultiselectable: boolean;\n\n /** Title used on button when data loads on button click. */\n @Input()\n loadTitle: string;\n\n /** Label used on announce message of data was loaded for screen readers. */\n @Input()\n loadingLabel = '';\n\n /** Wait time for new items. */\n @Input()\n delayTime: number;\n\n /** Items to be loaded at once. Intinity (no limit) by default. */\n @Input()\n itemSize = Infinity;\n\n /** Enables lazy loadMore of data. */\n @Input()\n loadMore: boolean;\n\n /**\n * Enables data load on scroll for true\n * false: enables data loading on button click.\n */\n @Input()\n loadOnScroll: boolean;\n\n /** define the role to custom requirement. */\n @Input()\n role = 'list';\n\n /** ListType 'inactive' | 'active' | 'navigation' | 'detail' */\n @Input()\n listType: ListType = 'active';\n\n /** Max height for viewport to display scroll. */\n @Input()\n maxHeight: string;\n\n /** Whether list component has removed borders. */\n @Input()\n noBorder = false;\n\n /** Scroll offset percentage to trigger scroll event. */\n @Input()\n scrollOffsetPercentage: number;\n\n /** Eenables selection styles. */\n @Input()\n selection = false;\n\n /**\n * The type of the selection. Types include:\n * 'none'| 'multi' | 'single'|'delete'.\n * Leave empty for default ().'\n * Default value is set to 'none'.\n */\n @Input()\n selectionMode: SelectionType = 'none';\n\n /** setter and getter for radio button and checkbox. */\n @Input()\n set value(value: any) {\n super.setValue(value);\n }\n\n get value(): any {\n return super.getValue();\n }\n\n /** setter and getter for row level Selection. */\n @Input()\n set rowSelection(value: boolean) {\n this._rowSelection = value;\n if (this._rowSelection) {\n this.selection = true;\n this._ulElement?.classList.add('fd-list--selection-row');\n if (this.navigated && this.hasObject) {\n this._ulElement?.classList.remove('fd-list--selection-row');\n }\n }\n }\n\n get rowSelection(): boolean {\n return this._rowSelection;\n }\n\n /** Datasource for suggestion list. */\n @Input()\n set dataSource(value: FdpListDataSource<T>) {\n if (value) {\n this._initializeDS(value);\n }\n }\n\n get dataSource(): FdpListDataSource<T> {\n return this._dataSource;\n }\n\n /** setter and getter for _navigated. */\n @Input()\n set navigated(value: boolean) {\n this._navigated = value;\n\n const classList = ['fd-list--navigation'];\n if (this.hasObject) {\n classList.push('fd-list--navigation-object');\n }\n\n this._ulElement?.classList.add(...classList);\n }\n\n get navigated(): boolean {\n return this._navigated;\n }\n\n /** setter and getter for _navigationIndicator. */\n @Input()\n set navigationIndicator(value: boolean) {\n this._navigationIndicator = value;\n this._ulElement?.classList.add('fd-list--navigation-indication');\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** setter and getter for hasByLine. */\n @Input()\n set hasByLine(value: boolean) {\n this._hasByLine = value;\n this._ulElement?.classList.add('fd-list--byline');\n }\n\n get hasByLine(): boolean {\n return this._hasByLine;\n }\n\n /** setter and getter for hasObject. */\n @Input()\n set hasObject(value: boolean) {\n this._hasObject = value;\n this._ulElement?.classList.add('fd-object-list');\n }\n\n get hasObject(): boolean {\n return this._hasObject;\n }\n\n /** Whether to display unread notification indicator. */\n @Input()\n unreadIndicator = false;\n\n /** Whether to intercept tab key navigation. */\n @Input()\n interceptTabKey = true;\n\n /** Event thrown, when selected item is changed */\n @Output()\n selectedItemChange: EventEmitter<SelectionChangeEvent> = new EventEmitter<SelectionChangeEvent>();\n\n /** Access child element, for checking link content */\n @ViewChild('link', { read: ElementRef })\n anchor: ElementRef<HTMLLinkElement>;\n\n /** @hidden */\n @ContentChild(forwardRef(() => ListItemDef))\n listItemDef: ListItemDef;\n\n /** Load More List item content */\n @ContentChild(LoadMoreContentDirective)\n loadMoreContent: LoadMoreContentDirective;\n\n /** Child items of the List. */\n @ContentChildren(forwardRef(() => BaseListItem), { descendants: true })\n listItems: QueryList<BaseListItem>;\n\n /** @hidden */\n get _ulElement(): Nullable<HTMLUListElement> {\n return this.elementRef.nativeElement.querySelector('ul');\n }\n\n /**\n * @hidden\n * To display loading symbol\n */\n _loading = false;\n\n /** @hidden\n * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown\n */\n _firstLoadingDone = false;\n\n /**\n * @hidden\n * keyManger to handle keybord events used in template\n */\n _keyManager: Nullable<FocusKeyManager<BaseListItem>>;\n\n /** @hidden */\n _items: T[] = [];\n\n /** @hidden */\n _destroyed = new Subject<void>();\n\n /** @hidden */\n _ariaSetSize: Observable<number> = new Observable();\n\n /** @hidden */\n protected _dataSource: ListDataSource<T>;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /**\n * @hidden\n * Whether Navigation mode is included to list component\n * for all the items\n */\n private _navigated: boolean;\n\n /**\n * @hidden\n * Whether By line is present in list item\n */\n private _hasByLine: boolean;\n\n /**\n * @hidden\n * Whether Navigation mode is included to list component\n * only a subset of the list items are navigable\n * you should indicate those by displaying a navigation arrow\n */\n private _navigationIndicator: boolean;\n\n /**\n * @hidden\n * Whether object present in list item\n */\n private _hasObject: boolean;\n\n /**\n * @hidden\n * Verfies partial navigation enabled\n */\n protected _partialNavigation = false;\n\n /**\n * @hidden\n * The model backing of the component.\n */\n private _selectionModel: SelectionModel<BaseListItem>;\n\n /**\n * @hidden\n * Whether list component has multiselection\n * binding in tempate to append class\n */\n private _multiSelect = false;\n\n /** @hidden */\n private _selectedvalue: Nullable<string>;\n\n /**\n * @hidden\n * Whether row level selection mode is enabled to list component\n * for all the items\n */\n private _rowSelection: boolean;\n\n /** @hidden To store */\n private _tempItems: T[] = [];\n\n /** @hidden */\n private _startIndex = 0;\n\n /** @hidden */\n private _lastIndex = this.itemSize;\n\n /** @hidden */\n private _dsItems: T[] = [];\n\n /**\n * @hidden\n * for data source handling\n */\n private _dsSubscription: Nullable<Subscription>;\n\n /** @hidden */\n private _language: FdLanguage;\n\n /** @hidden */\n private _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n protected _changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef,\n private _liveAnnouncer: LiveAnnouncer,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() @Self() public controlContainer: ControlContainer,\n @Optional() @Self() public ngForm: NgForm,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD) formField: PlatformFormField,\n @Optional() @SkipSelf() @Host() @Inject(FD_FORM_FIELD_CONTROL) formControl: PlatformFormFieldControl,\n protected _listConfig?: ListConfig\n ) {\n super(_changeDetectorRef, elementRef, ngControl, controlContainer, ngForm, formField, formControl);\n this._init();\n }\n\n /**\n * @hidden\n * on Update navgiation styles for non navigated items\n * event:any to avoid code duplication\n * seprate PR for custom event\n */\n @HostListener('click', ['$event'])\n _updateNavigation(event: Event): void {\n let selectedItemId: Nullable<string> = '0';\n const element: Nullable<HTMLElement> = event.target instanceof HTMLElement ? event.target : null;\n const parent = element?.closest('.fd-list__item');\n if (isPresent(parent)) {\n selectedItemId = parent?.getAttribute('id');\n }\n\n this.listItems.forEach((item, index) => {\n item.anchor?.nativeElement.classList.remove('is-navigated');\n\n if (item._focused) {\n this._keyManager?.updateActiveItem(index);\n }\n });\n\n const el = event.target instanceof HTMLElement && event.target;\n if (!el) {\n return;\n }\n\n const linkElement = el.querySelector('a');\n if (el.tagName.toLowerCase() === 'a') {\n el.classList.add('is-navigated');\n } else if (el.tagName.toLowerCase() === 'li' && !!linkElement) {\n linkElement.classList.add('is-navigated');\n }\n\n // TODO: selection management should be completely changed https://github.com/SAP/fundamental-ngx/issues/8008\n if (this.rowSelection) {\n this._handleRowSelect(selectedItemId);\n } else if (this.selectionMode === 'single') {\n this._handleSingleSelect(event, selectedItemId);\n } else if (this.selectionMode === 'multi') {\n this._handleMultiSelect(selectedItemId);\n }\n }\n\n /** Get context for load more button */\n getLoadMoreContentContext(): LoadMoreContentContext {\n const $implicit = {\n loadTitle: this.loadTitle,\n loading: this._loading,\n loadingLabel: (() => {\n if (this._loading) {\n return this._language$.pipe(\n map((language) => this._translationResolver.resolve(language, 'platformList.loadingAriaLabel'))\n );\n }\n return of(this.loadingLabel);\n })(),\n lastChunk: {\n start: this._startIndex,\n end: this._lastIndex\n },\n total: this._dsItems.length\n };\n return {\n $implicit,\n ...$implicit\n };\n }\n\n /**\n * @hidden\n * Initialization of the lis component with selection mode\n */\n ngOnInit(): void {\n this._setItems();\n\n this.stateChanges.next(this._items);\n this.id = `fdp-list-${nextListId++}`;\n\n // using selection Model for multiselect\n if (this.selectionMode === 'multi') {\n this._multiSelect = true;\n this.ariaMultiselectable = true;\n } else {\n this._multiSelect = false;\n }\n\n this._selectionModel = new SelectionModel<BaseListItem>(this._multiSelect, this.selectedItems);\n\n this._selectionModel.changed.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.selectedItems = this._selectionModel.selected;\n const event = new SelectionChangeEvent();\n event.selectedItems = this.selectedItems;\n this.stateChanges.next(event);\n this.selectedItemChange.emit(event);\n });\n }\n\n /**\n * @hidden\n * Keyboard manager on list items, set values when passed via array\n */\n ngAfterViewInit(): void {\n this._afterViewInit$.next(true);\n this._keyManager = new FocusKeyManager<BaseListItem>(this.listItems).withWrap();\n\n this._subscriptions.add(\n this.listItems.changes\n .pipe(startWith(this.listItems), observeOn(asyncScheduler))\n .subscribe(() => this._updateListItems())\n );\n\n const indicator = this.elementRef.nativeElement.querySelector('fd-busy-indicator');\n indicator?.setAttribute('aria-label', '');\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n }\n\n this._dsSubscription?.unsubscribe();\n\n this._keyManager?.destroy();\n }\n\n /**\n * @hidden\n * handline keyboard operations\n * in template on list and list items\n */\n _handleKeyDown(event: KeyboardEvent): Nullable<boolean> {\n if (!this._keyManager) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, TAB) && !this.interceptTabKey) {\n return;\n }\n\n event.stopImmediatePropagation();\n\n const activeItemIndex: Nullable<number> = this._keyManager.activeItemIndex;\n\n if (activeItemIndex) {\n this._setCurrentActiveItemIndex(activeItemIndex);\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) || KeyUtil.isKeyCode(event, UP_ARROW)) {\n return false;\n } else if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n this._updateNavigation(event);\n return false;\n }\n }\n\n /** @hidden */\n _setCurrentActiveItemIndex(activeItemIndex: number): void {\n this._keyManager?.setActiveItem(activeItemIndex);\n }\n\n /**\n * @hidden\n * binded in template on scroll\n */\n _scrollHandler(): void {\n if (!this._loading && this.loadOnScroll) {\n this._getMoreData();\n }\n }\n\n /**\n * @hidden\n * load more on enter or space press\n */\n _loadOnKeyPress(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this._getMoreData();\n }\n }\n\n /**\n * @hidden\n * Handles lazy loading data\n * used in template\n * onscroll and on more button click\n */\n _getMoreData(): void {\n this._loading = true;\n of(this._loadNewItems())\n .pipe(\n tap(async (data) => {\n if (isBlank(data)) {\n console.error('===Invalid Response received===');\n }\n this.loadingLabel = this._translationResolver.resolve(\n this._language,\n 'platformList.loadingAriaLabel'\n );\n await this._liveAnnouncer.announce(this.loadingLabel, 'assertive');\n }),\n delay(this.delayTime),\n takeUntil(this._destroyed)\n )\n .subscribe((result) => {\n if (isPresent(result)) {\n for (let i = this._items.length, j = 0; j < result.length; ++i, ++j) {\n this._items[i] = result[j];\n }\n }\n this._loading = false;\n this.stateChanges.next(this._items);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * @hidden\n * used in tempate to get Selected items from a list\n * event:any to avoid code duplication\n */\n _onSelectionChanged(event: Event): void {\n this._updateNavigation(event);\n }\n\n /** @hidden */\n _setupListItem(item: BaseListItem): void {\n item.selectionMode = this.selectionMode;\n item.rowSelection = this.rowSelection;\n item._hasByLine = this.hasByLine;\n item.itemSelected.subscribe(() => {\n this._keyManager?.setActiveItem(this.listItems.toArray().indexOf(item));\n });\n\n this.stateChanges.next(item);\n }\n\n /** @hidden */\n _selectItem(item: BaseListItem): void {\n this._selectionModel.select(item);\n this.stateChanges.next(item);\n }\n\n /** @hidden */\n private _setItems(): void {\n if (this._dsItems.length !== null && this.itemSize !== 0) {\n this._startIndex = 0;\n this._lastIndex = this.itemSize;\n this._items = this._dsItems.slice(this._startIndex, this._lastIndex);\n } else {\n this._items = this._dsItems;\n }\n\n this.stateChanges.next(this._items);\n }\n\n /** @hidden */\n private _initializeDS(ds: FdpListDataSource<T>): void {\n this._dsItems = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n if (this._dsSubscription) {\n this._dsSubscription.unsubscribe();\n this._dsSubscription = null;\n }\n }\n // Convert ListDataSource<T> | Observable<T[]> | T[] as DataSource\n this._dataSource = this._openDataStream(ds);\n }\n\n /** @hidden */\n private _toDataStream(source: FdpListDataSource<T>): ListDataSource<T> | undefined {\n if (isDataSource(source)) {\n return <ListDataSource<T>>source;\n }\n\n if (Array.isArray(source)) {\n // default implementation to work on top of arrays\n return new ArrayListDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableListDataSource<T>(source);\n }\n\n return undefined;\n }\n\n /** @hidden */\n private _openDataStream(ds: FdpListDataSource<T>): ListDataSource<T> {\n const initDataSource = this._toDataStream(ds);\n if (initDataSource === undefined) {\n throw new Error(`[dataSource] source did not match an array, Observable, or DataSource`);\n }\n\n /**\n * This is single point of data entry to the component. We dont want to set data on different\n * places. If any new data comes in either you do a search and you want to pass initial data\n * its here.\n */\n this._dsSubscription = initDataSource\n .open()\n .pipe(\n // Set new items when component is fully initiated and all child components are available.\n this._waitForViewInit(),\n takeUntil(this._destroyed)\n )\n .subscribe((data) => {\n this._dsItems = data || [];\n this.stateChanges.next(this._dsItems);\n this._setItems();\n // Trigger change detection when queue is empty.\n setTimeout(() => {\n this._cd.detectChanges();\n });\n });\n\n this._dsSubscription.add(initDataSource.onDataRequested().subscribe(() => (this._loading = true)));\n\n this._dsSubscription.add(\n initDataSource.onDataReceived().subscribe(() => {\n this._loading = false;\n this._firstLoadingDone = true;\n })\n );\n\n const matchParams = new Map();\n\n matchParams.set('query', '*');\n matchParams.set('limit', this.itemSize);\n\n // initial data fetch\n initDataSource.match(matchParams);\n\n return initDataSource;\n }\n\n /** @hidden */\n private _loadNewItems(): T[] {\n this._startIndex = this._startIndex + this.itemSize;\n this._lastIndex = this._lastIndex + this.itemSize;\n this._tempItems = this._dsItems.slice(this._startIndex, this._lastIndex);\n\n return this._tempItems;\n }\n\n /**\n * @hidden\n * List item with radio button styles, check, uncheckupdates\n * event:any to avoid code duplication\n */\n private _handleSingleSelect(event: Event, selectedItemId: Nullable<string>): void {\n const parent = event.target instanceof HTMLElement && event.target.closest('.fd-list__item');\n const radio = parent ? parent.querySelector('input') : null;\n this._selectedvalue = radio ? (<HTMLInputElement>radio).value : null;\n\n this.listItems.forEach((item) => {\n if (isPresent(item.radioButtonComponent)) {\n item._selected = false;\n item.listItem.nativeElement.setAttribute('aria-checked', 'false');\n }\n\n this.stateChanges.next(item);\n });\n\n this._selectionModel.clear();\n\n this.listItems.forEach((item) => {\n item.selectionValue = this._selectedvalue;\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') === selectedItemId) {\n nativeElement.setAttribute('_selected', 'true');\n nativeElement.setAttribute('aria-checked', 'true');\n\n this._selectItem(item);\n }\n });\n }\n\n /** @hidden */\n private _handleRowSelect(selectedItemId: Nullable<string>): void {\n // handles mutli select on row level without checkbox\n if (this.selectionMode === 'multi') {\n this.listItems.forEach((item) => {\n if (item._selected) {\n this._selectionModel.select(item);\n } else {\n this._selectionModel.deselect(item);\n }\n\n this.stateChanges.next(item);\n });\n }\n\n // handles single select on row level without radiobutton\n if (this.selectionMode === 'single') {\n this.listItems.forEach((item) => {\n if (!item.anchor) {\n return;\n }\n\n const { nativeElement } = item.listItem;\n nativeElement.setAttribute('_selected', 'false');\n nativeElement.setAttribute('aria-selected', 'false');\n nativeElement.classList.remove('is-selected');\n item.anchor.nativeElement.classList.remove('is-selected');\n this.stateChanges.next(item);\n });\n\n this._selectionModel.clear();\n\n this.listItems.forEach((item) => {\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') !== selectedItemId) {\n return;\n }\n\n nativeElement.setAttribute('_selected', 'true');\n item.anchor?.nativeElement.classList.add('is-selected');\n\n this._selectItem(item);\n });\n\n selectedItemId = '0';\n }\n }\n\n /**\n * @hidden\n * List item with checkbox styles,check,uncheckupdates\n * event:any to avoid code duplication\n */\n private _handleMultiSelect(selectedItemId: Nullable<string>): void {\n this.listItems.forEach((item) => {\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') !== selectedItemId) {\n return;\n }\n\n const select = nativeElement.getAttribute('_selected');\n nativeElement.setAttribute('_selected', `${!select}`);\n if (item._selected) {\n nativeElement.setAttribute('aria-selected', 'true');\n this._selectionModel.select(item);\n } else {\n nativeElement.setAttribute('aria-selected', 'false');\n this._selectionModel.deselect(item);\n }\n\n this.stateChanges.next(item);\n });\n }\n\n /**\n * @hidden\n * Setting values from list to list items\n * example:\n * Does list item has navigation,\n * should show arrows,\n * will it be compact mode,\n * should be in which selection mode\n * set values when passed via datasource\n */\n private _updateListItems(): void {\n if (this.listItems.length !== 0) {\n this.listItems.first.listItem.nativeElement.setAttribute('tabindex', '0');\n }\n\n this._ariaSetSize = this.ariaSetsize\n ? of(this.ariaSetsize)\n : this._dataSource && this._dataSource.dataProvider?.getTotalItems\n ? this._dataSource.dataProvider.getTotalItems()\n : of(this.listItems.length);\n\n this._partialNavigation = this.listItems.some((item) => item.navigationIndicator || item.listType === 'detail');\n\n let currentGroup: BaseListItem | null = null;\n let currentGroupItemIds: string[] = [];\n // Since we cannot use index from the iteration due to possible group item existence, we need to track it manually.\n let itemIndex = 0;\n\n this.listItems.forEach((item) => {\n if (!this._partialNavigation) {\n item.navigated = this.navigated;\n item.navigationIndicator = this.navigationIndicator;\n item.listType = this.listType;\n }\n if (item._type === LIST_ITEM_TYPE.HEADER) {\n currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n currentGroupItemIds = [];\n currentGroup = item;\n return;\n }\n if (item._type !== LIST_ITEM_TYPE.ITEM) {\n return;\n }\n\n item.ariaSetSize = this._ariaSetSize;\n\n item.ariaPosinset = ++itemIndex;\n\n if (currentGroup) {\n currentGroupItemIds.push(item.listItem.nativeElement.id);\n }\n\n if (item === this.listItems.last) {\n currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n }\n });\n\n this._cd.markForCheck();\n }\n\n /** @hidden */\n private _waitForViewInit<SourceDataType>() {\n return (source: Observable<SourceDataType>): Observable<SourceDataType> =>\n source.pipe(\n switchMap((src) =>\n this._afterViewInit$.pipe(\n filter((afterViewInit) => afterViewInit),\n map(() => src)\n )\n )\n );\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n this._language = await firstValueFrom(this._language$);\n }\n}\n","<ng-content select=\"fd-toolbar\"></ng-content>\n<ul\n fd-list\n [attr.id]=\"id\"\n [noBorder]=\"noBorder\"\n [selection]=\"selection\"\n [byline]=\"hasByLine\"\n [class.fd-list--navigation]=\"navigated || navigationIndicator\"\n [navigationIndicator]=\"navigationIndicator\"\n [style.outline]=\"'none'\"\n (keydown)=\"_keyManager?.onKeydown($event); _handleKeyDown($event)\"\n (change)=\"_onSelectionChanged($event)\"\n [attr.aria-setsize]=\"_ariaSetSize | async\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-multiselectable]=\"ariaMultiselectable\"\n [role]=\"role\"\n [unreadIndicator]=\"unreadIndicator\"\n>\n @if (loadMore && loadOnScroll) {\n <fd-busy-indicator\n size=\"l\"\n class=\"fd-busy-indicator-custom fd-list__item--growing\"\n [block]=\"true\"\n [loading]=\"_loading && _firstLoadingDone\"\n role=\"alert\"\n [attr.aria-busy]=\"_loading\"\n [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate) : null\"\n >\n <div\n fd-list\n fdInfiniteScroll\n class=\"fd-list__infinite-scroll\"\n [style.max-height]=\"maxHeight\"\n (onScrollAction)=\"_scrollHandler()\"\n [scrollPercent]=\"scrollOffsetPercentage\"\n [role]=\"role\"\n >\n @if (_items.length !== 0) {\n @for (item of _items; track item; let i = $index) {\n <ng-template\n [ngTemplateOutlet]=\"listItemDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n >\n </ng-template>\n }\n } @else {\n @if (!listItems.length && !_firstLoadingDone) {\n @if (!hasByLine) {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"40%\"\n ></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n </fd-skeleton>\n </li>\n }\n }\n <ng-content></ng-content>\n }\n </div>\n </fd-busy-indicator>\n }\n @if (!loadOnScroll) {\n @if (_items.length !== 0) {\n @for (item of _items; track item; let i = $index) {\n <ng-template\n [ngTemplateOutlet]=\"listItemDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n >\n </ng-template>\n }\n } @else {\n @if (!listItems.length && !_firstLoadingDone) {\n @if (!hasByLine) {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"40%\"></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n </fd-skeleton>\n </li>\n }\n }\n <ng-content></ng-content>\n }\n @if (loadMore && !loadOnScroll && _firstLoadingDone) {\n <li\n #listItem\n (click)=\"_getMoreData()\"\n fd-list-item\n (keydown)=\"_loadOnKeyPress($event)\"\n [class.fd-list__item--custom-content]=\"loadMoreContent\"\n class=\"fd-list__item fd-list__item--growing fd-list__item--action\"\n [tabindex]=\"0\"\n role=\"button\"\n >\n <ng-template [ngTemplateOutlet]=\"loadMoreElementContent\"></ng-template>\n </li>\n }\n }\n <ng-template #loadMoreElementContent>\n @if (loadMoreContent) {\n <div class=\"fd-list__title\">\n <ng-template\n [ngTemplateOutlet]=\"loadMoreContent.templateRef\"\n [ngTemplateOutletContext]=\"getLoadMoreContentContext()\"\n >\n </ng-template>\n </div>\n } @else {\n <button class=\"fd-list__title\">\n <fd-busy-indicator\n size=\"m\"\n class=\"fd-busy-indicator-custom\"\n [block]=\"true\"\n [loading]=\"_loading\"\n role=\"alert\"\n [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate) : loadTitle\"\n >\n </fd-busy-indicator>\n {{ loadTitle }}\n <ng-content select=\"#load\"></ng-content>\n </button>\n }\n </ng-template>\n</ul>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ObjectAttributeComponent } from '@fundamental-ngx/core/object-attribute';\n\n@Component({\n selector: 'fdp-object-list-item-row',\n template: ` <div class=\"fd-object-list__row\">\n <div class=\"fd-object-list__row-left\">\n <fd-object-attribute\n class=\"fd-object-list__object-attribute\"\n [islink]=\"islink\"\n [label]=\"attributeLabel\"\n [linkText]=\"linkedText\"\n >\n <ng-content select=\".attribute\"></ng-content>\n </fd-object-attribute>\n </div>\n <div class=\"fd-object-list__row-right\">\n <ng-content></ng-content>\n </div>\n </div>`,\n styleUrl: './object-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ObjectAttributeComponent]\n})\nexport class ObjectListItemRowComponent {\n /** object attribute label */\n @Input()\n attributeLabel: string;\n\n /** object attribute link text */\n @Input()\n linkedText: string;\n\n /** object attribute is a link */\n @Input()\n islink = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { ColorAccent } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { ObjectIdentifierComponent } from '@fundamental-ngx/core/object-identifier';\nimport { ObjectNumberComponent } from '@fundamental-ngx/core/object-number';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BaseListItem, StatusType } from '../base-list-item';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\n\n@Component({\n selector: 'fdp-object-list-item',\n templateUrl: './object-list-item.component.html',\n styleUrl: './object-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ObjectListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n NgTemplateOutlet,\n ListLinkDirective,\n RouterLink,\n ListTitleDirective,\n AvatarComponent,\n ObjectIdentifierComponent,\n ObjectNumberComponent,\n FormItemComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n ButtonComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class ObjectListItemComponent extends BaseListItem {\n /** define label for screen reader */\n @Input()\n introductionText: string;\n\n /** holds object number */\n @Input()\n amount: number;\n\n /** holds object number unit */\n @Input()\n currency: string;\n\n /** object number amount decimal limitation */\n @Input()\n decimal: number;\n\n /** object number status */\n @Input()\n numberStatus: StatusType;\n\n /** holds avatar label */\n @Input()\n label: string;\n\n /** holds avatar icon as image */\n @Input()\n glyph: string;\n\n /** Avatar to be circle or not */\n @Input()\n circle: boolean;\n\n /** Is avatar has placeholder */\n @Input()\n placeholder: boolean;\n\n /** Is avatar has tile */\n @Input()\n tile: boolean;\n\n /** Is avatar has colorAccent */\n @Input()\n colorAccent: ColorAccent;\n\n /** Avatar image path */\n @Input()\n image: string;\n\n /** Avatar is transparent */\n @Input()\n transparent: boolean;\n\n /** @hidden */\n @ContentChildren(ObjectListItemRowComponent)\n children: QueryList<ObjectListItemRowComponent>;\n}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (click)=\"_onItemClick()\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-object-list__item fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [attr.aria-selected]=\"_selected\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [attr.href]=\"link\"\n [attr.aria-label]=\"title\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n tabindex=\"-1\"\n >\n <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n </a>\n </li>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n class=\"fd-object-list__item\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n (click)=\"_onItemClick()\"\n [ariaRole]=\"role\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n </li>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n class=\"fd-object-list__item\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n}\n<ng-template #objectTemplate>\n <div class=\"fd-object-list__container\">\n <!--Optional text-->\n @if (introductionText) {\n <div class=\"fd-object-list__intro\">{{ introductionText }}</div>\n }\n <!--header content-->\n <div class=\"fd-object-list__header\">\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n ></fd-avatar>\n }\n <!--left side header content-->\n <div class=\"fd-object-list__header-left\">\n <fd-object-identifier class=\"fd-object-list__object-identifier\">{{ title }}</fd-object-identifier>\n </div>\n <!--right side header content-->\n <div class=\"fd-object-list__header-right\">\n <fd-object-number\n class=\"fd-object-list__object-number\"\n [number]=\"amount\"\n [unit]=\"currency\"\n [status]=\"numberStatus\"\n [decimal]=\"decimal\"\n >\n </fd-object-number>\n </div>\n </div>\n <!--body content-->\n <div class=\"fd-object-list__content\">\n <ng-content select=\"fdp-object-list-item-row\"></ng-content>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox role=\"checkbox\" [(ngModel)]=\"_selected\" tabIndexValue=\"-1\"> </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button [value]=\"value\" [name]=\"name\" role=\"radio\" [(ngModel)]=\"selectionValue\">\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n title=\"detail\"\n [attr.aria-label]=\"'platformObjectListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.id]=\"'detail-' + id\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n role=\"button\"\n [attr.aria-label]=\"'platformObjectListItem.deleteActionAriaLabel' | fdTranslate\"\n title=\"delete\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n (click)=\"_onActionButtonClick('delete')\"\n [attr.id]=\"'delete-' + id\"\n ></button>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\nimport { ObjectListItemComponent } from './object-list-item.component';\n\n@NgModule({\n imports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule],\n exports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule]\n})\nexport class ObjectListItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n ListItemComponent,\n ListLinkDirective,\n ListSecondaryDirective,\n ListThumbnailDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ObjectStatusComponent } from '@fundamental-ngx/platform/object-status';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-standard-list-item',\n templateUrl: './standard-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n NgTemplateOutlet,\n ListLinkDirective,\n RouterLink,\n ListTitleDirective,\n IconComponent,\n AvatarComponent,\n NgClass,\n ListSecondaryDirective,\n ListThumbnailDirective,\n FormItemComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n ButtonComponent,\n ObjectStatusComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class StandardListItemComponent extends BaseListItem {}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </li>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </li>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { StandardListItemComponent } from './standard-list-item.component';\n\n@NgModule({\n imports: [StandardListItemComponent, ContentDensityModule],\n exports: [StandardListItemComponent, ContentDensityModule]\n})\nexport class StandardListItemModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { ActionListItemModule } from './action-list-item/action-list-item.module';\nimport { ListItemDef } from './base-list-item';\nimport { DisplayListItemModule } from './display-list-item/display-list-item.module';\nimport { FreeContentListItemComponent } from './free-content-list-item/free-content-list-item.component';\nimport { ListFooterComponent } from './list-group-footer.component';\nimport { ListGroupHeaderComponent } from './list-group-header.component';\nimport { ListComponent } from './list.component';\nimport { LoadMoreContentDirective } from './load-more-content.directive';\nimport { ObjectListItemModule } from './object-list-item/object-list-item.module';\nimport { StandardListItemModule } from './standard-list-item/standard-list-item.module';\n\nconst components = [\n ListComponent,\n ListFooterComponent,\n ListGroupHeaderComponent,\n ListItemDef,\n ContentDensityModule,\n StandardListItemModule,\n ObjectListItemModule,\n DisplayListItemModule,\n ActionListItemModule,\n FreeContentListItemComponent,\n LoadMoreContentDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.ListConfig","CoreListComponent","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-list.mjs","sources":["../../../../libs/platform/list/fdpListComponent.token.ts","../../../../libs/platform/list/list.config.ts","../../../../libs/platform/list/base-list-item.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.html","../../../../libs/platform/list/action-list-item/action-list-item.module.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.html","../../../../libs/platform/list/display-list-item/display-list-item.module.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.html","../../../../libs/platform/list/list-group-footer.component.ts","../../../../libs/platform/list/list-group-header.component.ts","../../../../libs/platform/list/load-more-content.directive.ts","../../../../libs/platform/list/list.component.ts","../../../../libs/platform/list/list.component.html","../../../../libs/platform/list/object-list-item/object-list-item-row.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.html","../../../../libs/platform/list/object-list-item/object-list-item.module.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.html","../../../../libs/platform/list/standard-list-item/standard-list-item.module.ts","../../../../libs/platform/list/list.module.ts","../../../../libs/platform/list/fundamental-ngx-platform-list.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FdpListComponent = new InjectionToken('List Component');\n","import { Injectable } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { DataProvider } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform List\n */\n@Injectable({ providedIn: 'root' })\nexport class ListConfig {\n /**\n * Content Density of element. 'cozy' | 'compact'\n */\n contentDensity: ContentDensity = 'cozy';\n\n /**\n * Maps data providers\n */\n providers: Map<string, DataProvider<any>> | null = new Map();\n\n /**\n * Create Provider factory function\n */\n static createProviderFactory(obj: Partial<ListConfig>): () => ListConfig {\n const useFactory = (): ListConfig => Object.assign(new ListConfig(), obj);\n return useFactory;\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewChecked,\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ColorAccent, KeyUtil, Nullable, Size } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LIST_UNREAD_INDICATOR, ListUnreadIndicator } from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { BaseComponent, isPresent } from '@fundamental-ngx/platform/shared';\nimport { merge } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { ListConfig } from './list.config';\nimport { FdpList, ListType, SelectionType } from './models/list';\n\nexport const IS_ACTIVE_CLASS = 'is-active';\nlet nextListItemId = 0;\nexport type StatusType = 'negative' | 'critical' | 'positive' | 'informative';\n\nexport class ListIconConfig {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n glyph: IconComponent['glyph'];\n /** user's custom classes */\n class: IconComponent['class'] = '';\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n font: IconComponent['font'] = 'SAP-icons';\n /** Aria-label for Icon. */\n ariaLabel: IconComponent['ariaLabel'];\n}\n\nexport class ListAvatarConfig {\n /** @hidden */\n class = '';\n /** @hidden */\n ariaLabel: Nullable<string> = null;\n /** @hidden */\n ariaLabelledby: Nullable<string> = null;\n /** @hidden */\n label: Nullable<string> = null;\n /** @hidden */\n size: Size = 's';\n /** @hidden */\n glyph: Nullable<string> = null;\n /** @hidden */\n zoomGlyph: Nullable<string> = null;\n /** @hidden */\n circle = false;\n /** @hidden */\n transparent = false;\n /** @hidden */\n contain = false;\n /** @hidden */\n placeholder = false;\n /** @hidden */\n tile = false;\n /** @hidden */\n border = false;\n /** @hidden */\n colorAccent: Nullable<ColorAccent> = null;\n /** @hidden */\n random = false;\n /** @hidden */\n clickable = false;\n /** @hidden */\n image: Nullable<string> = null;\n /** @hidden */\n alterIcon: Nullable<string> = null;\n /** @hidden */\n backupImage: Nullable<string> = null;\n}\n\n/**\n * Base interface for a list variant definition.\n * Captures a list item template definition.\n */\nexport interface ItemDef {\n templateRef: TemplateRef<any>;\n}\n\nexport interface ListAdvancedDescription {\n text: string;\n ariaLabel?: string;\n title?: string;\n}\n\nexport type ListDescription = string | ListAdvancedDescription;\n\nexport enum LIST_ITEM_TYPE {\n ITEM = 'item',\n GROUP = 'group',\n FOOTER = 'footer',\n HEADER = 'header'\n}\n\nexport class ModifyItemEvent {\n /** List Item component */\n source: BaseListItem;\n /** Action */\n action: 'delete' | 'edit';\n}\n\n@Directive({\n selector: '[fdpItemDef]',\n standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ListItemDef implements ItemDef {\n /** @hidden */\n constructor(/** @docs-private */ public templateRef: TemplateRef<any>) {}\n}\n\n/**\n * This class contains common properties used across list Item components.\n * this can be extended to reduce the code duplication across list Item components.\n */\n@Directive()\nexport class BaseListItem extends BaseComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n /** define level of item for screen reader */\n @Input()\n ariaLevel: number;\n\n /** define position of item for screen reader */\n @Input()\n ariaPosinset: number;\n\n /** Avatar component properties. @see AvatarComponent for more details */\n @Input()\n set avatar(value: Nullable<Partial<ListAvatarConfig> | string>) {\n if (!value) {\n return;\n }\n value = typeof value === 'string' ? { image: value } : value;\n this._avatarConfig = merge(new ListAvatarConfig(), value);\n }\n\n get avatar(): ListAvatarConfig {\n return this._avatarConfig;\n }\n\n /** attribute to hold counter value */\n @Input()\n counter?: string;\n\n /** Description of the title */\n @Input()\n description: Nullable<ListDescription>;\n\n /** To invert the status of secondary text */\n @Input()\n inverted = false;\n\n /** Whether there is no data inside list item */\n @Input()\n noDataText: string;\n\n /**\n * The type of the secondary text.fd-list__byline-right--*\n * Can be one of *positive*, *negative*, *informative*, *critical*, *neutral\n */\n @Input()\n statusType?: StatusType;\n\n /** attribute to hold secondary text*/\n @Input()\n secondary: Nullable<ListDescription>;\n\n /**\n * Enabling this flag causes forcing secondary item directive to not wrap text,\n * instead of wrapping there will be text truncation\n */\n @Input()\n secondaryWrap?: boolean;\n\n /** Tooltip text to show when focused for more than timeout value*/\n @Input()\n title?: string;\n\n /** Used for placeing navigation Link */\n @Input()\n link: Nullable<string>;\n\n /**\n * Enabling this flag causes forcing title directive to not wrap text,\n * instead of wrapping there will be text truncation\n */\n @Input()\n titleWrap?: boolean;\n\n /**\n * List item icon configuration.\n */\n @Input()\n set icon(value: Partial<ListIconConfig>) {\n this._iconConfig = merge(new ListIconConfig(), value);\n }\n\n get icon(): ListIconConfig {\n return this._iconConfig;\n }\n\n /**\n * sets the list item in bold text\n * which respresents unread data\n */\n @Input()\n unRead: boolean;\n\n /**\n * Whether to display unread notification circle.\n */\n get displayUnreadNotification(): boolean {\n return !!this._list?.unreadIndicator;\n }\n\n /** radio button value */\n @Input()\n value: string;\n\n /** By default selection mode is 'none' */\n @Input()\n set selectionMode(value: SelectionType) {\n this._selectionMode = value;\n this._setAttrRole();\n }\n\n get selectionMode(): SelectionType {\n return this._selectionMode;\n }\n\n /** By default selection mode is 'active' */\n @Input()\n listType: ListType = 'active';\n\n /**\n * Whether Navigation mode is included to list component\n * for all the items\n */\n @Input()\n navigated = false;\n\n /**\n * Whether Navigation mode is included to list component\n * only a subset of the list items are navigable\n * you should indicate those by displaying a navigation arrow\n */\n @Input()\n navigationIndicator = false;\n\n /** role */\n @Input()\n role: Nullable<string>;\n\n /**\n * event emitter for selected item\n * seprate PR for custom event\n */\n @Output()\n itemSelected = new EventEmitter<ModifyItemEvent>();\n\n /**\n * Event emitted for selected item through the checkbox.\n */\n @Output()\n itemCheckboxSelected = new EventEmitter<ModifyItemEvent>();\n\n /** Event sent when delete, details or any other action buttons are clicked */\n @Output()\n buttonClicked = new EventEmitter<ModifyItemEvent>();\n\n /** @hidden */\n @ViewChild('listItem', { read: ElementRef })\n listItem: ElementRef<HTMLLIElement>;\n\n /** Access child element, for checking link content*/\n @ViewChild('linkElement', { read: ElementRef })\n anchor: ElementRef<HTMLLinkElement>;\n\n /** Access edit button*/\n @ViewChild('edit', { read: ElementRef })\n edit: ElementRef<HTMLButtonElement>;\n\n /** Access delete button*/\n @ViewChild('delete', { read: ElementRef })\n delete: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild(CheckboxComponent)\n checkboxComponent: CheckboxComponent;\n\n /** @hidden */\n @ViewChild(RadioButtonComponent)\n radioButtonComponent: RadioButtonComponent;\n\n /** @hidden */\n _type: LIST_ITEM_TYPE = LIST_ITEM_TYPE.ITEM;\n\n /**\n * @hidden\n * Whether By line mode is included to list component, by which\n * list item will accomdate the data in 2 column\n */\n _hasByLine = false;\n\n /**\n * @hidden\n * Whether listitem has row level selection enabled\n */\n set rowSelection(value: boolean) {\n this._rowSelection = value;\n this._setAttrRole();\n }\n\n get rowSelection(): boolean {\n return this._rowSelection;\n }\n\n /**\n * @hidden\n * Whether listitem is selected binded to template\n */\n _selected = false;\n\n /** @hidden */\n get _selectedAttr(): boolean | null {\n return !this.rowSelection && this.selectionMode === 'none' ? null : this._selected;\n }\n\n /**\n * @hidden\n * get the focused element for key manager\n */\n _focused: boolean;\n\n /** @hidden */\n get _listItemRole(): string {\n return this.role || this._defaultRole;\n }\n\n /** @hidden */\n ariaSetSize: Observable<number>;\n\n /** @hidden */\n private _rowSelection = false;\n\n /** @hidden */\n private _defaultRole = 'listitem';\n\n /** @hidden */\n private _listComponent = inject<FdpList>(FdpListComponent);\n\n /** @hidden */\n private _avatarConfig: ListAvatarConfig = new ListAvatarConfig();\n\n /** @hidden */\n private _iconConfig: ListIconConfig = new ListIconConfig();\n\n /**\n * @hidden\n * radio button selected value binded to template\n */\n private _selectionValue: Nullable<string>;\n\n /** @hidden */\n private _selectionMode: SelectionType = 'none';\n\n /** @hidden */\n constructor(\n public itemEl: ElementRef<HTMLElement>,\n protected _listConfig: ListConfig,\n @Optional() @Inject(FD_LIST_UNREAD_INDICATOR) private readonly _list: ListUnreadIndicator\n ) {\n super();\n }\n\n /** Selection value */\n @Input()\n set selectionValue(value: Nullable<string>) {\n this._selected = false;\n this._selectionValue = value;\n if (this._selectionValue !== undefined && this.selectionValue !== null) {\n this._selected = this.value === this._selectionValue;\n }\n }\n get selectionValue(): Nullable<string> {\n return this._selectionValue;\n }\n\n /**\n * @hidden\n * On item click event will be emitted\n */\n @HostListener('click')\n _onItemClick(): void {\n if (this.rowSelection && this.selectionMode === 'multi') {\n this._selected = !this._selected;\n }\n\n const event = new ModifyItemEvent();\n event.source = this;\n this._focused = !this._focused;\n this.itemSelected.emit(event);\n this.markForCheck();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _handleKeyboardEvent(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n if (this.checkboxComponent || this.radioButtonComponent) {\n this._onKeyboardClick(event);\n }\n\n this.anchor?.nativeElement.click();\n\n if (this.rowSelection) {\n this._selected = !this._selected;\n }\n\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n this.markForCheck();\n }\n\n /**\n * @hidden\n * Handler for mouse events\n */\n @HostListener('click', ['$event'])\n _onClick(event: MouseEvent): void {\n if (this.checkboxComponent && !this.anchor) {\n if (!this.checkboxComponent.elementRef.nativeElement.contains(event.target as Node)) {\n // clicking on the checkbox is not suppressed\n // so we should only process clicks if clicked on the list-item, not checkbox itself\n this.checkboxComponent.nextValue();\n }\n\n this.radioButtonComponent?.valueChange(event);\n }\n\n this.markForCheck();\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n }\n\n /**\n * @hidden\n * helps to avoid multi rows active class with navigation\n */\n @HostListener('focusout', ['$event'])\n _onBlur(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && !KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * Show navigation for single list\n */\n ngOnInit(): void {\n this.id = `fdp-list-item-${nextListItemId++}`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.itemSelected.complete();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listComponent._setupListItem(this);\n }\n\n /**\n * @hidden\n * To detect changes from parent-listbox to list item\n * for example single, multi option selection those details\n * will be deducted in list item\n */\n ngAfterViewChecked(): void {\n const currentItem: Nullable<HTMLElement> =\n this.itemEl.nativeElement.querySelector<HTMLElement>('.fd-list__item');\n if (!currentItem) {\n return;\n }\n\n const parentNode = currentItem.parentNode instanceof HTMLElement && currentItem.parentNode;\n if (parentNode) {\n parentNode.removeAttribute('title');\n parentNode.removeAttribute('aria-label');\n }\n this.detectChanges();\n }\n\n /**\n * @hidden\n * Created focus on list item on mouseclick,\n * Up,down arrow press\n */\n focus(): void {\n this.listItem.nativeElement.focus();\n }\n\n /**\n * Programmatically set selected state of the list item.\n * @param selected Whether the list item is selected\n */\n setSelected(selected: boolean): void {\n if (selected === this._selected) {\n return;\n }\n const event = new ModifyItemEvent();\n event.source = this;\n this._selected = selected;\n this.detectChanges();\n }\n\n /**\n * @hidden\n * on keydown append active styles on actionable item\n */\n _onKeyDown(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.add(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * on keyup remove active styles from actionable item\n */\n _onKeyUp(event: KeyboardEvent): void {\n if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n }\n }\n\n /** @hidden */\n _onCheckboxModelChange(): void {\n const event = new ModifyItemEvent();\n event.source = this;\n this.itemCheckboxSelected.emit(event);\n }\n\n /**\n * @hidden\n * Handles action button click\n */\n _onActionButtonClick(action: 'delete' | 'edit'): void {\n const event = new ModifyItemEvent();\n event.source = this;\n event.action = action;\n this.buttonClicked.emit(event);\n }\n\n /**\n * @hidden\n * Handles action button click on key press\n */\n _onKeyButtonClick(event: KeyboardEvent, action: 'delete' | 'edit'): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this._onActionButtonClick(action);\n }\n }\n\n /** @hidden */\n _isAdvancedText(text: ListDescription): text is ListAdvancedDescription {\n return typeof text !== 'string' && !!text.text;\n }\n\n /** @hidden */\n private _onKeyboardClick(event: KeyboardEvent): void {\n this.checkboxComponent?.nextValue();\n this.radioButtonComponent?.valueChange(event);\n\n this.markForCheck();\n const $event = new ModifyItemEvent();\n $event.source = this;\n this.itemSelected.emit($event);\n }\n\n /** @hidden */\n private _setAttrRole(): void {\n this._defaultRole =\n this.rowSelection || this.selectionMode === 'single' || this.selectionMode === 'multi'\n ? 'option'\n : 'listitem';\n this.markForCheck();\n }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Output,\n ViewChild,\n forwardRef\n} from '@angular/core';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem, IS_ACTIVE_CLASS } from '../base-list-item';\n\nexport class ActionChangeEvent {\n /** Action List Item component */\n source: ActionListItemComponent;\n}\n\n@Component({\n selector: 'fdp-action-list-item',\n templateUrl: './action-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ActionListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListItemComponent, AsyncPipe]\n})\nexport class ActionListItemComponent extends BaseListItem {\n /** Access button element*/\n @ViewChild('action', { read: ElementRef })\n button: ElementRef<HTMLButtonElement>;\n\n /** Event sent when action in clicked */\n @Output()\n actionClicked = new EventEmitter<ActionChangeEvent>();\n\n /**\n * @hidden\n * Handles action click\n */\n _onActionClick(): void {\n const event = new ActionChangeEvent();\n event.source = this;\n this.actionClicked.emit(event);\n }\n\n /**\n * @hidden\n * on keydown append active styles on actionable item\n */\n _onKeyDown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.button.nativeElement.classList.add(IS_ACTIVE_CLASS);\n }\n }\n\n /**\n * @hidden\n * on keyup remove active styles from actionable item\n */\n _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.button.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n this._onActionClick();\n }\n }\n}\n","<div\n #listItem\n fd-list-item\n class=\"fd-list__item--action\"\n [attr.id]=\"id\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n>\n <button #action class=\"fd-list__title\" [attr.aria-label]=\"title\" [attr.title]=\"title\" (click)=\"_onActionClick()\">\n {{ title }}\n </button>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ActionListItemComponent } from './action-list-item.component';\n\n@NgModule({\n imports: [ActionListItemComponent],\n exports: [ActionListItemComponent]\n})\nexport class ActionListItemModule {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport {\n ListItemComponent,\n ListLinkDirective,\n ListSecondaryDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-display-list-item',\n templateUrl: './display-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => DisplayListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n ListLinkDirective,\n RouterLink,\n NgTemplateOutlet,\n ListTitleDirective,\n NgClass,\n ListSecondaryDirective,\n AsyncPipe\n ]\n})\nexport class DisplayListItemComponent extends BaseListItem {}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n </a>\n </div>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n </div>\n}\n<ng-template #commonTemplate>\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">{{ title }}</span>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { DisplayListItemComponent } from './display-list-item.component';\n\n@NgModule({\n imports: [DisplayListItemComponent],\n exports: [DisplayListItemComponent]\n})\nexport class DisplayListItemModule {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-free-content-list-item',\n templateUrl: './free-content-list-item.component.html',\n styleUrl: './free-content-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => FreeContentListItemComponent) }],\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListItemComponent, AsyncPipe]\n})\nexport class FreeContentListItemComponent extends BaseListItem {}\n","<div\n #listItem\n [class.fd-list__item--unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (click)=\"_onItemClick()\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\nimport { LIST_ITEM_TYPE } from './base-list-item';\n\n@Component({\n selector: 'fdp-list-footer',\n template: `<div #listFooter class=\"fd-list__footer\" [attr.id]=\"id\" role=\"option\"><ng-content></ng-content></div>`,\n standalone: true,\n host: {\n role: 'none'\n }\n})\nexport class ListFooterComponent extends BaseComponent {\n /** @hidden */\n _type = LIST_ITEM_TYPE.FOOTER;\n}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { ListGroupHeaderDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { BaseListItem, LIST_ITEM_TYPE } from './base-list-item';\n\nlet nextListGrpHeaderId = 0;\n\n@Component({\n selector: 'fdp-list-group-header',\n template: ` <div\n #listItem\n fd-list-group-header\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.id]=\"id\"\n role=\"group\"\n [tabindex]=\"0\"\n >\n <span fd-list-title>{{ groupHeaderTitle }}</span>\n <ng-content></ng-content>\n </div>`,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ListGroupHeaderComponent) }],\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [ListGroupHeaderDirective, ListTitleDirective]\n})\nexport class ListGroupHeaderComponent extends BaseListItem implements OnInit {\n /** Displays list group header title */\n @Input()\n groupHeaderTitle?: string;\n\n /** @hidden */\n _type = LIST_ITEM_TYPE.HEADER;\n\n /**\n * @hidden\n * Initialization of the list header component\n */\n ngOnInit(): void {\n this.id = `fdp-list-${nextListGrpHeaderId++}`;\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[fdpListLoadMoreContent]',\n standalone: true\n})\nexport class LoadMoreContentDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<LoadMoreContentContext>) {}\n}\n\ninterface _LoadMoreContentContext {\n loadTitle: string;\n loading: boolean;\n loadingLabel: Observable<string>;\n lastChunk: {\n start: number;\n end: number;\n };\n total: number;\n}\n\nexport interface LoadMoreContentContext extends _LoadMoreContentContext {\n $implicit: _LoadMoreContentContext;\n}\n","import { FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, ENTER, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport {\n BehaviorSubject,\n Observable,\n Subscription,\n asyncScheduler,\n filter,\n firstValueFrom,\n isObservable,\n map,\n observeOn,\n of,\n startWith,\n switchMap\n} from 'rxjs';\nimport { delay, tap } from 'rxjs/operators';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, Nullable, RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';\nimport { InfiniteScrollDirective } from '@fundamental-ngx/core/infinite-scroll';\nimport {\n ListComponent as CoreListComponent,\n FD_LIST_UNREAD_INDICATOR,\n ListItemComponent,\n ListUnreadIndicator\n} from '@fundamental-ngx/core/list';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FD_LANGUAGE, FdLanguage, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport {\n ArrayListDataSource,\n CollectionBaseInput,\n ListDataSource,\n ObservableListDataSource,\n isBlank,\n isDataSource,\n isPresent\n} from '@fundamental-ngx/platform/shared';\nimport { BaseListItem, LIST_ITEM_TYPE, ListItemDef } from './base-list-item';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { LoadMoreContentContext, LoadMoreContentDirective } from './load-more-content.directive';\nimport { FdpList, FdpListDataSource, ListType, SelectionType } from './models/list';\n\nexport class SelectionChangeEvent {\n /** Selected items */\n selectedItems: BaseListItem[];\n /** Index */\n index: number;\n}\n\nlet nextListId = 0;\n\n/**\n * The List component represents a container for list item types.\n * It is used to display a list features.\n */\n@Component({\n selector: 'fdp-list',\n templateUrl: './list.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrl: './list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: FD_FORM_FIELD_CONTROL, useExisting: ListComponent, multi: true },\n { provide: FdpListComponent, useExisting: ListComponent },\n {\n provide: FD_LIST_UNREAD_INDICATOR,\n useExisting: ListComponent\n }\n ],\n host: {\n '[attr.tabindex]': '-1'\n },\n standalone: true,\n imports: [\n CoreListComponent,\n BusyIndicatorComponent,\n InfiniteScrollDirective,\n ListItemComponent,\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class ListComponent<T>\n extends CollectionBaseInput\n implements ListUnreadIndicator, OnInit, AfterViewInit, OnDestroy, FdpList<BaseListItem>\n{\n /** An array that holds a list of all selected items. **/\n @Input()\n selectedItems: BaseListItem[];\n\n /** define size of items for screen reader. */\n @Input()\n ariaSetsize: number;\n\n /** Defines whether items are multiselectable for screen reader. */\n @Input()\n ariaMultiselectable: boolean;\n\n /** Title used on button when data loads on button click. */\n @Input()\n loadTitle: string;\n\n /** Label used on announce message of data was loaded for screen readers. */\n @Input()\n loadingLabel = '';\n\n /** Wait time for new items. */\n @Input()\n delayTime: number;\n\n /** Items to be loaded at once. Intinity (no limit) by default. */\n @Input()\n itemSize = Infinity;\n\n /** Enables lazy loadMore of data. */\n @Input()\n loadMore: boolean;\n\n /**\n * Enables data load on scroll for true\n * false: enables data loading on button click.\n */\n @Input()\n loadOnScroll: boolean;\n\n /** define the role to custom requirement. */\n @Input()\n role = 'list';\n\n /** ListType 'inactive' | 'active' | 'navigation' | 'detail' */\n @Input()\n listType: ListType = 'active';\n\n /** Max height for viewport to display scroll. */\n @Input()\n maxHeight: string;\n\n /** Whether list component has removed borders. */\n @Input()\n noBorder = false;\n\n /** Scroll offset percentage to trigger scroll event. */\n @Input()\n scrollOffsetPercentage: number;\n\n /** Eenables selection styles. */\n @Input()\n selection = false;\n\n /**\n * The type of the selection. Types include:\n * 'none'| 'multi' | 'single'|'delete'.\n * Leave empty for default ().'\n * Default value is set to 'none'.\n */\n @Input()\n selectionMode: SelectionType = 'none';\n\n /** setter and getter for radio button and checkbox. */\n @Input()\n set value(value: any) {\n super.setValue(value);\n }\n\n get value(): any {\n return super.getValue();\n }\n\n /** setter and getter for row level Selection. */\n @Input()\n set rowSelection(value: boolean) {\n this._rowSelection = value;\n if (this._rowSelection) {\n this.selection = true;\n this._ulElement?.classList.add('fd-list--selection-row');\n if (this.navigated && this.hasObject) {\n this._ulElement?.classList.remove('fd-list--selection-row');\n }\n }\n }\n\n get rowSelection(): boolean {\n return this._rowSelection;\n }\n\n /** Datasource for suggestion list. */\n @Input()\n set dataSource(value: FdpListDataSource<T>) {\n if (value) {\n this._initializeDS(value);\n }\n }\n\n get dataSource(): FdpListDataSource<T> {\n return this._dataSource;\n }\n\n /** setter and getter for _navigated. */\n @Input()\n set navigated(value: boolean) {\n this._navigated = value;\n\n const classList = ['fd-list--navigation'];\n if (this.hasObject) {\n classList.push('fd-list--navigation-object');\n }\n\n this._ulElement?.classList.add(...classList);\n }\n\n get navigated(): boolean {\n return this._navigated;\n }\n\n /** setter and getter for _navigationIndicator. */\n @Input()\n set navigationIndicator(value: boolean) {\n this._navigationIndicator = value;\n this._ulElement?.classList.add('fd-list--navigation-indication');\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** setter and getter for hasByLine. */\n @Input()\n set hasByLine(value: boolean) {\n this._hasByLine = value;\n this._ulElement?.classList.add('fd-list--byline');\n }\n\n get hasByLine(): boolean {\n return this._hasByLine;\n }\n\n /** setter and getter for hasObject. */\n @Input()\n set hasObject(value: boolean) {\n this._hasObject = value;\n this._ulElement?.classList.add('fd-object-list');\n }\n\n get hasObject(): boolean {\n return this._hasObject;\n }\n\n /** Whether to display unread notification indicator. */\n @Input()\n unreadIndicator = false;\n\n /** Whether to intercept tab key navigation. */\n @Input()\n interceptTabKey = true;\n\n /** Event thrown, when selected item is changed */\n @Output()\n selectedItemChange: EventEmitter<SelectionChangeEvent> = new EventEmitter<SelectionChangeEvent>();\n\n /** Access child element, for checking link content */\n @ViewChild('link', { read: ElementRef })\n anchor: ElementRef<HTMLLinkElement>;\n\n /** @hidden */\n @ContentChild(forwardRef(() => ListItemDef))\n listItemDef: ListItemDef;\n\n /** Load More List item content */\n @ContentChild(LoadMoreContentDirective)\n loadMoreContent: LoadMoreContentDirective;\n\n /** Child items of the List. */\n @ContentChildren(forwardRef(() => BaseListItem), { descendants: true })\n listItems: QueryList<BaseListItem>;\n\n /** @hidden */\n get _ulElement(): Nullable<HTMLUListElement> {\n return this.elementRef.nativeElement.querySelector('.fd-list');\n }\n\n /**\n * @hidden\n * To display loading symbol\n */\n _loading = false;\n\n /** @hidden\n * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown\n */\n _firstLoadingDone = false;\n\n /**\n * @hidden\n * keyManger to handle keybord events used in template\n */\n _keyManager: Nullable<FocusKeyManager<BaseListItem>>;\n\n /** @hidden */\n _items: T[] = [];\n\n /** @hidden */\n _ariaSetSize: Observable<number> = new Observable();\n\n /** @hidden */\n protected _dataSource: ListDataSource<T>;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /**\n * @hidden\n * Whether Navigation mode is included to list component\n * for all the items\n */\n private _navigated: boolean;\n\n /**\n * @hidden\n * Whether By line is present in list item\n */\n private _hasByLine: boolean;\n\n /**\n * @hidden\n * Whether Navigation mode is included to list component\n * only a subset of the list items are navigable\n * you should indicate those by displaying a navigation arrow\n */\n private _navigationIndicator: boolean;\n\n /**\n * @hidden\n * Whether object present in list item\n */\n private _hasObject: boolean;\n\n /**\n * @hidden\n * Verfies partial navigation enabled\n */\n protected _partialNavigation = false;\n\n /**\n * @hidden\n * The model backing of the component.\n */\n private _selectionModel: SelectionModel<BaseListItem>;\n\n /**\n * @hidden\n * Whether list component has multiselection\n * binding in tempate to append class\n */\n private _multiSelect = false;\n\n /** @hidden */\n private _selectedvalue: Nullable<string>;\n\n /**\n * @hidden\n * Whether row level selection mode is enabled to list component\n * for all the items\n */\n private _rowSelection: boolean;\n\n /** @hidden To store */\n private _tempItems: T[] = [];\n\n /** @hidden */\n private _startIndex = 0;\n\n /** @hidden */\n private _lastIndex = this.itemSize;\n\n /** @hidden */\n private _dsItems: T[] = [];\n\n /**\n * @hidden\n * for data source handling\n */\n private _dsSubscription: Nullable<Subscription>;\n\n /** @hidden */\n private _language: FdLanguage;\n\n /** @hidden */\n private _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>\n ) {\n super();\n this._init();\n }\n\n /**\n * @hidden\n * on Update navgiation styles for non navigated items\n * event:any to avoid code duplication\n * seprate PR for custom event\n */\n @HostListener('click', ['$event'])\n _updateNavigation(event: Event): void {\n let selectedItemId: Nullable<string> = '0';\n const element: Nullable<HTMLElement> = event.target instanceof HTMLElement ? event.target : null;\n const parent = element?.closest('.fd-list__item');\n if (isPresent(parent)) {\n selectedItemId = parent?.getAttribute('id');\n }\n\n this.listItems.forEach((item, index) => {\n item.anchor?.nativeElement.classList.remove('is-navigated');\n\n if (item._focused) {\n this._keyManager?.updateActiveItem(index);\n }\n });\n\n const el = event.target instanceof HTMLElement && event.target;\n if (!el) {\n return;\n }\n\n const linkElement = el.querySelector('a');\n if (el.tagName.toLowerCase() === 'a') {\n el.classList.add('is-navigated');\n } else if (el.classList.contains('fd-list__item') && !!linkElement) {\n linkElement.classList.add('is-navigated');\n }\n\n // TODO: selection management should be completely changed https://github.com/SAP/fundamental-ngx/issues/8008\n if (this.rowSelection) {\n this._handleRowSelect(selectedItemId);\n } else if (this.selectionMode === 'single') {\n this._handleSingleSelect(event, selectedItemId);\n } else if (this.selectionMode === 'multi') {\n this._handleMultiSelect(selectedItemId);\n }\n }\n\n /** Get context for load more button */\n getLoadMoreContentContext(): LoadMoreContentContext {\n const $implicit = {\n loadTitle: this.loadTitle,\n loading: this._loading,\n loadingLabel: (() => {\n if (this._loading) {\n return this._language$.pipe(\n map((language) => this._translationResolver.resolve(language, 'platformList.loadingAriaLabel'))\n );\n }\n return of(this.loadingLabel);\n })(),\n lastChunk: {\n start: this._startIndex,\n end: this._lastIndex\n },\n total: this._dsItems.length\n };\n return {\n $implicit,\n ...$implicit\n };\n }\n\n /**\n * @hidden\n * Initialization of the lis component with selection mode\n */\n ngOnInit(): void {\n this._setItems();\n\n this.stateChanges.next(this._items);\n this.id = `fdp-list-${nextListId++}`;\n\n // using selection Model for multiselect\n if (this.selectionMode === 'multi') {\n this._multiSelect = true;\n this.ariaMultiselectable = true;\n } else {\n this._multiSelect = false;\n }\n\n this._selectionModel = new SelectionModel<BaseListItem>(this._multiSelect, this.selectedItems);\n\n this._selectionModel.changed.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this.selectedItems = this._selectionModel.selected;\n const event = new SelectionChangeEvent();\n event.selectedItems = this.selectedItems;\n this.stateChanges.next(event);\n this.selectedItemChange.emit(event);\n });\n }\n\n /**\n * @hidden\n * Keyboard manager on list items, set values when passed via array\n */\n ngAfterViewInit(): void {\n this._afterViewInit$.next(true);\n this._keyManager = new FocusKeyManager<BaseListItem>(this.listItems).withWrap();\n\n this._subscriptions.add(\n this.listItems.changes\n .pipe(startWith(this.listItems), observeOn(asyncScheduler))\n .subscribe(() => this._updateListItems())\n );\n\n const indicator = this.elementRef.nativeElement.querySelector('fd-busy-indicator');\n indicator?.setAttribute('aria-label', '');\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.ngOnDestroy();\n\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n }\n\n this._dsSubscription?.unsubscribe();\n\n this._keyManager?.destroy();\n }\n\n /**\n * @hidden\n * handline keyboard operations\n * in template on list and list items\n */\n _handleKeyDown(event: KeyboardEvent): Nullable<boolean> {\n if (!this._keyManager) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, TAB) && !this.interceptTabKey) {\n return;\n }\n\n event.stopImmediatePropagation();\n\n const activeItemIndex: Nullable<number> = this._keyManager.activeItemIndex;\n\n if (activeItemIndex) {\n this._setCurrentActiveItemIndex(activeItemIndex);\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) || KeyUtil.isKeyCode(event, UP_ARROW)) {\n return false;\n } else if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n this._updateNavigation(event);\n return false;\n }\n }\n\n /** @hidden */\n _setCurrentActiveItemIndex(activeItemIndex: number): void {\n this._keyManager?.setActiveItem(activeItemIndex);\n }\n\n /**\n * @hidden\n * binded in template on scroll\n */\n _scrollHandler(): void {\n if (!this._loading && this.loadOnScroll) {\n this._getMoreData();\n }\n }\n\n /**\n * @hidden\n * load more on enter or space press\n */\n _loadOnKeyPress(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this._getMoreData();\n }\n }\n\n /**\n * @hidden\n * Handles lazy loading data\n * used in template\n * onscroll and on more button click\n */\n _getMoreData(): void {\n this._loading = true;\n of(this._loadNewItems())\n .pipe(\n tap(async (data) => {\n if (isBlank(data)) {\n console.error('===Invalid Response received===');\n }\n this.loadingLabel = this._translationResolver.resolve(\n this._language,\n 'platformList.loadingAriaLabel'\n );\n await this._liveAnnouncer.announce(this.loadingLabel, 'assertive');\n }),\n delay(this.delayTime),\n takeUntilDestroyed(this._destroyed)\n )\n .subscribe((result) => {\n if (isPresent(result)) {\n for (let i = this._items.length, j = 0; j < result.length; ++i, ++j) {\n this._items[i] = result[j];\n }\n }\n this._loading = false;\n this.stateChanges.next(this._items);\n this.markForCheck();\n });\n }\n\n /**\n * @hidden\n * used in tempate to get Selected items from a list\n * event:any to avoid code duplication\n */\n _onSelectionChanged(event: Event): void {\n this._updateNavigation(event);\n }\n\n /** @hidden */\n _setupListItem(item: BaseListItem): void {\n item.selectionMode = this.selectionMode;\n item.rowSelection = this.rowSelection;\n item._hasByLine = this.hasByLine;\n item.itemSelected.subscribe(() => {\n this._keyManager?.setActiveItem(this.listItems.toArray().indexOf(item));\n });\n\n this.stateChanges.next(item);\n }\n\n /** @hidden */\n _selectItem(item: BaseListItem): void {\n this._selectionModel.select(item);\n this.stateChanges.next(item);\n }\n\n /** @hidden */\n private _setItems(): void {\n if (this._dsItems.length !== null && this.itemSize !== 0) {\n this._startIndex = 0;\n this._lastIndex = this.itemSize;\n this._items = this._dsItems.slice(this._startIndex, this._lastIndex);\n } else {\n this._items = this._dsItems;\n }\n\n this.stateChanges.next(this._items);\n }\n\n /** @hidden */\n private _initializeDS(ds: FdpListDataSource<T>): void {\n this._dsItems = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n if (this._dsSubscription) {\n this._dsSubscription.unsubscribe();\n this._dsSubscription = null;\n }\n }\n // Convert ListDataSource<T> | Observable<T[]> | T[] as DataSource\n this._dataSource = this._openDataStream(ds);\n }\n\n /** @hidden */\n private _toDataStream(source: FdpListDataSource<T>): ListDataSource<T> | undefined {\n if (isDataSource(source)) {\n return <ListDataSource<T>>source;\n }\n\n if (Array.isArray(source)) {\n // default implementation to work on top of arrays\n return new ArrayListDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableListDataSource<T>(source);\n }\n\n return undefined;\n }\n\n /** @hidden */\n private _openDataStream(ds: FdpListDataSource<T>): ListDataSource<T> {\n const initDataSource = this._toDataStream(ds);\n if (initDataSource === undefined) {\n throw new Error(`[dataSource] source did not match an array, Observable, or DataSource`);\n }\n\n /**\n * This is single point of data entry to the component. We dont want to set data on different\n * places. If any new data comes in either you do a search and you want to pass initial data\n * its here.\n */\n this._dsSubscription = initDataSource\n .open()\n .pipe(\n // Set new items when component is fully initiated and all child components are available.\n this._waitForViewInit(),\n takeUntilDestroyed(this._destroyed)\n )\n .subscribe((data) => {\n this._dsItems = data || [];\n this.stateChanges.next(this._dsItems);\n this._setItems();\n // Trigger change detection when queue is empty.\n setTimeout(() => {\n this.detectChanges();\n });\n });\n\n this._dsSubscription.add(initDataSource.onDataRequested().subscribe(() => (this._loading = true)));\n\n this._dsSubscription.add(\n initDataSource.onDataReceived().subscribe(() => {\n this._loading = false;\n this._firstLoadingDone = true;\n })\n );\n\n const matchParams = new Map();\n\n matchParams.set('query', '*');\n matchParams.set('limit', this.itemSize);\n\n // initial data fetch\n initDataSource.match(matchParams);\n\n return initDataSource;\n }\n\n /** @hidden */\n private _loadNewItems(): T[] {\n this._startIndex = this._startIndex + this.itemSize;\n this._lastIndex = this._lastIndex + this.itemSize;\n this._tempItems = this._dsItems.slice(this._startIndex, this._lastIndex);\n\n return this._tempItems;\n }\n\n /**\n * @hidden\n * List item with radio button styles, check, uncheckupdates\n * event:any to avoid code duplication\n */\n private _handleSingleSelect(event: Event, selectedItemId: Nullable<string>): void {\n const parent = event.target instanceof HTMLElement && event.target.closest('.fd-list__item');\n const radio = parent ? parent.querySelector('input') : null;\n this._selectedvalue = radio ? (<HTMLInputElement>radio).value : null;\n\n this.listItems.forEach((item) => {\n if (isPresent(item.radioButtonComponent)) {\n item._selected = false;\n item.listItem.nativeElement.setAttribute('aria-checked', 'false');\n }\n\n this.stateChanges.next(item);\n });\n\n this._selectionModel.clear();\n\n this.listItems.forEach((item) => {\n item.selectionValue = this._selectedvalue;\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') === selectedItemId) {\n nativeElement.setAttribute('_selected', 'true');\n nativeElement.setAttribute('aria-checked', 'true');\n\n this._selectItem(item);\n }\n });\n }\n\n /** @hidden */\n private _handleRowSelect(selectedItemId: Nullable<string>): void {\n // handles mutli select on row level without checkbox\n if (this.selectionMode === 'multi') {\n this.listItems.forEach((item) => {\n if (item._selected) {\n this._selectionModel.select(item);\n } else {\n this._selectionModel.deselect(item);\n }\n\n this.stateChanges.next(item);\n });\n }\n\n // handles single select on row level without radiobutton\n if (this.selectionMode === 'single') {\n this.listItems.forEach((item) => {\n if (!item.anchor) {\n return;\n }\n\n const { nativeElement } = item.listItem;\n nativeElement.setAttribute('_selected', 'false');\n nativeElement.setAttribute('aria-selected', 'false');\n nativeElement.classList.remove('is-selected');\n item.anchor.nativeElement.classList.remove('is-selected');\n this.stateChanges.next(item);\n });\n\n this._selectionModel.clear();\n\n this.listItems.forEach((item) => {\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') !== selectedItemId) {\n return;\n }\n\n nativeElement.setAttribute('_selected', 'true');\n item.anchor?.nativeElement.classList.add('is-selected');\n\n this._selectItem(item);\n });\n\n selectedItemId = '0';\n }\n }\n\n /**\n * @hidden\n * List item with checkbox styles,check,uncheckupdates\n * event:any to avoid code duplication\n */\n private _handleMultiSelect(selectedItemId: Nullable<string>): void {\n this.listItems.forEach((item) => {\n const { nativeElement } = item.listItem;\n if (nativeElement.getAttribute('id') !== selectedItemId) {\n return;\n }\n\n const select = nativeElement.getAttribute('_selected');\n nativeElement.setAttribute('_selected', `${!select}`);\n if (item._selected) {\n nativeElement.setAttribute('aria-selected', 'true');\n this._selectionModel.select(item);\n } else {\n nativeElement.setAttribute('aria-selected', 'false');\n this._selectionModel.deselect(item);\n }\n\n this.stateChanges.next(item);\n });\n }\n\n /**\n * @hidden\n * Setting values from list to list items\n * example:\n * Does list item has navigation,\n * should show arrows,\n * will it be compact mode,\n * should be in which selection mode\n * set values when passed via datasource\n */\n private _updateListItems(): void {\n if (this.listItems.length !== 0) {\n this.listItems.first.listItem.nativeElement.setAttribute('tabindex', '0');\n }\n\n this._ariaSetSize = this.ariaSetsize\n ? of(this.ariaSetsize)\n : this._dataSource && this._dataSource.dataProvider?.getTotalItems\n ? this._dataSource.dataProvider.getTotalItems()\n : of(this.listItems.length);\n\n this._partialNavigation = this.listItems.some((item) => item.navigationIndicator || item.listType === 'detail');\n\n let currentGroup: BaseListItem | null = null;\n let currentGroupItemIds: string[] = [];\n // Since we cannot use index from the iteration due to possible group item existence, we need to track it manually.\n let itemIndex = 0;\n\n this.listItems.forEach((item) => {\n if (!this._partialNavigation) {\n item.navigated = this.navigated;\n item.navigationIndicator = this.navigationIndicator;\n item.listType = this.listType;\n }\n if (item._type === LIST_ITEM_TYPE.HEADER) {\n currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n currentGroupItemIds = [];\n currentGroup = item;\n return;\n }\n if (item._type !== LIST_ITEM_TYPE.ITEM) {\n return;\n }\n\n item.ariaSetSize = this._ariaSetSize;\n\n item.ariaPosinset = ++itemIndex;\n\n if (currentGroup) {\n currentGroupItemIds.push(item.listItem.nativeElement.id);\n }\n\n if (item === this.listItems.last) {\n currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n }\n });\n\n this.markForCheck();\n }\n\n /** @hidden */\n private _waitForViewInit<SourceDataType>() {\n return (source: Observable<SourceDataType>): Observable<SourceDataType> =>\n source.pipe(\n switchMap((src) =>\n this._afterViewInit$.pipe(\n filter((afterViewInit) => afterViewInit),\n map(() => src)\n )\n )\n );\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n this._language = await firstValueFrom(this._language$);\n }\n}\n","<ng-content select=\"fd-toolbar\"></ng-content>\n<div\n fd-list\n [attr.id]=\"id\"\n [noBorder]=\"noBorder\"\n [selection]=\"selection\"\n [byline]=\"hasByLine\"\n [class.fd-list--navigation]=\"navigated || navigationIndicator\"\n [navigationIndicator]=\"navigationIndicator\"\n [style.outline]=\"'none'\"\n (keydown)=\"_keyManager?.onKeydown($event); _handleKeyDown($event)\"\n (change)=\"_onSelectionChanged($event)\"\n [attr.aria-setsize]=\"_ariaSetSize | async\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-multiselectable]=\"ariaMultiselectable\"\n [role]=\"role\"\n [unreadIndicator]=\"unreadIndicator\"\n>\n @if (loadMore && loadOnScroll) {\n <fd-busy-indicator\n size=\"l\"\n class=\"fd-busy-indicator-custom fd-list__item--growing\"\n [block]=\"true\"\n [loading]=\"_loading && _firstLoadingDone\"\n role=\"alert\"\n [attr.aria-busy]=\"_loading\"\n [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate) : null\"\n >\n <div\n fd-list\n fdInfiniteScroll\n class=\"fd-list__infinite-scroll\"\n [style.max-height]=\"maxHeight\"\n (onScrollAction)=\"_scrollHandler()\"\n [scrollPercent]=\"scrollOffsetPercentage\"\n [role]=\"role\"\n >\n @if (_items.length !== 0) {\n @for (item of _items; track item; let i = $index) {\n <ng-template\n [ngTemplateOutlet]=\"listItemDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n >\n </ng-template>\n }\n } @else {\n @if (!listItems.length && !_firstLoadingDone) {\n @if (!hasByLine) {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"40%\"\n ></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n </fd-skeleton>\n </li>\n }\n }\n <ng-content></ng-content>\n }\n </div>\n </fd-busy-indicator>\n }\n @if (!loadOnScroll) {\n @if (_items.length !== 0) {\n @for (item of _items; track item; let i = $index) {\n <ng-template\n [ngTemplateOutlet]=\"listItemDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n >\n </ng-template>\n }\n } @else {\n @if (!listItems.length && !_firstLoadingDone) {\n @if (!hasByLine) {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"40%\"></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n </fd-skeleton>\n </li>\n }\n }\n <ng-content></ng-content>\n }\n @if (loadMore && !loadOnScroll && _firstLoadingDone) {\n <li\n #listItem\n (click)=\"_getMoreData()\"\n fd-list-item\n (keydown)=\"_loadOnKeyPress($event)\"\n [class.fd-list__item--custom-content]=\"loadMoreContent\"\n class=\"fd-list__item fd-list__item--growing fd-list__item--action\"\n [tabindex]=\"0\"\n role=\"button\"\n >\n <ng-template [ngTemplateOutlet]=\"loadMoreElementContent\"></ng-template>\n </li>\n }\n }\n <ng-template #loadMoreElementContent>\n @if (loadMoreContent) {\n <div class=\"fd-list__title\">\n <ng-template\n [ngTemplateOutlet]=\"loadMoreContent.templateRef\"\n [ngTemplateOutletContext]=\"getLoadMoreContentContext()\"\n >\n </ng-template>\n </div>\n } @else {\n <button class=\"fd-list__title\">\n <fd-busy-indicator\n size=\"m\"\n class=\"fd-busy-indicator-custom\"\n [block]=\"true\"\n [loading]=\"_loading\"\n role=\"alert\"\n [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate) : loadTitle\"\n >\n </fd-busy-indicator>\n {{ loadTitle }}\n <ng-content select=\"#load\"></ng-content>\n </button>\n }\n </ng-template>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ObjectAttributeComponent } from '@fundamental-ngx/core/object-attribute';\n\n@Component({\n selector: 'fdp-object-list-item-row',\n template: ` <div class=\"fd-object-list__row\">\n <div class=\"fd-object-list__row-left\">\n <fd-object-attribute\n class=\"fd-object-list__object-attribute\"\n [islink]=\"islink\"\n [label]=\"attributeLabel\"\n [linkText]=\"linkedText\"\n >\n <ng-content select=\".attribute\"></ng-content>\n </fd-object-attribute>\n </div>\n <div class=\"fd-object-list__row-right\">\n <ng-content></ng-content>\n </div>\n </div>`,\n styleUrl: './object-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ObjectAttributeComponent]\n})\nexport class ObjectListItemRowComponent {\n /** object attribute label */\n @Input()\n attributeLabel: string;\n\n /** object attribute link text */\n @Input()\n linkedText: string;\n\n /** object attribute is a link */\n @Input()\n islink = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { ColorAccent } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { ObjectIdentifierComponent } from '@fundamental-ngx/core/object-identifier';\nimport { ObjectNumberComponent } from '@fundamental-ngx/core/object-number';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BaseListItem, StatusType } from '../base-list-item';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\n\n@Component({\n selector: 'fdp-object-list-item',\n templateUrl: './object-list-item.component.html',\n styleUrl: './object-list-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ObjectListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n NgTemplateOutlet,\n ListLinkDirective,\n RouterLink,\n ListTitleDirective,\n AvatarComponent,\n ObjectIdentifierComponent,\n ObjectNumberComponent,\n FormItemComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n ButtonComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class ObjectListItemComponent extends BaseListItem {\n /** define label for screen reader */\n @Input()\n introductionText: string;\n\n /** holds object number */\n @Input()\n amount: number;\n\n /** holds object number unit */\n @Input()\n currency: string;\n\n /** object number amount decimal limitation */\n @Input()\n decimal: number;\n\n /** object number status */\n @Input()\n numberStatus: StatusType;\n\n /** holds avatar label */\n @Input()\n label: string;\n\n /** holds avatar icon as image */\n @Input()\n glyph: string;\n\n /** Avatar to be circle or not */\n @Input()\n circle: boolean;\n\n /** Is avatar has placeholder */\n @Input()\n placeholder: boolean;\n\n /** Is avatar has tile */\n @Input()\n tile: boolean;\n\n /** Is avatar has colorAccent */\n @Input()\n colorAccent: ColorAccent;\n\n /** Avatar image path */\n @Input()\n image: string;\n\n /** Avatar is transparent */\n @Input()\n transparent: boolean;\n\n /** @hidden */\n @ContentChildren(ObjectListItemRowComponent)\n children: QueryList<ObjectListItemRowComponent>;\n}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (click)=\"_onItemClick()\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-object-list__item fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [attr.aria-selected]=\"_selected\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [attr.href]=\"link\"\n [attr.aria-label]=\"title\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n tabindex=\"-1\"\n >\n <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n </a>\n </div>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n class=\"fd-object-list__item\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n (click)=\"_onItemClick()\"\n [ariaRole]=\"role\"\n [attr.aria-selected]=\"_selectedAttr\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n class=\"fd-object-list__item\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </div>\n}\n<ng-template #objectTemplate>\n <div class=\"fd-object-list__container\">\n <!--Optional text-->\n @if (introductionText) {\n <div class=\"fd-object-list__intro\">{{ introductionText }}</div>\n }\n <!--header content-->\n <div class=\"fd-object-list__header\">\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n ></fd-avatar>\n }\n <!--left side header content-->\n <div class=\"fd-object-list__header-left\">\n <fd-object-identifier class=\"fd-object-list__object-identifier\">{{ title }}</fd-object-identifier>\n </div>\n <!--right side header content-->\n <div class=\"fd-object-list__header-right\">\n <fd-object-number\n class=\"fd-object-list__object-number\"\n [number]=\"amount\"\n [unit]=\"currency\"\n [status]=\"numberStatus\"\n [decimal]=\"decimal\"\n >\n </fd-object-number>\n </div>\n </div>\n <!--body content-->\n <div class=\"fd-object-list__content\">\n <ng-content select=\"fdp-object-list-item-row\"></ng-content>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox role=\"checkbox\" [(ngModel)]=\"_selected\" tabIndexValue=\"-1\"> </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button [value]=\"value\" [name]=\"name\" role=\"radio\" [(ngModel)]=\"selectionValue\">\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n title=\"detail\"\n [attr.aria-label]=\"'platformObjectListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.id]=\"'detail-' + id\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n role=\"button\"\n [attr.aria-label]=\"'platformObjectListItem.deleteActionAriaLabel' | fdTranslate\"\n title=\"delete\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n (click)=\"_onActionButtonClick('delete')\"\n [attr.id]=\"'delete-' + id\"\n ></button>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\nimport { ObjectListItemComponent } from './object-list-item.component';\n\n@NgModule({\n imports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule],\n exports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule]\n})\nexport class ObjectListItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n ListItemComponent,\n ListLinkDirective,\n ListSecondaryDirective,\n ListThumbnailDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ObjectStatusComponent } from '@fundamental-ngx/platform/object-status';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n selector: 'fdp-standard-list-item',\n templateUrl: './standard-list-item.component.html',\n providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n host: {\n role: 'none'\n },\n imports: [\n ListItemComponent,\n NgTemplateOutlet,\n ListLinkDirective,\n RouterLink,\n ListTitleDirective,\n IconComponent,\n AvatarComponent,\n NgClass,\n ListSecondaryDirective,\n ListThumbnailDirective,\n FormItemComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n ButtonComponent,\n ObjectStatusComponent,\n FdTranslatePipe,\n AsyncPipe\n ]\n})\nexport class StandardListItemComponent extends BaseListItem {}\n","<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </div>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </div>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { StandardListItemComponent } from './standard-list-item.component';\n\n@NgModule({\n imports: [StandardListItemComponent, ContentDensityModule],\n exports: [StandardListItemComponent, ContentDensityModule]\n})\nexport class StandardListItemModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { ActionListItemModule } from './action-list-item/action-list-item.module';\nimport { ListItemDef } from './base-list-item';\nimport { DisplayListItemModule } from './display-list-item/display-list-item.module';\nimport { FreeContentListItemComponent } from './free-content-list-item/free-content-list-item.component';\nimport { ListFooterComponent } from './list-group-footer.component';\nimport { ListGroupHeaderComponent } from './list-group-header.component';\nimport { ListComponent } from './list.component';\nimport { LoadMoreContentDirective } from './load-more-content.directive';\nimport { ObjectListItemModule } from './object-list-item/object-list-item.module';\nimport { StandardListItemModule } from './standard-list-item/standard-list-item.module';\n\nconst components = [\n ListComponent,\n ListFooterComponent,\n ListGroupHeaderComponent,\n ListItemDef,\n ContentDensityModule,\n StandardListItemModule,\n ObjectListItemModule,\n DisplayListItemModule,\n ActionListItemModule,\n FreeContentListItemComponent,\n LoadMoreContentDirective\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CoreListComponent","i1"],"mappings":"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"}
|