@fundamental-ngx/core 0.58.2-rc.0 → 0.58.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +26 -26
- package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +20 -20
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +28 -28
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +34 -34
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +25 -25
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +15 -15
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-button.mjs +15 -15
- package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +40 -40
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs +130 -126
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-content-density.mjs +25 -25
- package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +30 -30
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +64 -64
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +52 -52
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-facets.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +22 -22
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +70 -70
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-formatted-text.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-formatted-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +47 -47
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-icon.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-infinite-scroll.mjs +10 -8
- package/fesm2022/fundamental-ngx-core-infinite-scroll.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-inline-help.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +31 -31
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-link.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +80 -80
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +58 -56
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +37 -37
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +25 -25
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-toast.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-mobile-mode.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-mobile-mode.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +22 -22
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +15 -15
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +40 -40
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +88 -88
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +11 -11
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +31 -31
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +11 -11
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-panel.mjs +19 -19
- package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +42 -42
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +37 -37
- package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-scroll-spy.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-scroll-spy.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-scrollbar.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-scrollbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +20 -20
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-settings.mjs +52 -52
- package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shared.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +88 -75
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +12 -10
- package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +13 -9
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +49 -49
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +52 -52
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tests.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-text.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-theming.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tile.mjs +94 -94
- package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +11 -11
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-timeline.mjs +43 -43
- package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-title.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +19 -15
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +47 -47
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +32 -32
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +37 -37
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +64 -64
- package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs +28 -28
- package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core.mjs +4 -4
- package/fesm2022/fundamental-ngx-core.mjs.map +1 -1
- package/package.json +113 -113
- package/{types/fundamental-ngx-core-shellbar.d.ts → shellbar/index.d.ts} +21 -13
- package/{types/fundamental-ngx-core-toolbar.d.ts → toolbar/index.d.ts} +7 -8
- /package/{types/fundamental-ngx-core-action-bar.d.ts → action-bar/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-action-sheet.d.ts → action-sheet/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-avatar.d.ts → avatar/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-avatar-group.d.ts → avatar-group/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-avatar-group-legacy.d.ts → avatar-group-legacy/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-bar.d.ts → bar/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-breadcrumb.d.ts → breadcrumb/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-busy-indicator.d.ts → busy-indicator/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-button.d.ts → button/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-calendar.d.ts → calendar/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-card.d.ts → card/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-carousel.d.ts → carousel/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-checkbox.d.ts → checkbox/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-combobox.d.ts → combobox/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-content-density.d.ts → content-density/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-date-picker.d.ts → date-picker/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-datetime.d.ts → datetime/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-datetime-picker.d.ts → datetime-picker/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-dialog.d.ts → dialog/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-dynamic-page.d.ts → dynamic-page/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-dynamic-side-content.d.ts → dynamic-side-content/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-facets.d.ts → facets/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-feed-input.d.ts → feed-input/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-feed-list-item.d.ts → feed-list-item/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-file-uploader.d.ts → file-uploader/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-fixed-card-layout.d.ts → fixed-card-layout/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-flexible-column-layout.d.ts → flexible-column-layout/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-form.d.ts → form/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-formatted-text.d.ts → formatted-text/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-generic-tag.d.ts → generic-tag/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-grid-list.d.ts → grid-list/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-icon.d.ts → icon/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-illustrated-message.d.ts → illustrated-message/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core.d.ts → index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-infinite-scroll.d.ts → infinite-scroll/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-info-label.d.ts → info-label/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-inline-help.d.ts → inline-help/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-input-group.d.ts → input-group/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-layout-grid.d.ts → layout-grid/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-layout-panel.d.ts → layout-panel/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-link.d.ts → link/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-list.d.ts → list/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-menu.d.ts → menu/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-message-box.d.ts → message-box/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-message-page.d.ts → message-page/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-message-strip.d.ts → message-strip/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-message-toast.d.ts → message-toast/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-micro-process-flow.d.ts → micro-process-flow/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-mobile-mode.d.ts → mobile-mode/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-multi-combobox.d.ts → multi-combobox/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-multi-input.d.ts → multi-input/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-nested-list.d.ts → nested-list/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-notification.d.ts → notification/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-object-attribute.d.ts → object-attribute/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-object-identifier.d.ts → object-identifier/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-object-marker.d.ts → object-marker/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-object-number.d.ts → object-number/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-object-status.d.ts → object-status/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-overflow-layout.d.ts → overflow-layout/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-pagination.d.ts → pagination/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-panel.d.ts → panel/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-popover.d.ts → popover/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-product-switch.d.ts → product-switch/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-progress-indicator.d.ts → progress-indicator/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-quick-view.d.ts → quick-view/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-radio.d.ts → radio/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-rating-indicator.d.ts → rating-indicator/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-resizable-card-layout.d.ts → resizable-card-layout/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-scroll-spy.d.ts → scroll-spy/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-scrollbar.d.ts → scrollbar/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-segmented-button.d.ts → segmented-button/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-select.d.ts → select/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-settings.d.ts → settings/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-shared.d.ts → shared/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-side-navigation.d.ts → side-navigation/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-skeleton.d.ts → skeleton/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-slider.d.ts → slider/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-split-button.d.ts → split-button/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-status-indicator.d.ts → status-indicator/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-step-input.d.ts → step-input/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-switch.d.ts → switch/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-table.d.ts → table/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-tabs.d.ts → tabs/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-tests.d.ts → tests/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-text.d.ts → text/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-theming.d.ts → theming/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-tile.d.ts → tile/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-time.d.ts → time/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-time-picker.d.ts → time-picker/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-timeline.d.ts → timeline/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-title.d.ts → title/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-token.d.ts → token/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-tree.d.ts → tree/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-upload-collection.d.ts → upload-collection/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-user-menu.d.ts → user-menu/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-vertical-navigation.d.ts → vertical-navigation/index.d.ts} +0 -0
- /package/{types/fundamental-ngx-core-wizard.d.ts → wizard/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-select.mjs","sources":["../../../../libs/core/select/option/option.component.ts","../../../../libs/core/select/option/option.component.html","../../../../libs/core/select/select-key-manager.service.ts","../../../../libs/core/select/select.interface.ts","../../../../libs/core/select/select-mobile/select-mobile.component.ts","../../../../libs/core/select/select-mobile/select-mobile.component.html","../../../../libs/core/select/select-mobile/select-mobile.module.ts","../../../../libs/core/select/select.component.ts","../../../../libs/core/select/select.component.html","../../../../libs/core/select/select.module.ts","../../../../libs/core/select/fundamental-ngx-core-select.ts"],"sourcesContent":["import { FocusOrigin, FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { ListTitleDirective } from '@fundamental-ngx/core/list';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { startWith } from 'rxjs/operators';\nimport { OptionsInterface } from '../options.interface';\n\nlet optionUniqueId = 0;\n\n/**\n * Event object emitted by OptionComponent when\n * selected or deselected.\n */\nexport class FdOptionSelectionChange {\n /**\n * Reference to the OptionComponent that emitted the event.\n * @param source The option that emitted the event.\n * @param isUserInput Whether the change in the option's value was a result of a user interaction.\n */\n constructor(\n /** Reference to the option that emitted the event. */\n readonly source: OptionComponent,\n /** Whether the change in the option's value was a result of a user action. */\n readonly isUserInput = false\n ) {}\n}\n\n/**\n * Used to represent an option of the select component.\n */\n@Component({\n selector: '[fd-option], fd-option',\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-list__item',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': 'selected',\n '[class.is-focus]': 'active',\n '[attr.id]': 'id',\n '[tabindex]': '-1',\n role: 'option',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)'\n },\n styles: [\n `\n .fd-list__item[aria-disabled='true'],\n .fd-list__item.is-disabled,\n .fd-list__item:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .fd-list__item:disabled:focus {\n outline: none;\n }\n `\n ],\n imports: [ListTitleDirective, NgTemplateOutlet]\n})\nexport class OptionComponent implements AfterViewInit, AfterViewChecked, OnDestroy, FocusableOption, OptionsInterface {\n /** Option id attribute */\n @Input()\n id = `fd-option-${optionUniqueId++}`;\n\n /** Value of the option. Similar to how a native select operates. */\n @Input()\n value: any;\n\n /** Whether to disable this option specifically. */\n @Input()\n disabled = false;\n\n /**\n * Emits event when option is selected or deselected.\n */\n @Output()\n readonly selectionChange = new EventEmitter<FdOptionSelectionChange>();\n\n /** @hidden */\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @Hidden */\n @ContentChildren(ListTitleDirective)\n _listTitleDirectives: QueryList<ListTitleDirective> | undefined;\n\n /** @hidden */\n _renderer: 'plain' | 'title' = 'title';\n\n /**\n * The displayed value of the option. It shows the selected option in the select's trigger.\n */\n get viewValue(): string {\n return (this._elementRef.nativeElement.textContent || '').trim();\n }\n\n /** used in components like autocomplete where focus must remain on the input.*/\n get active(): boolean {\n return this._active;\n }\n\n /** @hidden */\n readonly _stateChanges = new Subject<void>();\n\n /** @hidden */\n private _mostRecentViewValue = '';\n\n /** @hidden */\n private _active = false;\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n /** @Hidden */\n ngAfterViewInit(): void {\n this._listTitleDirectives?.changes.pipe(startWith(null)).subscribe(() => {\n const directivesLength = this._listTitleDirectives?.length ?? 0;\n this._renderer = directivesLength > 0 ? 'plain' : 'title';\n this._changeDetectorRef.detectChanges();\n });\n }\n\n /**\n * @hidden\n * Since select components could be using the option's label to display the selected values\n * and they don't have a way of knowing if the option's label has changed\n * we have to check for changes in the DOM ourselves and dispatch an event\n */\n ngAfterViewChecked(): void {\n if (this.selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this._mostRecentViewValue) {\n this._mostRecentViewValue = viewValue;\n this._stateChanges.next();\n }\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._stateChanges.complete();\n }\n\n /** @hidden\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden\n * Focuses the element. */\n focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this._elementRef.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n /** @hidden\n * option value\n */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** @hidden\n * Returns HTMLElement representation of the component. */\n _getHtmlElement(): HTMLElement {\n return this._elementRef.nativeElement as HTMLElement;\n }\n\n /** Selects the option.\n * * @hidden\n */\n _select(): void {\n if (!this.selected) {\n this.selected = true;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, false));\n }\n }\n\n /** @hidden\n * Deselects the option.\n */\n _deselect(): void {\n if (this.selected) {\n this.selected = false;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, false));\n }\n }\n\n /**\n * Ensures the option is selected when activated from the keyboard.\n *\n * @hidden\n */\n _handleKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && !hasModifierKey(event)) {\n this._selectViaInteraction();\n event.preventDefault();\n }\n }\n\n /** @hidden */\n _selectViaInteraction(): void {\n if (!this.disabled) {\n this.selected = true;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, true));\n }\n }\n}\n","@if (_renderer === 'title') {\n <span fd-list-title>\n <ng-template [ngTemplateOutlet]=\"plainRenderer\"></ng-template>\n </span>\n} @else {\n <ng-template [ngTemplateOutlet]=\"plainRenderer\"></ng-template>\n}\n<ng-template #plainRenderer>\n <ng-content></ng-content>\n</ng-template>\n<ng-content select=\"[secondary]\"></ng-content>\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, END, ENTER, ESCAPE, HOME, SPACE, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Injectable } from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { OptionsInterface } from './options.interface';\nimport { SelectInterface } from './select.interface';\n\n@Injectable()\nexport class SelectKeyManagerService {\n /** @hidden */\n _component: SelectInterface;\n\n /** @hidden */\n _keyManager: ActiveDescendantKeyManager<OptionsInterface>;\n\n /**\n * Sets up a key manager to listen to keyboard events on the overlay panel.\n * @hidden\n */\n _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<OptionsInterface>(this._component._options)\n .withTypeAhead(this._component.typeaheadDebounceInterval)\n .withVerticalOrientation()\n .withHorizontalOrientation(this._component.rtl$() ? 'rtl' : 'ltr')\n .withAllowedModifierKeys(['shiftKey']);\n\n this._keyManager.tabOut.pipe(takeUntilDestroyed(this._component._destroy)).subscribe(() => {\n // tab focus fix for mobile\n if (!this._component.mobile) {\n this._component.focus();\n this._component.close(false, true);\n }\n });\n\n this._keyManager.change.pipe(takeUntilDestroyed(this._component._destroy)).subscribe(() => {\n if (this._component._isOpen && this._component._optionPanel) {\n this._scrollActiveOptionIntoView();\n } else if (!this._component._isOpen && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n\n /** @hidden */\n _scrollActiveOptionIntoView(): void {\n const activeOptionIndex = this._keyManager.activeItemIndex || 0;\n this._component._optionPanel.nativeElement.parentElement.scrollTop = this._component._getOptionScrollPosition(\n activeOptionIndex,\n this._component._getItemHeight(),\n this._component._optionPanel.nativeElement.scrollTop\n );\n }\n\n /**\n * Handles keyboard events while the select is closed.\n * @hidden\n */\n _handleClosedKeydown(event: KeyboardEvent): void {\n const isOpenKey = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n const manager = this._keyManager;\n\n // Open the select on ALT + arrow key to match the native <select>\n if (!manager.isTyping() && isOpenKey && !hasModifierKey(event)) {\n // prevents the page from scrolling down when pressing space\n event.preventDefault();\n this._component.open();\n } else {\n const previouslySelectedOption = this._component.selected;\n\n if (KeyUtil.isKeyCode(event, [HOME, END])) {\n if (KeyUtil.isKeyCode(event, HOME)) {\n manager.setFirstItemActive();\n } else {\n manager.setLastItemActive();\n }\n event.preventDefault();\n }\n\n const selectedOption = this._component.selected;\n\n // a11y Since the value has changed, we need to announce it.\n if (selectedOption && previouslySelectedOption !== selectedOption) {\n this._component._liveAnnouncer.announce((selectedOption as OptionsInterface).viewValue, 10000);\n }\n manager.onKeydown(event);\n }\n }\n\n /**\n * Handles keyboard events when the selected is open.\n *\n * @hidden\n */\n _handleOpenKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const isArrowKey = KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW]);\n const isTyping = manager.isTyping();\n\n if (KeyUtil.isKeyCode(event, [HOME, END])) {\n event.preventDefault();\n if (KeyUtil.isKeyCode(event, HOME)) {\n manager.setFirstItemActive();\n } else {\n manager.setLastItemActive();\n }\n } else if ((isArrowKey && event.altKey) || KeyUtil.isKeyCode(event, [ESCAPE])) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this._component.blur();\n this._component.close();\n // When user is typing do nothing,\n // because the typing sequence can include the space key.\n } else if (\n !isTyping &&\n KeyUtil.isKeyCode(event, [ENTER, SPACE]) &&\n manager.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n this._component.blur();\n } else if (!isTyping && KeyUtil.isKeyCode(event, [TAB]) && this._component.mobile) {\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n}\n","import { DestroyRef, ElementRef, EventEmitter, InjectionToken, QueryList, Signal } from '@angular/core';\n\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { MobileMode, MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { OptionComponent } from './option/option.component';\n\nexport const SELECT_COMPONENT = new InjectionToken<SelectInterface>('SelectInterface');\n\n/**\n * Select Interface to have typing and avoid circular dependency between\n * SelectComponent <==> SelectMobileComponent\n */\nexport interface SelectInterface<TOption = any> extends MobileMode {\n typeaheadDebounceInterval: number;\n rtl$: Signal<boolean>;\n selected: OptionComponent;\n mobileConfig: MobileModeConfig;\n _options: QueryList<TOption>;\n _destroy: DestroyRef;\n _optionPanel: ElementRef;\n _isOpen: boolean;\n _calculatedMaxHeight: number;\n _liveAnnouncer: LiveAnnouncer;\n\n isOpenChange: EventEmitter<boolean>;\n valueChange: EventEmitter<any>;\n\n close(forceClose?: boolean, tabOut?: boolean): void;\n open(): void;\n focus(): void;\n blur(): void;\n _getItemHeight(): number;\n _getOptionScrollPosition(optionIndex: number, optionHeight: number, currentScrollPosition: number): void;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { SELECT_COMPONENT, SelectInterface } from '../select.interface';\n\n/**\n * This component provides extended mobile support for Select component to render list of option since full screen\n * dialog.\n */\n@Component({\n selector: 'fd-select-mobile',\n templateUrl: './select-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DynamicComponentService],\n imports: [\n ButtonBarComponent,\n TitleComponent,\n TitleComponent,\n NgTemplateOutlet,\n ButtonBarComponent,\n DialogComponent,\n DialogHeaderComponent,\n DialogFooterComponent,\n DialogBodyComponent,\n DialogCloseButtonComponent\n ]\n})\nexport class SelectMobileComponent extends MobileModeBase<SelectInterface> implements OnInit, AfterViewInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\n childContent: TemplateRef<any> | null = null;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(@Inject(SELECT_COMPONENT) _selectComponent: SelectInterface) {\n super(_selectComponent, MobileModeControl.SELECT);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onItemKeydown(event: KeyboardEvent): void {\n if (event && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this._component.close(true);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnSelectOpenChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._openDialog();\n this.dialogRef.hide(true);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef.close();\n this._subscriptions.unsubscribe();\n }\n\n /**\n * Only when we have Approve.\n * @hidden\n */\n _cancel(): void {\n this._component.close(true);\n }\n\n /** @hidden */\n _approve(): void {\n this._component.close(true);\n }\n\n /** @hidden Hide/Show the Dialog when Select Open/Close*/\n private _listenOnSelectOpenChange(): void {\n this._subscriptions.add(\n this._component.isOpenChange.subscribe((isOpen) => {\n this._elementRef.nativeElement.blur();\n this.dialogRef.hide(!isOpen);\n })\n );\n }\n\n /** @hidden */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n ...this.dialogConfig,\n mobile: true,\n disablePaddings: true,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n ariaLabelledBy: 'fd-dialog-header'\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog tabindex=\"-1\" [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 id=\"fd-dialog-header\" fd-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button\n role=\"button\"\n aria-label=\"close\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"_cancel()\"\n ></button>\n }\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent\"></ng-template>\n </fd-dialog-body>\n @if (mobileConfig.approveButtonText || mobileConfig.cancelButtonText) {\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"_approve()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar [label]=\"mobileConfig.cancelButtonText!\" (click)=\"_cancel()\"> </fd-button-bar>\n }\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { SelectMobileComponent } from './select-mobile.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [DialogModule, ButtonComponent, SelectMobileComponent],\n exports: [SelectMobileComponent],\n providers: [DynamicComponentService]\n})\nexport class SelectMobileModule {}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n inject,\n isDevMode\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { Observable, Subscription, defer, merge } from 'rxjs';\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\n\nimport {\n DynamicComponentService,\n KeyUtil,\n ModuleDeprecation,\n Nullable,\n RtlService,\n destroyObservable\n} from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverFillMode } from '@fundamental-ngx/core/shared';\n\nimport { ENTER, ESCAPE, SPACE } from '@angular/cdk/keycodes';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormFieldAdvancedStateMessage, FormStates, SingleDropdownValueControl } from '@fundamental-ngx/cdk/forms';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { ListComponent, ListMessageDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { FdOptionSelectionChange, OptionComponent } from './option/option.component';\nimport { SelectKeyManagerService } from './select-key-manager.service';\nimport { SelectMobileComponent } from './select-mobile/select-mobile.component';\nimport { SELECT_COMPONENT, SelectInterface } from './select.interface';\n\nlet selectUniqueId = 0;\n\nconst SELECT_HEADER_IDENTIFIER = '.fd-list__group-header';\n\nexport const SELECT_PANEL_MAX_HEIGHT = 250;\n\n/** The height of the select items in `rem` units. */\nexport const SELECT_ITEM_HEIGHT_EM = 4;\n\nexport type TextOverflowMode = 'full' | 'ellipsis';\n\nexport enum TextOverflowModeEnum {\n FULL = 'full',\n ELLIPSIS = 'ellipsis'\n}\n\n/**\n * Select component intended to mimic\n * the behaviour of the native select element.\n */\n@Component({\n selector: 'fd-select',\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-select',\n '[class.fd-select--inline]': 'inline',\n // @deprecated leaving class fd-select-custom-class for backwards compatibility\n '[class.fd-select-custom-class]': 'inline',\n // @deprecated leaving class fd-select-custom-class--mobile for backwards compatibility\n '[class.fd-select-custom-class--mobile]': 'mobile'\n },\n providers: [\n {\n provide: SELECT_COMPONENT,\n useExisting: SelectComponent\n },\n registerFormItemControl(SelectComponent),\n SelectKeyManagerService,\n contentDensityObserverProviders()\n ],\n imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n NgClass,\n IconComponent,\n ListComponent,\n ListMessageDirective,\n FdTranslatePipe,\n ButtonComponent,\n ListTitleDirective\n ]\n})\nexport class SelectComponent<T = any>\n implements\n SingleDropdownValueControl,\n ControlValueAccessor,\n SelectInterface,\n OnInit,\n AfterViewInit,\n AfterContentInit,\n OnChanges,\n OnDestroy,\n FormItemControl\n{\n /** @deprecated\n * it is handled internally by controlTemplate != null|undefined is\n * Equal as extendedBodyTemplate as true.\n * Whether option components contain more than basic text. */\n @Input()\n set extendedBodyTemplate(value: boolean) {\n this._extendedBodyTemplate = value;\n }\n\n get extendedBodyTemplate(): boolean {\n return this._extendedBodyTemplate;\n }\n\n /** Scrolling strategy to be used for popover. */\n @Input()\n scrollStrategy: ScrollStrategy;\n\n /**\n * Controls how long text is displayed in the dropdown list of the Select component.\n *\n * - `'ellipsis'`: Truncates the text with an ellipsis (`...`) if it exceeds a certain length.\n * - `'full'`: Displays the entire text on multiple lines, ensuring full visibility.\n */\n @Input()\n textOverflow: TextOverflowMode = 'ellipsis';\n\n /** The ID of the control. */\n @Input()\n controlId = `fd-select-${selectUniqueId++}`;\n\n /** Holds the control state of select */\n @Input()\n state: Nullable<FormStates>;\n\n /** Whether the select component should be displayed in mobile mode. */\n @Input()\n mobile = false;\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: Nullable<string>;\n\n /** Whether the select component is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the select component is readonly. */\n @Input()\n readonly = false;\n\n /** Placeholder for the select. Appears in the triggerbox if no option is selected. */\n @Input()\n placeholder: string;\n\n /** Value of the select control. */\n @Input()\n set value(newValue: any) {\n if (newValue !== this._internalValue) {\n this.writeValue(newValue);\n this._internalValue = newValue;\n }\n }\n get value(): any {\n return this._internalValue;\n }\n\n /** Max height of the popover. Any overflowing elements will be accessible through scrolling. */\n @Input()\n maxHeight: string;\n\n /** Glyph to add icon in the select component. */\n @Input()\n glyph = 'slim-arrow-down';\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Whether close the popover on outside click. */\n @Input()\n closeOnOutsideClick = true;\n\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n @Input()\n fillControlMode: PopoverFillMode = 'at-least';\n\n /** Custom template used to build control body. */\n @Input()\n controlTemplate: TemplateRef<any> | undefined;\n\n /** The element to which the popover should be appended. */\n @Input()\n appendTo: ElementRef;\n\n /**\n * If the option should be unselected and value changed to undefined, when the current value is\n * not presented in option array. Switching it off can be handy, when there is some delay between providing\n * possible options and chosen value.\n */\n @Input()\n unselectMissingOption = true;\n\n /** Time to wait in milliseconds after the last keydown before focusing or selecting option based on alphanumeric keys. */\n @Input()\n typeaheadDebounceInterval = 250;\n\n /** Binds to control aria-labelledBy attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets control aria-label attribute value */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Select Input Mobile Configuration */\n @Input()\n mobileConfig: MobileModeConfig = { hasCloseButton: true };\n\n /** Should select be inlined. */\n @Input()\n inline = true;\n\n /** Additional classname for the select control element. */\n @Input()\n selectControlClass: Nullable<string>;\n\n /** Additional classname for the select dropdown button element. */\n @Input()\n selectDropdownButtonClass: Nullable<string>;\n\n /** Holds advanced message renderer with respect to state. */\n @Input()\n advancedStateMessage: Nullable<FormFieldAdvancedStateMessage>;\n\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n @Input()\n tabOutStrategy: 'close' | 'closeAndSelect' = 'close';\n\n /** Event emitted when the popover open state changes. */\n @Output()\n readonly isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the selected value of the select changes. */\n @Output()\n readonly valueChange = new EventEmitter<T>();\n\n /** @hidden */\n @ContentChildren(OptionComponent, { descendants: true })\n _options: QueryList<OptionComponent>;\n\n /** @hidden */\n @ViewChild('selectControl')\n _controlElementRef: ElementRef<HTMLDivElement>;\n\n /** Reference to element containing list of options */\n @ViewChild('selectOptionsListTemplate')\n selectOptionsListTemplate: TemplateRef<any>;\n\n /** @hidden\n * Reference to root element for the mobile mode dialog */\n @ViewChild('dialogContainer')\n _dialogContainerElementRef: ElementRef;\n\n /**\n * Overlay pane containing the options.\n * @hidden\n */\n @ViewChild(CdkConnectedOverlay)\n _overlayDir: CdkConnectedOverlay;\n\n /** @hidden\n * Referent to the option;s container\n */\n @ViewChild('optionPanel', { read: ElementRef })\n _optionPanel: ElementRef;\n\n /** Whether popover is opened\n * @hidden\n */\n _isOpen = false;\n\n /** @hidden */\n _tabIndex: number;\n\n /** @hidden */\n _liveAnnouncer: LiveAnnouncer;\n\n /** @hidden */\n _internalValue: any;\n\n /** @hidden */\n _calculatedMaxHeight: number;\n\n /** @hidden */\n _rtl = false;\n\n /** @hidden */\n _selectionModel: SelectionModel<OptionComponent>;\n\n /** @hidden */\n get showEllipsis(): boolean {\n return this.textOverflow === TextOverflowModeEnum.ELLIPSIS;\n }\n\n /**\n * @hidden\n * Triggers when component is destroyed\n */\n readonly _destroy = inject(DestroyRef);\n\n /** @hidden */\n get _selectControlClass(): string {\n return [this.state ? `is-${this.state}` : '', this.selectControlClass]\n .filter((className) => !!className)\n .join(' ');\n }\n\n /**\n * @hidden\n * Combined stream of all of the child options' change events.\n */\n readonly _optionSelectionChanges: Observable<FdOptionSelectionChange> = defer(() => {\n const _options = this._options;\n\n return _options?.changes.pipe(\n startWith(_options),\n switchMap(() => merge(..._options.map((option) => option.selectionChange)))\n );\n });\n\n /** Selected option. */\n get selected(): OptionComponent {\n return this._selectionModel.selected[0];\n }\n\n /** Retrieves selected value if any. */\n get triggerValue(): string {\n const emptyValue = ' ';\n if (this._selectionModel.isEmpty()) {\n return this.placeholder || emptyValue;\n }\n return this.selected.viewValue || this.placeholder || emptyValue;\n }\n\n /** equal to close\n * Tells the OptionList if it's closable by simply selecting the item either with CLICK | SPACE | ENTER.\n * When we are in mobile mode (mobile=true) and have we have enabled confirmation buttons then we\n * dont close option list. We close only after we hit confirm button.\n */\n get canClose(): boolean {\n return !(this.mobile && this.mobileConfig.approveButtonText);\n }\n\n /** Whether control can be interacted with */\n get isInteractive(): boolean {\n return !(this.readonly || this.disabled);\n }\n\n /**\n * Check if we can emit a value. They are 3 different paths where we can emit value:\n * - We are not in mobile mode [mobile]=false\n * - We are in mobile mode [mobile]=true and mobile dialog as just close X button to dismiss it\n * - We are in mobile mode [mobile]=true and mobile dialog has ApproveButton available and\n * dialog is closed. (meaning we already clicked this button)\n */\n get canEmitValueChange(): boolean {\n return (\n !this.mobile ||\n (this.mobile &&\n // Approve + Cancel\n !!this.mobileConfig.approveButtonText &&\n !this._isOpen) ||\n // CloseButton. Emits when you click on the option item\n (!!this.mobileConfig.hasCloseButton && !!this.mobileConfig.approveButtonText === false)\n );\n }\n\n /** Function to compare the option values with the selected values. */\n @Input()\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n if (typeof fn !== 'function') {\n throw Error('compareWith` must be a function.');\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n\n get compareWith(): (o1: any, o2: any) => boolean {\n return this._compareWith;\n }\n\n /** @hidden */\n get focused(): boolean {\n return this._focused || this._isOpen;\n }\n\n /** @hidden */\n get calculatedMaxHeight(): number {\n return this._maxHeight || this._calculatedMaxHeight;\n }\n /** @hidden */\n readonly rtl$ = computed(() => !!this._rtlService?.rtlSignal());\n\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private _extendedBodyTemplate = false;\n\n /** @hidden */\n private _controlElemFontSize = 0;\n\n /** @hidden */\n private _focused = false;\n\n /**\n * @hidden\n * Stored calculated maxHeight from Option Panel\n */\n private _maxHeight: number;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(\n @Attribute('tabindex') _tabIndex: string,\n private readonly _keyManagerService: SelectKeyManagerService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService,\n @Optional() @Self() private readonly ngControl: NgControl,\n @Optional() private readonly _injector: Injector,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n this._tabIndex = parseInt(_tabIndex, 10) || 0;\n }\n\n /** @hidden */\n @HostListener('window:resize')\n _resizeScrollHandler(): void {\n this._updateCalculatedHeight();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled && !this.readonly) {\n this._isOpen\n ? this._keyManagerService._handleOpenKeydown(event)\n : this._keyManagerService._handleClosedKeydown(event);\n }\n if (KeyUtil.isKeyCode(event, [ESCAPE, ENTER, SPACE])) {\n this._controlElementRef.nativeElement.focus();\n }\n }\n\n /** Toggles the open state of the select. */\n @HostListener('click')\n toggle(): void {\n this._isOpen ? this.close() : this.open();\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._tabIndex = this.disabled ? -1 : 0;\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n _compareWith = (o1: any, o2: any): boolean => o1 === o2;\n\n /** @hidden */\n ngOnInit(): void {\n this._initializeCommonBehavior();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._keyManagerService._initKeyManager();\n this._setupMobileMode();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._registerEventsAfterContentInit();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['typeaheadDebounceInterval'] && this._keyManagerService._keyManager) {\n this._keyManagerService._keyManager.withTypeAhead(this.typeaheadDebounceInterval);\n } else if (changes['disabled']) {\n this._tabIndex = this.disabled ? -1 : 0;\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** Opens the select popover body. */\n open(): void {\n if (this.disabled || this.readonly || !this._options || !this._getItemCount() || this._isOpen) {\n return;\n }\n this._isOpen = true;\n\n this._controlElemFontSize = parseInt(\n getComputedStyle(this._controlElementRef.nativeElement).fontSize || '0',\n 10\n );\n\n this._keyManagerService._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n this._controlElementRef.nativeElement.focus();\n this.isOpenChange.emit(true);\n }\n\n /** @hidden */\n close(forceClose = false, tabOut = false): void {\n if (this._isOpen || forceClose) {\n if (tabOut && this.tabOutStrategy === 'closeAndSelect') {\n this._keyManagerService._keyManager.activeItem?._selectViaInteraction();\n }\n this._isOpen = false;\n this._keyManagerService._keyManager.withHorizontalOrientation(this.rtl$() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n\n this.isOpenChange.emit(false);\n }\n }\n\n /** Focuses select control. */\n focus(): void {\n (this._controlElementRef?.nativeElement as HTMLElement).focus();\n }\n\n /** Blurs select control. */\n blur(): void {\n (this._controlElementRef?.nativeElement as HTMLElement).blur();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden from ControlValue Accessor */\n writeValue(value: any): void {\n if (this._options) {\n this._setSelectionByValue(value);\n }\n }\n\n /** @hidden */\n _setSelectionByValue(value: any | any[]): void {\n this._selectionModel.clear();\n const correspondingOption = this._selectValue(value);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManagerService._keyManager.setActiveItem(correspondingOption);\n } else if (!this._isOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManagerService._keyManager.setActiveItem(-1);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n _selectValue(value: any): OptionComponent | undefined {\n const correspondingOption = this._options.find((option: OptionComponent) => {\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n /** @hidden */\n _popoverOpenChangeHandle(isOpen: boolean): void {\n isOpen ? this.open() : this.close();\n }\n\n /** @hidden Returns _keyManagerService. */\n _getKeyService(): SelectKeyManagerService {\n return this._keyManagerService;\n }\n\n /** @hidden */\n _setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n\n this._tabIndex = -1;\n }\n\n /** @hidden */\n _highlightCorrectOption(): void {\n if (this._keyManagerService._keyManager && this._selectionModel.isEmpty()) {\n this._keyManagerService._keyManager.setFirstItemActive();\n } else if (this._keyManagerService._keyManager && !this._selectionModel.isEmpty()) {\n this._keyManagerService._keyManager.setActiveItem(this.selected);\n }\n }\n\n /** @hidden */\n _initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._internalValue);\n });\n }\n\n /**\n * Expose outside of this mixin to give component ability\n * to update caluclatedMaxHeight if needed\n * @hidden\n */\n _updateCalculatedHeight(): void {\n this._calculatedMaxHeight = window.innerHeight * 0.45;\n }\n\n /** @hidden */\n _getOptionScrollPosition(optionIndex: number, itemHeight: number, currentScrollPosition: number): number {\n const optionHeight = this._options.get(optionIndex)?._getHtmlElement().offsetHeight || itemHeight;\n const optionOffset = optionIndex * optionHeight;\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + SELECT_PANEL_MAX_HEIGHT) {\n return Math.max(0, optionOffset - SELECT_PANEL_MAX_HEIGHT + optionHeight);\n }\n return currentScrollPosition;\n }\n\n /** @hidden */\n _getItemHeight(): number {\n // also include border with default value 1.\n return this._controlElemFontSize * SELECT_ITEM_HEIGHT_EM + 1;\n }\n\n /** @hidden */\n _initializeCommonBehavior(): void {\n this._selectionModel = new SelectionModel<OptionComponent>(false);\n this._keyManagerService._component = this;\n\n this._updateCalculatedHeight();\n }\n\n /** @hidden */\n _registerEventsAfterContentInit(): void {\n this._selectionModel.changed.pipe(takeUntilDestroyed(this._destroy)).subscribe((event) => {\n event.added.forEach((option) => option._select());\n event.removed.forEach((option) => option._deselect());\n });\n\n this._options.changes.pipe(startWith(null), takeUntilDestroyed(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n\n /** @hidden */\n _getAriaActiveDescendant(): string | null {\n if (this._isOpen && this._keyManagerService._keyManager && this._keyManagerService._keyManager.activeItem) {\n return this._keyManagerService._keyManager.activeItem.id;\n }\n return null;\n }\n\n /** @hidden */\n _onFocus(): void {\n if (!this.disabled) {\n this._focused = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden */\n _onBlur(): void {\n this._focused = false;\n\n if (!this.disabled && !this._isOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden */\n _buttonClick(): void {}\n\n /** @hidden */\n private _resetOptions(): void {\n const changedOrDestroyed = merge(this._options.changes, destroyObservable(this._destroy));\n\n this._optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe((event) => {\n this._onSelect(event.source, event.isUserInput);\n\n if (event.isUserInput && this._isOpen) {\n this.close();\n this.focus();\n }\n });\n\n // Listen to changes in the internal state of the _options and react accordingly.\n // Handles cases like the labels of the selected _options changing.\n merge(...this._options.map((option) => option._stateChanges))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * @hidden\n * Invoked when an option is clicked.\n */\n private _onSelect(option: OptionComponent, isUserInput: boolean): void {\n const wasSelected = this._selectionModel.isSelected(option);\n if ((option.value === null || option.value === undefined) && this.unselectMissingOption) {\n option._deselect();\n this._selectionModel.clear();\n this._emitSelectChange(option.value);\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManagerService._keyManager.setActiveItem(option);\n }\n }\n\n if (wasSelected !== this._selectionModel.isSelected(option) || this.mobile) {\n this._emitSelectChange();\n }\n }\n\n /** @hidden */\n private _emitSelectChange(defaultVal?: any): void {\n if (this.canEmitValueChange) {\n this._internalValue =\n this._selectionModel.selected && this._selectionModel.selected.length !== 0\n ? (this.selected as OptionComponent).value\n : defaultVal;\n this.valueChange.emit(this._internalValue);\n this.onChange(this._internalValue);\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden */\n private _getItemCount(): number {\n if (this._optionPanel && this._headerElements().length > 0) {\n return this._options.length + this._headerElements().length;\n }\n return this._options.length;\n }\n\n /** @hidden */\n private _headerElements(): NodeListOf<Element> {\n return this._optionPanel?.nativeElement.querySelectorAll(SELECT_HEADER_IDENTIFIER);\n }\n\n /** @hidden */\n private async _setupMobileMode(): Promise<void> {\n if (!this.mobile) {\n return;\n }\n\n const injector = Injector.create({\n providers: [{ provide: SELECT_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n this.selectOptionsListTemplate,\n SelectMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n { injector }\n );\n }\n}\n\nexport class DeprecatedSelectCSSClasses implements ModuleDeprecation {\n /** @hidden */\n message = `Select CSS classes fd-select--compact, fd-select--compact--mobile, fd-popover-custom-select-body, fd-popover-custom-list are deprecated`;\n\n /** @hidden */\n alternative = {\n name: 'Inspect the elements of the Select component to see the new classes',\n link: ['/core', 'select']\n };\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <!-- @deprecated leaving class fd-popover-custom-list to support backwards compatibility-->\n <fd-popover\n additionalBodyClass=\"fd-select-dropdown fd-popover-custom-list\"\n [isOpen]=\"_isOpen\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [disabled]=\"disabled || readonly\"\n [appendTo]=\"appendTo\"\n [scrollStrategy]=\"scrollStrategy\"\n [closeOnEscapeKey]=\"true\"\n [fillControlMode]=\"fillControlMode\"\n [maxWidth]=\"600\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-template>\n </fd-popover-control>\n <!-- @deprecated leaving class fd-popover-custom-select-body to support backwards compatibility-->\n <fd-popover-body class=\"fd-popover-custom-select-body\">\n <ng-template [ngTemplateOutlet]=\"selectOptionsListTemplate\"></ng-template>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #selectInputControlTemplate>\n <div\n class=\"fd-select__control\"\n #selectControl\n [class]=\"_selectControlClass\"\n [class.is-active]=\"_isOpen\"\n [class.is-expanded]=\"_isOpen\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [class.is-placeholder]=\"!selected\"\n [attr.tabindex]=\"_tabIndex\"\n [attr.id]=\"controlId\"\n [attr.aria-active]=\"_isOpen\"\n aria-live=\"polite\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-roledescription=\"listbox\"\n [attr.aria-expanded]=\"_isOpen\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-controls]=\"controlId + '-list-box'\"\n [attr.aria-required]=\"required\"\n [attr.title]=\"triggerValue\"\n [attr.aria-label]=\"ariaLabel || ('platformSelect.selectOptionLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-activedescendant]=\"_getAriaActiveDescendant()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n >\n <div class=\"fd-select__text-content\">\n <ng-template\n [ngTemplateOutlet]=\"controlTemplate ? controlTemplate : defaultSelectContent\"\n [ngTemplateOutletContext]=\"{ $implicit: triggerValue, selected: selected }\"\n >\n </ng-template>\n <ng-template #defaultSelectContent>\n {{ triggerValue }}\n </ng-template>\n </div>\n @if (!readonly) {\n <span\n fd-button\n fdType=\"transparent\"\n class=\"fd-select__button\"\n [ngClass]=\"selectDropdownButtonClass\"\n [class.is-disabled]=\"disabled\"\n >\n <fd-icon [ariaHidden]=\"true\" [glyph]=\"glyph\" [font]=\"glyphFont\"></fd-icon>\n </span>\n }\n </div>\n</ng-template>\n<ng-template #selectOptionsListTemplate>\n <ul\n #optionPanel\n fd-list\n class=\"fd-select-options\"\n role=\"listbox\"\n tabindex=\"-1\"\n [mobileMode]=\"mobile\"\n [dropdownMode]=\"true\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [attr.id]=\"controlId + '-list-box'\"\n [style.max-height]=\"maxHeight || calculatedMaxHeight + 'px'\"\n [style.padding-block-start.rem]=\"showEllipsis && stateMessage ? 2 : 0\"\n [attr.tooltip]=\"triggerValue\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n [class.fd-select-message]=\"!showEllipsis\"\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n >\n @if (!showEllipsis) {\n <span fd-list-title>\n {{ stateMessage }}\n </span>\n } @else {\n <span>\n {{ stateMessage }}\n </span>\n }\n </li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li fd-list-message tabindex=\"-1\" role=\"presentation\" [type]=\"state || 'default'\">\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n </ul>\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-template>\n <div #dialogContainer></div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { OptionComponent } from './option/option.component';\nimport { SelectComponent } from './select.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n exports: [SelectComponent, OptionComponent],\n imports: [SelectComponent, OptionComponent]\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SelectKeyManagerService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-select.mjs","sources":["../tmp-esm2022/select/option/option.component.js","../tmp-esm2022/select/select-key-manager.service.js","../tmp-esm2022/select/select.interface.js","../tmp-esm2022/select/select-mobile/select-mobile.component.js","../tmp-esm2022/select/select-mobile/select-mobile.module.js","../tmp-esm2022/select/select.component.js","../tmp-esm2022/select/select.module.js","../tmp-esm2022/select/fundamental-ngx-core-select.js"],"sourcesContent":["import { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nlet optionUniqueId = 0;\n/**\n * Event object emitted by OptionComponent when\n * selected or deselected.\n */\nexport class FdOptionSelectionChange {\n /**\n * Reference to the OptionComponent that emitted the event.\n * @param source The option that emitted the event.\n * @param isUserInput Whether the change in the option's value was a result of a user interaction.\n */\n constructor(\n /** Reference to the option that emitted the event. */\n source, \n /** Whether the change in the option's value was a result of a user action. */\n isUserInput = false) {\n this.source = source;\n this.isUserInput = isUserInput;\n }\n}\n/**\n * Used to represent an option of the select component.\n */\nexport class OptionComponent {\n /**\n * The displayed value of the option. It shows the selected option in the select's trigger.\n */\n get viewValue() {\n return (this._elementRef.nativeElement.textContent || '').trim();\n }\n /** used in components like autocomplete where focus must remain on the input.*/\n get active() {\n return this._active;\n }\n /** @hidden */\n constructor(_elementRef, _changeDetectorRef) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n /** Option id attribute */\n this.id = `fd-option-${optionUniqueId++}`;\n /** Whether to disable this option specifically. */\n this.disabled = false;\n /**\n * Emits event when option is selected or deselected.\n */\n this.selectionChange = new EventEmitter();\n /** @hidden */\n this.selected = false;\n /** @hidden */\n this._renderer = 'title';\n /** @hidden */\n this._stateChanges = new Subject();\n /** @hidden */\n this._mostRecentViewValue = '';\n /** @hidden */\n this._active = false;\n }\n /** @Hidden */\n ngAfterViewInit() {\n this._listTitleDirectives?.changes.pipe(startWith(null)).subscribe(() => {\n const directivesLength = this._listTitleDirectives?.length ?? 0;\n this._renderer = directivesLength > 0 ? 'plain' : 'title';\n this._changeDetectorRef.detectChanges();\n });\n }\n /**\n * @hidden\n * Since select components could be using the option's label to display the selected values\n * and they don't have a way of knowing if the option's label has changed\n * we have to check for changes in the DOM ourselves and dispatch an event\n */\n ngAfterViewChecked() {\n if (this.selected) {\n const viewValue = this.viewValue;\n if (viewValue !== this._mostRecentViewValue) {\n this._mostRecentViewValue = viewValue;\n this._stateChanges.next();\n }\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n /** @hidden\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles() {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n /** @hidden\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles() {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n /** @hidden\n * Focuses the element. */\n focus(_origin, options) {\n const element = this._elementRef.nativeElement;\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n /** @hidden\n * option value\n */\n getLabel() {\n return this.viewValue;\n }\n /** @hidden\n * Returns HTMLElement representation of the component. */\n _getHtmlElement() {\n return this._elementRef.nativeElement;\n }\n /** Selects the option.\n * * @hidden\n */\n _select() {\n if (!this.selected) {\n this.selected = true;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, false));\n }\n }\n /** @hidden\n * Deselects the option.\n */\n _deselect() {\n if (this.selected) {\n this.selected = false;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, false));\n }\n }\n /**\n * Ensures the option is selected when activated from the keyboard.\n *\n * @hidden\n */\n _handleKeydown(event) {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && !hasModifierKey(event)) {\n this._selectViaInteraction();\n event.preventDefault();\n }\n }\n /** @hidden */\n _selectViaInteraction() {\n if (!this.disabled) {\n this.selected = true;\n this._changeDetectorRef.markForCheck();\n this.selectionChange.emit(new FdOptionSelectionChange(this, true));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: OptionComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: OptionComponent, isStandalone: true, selector: \"[fd-option], fd-option\", inputs: { id: \"id\", value: \"value\", disabled: \"disabled\" }, outputs: { selectionChange: \"selectionChange\" }, host: { attributes: { \"role\": \"option\" }, listeners: { \"click\": \"_selectViaInteraction()\", \"keydown\": \"_handleKeydown($event)\" }, properties: { \"attr.aria-disabled\": \"disabled\", \"attr.aria-selected\": \"selected\", \"class.is-focus\": \"active\", \"attr.id\": \"id\", \"tabindex\": \"-1\", \"class.is-selected\": \"this.selected\" }, classAttribute: \"fd-list__item\" }, queries: [{ propertyName: \"_listTitleDirectives\", predicate: ListTitleDirective }], ngImport: i0, template: \"@if (_renderer === 'title') {\\n <span fd-list-title>\\n <ng-template [ngTemplateOutlet]=\\\"plainRenderer\\\"></ng-template>\\n </span>\\n} @else {\\n <ng-template [ngTemplateOutlet]=\\\"plainRenderer\\\"></ng-template>\\n}\\n<ng-template #plainRenderer>\\n <ng-content></ng-content>\\n</ng-template>\\n<ng-content select=\\\"[secondary]\\\"></ng-content>\\n\", styles: [\".fd-list__item[aria-disabled=true],.fd-list__item.is-disabled,.fd-list__item:disabled{opacity:.4;cursor:not-allowed}.fd-list__item:disabled:focus{outline:none}\\n\"], dependencies: [{ kind: \"directive\", type: ListTitleDirective, selector: \"[fd-list-title], [fdListTitle]\", inputs: [\"wrap\", \"truncate\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: OptionComponent, decorators: [{\n type: Component,\n args: [{ selector: '[fd-option], fd-option', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-list__item',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': 'selected',\n '[class.is-focus]': 'active',\n '[attr.id]': 'id',\n '[tabindex]': '-1',\n role: 'option',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)'\n }, imports: [ListTitleDirective, NgTemplateOutlet], template: \"@if (_renderer === 'title') {\\n <span fd-list-title>\\n <ng-template [ngTemplateOutlet]=\\\"plainRenderer\\\"></ng-template>\\n </span>\\n} @else {\\n <ng-template [ngTemplateOutlet]=\\\"plainRenderer\\\"></ng-template>\\n}\\n<ng-template #plainRenderer>\\n <ng-content></ng-content>\\n</ng-template>\\n<ng-content select=\\\"[secondary]\\\"></ng-content>\\n\", styles: [\".fd-list__item[aria-disabled=true],.fd-list__item.is-disabled,.fd-list__item:disabled{opacity:.4;cursor:not-allowed}.fd-list__item:disabled:focus{outline:none}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{\n type: Input\n }], value: [{\n type: Input\n }], disabled: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], selected: [{\n type: HostBinding,\n args: ['class.is-selected']\n }], _listTitleDirectives: [{\n type: ContentChildren,\n args: [ListTitleDirective]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWxlY3Qvb3B0aW9uL29wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VsZWN0L29wdGlvbi9vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzNDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQUV2Qjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDOzs7O09BSUc7SUFDSDtJQUNJLHNEQUFzRDtJQUM3QyxNQUF1QjtJQUNoQyw4RUFBOEU7SUFDckUsY0FBYyxLQUFLO1FBRm5CLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBRXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQzdCLENBQUM7Q0FDUDtBQUVEOztHQUVHO0FBaUNILE1BQU0sT0FBTyxlQUFlO0lBOEJ4Qjs7T0FFRztJQUNI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QjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDTCxDQUFDOzhHQWhMUSxlQUFlO2tHQUFmLGVBQWUsa2tCQXdCUCxrQkFBa0IsNkJDMUd2QyxxV0FXQSwyTkRxRWMsa0JBQWtCLHlHQUFFLGdCQUFnQjs7MkZBRXJDLGVBQWU7a0JBaEMzQixTQUFTOytCQUNJLHdCQUF3QixpQkFFbkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsZUFBZTt3QkFDdEIsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsa0JBQWtCLEVBQUUsUUFBUTt3QkFDNUIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLFlBQVksRUFBRSxJQUFJO3dCQUNsQixJQUFJLEVBQUUsUUFBUTt3QkFDZCxTQUFTLEVBQUUseUJBQXlCO3dCQUNwQyxXQUFXLEVBQUUsd0JBQXdCO3FCQUN4QyxXQWVRLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7K0dBSy9DLEVBQUU7c0JBREQsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQU9HLGVBQWU7c0JBRHZCLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFLaEMsb0JBQW9CO3NCQURuQixlQUFlO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzT3JpZ2luLCBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UsIGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4uL29wdGlvbnMuaW50ZXJmYWNlJztcblxubGV0IG9wdGlvblVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBFdmVudCBvYmplY3QgZW1pdHRlZCBieSBPcHRpb25Db21wb25lbnQgd2hlblxuICogc2VsZWN0ZWQgb3IgZGVzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlIHtcbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIE9wdGlvbkNvbXBvbmVudCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LlxuICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIG9wdGlvbiB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LlxuICAgICAqIEBwYXJhbSBpc1VzZXJJbnB1dCBXaGV0aGVyIHRoZSBjaGFuZ2UgaW4gdGhlIG9wdGlvbidzIHZhbHVlIHdhcyBhIHJlc3VsdCBvZiBhIHVzZXIgaW50ZXJhY3Rpb24uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIG9wdGlvbiB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LiAqL1xuICAgICAgICByZWFkb25seSBzb3VyY2U6IE9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgLyoqIFdoZXRoZXIgdGhlIGNoYW5nZSBpbiB0aGUgb3B0aW9uJ3MgdmFsdWUgd2FzIGEgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgICAgIHJlYWRvbmx5IGlzVXNlcklucHV0ID0gZmFsc2VcbiAgICApIHt9XG59XG5cbi8qKlxuICogVXNlZCB0byByZXByZXNlbnQgYW4gb3B0aW9uIG9mIHRoZSBzZWxlY3QgY29tcG9uZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1tmZC1vcHRpb25dLCBmZC1vcHRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWxpc3RfX2l0ZW0nLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQnLFxuICAgICAgICAnW2NsYXNzLmlzLWZvY3VzXSc6ICdhY3RpdmUnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgJ1t0YWJpbmRleF0nOiAnLTEnLFxuICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgJyhjbGljayknOiAnX3NlbGVjdFZpYUludGVyYWN0aW9uKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ19oYW5kbGVLZXlkb3duKCRldmVudCknXG4gICAgfSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgLmZkLWxpc3RfX2l0ZW1bYXJpYS1kaXNhYmxlZD0ndHJ1ZSddLFxuICAgICAgICAgICAgLmZkLWxpc3RfX2l0ZW0uaXMtZGlzYWJsZWQsXG4gICAgICAgICAgICAuZmQtbGlzdF9faXRlbTpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mZC1saXN0X19pdGVtOmRpc2FibGVkOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbTGlzdFRpdGxlRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3ksIEZvY3VzYWJsZU9wdGlvbiwgT3B0aW9uc0ludGVyZmFjZSB7XG4gICAgLyoqIE9wdGlvbiBpZCBhdHRyaWJ1dGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gYGZkLW9wdGlvbi0ke29wdGlvblVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBWYWx1ZSBvZiB0aGUgb3B0aW9uLiBTaW1pbGFyIHRvIGhvdyBhIG5hdGl2ZSBzZWxlY3Qgb3BlcmF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogYW55O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGlzIG9wdGlvbiBzcGVjaWZpY2FsbHkuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgZXZlbnQgd2hlbiBvcHRpb24gaXMgc2VsZWN0ZWQgb3IgZGVzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBzZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKExpc3RUaXRsZURpcmVjdGl2ZSlcbiAgICBfbGlzdFRpdGxlRGlyZWN0aXZlczogUXVlcnlMaXN0PExpc3RUaXRsZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yZW5kZXJlcjogJ3BsYWluJyB8ICd0aXRsZScgPSAndGl0bGUnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRpc3BsYXllZCB2YWx1ZSBvZiB0aGUgb3B0aW9uLiBJdCBzaG93cyB0aGUgc2VsZWN0ZWQgb3B0aW9uIGluIHRoZSBzZWxlY3QncyB0cmlnZ2VyLlxuICAgICAqL1xuICAgIGdldCB2aWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfHwgJycpLnRyaW0oKTtcbiAgICB9XG5cbiAgICAvKiogdXNlZCBpbiBjb21wb25lbnRzIGxpa2UgYXV0b2NvbXBsZXRlIHdoZXJlIGZvY3VzIG11c3QgcmVtYWluIG9uIHRoZSBpbnB1dC4qL1xuICAgIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbW9zdFJlY2VudFZpZXdWYWx1ZSA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0VGl0bGVEaXJlY3RpdmVzPy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aXZlc0xlbmd0aCA9IHRoaXMuX2xpc3RUaXRsZURpcmVjdGl2ZXM/Lmxlbmd0aCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIgPSBkaXJlY3RpdmVzTGVuZ3RoID4gMCA/ICdwbGFpbicgOiAndGl0bGUnO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU2luY2Ugc2VsZWN0IGNvbXBvbmVudHMgY291bGQgYmUgdXNpbmcgdGhlIG9wdGlvbidzIGxhYmVsIHRvIGRpc3BsYXkgdGhlIHNlbGVjdGVkIHZhbHVlc1xuICAgICAqIGFuZCB0aGV5IGRvbid0IGhhdmUgYSB3YXkgb2Yga25vd2luZyBpZiB0aGUgb3B0aW9uJ3MgbGFiZWwgaGFzIGNoYW5nZWRcbiAgICAgKiB3ZSBoYXZlIHRvIGNoZWNrIGZvciBjaGFuZ2VzIGluIHRoZSBET00gb3Vyc2VsdmVzIGFuZCBkaXNwYXRjaCBhbiBldmVudFxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodmlld1ZhbHVlICE9PSB0aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZSA9IHZpZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIGRpc3BsYXkgc3R5bGVzIG9uIHRoZSBvcHRpb24gdG8gbWFrZSBpdCBhcHBlYXJcbiAgICAgKiBhY3RpdmUuIFRoaXMgaXMgdXNlZCBieSB0aGUgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgc28ga2V5XG4gICAgICogZXZlbnRzIHdpbGwgZGlzcGxheSB0aGUgcHJvcGVyIG9wdGlvbnMgYXMgYWN0aXZlIG9uIGFycm93IGtleSBldmVudHMuXG4gICAgICovXG4gICAgc2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUaGlzIG1ldGhvZCByZW1vdmVzIGRpc3BsYXkgc3R5bGVzIG9uIHRoZSBvcHRpb24gdGhhdCBtYWRlIGl0IGFwcGVhclxuICAgICAqIGFjdGl2ZS4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciBzbyBrZXlcbiAgICAgKiBldmVudHMgd2lsbCBkaXNwbGF5IHRoZSBwcm9wZXIgb3B0aW9ucyBhcyBhY3RpdmUgb24gYXJyb3cga2V5IGV2ZW50cy5cbiAgICAgKi9cbiAgICBzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogRm9jdXNlcyB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cyhfb3JpZ2luPzogRm9jdXNPcmlnaW4sIG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIG9wdGlvbiB2YWx1ZVxuICAgICAqL1xuICAgIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJldHVybnMgSFRNTEVsZW1lbnQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBfZ2V0SHRtbEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3RzIHRoZSBvcHRpb24uXG4gICAgICogKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3NlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChuZXcgRmRPcHRpb25TZWxlY3Rpb25DaGFuZ2UodGhpcywgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogRGVzZWxlY3RzIHRoZSBvcHRpb24uXG4gICAgICovXG4gICAgX2Rlc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBGZE9wdGlvblNlbGVjdGlvbkNoYW5nZSh0aGlzLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5zdXJlcyB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIHdoZW4gYWN0aXZhdGVkIGZyb20gdGhlIGtleWJvYXJkLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmICFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobmV3IEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlKHRoaXMsIHRydWUpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoX3JlbmRlcmVyID09PSAndGl0bGUnKSB7XG4gICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBsYWluUmVuZGVyZXJcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFpblJlbmRlcmVyXCI+PC9uZy10ZW1wbGF0ZT5cbn1cbjxuZy10ZW1wbGF0ZSAjcGxhaW5SZW5kZXJlcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlY29uZGFyeV1cIj48L25nLWNvbnRlbnQ+XG4iXX0=","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, END, ENTER, ESCAPE, HOME, SPACE, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Injectable } from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport * as i0 from \"@angular/core\";\nexport class SelectKeyManagerService {\n /**\n * Sets up a key manager to listen to keyboard events on the overlay panel.\n * @hidden\n */\n _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager(this._component._options)\n .withTypeAhead(this._component.typeaheadDebounceInterval)\n .withVerticalOrientation()\n .withHorizontalOrientation(this._component.rtl$() ? 'rtl' : 'ltr')\n .withAllowedModifierKeys(['shiftKey']);\n this._keyManager.tabOut.pipe(takeUntilDestroyed(this._component._destroy)).subscribe(() => {\n // tab focus fix for mobile\n if (!this._component.mobile) {\n this._component.focus();\n this._component.close(false, true);\n }\n });\n this._keyManager.change.pipe(takeUntilDestroyed(this._component._destroy)).subscribe(() => {\n if (this._component._isOpen && this._component._optionPanel) {\n this._scrollActiveOptionIntoView();\n }\n else if (!this._component._isOpen && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n /** @hidden */\n _scrollActiveOptionIntoView() {\n const activeOptionIndex = this._keyManager.activeItemIndex || 0;\n this._component._optionPanel.nativeElement.parentElement.scrollTop = this._component._getOptionScrollPosition(activeOptionIndex, this._component._getItemHeight(), this._component._optionPanel.nativeElement.scrollTop);\n }\n /**\n * Handles keyboard events while the select is closed.\n * @hidden\n */\n _handleClosedKeydown(event) {\n const isOpenKey = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native <select>\n if (!manager.isTyping() && isOpenKey && !hasModifierKey(event)) {\n // prevents the page from scrolling down when pressing space\n event.preventDefault();\n this._component.open();\n }\n else {\n const previouslySelectedOption = this._component.selected;\n if (KeyUtil.isKeyCode(event, [HOME, END])) {\n if (KeyUtil.isKeyCode(event, HOME)) {\n manager.setFirstItemActive();\n }\n else {\n manager.setLastItemActive();\n }\n event.preventDefault();\n }\n const selectedOption = this._component.selected;\n // a11y Since the value has changed, we need to announce it.\n if (selectedOption && previouslySelectedOption !== selectedOption) {\n this._component._liveAnnouncer.announce(selectedOption.viewValue, 10000);\n }\n manager.onKeydown(event);\n }\n }\n /**\n * Handles keyboard events when the selected is open.\n *\n * @hidden\n */\n _handleOpenKeydown(event) {\n const manager = this._keyManager;\n const isArrowKey = KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW]);\n const isTyping = manager.isTyping();\n if (KeyUtil.isKeyCode(event, [HOME, END])) {\n event.preventDefault();\n if (KeyUtil.isKeyCode(event, HOME)) {\n manager.setFirstItemActive();\n }\n else {\n manager.setLastItemActive();\n }\n }\n else if ((isArrowKey && event.altKey) || KeyUtil.isKeyCode(event, [ESCAPE])) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this._component.blur();\n this._component.close();\n // When user is typing do nothing,\n // because the typing sequence can include the space key.\n }\n else if (!isTyping &&\n KeyUtil.isKeyCode(event, [ENTER, SPACE]) &&\n manager.activeItem &&\n !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n this._component.blur();\n }\n else if (!isTyping && KeyUtil.isKeyCode(event, [TAB]) && this._component.mobile) {\n event.preventDefault();\n }\n else {\n manager.onKeydown(event);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectKeyManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectKeyManagerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectKeyManagerService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWtleS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VsZWN0L3NlbGVjdC1rZXktbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUtoRSxNQUFNLE9BQU8sdUJBQXVCO0lBT2hDOzs7T0FHRztJQUNILGVBQWU7UUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQTBCLENBQW1CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ3hGLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDO2FBQ3hELHVCQUF1QixFQUFFO2FBQ3pCLHlCQUF5QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ2pFLHVCQUF1QixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVB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SyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxVQUFVO1lBQ2xCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUN4QixDQUFDO1lBQ0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7OEdBdEhRLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIFNQQUNFLCBUQUIsIFVQX0FSUk9XLCBoYXNNb2RpZmllcktleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWxlY3RJbnRlcmZhY2UgfSBmcm9tICcuL3NlbGVjdC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VsZWN0S2V5TWFuYWdlclNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbXBvbmVudDogU2VsZWN0SW50ZXJmYWNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uc0ludGVyZmFjZT47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHVwIGEga2V5IG1hbmFnZXIgdG8gbGlzdGVuIHRvIGtleWJvYXJkIGV2ZW50cyBvbiB0aGUgb3ZlcmxheSBwYW5lbC5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2luaXRLZXlNYW5hZ2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPE9wdGlvbnNJbnRlcmZhY2U+KHRoaXMuX2NvbXBvbmVudC5fb3B0aW9ucylcbiAgICAgICAgICAgIC53aXRoVHlwZUFoZWFkKHRoaXMuX2NvbXBvbmVudC50eXBlYWhlYWREZWJvdW5jZUludGVydmFsKVxuICAgICAgICAgICAgLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcbiAgICAgICAgICAgIC53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2NvbXBvbmVudC5ydGwkKCkgPyAncnRsJyA6ICdsdHInKVxuICAgICAgICAgICAgLndpdGhBbGxvd2VkTW9kaWZpZXJLZXlzKFsnc2hpZnRLZXknXSk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci50YWJPdXQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fY29tcG9uZW50Ll9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIC8vIHRhYiBmb2N1cyBmaXggZm9yIG1vYmlsZVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnQubW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50LmNsb3NlKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5jaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fY29tcG9uZW50Ll9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wb25lbnQuX2lzT3BlbiAmJiB0aGlzLl9jb21wb25lbnQuX29wdGlvblBhbmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2Nyb2xsQWN0aXZlT3B0aW9uSW50b1ZpZXcoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NvbXBvbmVudC5faXNPcGVuICYmIHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2Nyb2xsQWN0aXZlT3B0aW9uSW50b1ZpZXcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9wdGlvbkluZGV4ID0gdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggfHwgMDtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50Ll9vcHRpb25QYW5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5fY29tcG9uZW50Ll9nZXRPcHRpb25TY3JvbGxQb3NpdGlvbihcbiAgICAgICAgICAgIGFjdGl2ZU9wdGlvbkluZGV4LFxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50Ll9nZXRJdGVtSGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuX29wdGlvblBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBrZXlib2FyZCBldmVudHMgd2hpbGUgdGhlIHNlbGVjdCBpcyBjbG9zZWQuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9oYW5kbGVDbG9zZWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzT3BlbktleSA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSk7XG4gICAgICAgIGNvbnN0IG1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyO1xuXG4gICAgICAgIC8vIE9wZW4gdGhlIHNlbGVjdCBvbiBBTFQgKyBhcnJvdyBrZXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSA8c2VsZWN0PlxuICAgICAgICBpZiAoIW1hbmFnZXIuaXNUeXBpbmcoKSAmJiBpc09wZW5LZXkgJiYgIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkge1xuICAgICAgICAgICAgLy8gcHJldmVudHMgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmcgZG93biB3aGVuIHByZXNzaW5nIHNwYWNlXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50Lm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzbHlTZWxlY3RlZE9wdGlvbiA9IHRoaXMuX2NvbXBvbmVudC5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbSE9NRSwgRU5EXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEhPTUUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5zZXRMYXN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuX2NvbXBvbmVudC5zZWxlY3RlZDtcblxuICAgICAgICAgICAgLy8gYTExeSBTaW5jZSB0aGUgdmFsdWUgaGFzIGNoYW5nZWQsIHdlIG5lZWQgdG8gYW5ub3VuY2UgaXQuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb24gJiYgcHJldmlvdXNseVNlbGVjdGVkT3B0aW9uICE9PSBzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSgoc2VsZWN0ZWRPcHRpb24gYXMgT3B0aW9uc0ludGVyZmFjZSkudmlld1ZhbHVlLCAxMDAwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGVuIHRoZSBzZWxlY3RlZCBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9oYW5kbGVPcGVuS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlcjtcbiAgICAgICAgY29uc3QgaXNBcnJvd0tleSA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbVVBfQVJST1csIERPV05fQVJST1ddKTtcbiAgICAgICAgY29uc3QgaXNUeXBpbmcgPSBtYW5hZ2VyLmlzVHlwaW5nKCk7XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbSE9NRSwgRU5EXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEhPTUUpKSB7XG4gICAgICAgICAgICAgICAgbWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWFuYWdlci5zZXRMYXN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKChpc0Fycm93S2V5ICYmIGV2ZW50LmFsdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFU0NBUEVdKSkge1xuICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIHNlbGVjdCBvbiBBTFQgKyBhcnJvdyBrZXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSA8c2VsZWN0PlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5ibHVyKCk7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuY2xvc2UoKTtcbiAgICAgICAgICAgIC8vIFdoZW4gdXNlciBpcyB0eXBpbmcgZG8gbm90aGluZyxcbiAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHR5cGluZyBzZXF1ZW5jZSBjYW4gaW5jbHVkZSB0aGUgc3BhY2Uga2V5LlxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIWlzVHlwaW5nICYmXG4gICAgICAgICAgICBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmXG4gICAgICAgICAgICBtYW5hZ2VyLmFjdGl2ZUl0ZW0gJiZcbiAgICAgICAgICAgICFoYXNNb2RpZmllcktleShldmVudClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgbWFuYWdlci5hY3RpdmVJdGVtLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50LmJsdXIoKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNUeXBpbmcgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtUQUJdKSAmJiB0aGlzLl9jb21wb25lbnQubW9iaWxlKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const SELECT_COMPONENT = new InjectionToken('SelectInterface');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWxlY3Qvc2VsZWN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdDLGNBQWMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFNeEcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTW9iaWxlTW9kZSwgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFNFTEVDVF9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VsZWN0SW50ZXJmYWNlPignU2VsZWN0SW50ZXJmYWNlJyk7XG5cbi8qKlxuICogU2VsZWN0IEludGVyZmFjZSB0byBoYXZlIHR5cGluZyBhbmQgYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuXG4gKiBTZWxlY3RDb21wb25lbnQgPD09PiBTZWxlY3RNb2JpbGVDb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJbnRlcmZhY2U8VE9wdGlvbiA9IGFueT4gZXh0ZW5kcyBNb2JpbGVNb2RlIHtcbiAgICB0eXBlYWhlYWREZWJvdW5jZUludGVydmFsOiBudW1iZXI7XG4gICAgcnRsJDogU2lnbmFsPGJvb2xlYW4+O1xuICAgIHNlbGVjdGVkOiBPcHRpb25Db21wb25lbnQ7XG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnO1xuICAgIF9vcHRpb25zOiBRdWVyeUxpc3Q8VE9wdGlvbj47XG4gICAgX2Rlc3Ryb3k6IERlc3Ryb3lSZWY7XG4gICAgX29wdGlvblBhbmVsOiBFbGVtZW50UmVmO1xuICAgIF9pc09wZW46IGJvb2xlYW47XG4gICAgX2NhbGN1bGF0ZWRNYXhIZWlnaHQ6IG51bWJlcjtcbiAgICBfbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlcjtcblxuICAgIGlzT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIGNsb3NlKGZvcmNlQ2xvc2U/OiBib29sZWFuLCB0YWJPdXQ/OiBib29sZWFuKTogdm9pZDtcbiAgICBvcGVuKCk6IHZvaWQ7XG4gICAgZm9jdXMoKTogdm9pZDtcbiAgICBibHVyKCk6IHZvaWQ7XG4gICAgX2dldEl0ZW1IZWlnaHQoKTogbnVtYmVyO1xuICAgIF9nZXRPcHRpb25TY3JvbGxQb3NpdGlvbihvcHRpb25JbmRleDogbnVtYmVyLCBvcHRpb25IZWlnaHQ6IG51bWJlciwgY3VycmVudFNjcm9sbFBvc2l0aW9uOiBudW1iZXIpOiB2b2lkO1xufVxuIl19","import { ChangeDetectionStrategy, Component, HostListener, Inject, TemplateRef, ViewChild } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { DialogBodyComponent, DialogCloseButtonComponent, DialogComponent, DialogFooterComponent, DialogHeaderComponent } from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { SELECT_COMPONENT } from '../select.interface';\nimport * as i0 from \"@angular/core\";\n/**\n * This component provides extended mobile support for Select component to render list of option since full screen\n * dialog.\n */\nexport class SelectMobileComponent extends MobileModeBase {\n /** @hidden */\n constructor(_selectComponent) {\n super(_selectComponent, MobileModeControl.SELECT);\n /**\n * @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\n this.childContent = null;\n /** @hidden */\n this._subscriptions = new Subscription();\n }\n /** @hidden */\n onItemKeydown(event) {\n if (event && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this._component.close(true);\n }\n }\n /** @hidden */\n ngOnInit() {\n this._listenOnSelectOpenChange();\n }\n /** @hidden */\n ngAfterViewInit() {\n this._openDialog();\n this.dialogRef.hide(true);\n }\n /** @hidden */\n ngOnDestroy() {\n this.dialogRef.close();\n this._subscriptions.unsubscribe();\n }\n /**\n * Only when we have Approve.\n * @hidden\n */\n _cancel() {\n this._component.close(true);\n }\n /** @hidden */\n _approve() {\n this._component.close(true);\n }\n /** @hidden Hide/Show the Dialog when Select Open/Close*/\n _listenOnSelectOpenChange() {\n this._subscriptions.add(this._component.isOpenChange.subscribe((isOpen) => {\n this._elementRef.nativeElement.blur();\n this.dialogRef.hide(!isOpen);\n }));\n }\n /** @hidden */\n _openDialog() {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n ...this.dialogConfig,\n mobile: true,\n disablePaddings: true,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n ariaLabelledBy: 'fd-dialog-header'\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileComponent, deps: [{ token: SELECT_COMPONENT }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: SelectMobileComponent, isStandalone: true, selector: \"fd-select-mobile\", host: { listeners: { \"keydown\": \"onItemKeydown($event)\" } }, providers: [DynamicComponentService], viewQueries: [{ propertyName: \"_dialogTemplate\", first: true, predicate: [\"dialogTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\\\"dialogConfig\\\" #dialogTemplate>\\n <fd-dialog tabindex=\\\"-1\\\" [dialogConfig]=\\\"dialogConfig\\\" [dialogRef]=\\\"dialog\\\">\\n <fd-dialog-header>\\n @if (mobileConfig.title) {\\n <h1 id=\\\"fd-dialog-header\\\" fd-title>{{ mobileConfig.title }}</h1>\\n }\\n @if (mobileConfig.hasCloseButton) {\\n <button\\n role=\\\"button\\\"\\n aria-label=\\\"close\\\"\\n fd-dialog-close-button\\n [mobile]=\\\"true\\\"\\n (click)=\\\"_cancel()\\\"\\n ></button>\\n }\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <ng-template [ngTemplateOutlet]=\\\"childContent\\\"></ng-template>\\n </fd-dialog-body>\\n @if (mobileConfig.approveButtonText || mobileConfig.cancelButtonText) {\\n <fd-dialog-footer>\\n @if (mobileConfig.approveButtonText) {\\n <fd-button-bar fdType=\\\"emphasized\\\" [label]=\\\"mobileConfig.approveButtonText!\\\" (click)=\\\"_approve()\\\">\\n </fd-button-bar>\\n }\\n @if (mobileConfig.cancelButtonText) {\\n <fd-button-bar [label]=\\\"mobileConfig.cancelButtonText!\\\" (click)=\\\"_cancel()\\\"> </fd-button-bar>\\n }\\n </fd-dialog-footer>\\n }\\n </fd-dialog>\\n</ng-template>\\n\", dependencies: [{ kind: \"component\", type: ButtonBarComponent, selector: \"fd-button-bar\", inputs: [\"fullWidth\", \"fdType\", \"title\", \"ariaLabelledby\", \"id\"] }, { kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: DialogComponent, selector: \"fd-dialog\", inputs: [\"class\", \"dialogRef\", \"dialogConfig\"] }, { kind: \"component\", type: DialogHeaderComponent, selector: \"fd-dialog-header\" }, { kind: \"component\", type: DialogFooterComponent, selector: \"fd-dialog-footer\" }, { kind: \"component\", type: DialogBodyComponent, selector: \"fd-dialog-body\", inputs: [\"disablePaddings\"] }, { kind: \"component\", type: DialogCloseButtonComponent, selector: \"[fd-dialog-close-button]\", inputs: [\"mobile\", \"title\", \"ariaLabel\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fd-select-mobile', changeDetection: ChangeDetectionStrategy.OnPush, providers: [DynamicComponentService], imports: [\n ButtonBarComponent,\n TitleComponent,\n TitleComponent,\n NgTemplateOutlet,\n ButtonBarComponent,\n DialogComponent,\n DialogHeaderComponent,\n DialogFooterComponent,\n DialogBodyComponent,\n DialogCloseButtonComponent\n ], template: \"<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\\\"dialogConfig\\\" #dialogTemplate>\\n <fd-dialog tabindex=\\\"-1\\\" [dialogConfig]=\\\"dialogConfig\\\" [dialogRef]=\\\"dialog\\\">\\n <fd-dialog-header>\\n @if (mobileConfig.title) {\\n <h1 id=\\\"fd-dialog-header\\\" fd-title>{{ mobileConfig.title }}</h1>\\n }\\n @if (mobileConfig.hasCloseButton) {\\n <button\\n role=\\\"button\\\"\\n aria-label=\\\"close\\\"\\n fd-dialog-close-button\\n [mobile]=\\\"true\\\"\\n (click)=\\\"_cancel()\\\"\\n ></button>\\n }\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <ng-template [ngTemplateOutlet]=\\\"childContent\\\"></ng-template>\\n </fd-dialog-body>\\n @if (mobileConfig.approveButtonText || mobileConfig.cancelButtonText) {\\n <fd-dialog-footer>\\n @if (mobileConfig.approveButtonText) {\\n <fd-button-bar fdType=\\\"emphasized\\\" [label]=\\\"mobileConfig.approveButtonText!\\\" (click)=\\\"_approve()\\\">\\n </fd-button-bar>\\n }\\n @if (mobileConfig.cancelButtonText) {\\n <fd-button-bar [label]=\\\"mobileConfig.cancelButtonText!\\\" (click)=\\\"_cancel()\\\"> </fd-button-bar>\\n }\\n </fd-dialog-footer>\\n }\\n </fd-dialog>\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [SELECT_COMPONENT]\n }] }], propDecorators: { _dialogTemplate: [{\n type: ViewChild,\n args: ['dialogTemplate']\n }], onItemKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VsZWN0L3NlbGVjdC1tb2JpbGUvc2VsZWN0LW1vYmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VsZWN0L3NlbGVjdC1tb2JpbGUvc2VsZWN0LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7O0FBRXhFOzs7R0FHRztBQW1CSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsY0FBK0I7SUFldEUsY0FBYztJQUNkLFlBQXNDLGdCQUFpQztRQUNu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QUFnQjtnQkFvQjNCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25CYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IE1vYmlsZU1vZGVCYXNlLCBNb2JpbGVNb2RlQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09NUE9ORU5ULCBTZWxlY3RJbnRlcmZhY2UgfSBmcm9tICcuLi9zZWxlY3QuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBwcm92aWRlcyBleHRlbmRlZCBtb2JpbGUgc3VwcG9ydCBmb3IgU2VsZWN0IGNvbXBvbmVudCB0byByZW5kZXIgbGlzdCBvZiBvcHRpb24gc2luY2UgZnVsbCBzY3JlZW5cbiAqIGRpYWxvZy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zZWxlY3QtbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRHluYW1pY0NvbXBvbmVudFNlcnZpY2VdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQnV0dG9uQmFyQ29tcG9uZW50LFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nQ2xvc2VCdXR0b25Db21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE1vYmlsZUNvbXBvbmVudCBleHRlbmRzIE1vYmlsZU1vZGVCYXNlPFNlbGVjdEludGVyZmFjZT4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dUZW1wbGF0ZScpXG4gICAgX2RpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIGZyb20gbW9iaWxlIGNsYXNzIGNhbiBub3QgcHJlZml4IF8sXG4gICAgICogdG8gYXZvaWQgYnVpbGQgaXNzdWVzXG4gICAgICovXG4gICAgY2hpbGRDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU0VMRUNUX0NPTVBPTkVOVCkgX3NlbGVjdENvbXBvbmVudDogU2VsZWN0SW50ZXJmYWNlKSB7XG4gICAgICAgIHN1cGVyKF9zZWxlY3RDb21wb25lbnQsIE1vYmlsZU1vZGVDb250cm9sLlNFTEVDVCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRV0pKSB7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuY2xvc2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PblNlbGVjdE9wZW5DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3BlbkRpYWxvZygpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5oaWRlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbmx5IHdoZW4gd2UgaGF2ZSBBcHByb3ZlLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQuY2xvc2UodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYXBwcm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LmNsb3NlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhpZGUvU2hvdyB0aGUgRGlhbG9nIHdoZW4gU2VsZWN0IE9wZW4vQ2xvc2UqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uU2VsZWN0T3BlbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuaXNPcGVuQ2hhbmdlLnN1YnNjcmliZSgoaXNPcGVuKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5oaWRlKCFpc09wZW4pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuX2RpYWxvZ1RlbXBsYXRlLCB7XG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ2ZkLWRpYWxvZy1oZWFkZXInXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbZmREaWFsb2dUZW1wbGF0ZV0gbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgdGFiaW5kZXg9XCItMVwiIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICBAaWYgKG1vYmlsZUNvbmZpZy50aXRsZSkge1xuICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXJcIiBmZC10aXRsZT57eyBtb2JpbGVDb25maWcudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChtb2JpbGVDb25maWcuaGFzQ2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpbGRDb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICAgICAgQGlmIChtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgfHwgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQpIHtcbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgICAgIEBpZiAobW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGZkVHlwZT1cImVtcGhhc2l6ZWRcIiBbbGFiZWxdPVwibW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0IVwiIChjbGljayk9XCJfYXBwcm92ZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChtb2JpbGVDb25maWcuY2FuY2VsQnV0dG9uVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBbbGFiZWxdPVwibW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQhXCIgKGNsaWNrKT1cIl9jYW5jZWwoKVwiPiA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICB9XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { SelectMobileComponent } from './select-mobile.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\nexport class SelectMobileModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileModule, imports: [DialogModule, ButtonComponent, SelectMobileComponent], exports: [SelectMobileComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileModule, providers: [DynamicComponentService], imports: [DialogModule, ButtonComponent, SelectMobileComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectMobileModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DialogModule, ButtonComponent, SelectMobileComponent],\n exports: [SelectMobileComponent],\n providers: [DynamicComponentService]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW1vYmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VsZWN0L3NlbGVjdC1tb2JpbGUvc2VsZWN0LW1vYmlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUVsRTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUpqQixZQUFZLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixhQUNwRCxxQkFBcUI7K0dBR3RCLGtCQUFrQixhQUZoQixDQUFDLHVCQUF1QixDQUFDLFlBRjFCLFlBQVksRUFBRSxlQUFlLEVBQUUscUJBQXFCOzsyRkFJckQsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUscUJBQXFCLENBQUM7b0JBQy9ELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgU2VsZWN0TW9iaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtbW9iaWxlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBkaXJlY3QgaW1wb3J0cyBvZiBjb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtEaWFsb2dNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgU2VsZWN0TW9iaWxlQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbU2VsZWN0TW9iaWxlQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtEeW5hbWljQ29tcG9uZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0TW9iaWxlTW9kdWxlIHt9XG4iXX0=","import { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, HostListener, Injector, Input, Optional, Output, QueryList, Self, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, computed, inject, isDevMode } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription, defer, merge } from 'rxjs';\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { DynamicComponentService, KeyUtil, RtlService, destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, ESCAPE, SPACE } from '@angular/cdk/keycodes';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { ListComponent, ListMessageDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { OptionComponent } from './option/option.component';\nimport { SelectKeyManagerService } from './select-key-manager.service';\nimport { SelectMobileComponent } from './select-mobile/select-mobile.component';\nimport { SELECT_COMPONENT } from './select.interface';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./select-key-manager.service\";\nimport * as i2 from \"@fundamental-ngx/cdk/utils\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@fundamental-ngx/core/content-density\";\nlet selectUniqueId = 0;\nconst SELECT_HEADER_IDENTIFIER = '.fd-list__group-header';\nexport const SELECT_PANEL_MAX_HEIGHT = 250;\n/** The height of the select items in `rem` units. */\nexport const SELECT_ITEM_HEIGHT_EM = 4;\nexport var TextOverflowModeEnum;\n(function (TextOverflowModeEnum) {\n TextOverflowModeEnum[\"FULL\"] = \"full\";\n TextOverflowModeEnum[\"ELLIPSIS\"] = \"ellipsis\";\n})(TextOverflowModeEnum || (TextOverflowModeEnum = {}));\n/**\n * Select component intended to mimic\n * the behaviour of the native select element.\n */\nexport class SelectComponent {\n /** @deprecated\n * it is handled internally by controlTemplate != null|undefined is\n * Equal as extendedBodyTemplate as true.\n * Whether option components contain more than basic text. */\n set extendedBodyTemplate(value) {\n this._extendedBodyTemplate = value;\n }\n get extendedBodyTemplate() {\n return this._extendedBodyTemplate;\n }\n /** Value of the select control. */\n set value(newValue) {\n if (newValue !== this._internalValue) {\n this.writeValue(newValue);\n this._internalValue = newValue;\n }\n }\n get value() {\n return this._internalValue;\n }\n /** @hidden */\n get showEllipsis() {\n return this.textOverflow === TextOverflowModeEnum.ELLIPSIS;\n }\n /** @hidden */\n get _selectControlClass() {\n return [this.state ? `is-${this.state}` : '', this.selectControlClass]\n .filter((className) => !!className)\n .join(' ');\n }\n /** Selected option. */\n get selected() {\n return this._selectionModel.selected[0];\n }\n /** Retrieves selected value if any. */\n get triggerValue() {\n const emptyValue = ' ';\n if (this._selectionModel.isEmpty()) {\n return this.placeholder || emptyValue;\n }\n return this.selected.viewValue || this.placeholder || emptyValue;\n }\n /** equal to close\n * Tells the OptionList if it's closable by simply selecting the item either with CLICK | SPACE | ENTER.\n * When we are in mobile mode (mobile=true) and have we have enabled confirmation buttons then we\n * dont close option list. We close only after we hit confirm button.\n */\n get canClose() {\n return !(this.mobile && this.mobileConfig.approveButtonText);\n }\n /** Whether control can be interacted with */\n get isInteractive() {\n return !(this.readonly || this.disabled);\n }\n /**\n * Check if we can emit a value. They are 3 different paths where we can emit value:\n * - We are not in mobile mode [mobile]=false\n * - We are in mobile mode [mobile]=true and mobile dialog as just close X button to dismiss it\n * - We are in mobile mode [mobile]=true and mobile dialog has ApproveButton available and\n * dialog is closed. (meaning we already clicked this button)\n */\n get canEmitValueChange() {\n return (!this.mobile ||\n (this.mobile &&\n // Approve + Cancel\n !!this.mobileConfig.approveButtonText &&\n !this._isOpen) ||\n // CloseButton. Emits when you click on the option item\n (!!this.mobileConfig.hasCloseButton && !!this.mobileConfig.approveButtonText === false));\n }\n /** Function to compare the option values with the selected values. */\n set compareWith(fn) {\n if (typeof fn !== 'function') {\n throw Error('compareWith` must be a function.');\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n get compareWith() {\n return this._compareWith;\n }\n /** @hidden */\n get focused() {\n return this._focused || this._isOpen;\n }\n /** @hidden */\n get calculatedMaxHeight() {\n return this._maxHeight || this._calculatedMaxHeight;\n }\n /** @hidden */\n constructor(_tabIndex, _keyManagerService, _changeDetectorRef, _viewContainerRef, _dynamicComponentService, ngControl, _injector, _contentDensityObserver) {\n this._keyManagerService = _keyManagerService;\n this._changeDetectorRef = _changeDetectorRef;\n this._viewContainerRef = _viewContainerRef;\n this._dynamicComponentService = _dynamicComponentService;\n this.ngControl = ngControl;\n this._injector = _injector;\n this._contentDensityObserver = _contentDensityObserver;\n /**\n * Controls how long text is displayed in the dropdown list of the Select component.\n *\n * - `'ellipsis'`: Truncates the text with an ellipsis (`...`) if it exceeds a certain length.\n * - `'full'`: Displays the entire text on multiple lines, ensuring full visibility.\n */\n this.textOverflow = 'ellipsis';\n /** The ID of the control. */\n this.controlId = `fd-select-${selectUniqueId++}`;\n /** Whether the select component should be displayed in mobile mode. */\n this.mobile = false;\n /** Whether the select component is disabled. */\n this.disabled = false;\n /** If it is mandatory field */\n this.required = false;\n /** Whether the select component is readonly. */\n this.readonly = false;\n /** Glyph to add icon in the select component. */\n this.glyph = 'slim-arrow-down';\n /** Glyph font family */\n this.glyphFont = FD_DEFAULT_ICON_FONT_FAMILY;\n /** Whether close the popover on outside click. */\n this.closeOnOutsideClick = true;\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n this.fillControlMode = 'at-least';\n /**\n * If the option should be unselected and value changed to undefined, when the current value is\n * not presented in option array. Switching it off can be handy, when there is some delay between providing\n * possible options and chosen value.\n */\n this.unselectMissingOption = true;\n /** Time to wait in milliseconds after the last keydown before focusing or selecting option based on alphanumeric keys. */\n this.typeaheadDebounceInterval = 250;\n /** Select Input Mobile Configuration */\n this.mobileConfig = { hasCloseButton: true };\n /** Should select be inlined. */\n this.inline = true;\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n this.tabOutStrategy = 'close';\n /** Event emitted when the popover open state changes. */\n this.isOpenChange = new EventEmitter();\n /** Event emitted when the selected value of the select changes. */\n this.valueChange = new EventEmitter();\n /** Whether popover is opened\n * @hidden\n */\n this._isOpen = false;\n /** @hidden */\n this._rtl = false;\n /**\n * @hidden\n * Triggers when component is destroyed\n */\n this._destroy = inject(DestroyRef);\n /**\n * @hidden\n * Combined stream of all of the child options' change events.\n */\n this._optionSelectionChanges = defer(() => {\n const _options = this._options;\n return _options?.changes.pipe(startWith(_options), switchMap(() => merge(..._options.map((option) => option.selectionChange))));\n });\n /** @hidden */\n this.rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"rtl$\" }] : []));\n this._rtlService = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._extendedBodyTemplate = false;\n /** @hidden */\n this._controlElemFontSize = 0;\n /** @hidden */\n this._focused = false;\n /** @hidden */\n this._subscriptions = new Subscription();\n /** @hidden */\n this._compareWith = (o1, o2) => o1 === o2;\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n this._tabIndex = parseInt(_tabIndex, 10) || 0;\n }\n /** @hidden */\n _resizeScrollHandler() {\n this._updateCalculatedHeight();\n }\n /** @hidden */\n _handleKeydown(event) {\n if (!this.disabled && !this.readonly) {\n this._isOpen\n ? this._keyManagerService._handleOpenKeydown(event)\n : this._keyManagerService._handleClosedKeydown(event);\n }\n if (KeyUtil.isKeyCode(event, [ESCAPE, ENTER, SPACE])) {\n this._controlElementRef.nativeElement.focus();\n }\n }\n /** Toggles the open state of the select. */\n toggle() {\n this._isOpen ? this.close() : this.open();\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._tabIndex = this.disabled ? -1 : 0;\n this._changeDetectorRef.markForCheck();\n }\n /** @hidden */\n ngOnInit() {\n this._initializeCommonBehavior();\n }\n /** @hidden */\n ngAfterViewInit() {\n this._keyManagerService._initKeyManager();\n this._setupMobileMode();\n }\n /** @hidden */\n ngAfterContentInit() {\n this._registerEventsAfterContentInit();\n }\n /** @hidden */\n ngOnChanges(changes) {\n if (changes['typeaheadDebounceInterval'] && this._keyManagerService._keyManager) {\n this._keyManagerService._keyManager.withTypeAhead(this.typeaheadDebounceInterval);\n }\n else if (changes['disabled']) {\n this._tabIndex = this.disabled ? -1 : 0;\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n /** Opens the select popover body. */\n open() {\n if (this.disabled || this.readonly || !this._options || !this._getItemCount() || this._isOpen) {\n return;\n }\n this._isOpen = true;\n this._controlElemFontSize = parseInt(getComputedStyle(this._controlElementRef.nativeElement).fontSize || '0', 10);\n this._keyManagerService._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n this._controlElementRef.nativeElement.focus();\n this.isOpenChange.emit(true);\n }\n /** @hidden */\n close(forceClose = false, tabOut = false) {\n if (this._isOpen || forceClose) {\n if (tabOut && this.tabOutStrategy === 'closeAndSelect') {\n this._keyManagerService._keyManager.activeItem?._selectViaInteraction();\n }\n this._isOpen = false;\n this._keyManagerService._keyManager.withHorizontalOrientation(this.rtl$() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this.onTouched();\n this.isOpenChange.emit(false);\n }\n }\n /** Focuses select control. */\n focus() {\n (this._controlElementRef?.nativeElement).focus();\n }\n /** Blurs select control. */\n blur() {\n (this._controlElementRef?.nativeElement).blur();\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden from ControlValue Accessor */\n writeValue(value) {\n if (this._options) {\n this._setSelectionByValue(value);\n }\n }\n /** @hidden */\n _setSelectionByValue(value) {\n this._selectionModel.clear();\n const correspondingOption = this._selectValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManagerService._keyManager.setActiveItem(correspondingOption);\n }\n else if (!this._isOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManagerService._keyManager.setActiveItem(-1);\n }\n this._changeDetectorRef.markForCheck();\n }\n /** @hidden */\n _selectValue(value) {\n const correspondingOption = this._options.find((option) => {\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n }\n catch (error) {\n if (isDevMode()) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n return correspondingOption;\n }\n /** @hidden */\n _popoverOpenChangeHandle(isOpen) {\n isOpen ? this.open() : this.close();\n }\n /** @hidden Returns _keyManagerService. */\n _getKeyService() {\n return this._keyManagerService;\n }\n /** @hidden */\n _setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this._tabIndex = -1;\n }\n /** @hidden */\n _highlightCorrectOption() {\n if (this._keyManagerService._keyManager && this._selectionModel.isEmpty()) {\n this._keyManagerService._keyManager.setFirstItemActive();\n }\n else if (this._keyManagerService._keyManager && !this._selectionModel.isEmpty()) {\n this._keyManagerService._keyManager.setActiveItem(this.selected);\n }\n }\n /** @hidden */\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._internalValue);\n });\n }\n /**\n * Expose outside of this mixin to give component ability\n * to update caluclatedMaxHeight if needed\n * @hidden\n */\n _updateCalculatedHeight() {\n this._calculatedMaxHeight = window.innerHeight * 0.45;\n }\n /** @hidden */\n _getOptionScrollPosition(optionIndex, itemHeight, currentScrollPosition) {\n const optionHeight = this._options.get(optionIndex)?._getHtmlElement().offsetHeight || itemHeight;\n const optionOffset = optionIndex * optionHeight;\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n if (optionOffset + optionHeight > currentScrollPosition + SELECT_PANEL_MAX_HEIGHT) {\n return Math.max(0, optionOffset - SELECT_PANEL_MAX_HEIGHT + optionHeight);\n }\n return currentScrollPosition;\n }\n /** @hidden */\n _getItemHeight() {\n // also include border with default value 1.\n return this._controlElemFontSize * SELECT_ITEM_HEIGHT_EM + 1;\n }\n /** @hidden */\n _initializeCommonBehavior() {\n this._selectionModel = new SelectionModel(false);\n this._keyManagerService._component = this;\n this._updateCalculatedHeight();\n }\n /** @hidden */\n _registerEventsAfterContentInit() {\n this._selectionModel.changed.pipe(takeUntilDestroyed(this._destroy)).subscribe((event) => {\n event.added.forEach((option) => option._select());\n event.removed.forEach((option) => option._deselect());\n });\n this._options.changes.pipe(startWith(null), takeUntilDestroyed(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n /** @hidden */\n _getAriaActiveDescendant() {\n if (this._isOpen && this._keyManagerService._keyManager && this._keyManagerService._keyManager.activeItem) {\n return this._keyManagerService._keyManager.activeItem.id;\n }\n return null;\n }\n /** @hidden */\n _onFocus() {\n if (!this.disabled) {\n this._focused = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n /** @hidden */\n _onBlur() {\n this._focused = false;\n if (!this.disabled && !this._isOpen) {\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n /** @hidden */\n _buttonClick() { }\n /** @hidden */\n _resetOptions() {\n const changedOrDestroyed = merge(this._options.changes, destroyObservable(this._destroy));\n this._optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe((event) => {\n this._onSelect(event.source, event.isUserInput);\n if (event.isUserInput && this._isOpen) {\n this.close();\n this.focus();\n }\n });\n // Listen to changes in the internal state of the _options and react accordingly.\n // Handles cases like the labels of the selected _options changing.\n merge(...this._options.map((option) => option._stateChanges))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * @hidden\n * Invoked when an option is clicked.\n */\n _onSelect(option, isUserInput) {\n const wasSelected = this._selectionModel.isSelected(option);\n if ((option.value === null || option.value === undefined) && this.unselectMissingOption) {\n option._deselect();\n this._selectionModel.clear();\n this._emitSelectChange(option.value);\n }\n else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManagerService._keyManager.setActiveItem(option);\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option) || this.mobile) {\n this._emitSelectChange();\n }\n }\n /** @hidden */\n _emitSelectChange(defaultVal) {\n if (this.canEmitValueChange) {\n this._internalValue =\n this._selectionModel.selected && this._selectionModel.selected.length !== 0\n ? this.selected.value\n : defaultVal;\n this.valueChange.emit(this._internalValue);\n this.onChange(this._internalValue);\n this._changeDetectorRef.markForCheck();\n }\n }\n /** @hidden */\n _getItemCount() {\n if (this._optionPanel && this._headerElements().length > 0) {\n return this._options.length + this._headerElements().length;\n }\n return this._options.length;\n }\n /** @hidden */\n _headerElements() {\n return this._optionPanel?.nativeElement.querySelectorAll(SELECT_HEADER_IDENTIFIER);\n }\n /** @hidden */\n async _setupMobileMode() {\n if (!this.mobile) {\n return;\n }\n const injector = Injector.create({\n providers: [{ provide: SELECT_COMPONENT, useValue: this }],\n parent: this._injector\n });\n this._dynamicComponentService.createDynamicComponent(this.selectOptionsListTemplate, SelectMobileComponent, {\n containerRef: this._viewContainerRef\n }, { injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectComponent, deps: [{ token: 'tabindex', attribute: true }, { token: i1.SelectKeyManagerService }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i2.DynamicComponentService, optional: true }, { token: i3.NgControl, optional: true, self: true }, { token: i0.Injector, optional: true }, { token: i4.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: SelectComponent, isStandalone: true, selector: \"fd-select\", inputs: { extendedBodyTemplate: \"extendedBodyTemplate\", scrollStrategy: \"scrollStrategy\", textOverflow: \"textOverflow\", controlId: \"controlId\", state: \"state\", mobile: \"mobile\", stateMessage: \"stateMessage\", disabled: \"disabled\", required: \"required\", readonly: \"readonly\", placeholder: \"placeholder\", value: \"value\", maxHeight: \"maxHeight\", glyph: \"glyph\", glyphFont: \"glyphFont\", closeOnOutsideClick: \"closeOnOutsideClick\", fillControlMode: \"fillControlMode\", controlTemplate: \"controlTemplate\", appendTo: \"appendTo\", unselectMissingOption: \"unselectMissingOption\", typeaheadDebounceInterval: \"typeaheadDebounceInterval\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", mobileConfig: \"mobileConfig\", inline: \"inline\", selectControlClass: \"selectControlClass\", selectDropdownButtonClass: \"selectDropdownButtonClass\", advancedStateMessage: \"advancedStateMessage\", tabOutStrategy: \"tabOutStrategy\", compareWith: \"compareWith\" }, outputs: { isOpenChange: \"isOpenChange\", valueChange: \"valueChange\" }, host: { listeners: { \"window:resize\": \"_resizeScrollHandler()\", \"keydown\": \"_handleKeydown($event)\", \"click\": \"toggle()\" }, properties: { \"class.fd-select--inline\": \"inline\", \"class.fd-select-custom-class\": \"inline\", \"class.fd-select-custom-class--mobile\": \"mobile\" }, classAttribute: \"fd-select\" }, providers: [\n {\n provide: SELECT_COMPONENT,\n useExisting: SelectComponent\n },\n registerFormItemControl(SelectComponent),\n SelectKeyManagerService,\n contentDensityObserverProviders()\n ], queries: [{ propertyName: \"_options\", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: \"_controlElementRef\", first: true, predicate: [\"selectControl\"], descendants: true }, { propertyName: \"selectOptionsListTemplate\", first: true, predicate: [\"selectOptionsListTemplate\"], descendants: true }, { propertyName: \"_dialogContainerElementRef\", first: true, predicate: [\"dialogContainer\"], descendants: true }, { propertyName: \"_overlayDir\", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: \"_optionPanel\", first: true, predicate: [\"optionPanel\"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: \"<ng-template [ngTemplateOutlet]=\\\"mobile ? mobileTemplate : desktopTemplate\\\"></ng-template>\\n<ng-template #desktopTemplate>\\n <!-- @deprecated leaving class fd-popover-custom-list to support backwards compatibility-->\\n <fd-popover\\n additionalBodyClass=\\\"fd-select-dropdown fd-popover-custom-list\\\"\\n [isOpen]=\\\"_isOpen\\\"\\n [triggers]=\\\"[]\\\"\\n [focusTrapped]=\\\"true\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [appendTo]=\\\"appendTo\\\"\\n [scrollStrategy]=\\\"scrollStrategy\\\"\\n [closeOnEscapeKey]=\\\"true\\\"\\n [fillControlMode]=\\\"fillControlMode\\\"\\n [maxWidth]=\\\"600\\\"\\n [closeOnOutsideClick]=\\\"closeOnOutsideClick\\\"\\n (isOpenChange)=\\\"_popoverOpenChangeHandle($event)\\\"\\n >\\n <fd-popover-control>\\n <ng-template [ngTemplateOutlet]=\\\"selectInputControlTemplate\\\"></ng-template>\\n </fd-popover-control>\\n <!-- @deprecated leaving class fd-popover-custom-select-body to support backwards compatibility-->\\n <fd-popover-body class=\\\"fd-popover-custom-select-body\\\">\\n <ng-template [ngTemplateOutlet]=\\\"selectOptionsListTemplate\\\"></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n</ng-template>\\n<ng-template #selectInputControlTemplate>\\n <div\\n class=\\\"fd-select__control\\\"\\n #selectControl\\n [class]=\\\"_selectControlClass\\\"\\n [class.is-active]=\\\"_isOpen\\\"\\n [class.is-expanded]=\\\"_isOpen\\\"\\n [class.is-disabled]=\\\"disabled\\\"\\n [class.is-readonly]=\\\"readonly\\\"\\n [class.is-placeholder]=\\\"!selected\\\"\\n [attr.tabindex]=\\\"_tabIndex\\\"\\n [attr.id]=\\\"controlId\\\"\\n [attr.aria-active]=\\\"_isOpen\\\"\\n aria-live=\\\"polite\\\"\\n role=\\\"combobox\\\"\\n aria-haspopup=\\\"listbox\\\"\\n aria-roledescription=\\\"listbox\\\"\\n [attr.aria-expanded]=\\\"_isOpen\\\"\\n [attr.aria-disabled]=\\\"disabled\\\"\\n [attr.aria-controls]=\\\"controlId + '-list-box'\\\"\\n [attr.aria-required]=\\\"required\\\"\\n [attr.title]=\\\"triggerValue\\\"\\n [attr.aria-label]=\\\"ariaLabel || ('platformSelect.selectOptionLabel' | fdTranslate)\\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [attr.aria-activedescendant]=\\\"_getAriaActiveDescendant()\\\"\\n (focus)=\\\"_onFocus()\\\"\\n (blur)=\\\"_onBlur()\\\"\\n >\\n <div class=\\\"fd-select__text-content\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"controlTemplate ? controlTemplate : defaultSelectContent\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: triggerValue, selected: selected }\\\"\\n >\\n </ng-template>\\n <ng-template #defaultSelectContent>\\n {{ triggerValue }}\\n </ng-template>\\n </div>\\n @if (!readonly) {\\n <span\\n fd-button\\n fdType=\\\"transparent\\\"\\n class=\\\"fd-select__button\\\"\\n [ngClass]=\\\"selectDropdownButtonClass\\\"\\n [class.is-disabled]=\\\"disabled\\\"\\n >\\n <fd-icon [ariaHidden]=\\\"true\\\" [glyph]=\\\"glyph\\\" [font]=\\\"glyphFont\\\"></fd-icon>\\n </span>\\n }\\n </div>\\n</ng-template>\\n<ng-template #selectOptionsListTemplate>\\n <ul\\n #optionPanel\\n fd-list\\n class=\\\"fd-select-options\\\"\\n role=\\\"listbox\\\"\\n tabindex=\\\"-1\\\"\\n [mobileMode]=\\\"mobile\\\"\\n [dropdownMode]=\\\"true\\\"\\n [hasMessage]=\\\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\\\"\\n [attr.id]=\\\"controlId + '-list-box'\\\"\\n [style.max-height]=\\\"maxHeight || calculatedMaxHeight + 'px'\\\"\\n [style.padding-block-start.rem]=\\\"showEllipsis && stateMessage ? 2 : 0\\\"\\n [attr.tooltip]=\\\"triggerValue\\\"\\n >\\n @if (stateMessage) {\\n <li\\n [attr.aria-label]=\\\"stateMessage\\\"\\n fd-list-message\\n [class.fd-select-message]=\\\"!showEllipsis\\\"\\n tabindex=\\\"-1\\\"\\n role=\\\"presentation\\\"\\n [type]=\\\"state || 'default'\\\"\\n >\\n @if (!showEllipsis) {\\n <span fd-list-title>\\n {{ stateMessage }}\\n </span>\\n } @else {\\n <span>\\n {{ stateMessage }}\\n </span>\\n }\\n </li>\\n }\\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\\n <li fd-list-message tabindex=\\\"-1\\\" role=\\\"presentation\\\" [type]=\\\"state || 'default'\\\">\\n <ng-template [ngTemplateOutlet]=\\\"advancedStateMessage!.template!\\\"></ng-template>\\n </li>\\n }\\n <ng-content></ng-content>\\n </ul>\\n</ng-template>\\n<ng-template #mobileTemplate>\\n <ng-template [ngTemplateOutlet]=\\\"selectInputControlTemplate\\\"></ng-template>\\n <div #dialogContainer></div>\\n</ng-template>\\n\", styles: [\".fd-select{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.25rem;margin-inline:0;padding-block:0;padding-inline:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:after,.fd-select:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--fdSelect_Background,var(--sapField_BackgroundStyle));background-color:var(--fdSelect_Background_Color,var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height,var(--sapElement_Height));line-height:normal;margin-block:var(--fdInput_Field_Margin_Block,.25rem);min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:--fdSelect_Min_Width;outline:none;overflow:hidden;padding-inline:var(--fdInput_Field_Padding_Inline,.625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.25rem;-webkit-box-pack:justify;-ms-flex-pack:justify;cursor:pointer;justify-content:space-between;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-select__control:after,.fd-select__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select__control::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-select__control::-webkit-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-select__control::-moz-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-select__control:-ms-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-select__control::-ms-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::placeholder,[dir=rtl] .fd-select__control::placeholder{text-indent:.125rem}.fd-select__control::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-select__control::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control.is-hover,.fd-select__control:hover{background:var(--fdSelect_Hover_Background,var(--sapField_Hover_BackgroundStyle));background-color:var(--fdSelect_Hover_Background_Color,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control.is-focus,.fd-select__control:focus{background:var(--fdSelect_Focus_Background,var(--sapField_Focus_Background));-webkit-box-shadow:none;box-shadow:none;outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset);z-index:5}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);-webkit-box-shadow:var(--sapField_SuccessShadow);box-shadow:var(--sapField_SuccessShadow)}.fd-select__control.is-success.is-hover,.fd-select__control.is-success:hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success.is-focus,.fd-select__control.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success.is-focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-success.is-expanded,.fd-select__control.is-success[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);-webkit-box-shadow:var(--sapField_InvalidShadow);box-shadow:var(--sapField_InvalidShadow)}.fd-select__control.is-error.is-hover,.fd-select__control.is-error:hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error.is-focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-error.is-expanded,.fd-select__control.is-error[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);-webkit-box-shadow:var(--sapField_WarningShadow);box-shadow:var(--sapField_WarningShadow)}.fd-select__control.is-warning.is-hover,.fd-select__control.is-warning:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning.is-focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-warning.is-expanded,.fd-select__control.is-warning[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert.is-hover,.fd-select__control.is-alert:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert.is-focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-alert.is-expanded,.fd-select__control.is-alert[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);-webkit-box-shadow:var(--sapField_InformationShadow);box-shadow:var(--sapField_InformationShadow)}.fd-select__control.is-information.is-hover,.fd-select__control.is-information:hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information.is-focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-information.is-expanded,.fd-select__control.is-information[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-alert,.fd-select__control.is-error,.fd-select__control.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-webkit-input-placeholder,.fd-select__control.is-error::-webkit-input-placeholder,.fd-select__control.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-moz-placeholder,.fd-select__control.is-error::-moz-placeholder,.fd-select__control.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert:-ms-input-placeholder,.fd-select__control.is-error:-ms-input-placeholder,.fd-select__control.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-ms-input-placeholder,.fd-select__control.is-error::-ms-input-placeholder,.fd-select__control.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::placeholder,.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus,.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-select__control.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-disabled,.fd-select__control:disabled,.fd-select__control[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity)}.fd-select__control.is-disabled::-webkit-input-placeholder,.fd-select__control:disabled::-webkit-input-placeholder,.fd-select__control[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::-moz-placeholder,.fd-select__control:disabled::-moz-placeholder,.fd-select__control[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled:-ms-input-placeholder,.fd-select__control:disabled:-ms-input-placeholder,.fd-select__control[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::-ms-input-placeholder,.fd-select__control:disabled::-ms-input-placeholder,.fd-select__control[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder,.fd-select__control[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly,.fd-select__control[aria-readonly=true],.fd-select__control[readonly]{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-readonly::-webkit-input-placeholder,.fd-select__control[aria-readonly=true]::-webkit-input-placeholder,.fd-select__control[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::-moz-placeholder,.fd-select__control[aria-readonly=true]::-moz-placeholder,.fd-select__control[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly:-ms-input-placeholder,.fd-select__control[aria-readonly=true]:-ms-input-placeholder,.fd-select__control[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::-ms-input-placeholder,.fd-select__control[aria-readonly=true]::-ms-input-placeholder,.fd-select__control[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::placeholder,.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly.is-hover,.fd-select__control.is-readonly:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control[aria-readonly=true]:hover,.fd-select__control[readonly].is-hover,.fd-select__control[readonly]:hover{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-readonly.is-focus,.fd-select__control.is-readonly:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control[aria-readonly=true]:focus,.fd-select__control[readonly].is-focus,.fd-select__control[readonly]:focus{z-index:5;--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control .fd-select__button{background:var(--fdInput_Group_Button_Background);background-color:var(--fdButtonBackgroundColor);border:none;border-radius:var(--fdInput_Group_Button_Border_Raduis);color:var(--fdInput_Group_Button_Text_Color);overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:auto!important}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:after{border-radius:var(--fdInput_Outline_Border_Radius)}.fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button:hover{--fdInput_Group_Button_Text_Color:var(--fdInput_Group_Button_Hover_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Hover_Background);-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button:active{background:var(--fdInput_Group_Button_Active_Background);-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Box_Shadow);color:var(--fdInput_Group_Button_Active_Text_Color)}.fd-select__control.is-success.is-focus,.fd-select__control.is-success:focus{z-index:5}.fd-select__control.is-success.is-focus .fd-select__button,.fd-select__control.is-success:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-focus .fd-select__button.is-hover,.fd-select__control.is-success.is-focus .fd-select__button:hover,.fd-select__control.is-success:focus .fd-select__button.is-hover,.fd-select__control.is-success:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-expanded .fd-select__button,.fd-select__control.is-success[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-expanded .fd-select__button.is-hover,.fd-select__control.is-success.is-expanded .fd-select__button:hover,.fd-select__control.is-success[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-success[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success .fd-select__button.is-active,.fd-select__control.is-success .fd-select__button.is-hover,.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button.is-active,.fd-select__control.is-success .fd-select__button:active{color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus{z-index:5}.fd-select__control.is-error.is-focus .fd-select__button,.fd-select__control.is-error:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-focus .fd-select__button.is-hover,.fd-select__control.is-error.is-focus .fd-select__button:hover,.fd-select__control.is-error:focus .fd-select__button.is-hover,.fd-select__control.is-error:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-expanded .fd-select__button,.fd-select__control.is-error[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-expanded .fd-select__button.is-hover,.fd-select__control.is-error.is-expanded .fd-select__button:hover,.fd-select__control.is-error[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-error[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error .fd-select__button.is-active,.fd-select__control.is-error .fd-select__button.is-hover,.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button.is-active,.fd-select__control.is-error .fd-select__button:active{color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{z-index:5}.fd-select__control.is-warning.is-focus .fd-select__button,.fd-select__control.is-warning:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-focus .fd-select__button.is-hover,.fd-select__control.is-warning.is-focus .fd-select__button:hover,.fd-select__control.is-warning:focus .fd-select__button.is-hover,.fd-select__control.is-warning:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-expanded .fd-select__button,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-expanded .fd-select__button.is-hover,.fd-select__control.is-warning.is-expanded .fd-select__button:hover,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning .fd-select__button.is-active,.fd-select__control.is-warning .fd-select__button.is-hover,.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button.is-active,.fd-select__control.is-warning .fd-select__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus{z-index:5}.fd-select__control.is-alert.is-focus .fd-select__button,.fd-select__control.is-alert:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-focus .fd-select__button.is-hover,.fd-select__control.is-alert.is-focus .fd-select__button:hover,.fd-select__control.is-alert:focus .fd-select__button.is-hover,.fd-select__control.is-alert:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-expanded .fd-select__button,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-expanded .fd-select__button.is-hover,.fd-select__control.is-alert.is-expanded .fd-select__button:hover,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert .fd-select__button.is-active,.fd-select__control.is-alert .fd-select__button.is-hover,.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button.is-active,.fd-select__control.is-alert .fd-select__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus{z-index:5}.fd-select__control.is-information.is-focus .fd-select__button,.fd-select__control.is-information:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-focus .fd-select__button.is-hover,.fd-select__control.is-information.is-focus .fd-select__button:hover,.fd-select__control.is-information:focus .fd-select__button.is-hover,.fd-select__control.is-information:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-expanded .fd-select__button,.fd-select__control.is-information[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-expanded .fd-select__button.is-hover,.fd-select__control.is-information.is-expanded .fd-select__button:hover,.fd-select__control.is-information[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-information[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information .fd-select__button.is-active,.fd-select__control.is-information .fd-select__button.is-hover,.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button.is-active,.fd-select__control.is-information .fd-select__button:active{color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-select__control.is-disabled,.fd-select__control:disabled,.fd-select__control[aria-disabled=true]{pointer-events:none}.fd-select__control:after{border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);content:\\\"\\\";inset:0;pointer-events:none;position:absolute}.fd-select__control.is-readonly,.fd-select__control[aria-readonly=true],.fd-select__control[readonly]{cursor:text}.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{--fdSelect_Min_Width:5rem;padding-inline:.625rem}.fd-select__control.is-readonly[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-readonly=true][aria-selected=false] .fd-select__text-content,.fd-select__control[readonly][aria-selected=false] .fd-select__text-content{visibility:hidden}.fd-select__control.is-readonly .fd-select__button,.fd-select__control[aria-readonly=true] .fd-select__button,.fd-select__control[readonly] .fd-select__button{opacity:0}.fd-select__control.is-disabled[aria-selected=false] .fd-select__text-content,.fd-select__control:disabled[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-disabled=true][aria-selected=false] .fd-select__text-content{visibility:hidden}.fd-select__control[aria-selected=false] .fd-select__text-content{padding-block:0;padding-inline:.625rem}.fd-select__control[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-selected=false] .fd-select__text-content [class*=sap-icon]{color:var(--sapField_PlaceholderTextColor);font-style:italic;font-weight:400}.fd-select__text-content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-width:calc(var(--fdSelect_Min_Width) - var(--sapField_BorderWidth)*2);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;--fdSelect_Min_Width:2.5rem;-webkit-padding-start:.625rem;color:var(--fdSelect_Text_Content_Color,var(--sapTextColor));cursor:pointer;display:var(--fdSelect_Text_Content_Display,inline-block);padding-inline-start:.625rem}.fd-select__text-content:after,.fd-select__text-content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select[class*=-compact],.fd-select[class*=-condensed],[class*=-compact] .fd-select:not([class*=-cozy]),[class*=-condensed] .fd-select:not([class*=-cozy]){margin-block:.1875rem;margin-inline:0}.fd-select[class*=-compact] .fd-select__control,.fd-select[class*=-condensed] .fd-select__control,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control{height:1.625rem;min-height:1.625rem}.fd-select[class*=-compact] .fd-select__control .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control .fd-select__text-content{--fdSelect_Min_Width:2.75rem;-webkit-padding-start:.5rem;padding-inline-start:.5rem}.fd-select[class*=-compact] .fd-select__control.is-readonly .fd-select__text-content,.fd-select[class*=-compact] .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select[class*=-compact] .fd-select__control[readonly] .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control.is-readonly .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control[readonly] .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control.is-readonly .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control[aria-readonly=true] .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control[readonly] .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control.is-readonly .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control[aria-readonly=true] .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control[readonly] .fd-select__text-content{padding-inline:.5rem}.fd-button{--fdButton_Clickable_Height:2.75rem;--fdButton_Padding_X:.625rem;--fdButton_Min_Width:2.25rem;--fdButton_Badge_Offset:-.3125rem;--fdButton_Badge_Margin:.25rem;--fdButton_Badge_Margin_Inline_Start:0;--fdButton_Badge_Width:auto;--fdButton_Badge_Height:1rem;--fdButton_Badge_Position:absolute;--fdButton_Badge_Position_Attention:absolute;--fdButton_Badge_Padding_Inline:.3125rem;--fdButton_Badge_Size_Attention:.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;background-image:none;border:0;border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;outline:0;padding-block:0;padding-inline:0;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-style:solid;border-width:var(--sapButton_BorderWidth);height:var(--fdButton_Height,var(--sapElement_Height));max-height:var(--fdButton_Height,var(--sapElement_Height));min-width:var(--fdButton_Min_Width);padding-inline:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));position:relative;text-align:center;text-shadow:var(--fdButton_Text_Shadow);--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button:after,.fd-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button::-moz-focus-inner{border:0}.fd-button:before{content:\\\"\\\";display:block;height:auto;inset:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height, var(--sapElement_Height)))*-.5) 0;position:absolute;width:100%}.fd-button__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:inherit;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button__text:after,.fd-button__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button,.fd-button__text{font-family:var(--fdButton_Font_Family,var(--sapButton_FontFamily))}.fd-button :not(:first-child):not(.fd-button__badge){-webkit-margin-start:.375rem;margin-inline-start:.375rem}.fd-button>[class*=sap-icon]{color:inherit;font-size:1rem;font-style:normal;height:1rem;line-height:1rem;min-width:1rem;vertical-align:text-bottom;width:1rem}.fd-button>[class*=sap-icon]:after,.fd-button>[class*=sap-icon]:before{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.fd-button__badge{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapContent_BadgeBackground);border:.0625rem solid var(--sapContent_BadgeBorderColor);border-radius:.5rem;color:var(--sapContent_BadgeTextColor);font-size:var(--sapFontSmallSize);height:var(--fdButton_Badge_Height);padding-block:0;padding-inline:var(--fdButton_Badge_Padding_Inline);position:var(--fdButton_Badge_Position);right:var(--fdButton_Badge_Offset);top:var(--fdButton_Badge_Offset);width:var(--fdButton_Badge_Width);z-index:1;-webkit-margin-start:var(--fdButton_Badge_Margin_Inline_Start);margin-inline-start:var(--fdButton_Badge_Margin_Inline_Start)}.fd-button__badge:after,.fd-button__badge:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button__badge[dir=rtl],[dir=rtl] .fd-button__badge{left:var(--fdButton_Badge_Offset);right:auto}.fd-button__badge--attention{--fdButton_Badge_Padding_Inline:0;--fdButton_Badge_Offset:-.1875rem;--fdButton_Badge_Width:var(--fdButton_Badge_Size_Attention);--fdButton_Badge_Height:var(--fdButton_Badge_Size_Attention);--fdButton_Badge_Position:var(--fdButton_Badge_Position_Attention)}.fd-button[class*=-compact],.fd-button[class*=-condensed],[class*=-compact] .fd-button:not([class*=-cozy]),[class*=-condensed] .fd-button:not([class*=-cozy]){--fdButton_Height:var(--fdButton_Compact_Height,var(--sapElement_Compact_Height));--fdButton_Clickable_Height:2rem;--fdButton_Padding_X:.5rem;--fdButton_Min_Width:2rem;--fdButton_Badge_Position:static;--fdButton_Badge_Margin_Inline_Start:.25rem;--fdButton_Badge_Size_Attention:.625rem}.fd-button[class*=-compact]:not(.fd-button--tool-header):has(.fd-button__badge),.fd-button[class*=-condensed]:not(.fd-button--tool-header):has(.fd-button__badge),[class*=-compact] .fd-button:not([class*=-cozy]):not(.fd-button--tool-header):has(.fd-button__badge),[class*=-condensed] .fd-button:not([class*=-cozy]):not(.fd-button--tool-header):has(.fd-button__badge){padding-inline:calc(.5rem - var(--sapButton_BorderWidth)) calc(.25rem - var(--sapButton_BorderWidth))}.fd-button--menu{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-button--menu-fixed-width{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fd-button--menu .fd-button__text{line-height:1rem;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:start}.fd-button--full-width{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:100%;width:100%}.fd-button--text-alignment-left{text-align:left;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.fd-button--text-alignment-right{text-align:right;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-button--decisive{min-width:4rem}.fd-button__instructions{position:absolute;clip:rect(0 0 0 0);border:0;height:1px;margin-block:-1px;margin-inline:-1px;overflow:hidden;padding-block:0;padding-inline:0;white-space:nowrap;width:1px}.fd-button.is-focus,.fd-button:focus{-webkit-box-shadow:none;box-shadow:none;outline:none;z-index:5}.fd-button.is-focus:after,.fd-button:focus:after{border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--fdButton_Focus_Border_Radius);content:\\\"\\\";display:block;inset:var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset);position:absolute}.fd-button.is-focus.fd-button--toggled:after,.fd-button.is-focus.is-selected:after,.fd-button:focus.fd-button--toggled:after,.fd-button:focus.is-selected:after{border-color:var(--fdButton_Outline_Contrast)}.fd-button.is-active,.fd-button.is-selected,.fd-button:active,.fd-button[aria-selected=true]{-webkit-box-shadow:none;box-shadow:none;outline:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:var(--sapContent_DisabledOpacity)}.fd-button.is-selected,.fd-button[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.is-hover,.fd-button:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button.is-active,.fd-button:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button.is-active .fd-button__icon,.fd-button:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background))}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button.fd-button--toggled.is-hover,.fd-button.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button.fd-button--toggled.is-active,.fd-button.fd-button--toggled.is-selected,.fd-button.fd-button--toggled:active,.fd-button.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active .fd-button__icon,.fd-button.fd-button--toggled.is-selected .fd-button__icon,.fd-button.fd-button--toggled:active .fd-button__icon,.fd-button.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.fd-button--toggled.is-disabled,.fd-button.fd-button--toggled:disabled,.fd-button.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--emphasized,.fd-button--emphasized .fd-button__text{--fdButton_Font_Family:var(--sapButton_Emphasized_FontFamily)}.fd-button--emphasized{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);border-width:var(--sapButton_Emphasized_BorderWidth);color:var(--fdButtonColor);font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button--emphasized.is-selected,.fd-button--emphasized[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.is-hover,.fd-button--emphasized:hover{--fdButtonColor:var(--sapButton_Emphasized_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Emphasized_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Emphasized_Hover_Background))}.fd-button--emphasized.is-active,.fd-button--emphasized:active{--fdButtonColor:var(--sapButton_Emphasized_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Emphasized_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Emphasized_Active_Background));--fdElementTextColor:var(--sapButton_Emphasized_Active_TextColor);--fdElementIconColor:var(--sapButton_Emphasized_Active_TextColor)}.fd-button--emphasized.is-active .fd-button__icon,.fd-button--emphasized:active .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.is-disabled,.fd-button--emphasized:disabled,.fd-button--emphasized[aria-disabled=true]{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background))}.fd-button--emphasized.is-disabled.is-selected,.fd-button--emphasized.is-disabled[aria-selected=true],.fd-button--emphasized:disabled.is-selected,.fd-button--emphasized:disabled[aria-selected=true],.fd-button--emphasized[aria-disabled=true].is-selected,.fd-button--emphasized[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--emphasized.fd-button--toggled.is-hover,.fd-button--emphasized.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active .fd-button__icon,.fd-button--emphasized.fd-button--toggled.is-selected .fd-button__icon,.fd-button--emphasized.fd-button--toggled:active .fd-button__icon,.fd-button--emphasized.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.fd-button--toggled.is-disabled,.fd-button--emphasized.fd-button--toggled:disabled,.fd-button--emphasized.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--emphasized.is-focus,.fd-button--emphasized:focus{z-index:5}.fd-button--emphasized.is-focus:after,.fd-button--emphasized:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.fd-button--emphasized.is-focus.is-active:after,.fd-button--emphasized.is-focus:active:after,.fd-button--emphasized:focus.is-active:after,.fd-button--emphasized:focus:active:after{border-color:var(--sapContent_FocusColor)}.fd-button--emphasized[class*=-compact].is-focus,.fd-button--emphasized[class*=-compact]:focus,.fd-button--emphasized[class*=-condensed].is-focus,.fd-button--emphasized[class*=-condensed]:focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus{z-index:5}.fd-button--emphasized[class*=-compact].is-focus.is-active:after,.fd-button--emphasized[class*=-compact].is-focus:active:after,.fd-button--emphasized[class*=-compact]:focus.is-active:after,.fd-button--emphasized[class*=-compact]:focus:active:after,.fd-button--emphasized[class*=-condensed].is-focus.is-active:after,.fd-button--emphasized[class*=-condensed].is-focus:active:after,.fd-button--emphasized[class*=-condensed]:focus.is-active:after,.fd-button--emphasized[class*=-condensed]:focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus:active:after{border-color:transparent}.fd-button--emphasized.is-active,.fd-button--emphasized.is-selected,.fd-button--emphasized:active,.fd-button--emphasized[aria-selected=true]{outline:none}.fd-button--emphasized.fd-button--toggled.is-focus,.fd-button--emphasized.fd-button--toggled:focus{outline-color:var(--fdButton_Emphasized_Active_Outline);z-index:5}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{outline:none}.fd-button--attention{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--attention.is-selected,.fd-button--attention[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.is-hover,.fd-button--attention:hover{--fdButtonColor:var(--sapButton_Attention_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Attention_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Attention_Hover_Background))}.fd-button--attention.is-active,.fd-button--attention:active{--fdButtonColor:var(--sapButton_Attention_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Attention_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Attention_Active_Background));--fdElementTextColor:var(--sapButton_Attention_Active_TextColor);--fdElementIconColor:var(--sapButton_Attention_Active_TextColor)}.fd-button--attention.is-active .fd-button__icon,.fd-button--attention:active .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.is-disabled,.fd-button--attention:disabled,.fd-button--attention[aria-disabled=true]{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background))}.fd-button--attention.is-disabled.is-selected,.fd-button--attention.is-disabled[aria-selected=true],.fd-button--attention:disabled.is-selected,.fd-button--attention:disabled[aria-selected=true],.fd-button--attention[aria-disabled=true].is-selected,.fd-button--attention[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Attention_Selected_Background)}.fd-button--attention.fd-button--toggled.is-hover,.fd-button--attention.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Attention_Selected_Hover_Background)}.fd-button--attention.fd-button--toggled.is-active,.fd-button--attention.fd-button--toggled.is-selected,.fd-button--attention.fd-button--toggled:active,.fd-button--attention.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active .fd-button__icon,.fd-button--attention.fd-button--toggled.is-selected .fd-button__icon,.fd-button--attention.fd-button--toggled:active .fd-button__icon,.fd-button--attention.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.fd-button--toggled.is-disabled,.fd-button--attention.fd-button--toggled:disabled,.fd-button--attention.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--negative{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--negative.is-selected,.fd-button--negative[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.is-hover,.fd-button--negative:hover{--fdButtonColor:var(--sapButton_Reject_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Reject_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Reject_Hover_Background))}.fd-button--negative.is-active,.fd-button--negative:active{--fdButtonColor:var(--sapButton_Reject_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Reject_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Reject_Active_Background));--fdElementTextColor:var(--sapButton_Reject_Active_TextColor);--fdElementIconColor:var(--sapButton_Reject_Active_TextColor)}.fd-button--negative.is-active .fd-button__icon,.fd-button--negative:active .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.is-disabled,.fd-button--negative:disabled,.fd-button--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background))}.fd-button--negative.is-disabled.is-selected,.fd-button--negative.is-disabled[aria-selected=true],.fd-button--negative:disabled.is-selected,.fd-button--negative:disabled[aria-selected=true],.fd-button--negative[aria-disabled=true].is-selected,.fd-button--negative[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Reject_Selected_Background)}.fd-button--negative.fd-button--toggled.is-hover,.fd-button--negative.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Reject_Selected_Hover_Background)}.fd-button--negative.fd-button--toggled.is-active,.fd-button--negative.fd-button--toggled.is-selected,.fd-button--negative.fd-button--toggled:active,.fd-button--negative.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active .fd-button__icon,.fd-button--negative.fd-button--toggled.is-selected .fd-button__icon,.fd-button--negative.fd-button--toggled:active .fd-button__icon,.fd-button--negative.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.fd-button--toggled.is-disabled,.fd-button--negative.fd-button--toggled:disabled,.fd-button--negative.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--positive{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--positive.is-selected,.fd-button--positive[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.is-hover,.fd-button--positive:hover{--fdButtonColor:var(--sapButton_Accept_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Accept_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Accept_Hover_Background))}.fd-button--positive.is-active,.fd-button--positive:active{--fdButtonColor:var(--sapButton_Accept_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Accept_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Accept_Active_Background));--fdElementTextColor:var(--sapButton_Accept_Active_TextColor);--fdElementIconColor:var(--sapButton_Accept_Active_TextColor)}.fd-button--positive.is-active .fd-button__icon,.fd-button--positive:active .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.is-disabled,.fd-button--positive:disabled,.fd-button--positive[aria-disabled=true]{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background))}.fd-button--positive.is-disabled.is-selected,.fd-button--positive.is-disabled[aria-selected=true],.fd-button--positive:disabled.is-selected,.fd-button--positive:disabled[aria-selected=true],.fd-button--positive[aria-disabled=true].is-selected,.fd-button--positive[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Accept_Selected_Background)}.fd-button--positive.fd-button--toggled.is-hover,.fd-button--positive.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Accept_Selected_Hover_Background)}.fd-button--positive.fd-button--toggled.is-active,.fd-button--positive.fd-button--toggled.is-selected,.fd-button--positive.fd-button--toggled:active,.fd-button--positive.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active .fd-button__icon,.fd-button--positive.fd-button--toggled.is-selected .fd-button__icon,.fd-button--positive.fd-button--toggled:active .fd-button__icon,.fd-button--positive.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.fd-button--toggled.is-disabled,.fd-button--positive.fd-button--toggled:disabled,.fd-button--positive.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--transparent{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--transparent.is-selected,.fd-button--transparent[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.is-hover,.fd-button--transparent:hover{--fdButtonColor:var(--sapButton_Lite_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Lite_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Lite_Hover_Background))}.fd-button--transparent.is-active,.fd-button--transparent:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Lite_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Lite_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--transparent.is-active .fd-button__icon,.fd-button--transparent:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.is-disabled,.fd-button--transparent:disabled,.fd-button--transparent[aria-disabled=true]{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background))}.fd-button--transparent.is-disabled.is-selected,.fd-button--transparent.is-disabled[aria-selected=true],.fd-button--transparent:disabled.is-selected,.fd-button--transparent:disabled[aria-selected=true],.fd-button--transparent[aria-disabled=true].is-selected,.fd-button--transparent[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--transparent.fd-button--toggled.is-hover,.fd-button--transparent.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--transparent.fd-button--toggled.is-active,.fd-button--transparent.fd-button--toggled.is-selected,.fd-button--transparent.fd-button--toggled:active,.fd-button--transparent.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active .fd-button__icon,.fd-button--transparent.fd-button--toggled.is-selected .fd-button__icon,.fd-button--transparent.fd-button--toggled:active .fd-button__icon,.fd-button--transparent.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.fd-button--toggled.is-disabled,.fd-button--transparent.fd-button--toggled:disabled,.fd-button--transparent.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--ghost{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--ghost.is-selected,.fd-button--ghost[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.is-hover,.fd-button--ghost:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button--ghost.is-active,.fd-button--ghost:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--ghost.is-active .fd-button__icon,.fd-button--ghost:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.is-disabled,.fd-button--ghost:disabled,.fd-button--ghost[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background))}.fd-button--ghost.is-disabled.is-selected,.fd-button--ghost.is-disabled[aria-selected=true],.fd-button--ghost:disabled.is-selected,.fd-button--ghost:disabled[aria-selected=true],.fd-button--ghost[aria-disabled=true].is-selected,.fd-button--ghost[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--ghost.fd-button--toggled.is-hover,.fd-button--ghost.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--ghost.fd-button--toggled.is-active,.fd-button--ghost.fd-button--toggled.is-selected,.fd-button--ghost.fd-button--toggled:active,.fd-button--ghost.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active .fd-button__icon,.fd-button--ghost.fd-button--toggled.is-selected .fd-button__icon,.fd-button--ghost.fd-button--toggled:active .fd-button__icon,.fd-button--ghost.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.fd-button--toggled.is-disabled,.fd-button--ghost.fd-button--toggled:disabled,.fd-button--ghost.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--tool-header{--fdButton_ToolHeader_Icon_Size:1rem;--fdButton_ToolHeader_Padding:.75rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size);--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Normal);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Button_Border_Radius);background:var(--fdButton_ToolHeader_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_ToolHeader_Border_Color);border-radius:var(--fdButton_ToolHeader_Border_Radius);color:var(--fdButton_ToolHeader_Color);height:var(--fdButton_ToolHeader_Size);max-height:var(--fdButton_ToolHeader_Size);max-width:var(--fdButton_ToolHeader_Size);min-height:var(--fdButton_ToolHeader_Size);min-width:var(--fdButton_ToolHeader_Size);padding-block:var(--fdButton_ToolHeader_Padding);padding-inline:var(--fdButton_ToolHeader_Padding);width:var(--fdButton_ToolHeader_Size)}.fd-button--tool-header [class*=sap-icon],.fd-button--tool-header[class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:inherit;font-size:var(--fdButton_ToolHeader_Icon_Size);height:var(--fdButton_ToolHeader_Icon_Size);width:var(--fdButton_ToolHeader_Icon_Size)}.fd-button--tool-header.is-hover,.fd-button--tool-header:hover{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Hover);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--tool-header.is-active,.fd-button--tool-header:active{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus,.fd-button--tool-header.is-active:focus,.fd-button--tool-header:active.is-focus,.fd-button--tool-header:active:focus{z-index:5;--fdButton_ToolHeader_Border_Radius:.375rem;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus:after,.fd-button--tool-header.is-active:focus:after,.fd-button--tool-header:active.is-focus:after,.fd-button--tool-header:active:focus:after{border:none}.fd-button--tool-header.is-focus,.fd-button--tool-header:focus{z-index:5;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Focus);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--fdButton_ToolHeader_Outline_Color)}.fd-button--tool-header.is-focus:after,.fd-button--tool-header:focus:after{border:none}.fd-button--tool-header.is-disabled,.fd-button--tool-header:disabled,.fd-button--tool-header[aria-disabled=true]{--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--tool-header[class*=-compact],[class*=-compact] .fd-button--tool-header:not([class*=-cozy]){--fdButton_ToolHeader_Padding:.5rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size_Compact)}.fd-button--tool-header .fd-button__badge{background:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_ToolHeader_Badge_Border_Color);border-radius:100%;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeBackground);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.625rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.625rem;max-width:.625rem;min-height:.625rem;min-width:.625rem;overflow:hidden;padding-block:0;padding-inline:0;position:absolute;right:-.125rem;top:-.125rem;width:.625rem}.fd-button--tool-header .fd-button__badge:after,.fd-button--tool-header .fd-button__badge:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button--tool-header .fd-button__badge[dir=rtl],[dir=rtl] .fd-button--tool-header .fd-button__badge{left:-.125rem;right:auto}.fd-button--nested,.fd-button--nested-square{--fdButton_Nested_Size:1.5rem;--fdButton_Nested_Icon_Size:.75rem;--fdButton_Nested_Click_Area:2rem;--fdButton_Nested_Color:var(--sapContent_IconColor);--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_Nested_Border_Radius:1rem;background:var(--fdButton_Nested_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_Nested_Border_Color);border-radius:var(--fdButton_Nested_Border_Radius);color:var(--fdButton_Nested_Color);height:var(--fdButton_Nested_Size);max-height:var(--fdButton_Nested_Size);max-width:var(--fdButton_Nested_Size);min-height:var(--fdButton_Nested_Size);min-width:var(--fdButton_Nested_Size);padding-block:0;padding-inline:0;width:var(--fdButton_Nested_Size)}.fd-button--nested [class*=sap-icon],.fd-button--nested-square [class*=sap-icon],.fd-button--nested-square[class*=sap-icon],.fd-button--nested[class*=sap-icon]{color:inherit;font-size:var(--fdButton_Nested_Icon_Size)}.fd-button--nested-square:before,.fd-button--nested:before{height:var(--fdButton_Nested_Click_Area);inset:auto;max-height:var(--fdButton_Nested_Click_Area);max-width:var(--fdButton_Nested_Click_Area);min-height:var(--fdButton_Nested_Click_Area);min-width:var(--fdButton_Nested_Click_Area);width:var(--fdButton_Nested_Click_Area)}.fd-button--nested-square.is-hover,.fd-button--nested-square:hover,.fd-button--nested.is-hover,.fd-button--nested:hover{--fdButton_Nested_Background:var(--sapButton_Lite_Hover_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--nested-square.is-active,.fd-button--nested-square:active,.fd-button--nested.is-active,.fd-button--nested:active{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);--fdButton_Nested_Color:var(--fdButton_Nested_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested.is-active.is-focus,.fd-button--nested.is-active:focus,.fd-button--nested:active.is-focus,.fd-button--nested:active:focus{z-index:5;--fdButton_Nested_Border_Radius:.75rem;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus:after,.fd-button--nested-square.is-active:focus:after,.fd-button--nested-square:active.is-focus:after,.fd-button--nested-square:active:focus:after,.fd-button--nested.is-active.is-focus:after,.fd-button--nested.is-active:focus:after,.fd-button--nested:active.is-focus:after,.fd-button--nested:active:focus:after{border:none}.fd-button--nested-square.is-focus,.fd-button--nested-square:focus,.fd-button--nested.is-focus,.fd-button--nested:focus{z-index:5;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Focus);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Focus);--fdButton_Nested_Border_Radius:var(--fdButton_Nested_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor)}.fd-button--nested-square.is-focus:after,.fd-button--nested-square:focus:after,.fd-button--nested.is-focus:after,.fd-button--nested:focus:after{border:none}.fd-button--nested-square.is-disabled,.fd-button--nested-square:disabled,.fd-button--nested-square[aria-disabled=true],.fd-button--nested.is-disabled,.fd-button--nested:disabled,.fd-button--nested[aria-disabled=true]{--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--nested-square[class*=-compact],.fd-button--nested[class*=-compact],[class*=-compact] .fd-button--nested-square:not([class*=-cozy]),[class*=-compact] .fd-button--nested:not([class*=-cozy]){--fdButton_Nested_Size:1.375rem;--fdButton_Nested_Click_Area:1.625rem}.fd-button--nested-square,.fd-button--nested-square.is-active,.fd-button--nested-square:active{--fdButton_Nested_Border_Radius:.1875rem}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square.is-focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested-square:focus{z-index:5;--fdButton_Nested_Border_Radius:.1875rem}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.fd-select{display:block;max-width:100%}.fd-select .fd-popover-custom{min-width:100%}.fd-select--inline{display:inline-block}.fd-select .fd-select__control .fd-select__button{position:static}.fd-select .fd-select__control.is-placeholder .fd-select__text-content{font-style:italic;font-weight:400;padding:0 .625rem;color:var(--sapField_PlaceholderTextColor)}.fd-select .fd-select__control.is-placeholder .fd-select__text-content [class*=sap-icon]{font-style:italic;font-weight:400;color:var(--sapField_PlaceholderTextColor)}.fd-select-options .fd-select-message{min-height:2rem;height:auto;display:flex;align-items:center;position:relative}.fd-popover__body .fd-select__form-message{margin-top:-.25rem}[class*=--compact] .fd-popover__body .fd-select__form-message:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-popover__body .fd-select__form-message:not(.is-cozy):not(.is-condensed),.fd-popover__body .fd-select__form-message[class*=--compact],.fd-popover__body .fd-select__form-message.is-compact{margin-top:-.1875rem}.fd-select__control.is-expanded{outline:none}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: PopoverControlComponent, selector: \"fd-popover-control, [fdPopoverControl]\" }, { kind: \"component\", type: PopoverBodyComponent, selector: \"fd-popover-body\", inputs: [\"minWidth\", \"maxWidth\", \"minHeight\", \"maxHeight\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: IconComponent, selector: \"fd-icon\", inputs: [\"glyph\", \"font\", \"color\", \"background\", \"class\", \"ariaLabel\", \"ariaHidden\"], outputs: [\"ariaHiddenChange\"] }, { kind: \"component\", type: ListComponent, selector: \"[fd-list], [fdList]\", inputs: [\"dropdownMode\", \"multiInputMode\", \"mobileMode\", \"hasMessage\", \"noBorder\", \"navigationIndicator\", \"selection\", \"keyboardSupport\", \"byline\", \"subline\", \"theme\", \"unreadIndicator\", \"role\", \"settingsList\", \"settingsListFooter\"], outputs: [\"focusEscapeList\"] }, { kind: \"directive\", type: ListMessageDirective, selector: \"[fd-list-message], [fdListMessage]\", inputs: [\"type\", \"class\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: ListTitleDirective, selector: \"[fd-list-title], [fdListTitle]\", inputs: [\"wrap\", \"truncate\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fd-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-select',\n '[class.fd-select--inline]': 'inline',\n // @deprecated leaving class fd-select-custom-class for backwards compatibility\n '[class.fd-select-custom-class]': 'inline',\n // @deprecated leaving class fd-select-custom-class--mobile for backwards compatibility\n '[class.fd-select-custom-class--mobile]': 'mobile'\n }, providers: [\n {\n provide: SELECT_COMPONENT,\n useExisting: SelectComponent\n },\n registerFormItemControl(SelectComponent),\n SelectKeyManagerService,\n contentDensityObserverProviders()\n ], imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n NgClass,\n IconComponent,\n ListComponent,\n ListMessageDirective,\n FdTranslatePipe,\n ButtonComponent,\n ListTitleDirective\n ], template: \"<ng-template [ngTemplateOutlet]=\\\"mobile ? mobileTemplate : desktopTemplate\\\"></ng-template>\\n<ng-template #desktopTemplate>\\n <!-- @deprecated leaving class fd-popover-custom-list to support backwards compatibility-->\\n <fd-popover\\n additionalBodyClass=\\\"fd-select-dropdown fd-popover-custom-list\\\"\\n [isOpen]=\\\"_isOpen\\\"\\n [triggers]=\\\"[]\\\"\\n [focusTrapped]=\\\"true\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [appendTo]=\\\"appendTo\\\"\\n [scrollStrategy]=\\\"scrollStrategy\\\"\\n [closeOnEscapeKey]=\\\"true\\\"\\n [fillControlMode]=\\\"fillControlMode\\\"\\n [maxWidth]=\\\"600\\\"\\n [closeOnOutsideClick]=\\\"closeOnOutsideClick\\\"\\n (isOpenChange)=\\\"_popoverOpenChangeHandle($event)\\\"\\n >\\n <fd-popover-control>\\n <ng-template [ngTemplateOutlet]=\\\"selectInputControlTemplate\\\"></ng-template>\\n </fd-popover-control>\\n <!-- @deprecated leaving class fd-popover-custom-select-body to support backwards compatibility-->\\n <fd-popover-body class=\\\"fd-popover-custom-select-body\\\">\\n <ng-template [ngTemplateOutlet]=\\\"selectOptionsListTemplate\\\"></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n</ng-template>\\n<ng-template #selectInputControlTemplate>\\n <div\\n class=\\\"fd-select__control\\\"\\n #selectControl\\n [class]=\\\"_selectControlClass\\\"\\n [class.is-active]=\\\"_isOpen\\\"\\n [class.is-expanded]=\\\"_isOpen\\\"\\n [class.is-disabled]=\\\"disabled\\\"\\n [class.is-readonly]=\\\"readonly\\\"\\n [class.is-placeholder]=\\\"!selected\\\"\\n [attr.tabindex]=\\\"_tabIndex\\\"\\n [attr.id]=\\\"controlId\\\"\\n [attr.aria-active]=\\\"_isOpen\\\"\\n aria-live=\\\"polite\\\"\\n role=\\\"combobox\\\"\\n aria-haspopup=\\\"listbox\\\"\\n aria-roledescription=\\\"listbox\\\"\\n [attr.aria-expanded]=\\\"_isOpen\\\"\\n [attr.aria-disabled]=\\\"disabled\\\"\\n [attr.aria-controls]=\\\"controlId + '-list-box'\\\"\\n [attr.aria-required]=\\\"required\\\"\\n [attr.title]=\\\"triggerValue\\\"\\n [attr.aria-label]=\\\"ariaLabel || ('platformSelect.selectOptionLabel' | fdTranslate)\\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [attr.aria-activedescendant]=\\\"_getAriaActiveDescendant()\\\"\\n (focus)=\\\"_onFocus()\\\"\\n (blur)=\\\"_onBlur()\\\"\\n >\\n <div class=\\\"fd-select__text-content\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"controlTemplate ? controlTemplate : defaultSelectContent\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: triggerValue, selected: selected }\\\"\\n >\\n </ng-template>\\n <ng-template #defaultSelectContent>\\n {{ triggerValue }}\\n </ng-template>\\n </div>\\n @if (!readonly) {\\n <span\\n fd-button\\n fdType=\\\"transparent\\\"\\n class=\\\"fd-select__button\\\"\\n [ngClass]=\\\"selectDropdownButtonClass\\\"\\n [class.is-disabled]=\\\"disabled\\\"\\n >\\n <fd-icon [ariaHidden]=\\\"true\\\" [glyph]=\\\"glyph\\\" [font]=\\\"glyphFont\\\"></fd-icon>\\n </span>\\n }\\n </div>\\n</ng-template>\\n<ng-template #selectOptionsListTemplate>\\n <ul\\n #optionPanel\\n fd-list\\n class=\\\"fd-select-options\\\"\\n role=\\\"listbox\\\"\\n tabindex=\\\"-1\\\"\\n [mobileMode]=\\\"mobile\\\"\\n [dropdownMode]=\\\"true\\\"\\n [hasMessage]=\\\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\\\"\\n [attr.id]=\\\"controlId + '-list-box'\\\"\\n [style.max-height]=\\\"maxHeight || calculatedMaxHeight + 'px'\\\"\\n [style.padding-block-start.rem]=\\\"showEllipsis && stateMessage ? 2 : 0\\\"\\n [attr.tooltip]=\\\"triggerValue\\\"\\n >\\n @if (stateMessage) {\\n <li\\n [attr.aria-label]=\\\"stateMessage\\\"\\n fd-list-message\\n [class.fd-select-message]=\\\"!showEllipsis\\\"\\n tabindex=\\\"-1\\\"\\n role=\\\"presentation\\\"\\n [type]=\\\"state || 'default'\\\"\\n >\\n @if (!showEllipsis) {\\n <span fd-list-title>\\n {{ stateMessage }}\\n </span>\\n } @else {\\n <span>\\n {{ stateMessage }}\\n </span>\\n }\\n </li>\\n }\\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\\n <li fd-list-message tabindex=\\\"-1\\\" role=\\\"presentation\\\" [type]=\\\"state || 'default'\\\">\\n <ng-template [ngTemplateOutlet]=\\\"advancedStateMessage!.template!\\\"></ng-template>\\n </li>\\n }\\n <ng-content></ng-content>\\n </ul>\\n</ng-template>\\n<ng-template #mobileTemplate>\\n <ng-template [ngTemplateOutlet]=\\\"selectInputControlTemplate\\\"></ng-template>\\n <div #dialogContainer></div>\\n</ng-template>\\n\", styles: [\".fd-select{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.25rem;margin-inline:0;padding-block:0;padding-inline:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:after,.fd-select:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--fdSelect_Background,var(--sapField_BackgroundStyle));background-color:var(--fdSelect_Background_Color,var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdInput_Height,var(--sapElement_Height));line-height:normal;margin-block:var(--fdInput_Field_Margin_Block,.25rem);min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:--fdSelect_Min_Width;outline:none;overflow:hidden;padding-inline:var(--fdInput_Field_Padding_Inline,.625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.25rem;-webkit-box-pack:justify;-ms-flex-pack:justify;cursor:pointer;justify-content:space-between;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-select__control:after,.fd-select__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select__control::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-select__control[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-select__control::-webkit-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-select__control::-moz-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-select__control:-ms-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-select__control::-ms-input-placeholder{text-indent:.125rem}.fd-select__control[dir=rtl]::placeholder,[dir=rtl] .fd-select__control::placeholder{text-indent:.125rem}.fd-select__control::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-select__control::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control.is-hover,.fd-select__control:hover{background:var(--fdSelect_Hover_Background,var(--sapField_Hover_BackgroundStyle));background-color:var(--fdSelect_Hover_Background_Color,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control.is-focus,.fd-select__control:focus{background:var(--fdSelect_Focus_Background,var(--sapField_Focus_Background));-webkit-box-shadow:none;box-shadow:none;outline:var(--fdInput_Outline_Color) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdInput_Outline_Offset);z-index:5}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);-webkit-box-shadow:var(--sapField_SuccessShadow);box-shadow:var(--sapField_SuccessShadow)}.fd-select__control.is-success.is-hover,.fd-select__control.is-success:hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success.is-focus,.fd-select__control.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success.is-focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-success.is-expanded,.fd-select__control.is-success[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);-webkit-box-shadow:var(--sapField_InvalidShadow);box-shadow:var(--sapField_InvalidShadow)}.fd-select__control.is-error.is-hover,.fd-select__control.is-error:hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error.is-focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-error.is-expanded,.fd-select__control.is-error[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);-webkit-box-shadow:var(--sapField_WarningShadow);box-shadow:var(--sapField_WarningShadow)}.fd-select__control.is-warning.is-hover,.fd-select__control.is-warning:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning.is-focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-warning.is-expanded,.fd-select__control.is-warning[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert.is-hover,.fd-select__control.is-alert:hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert.is-focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-alert.is-expanded,.fd-select__control.is-alert[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);-webkit-box-shadow:var(--sapField_InformationShadow);box-shadow:var(--sapField_InformationShadow)}.fd-select__control.is-information.is-hover,.fd-select__control.is-information:hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information.is-focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-information.is-expanded,.fd-select__control.is-information[aria-expanded=true]{background:var(--sapField_Focus_Background);-webkit-box-shadow:none;box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-select__control.is-alert,.fd-select__control.is-error,.fd-select__control.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-webkit-input-placeholder,.fd-select__control.is-error::-webkit-input-placeholder,.fd-select__control.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-moz-placeholder,.fd-select__control.is-error::-moz-placeholder,.fd-select__control.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert:-ms-input-placeholder,.fd-select__control.is-error:-ms-input-placeholder,.fd-select__control.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::-ms-input-placeholder,.fd-select__control.is-error::-ms-input-placeholder,.fd-select__control.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert::placeholder,.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus,.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-select__control.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control.is-disabled,.fd-select__control:disabled,.fd-select__control[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity)}.fd-select__control.is-disabled::-webkit-input-placeholder,.fd-select__control:disabled::-webkit-input-placeholder,.fd-select__control[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::-moz-placeholder,.fd-select__control:disabled::-moz-placeholder,.fd-select__control[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled:-ms-input-placeholder,.fd-select__control:disabled:-ms-input-placeholder,.fd-select__control[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::-ms-input-placeholder,.fd-select__control:disabled::-ms-input-placeholder,.fd-select__control[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder,.fd-select__control[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly,.fd-select__control[aria-readonly=true],.fd-select__control[readonly]{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-readonly::-webkit-input-placeholder,.fd-select__control[aria-readonly=true]::-webkit-input-placeholder,.fd-select__control[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::-moz-placeholder,.fd-select__control[aria-readonly=true]::-moz-placeholder,.fd-select__control[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly:-ms-input-placeholder,.fd-select__control[aria-readonly=true]:-ms-input-placeholder,.fd-select__control[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::-ms-input-placeholder,.fd-select__control[aria-readonly=true]::-ms-input-placeholder,.fd-select__control[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly::placeholder,.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-select__control.is-readonly.is-hover,.fd-select__control.is-readonly:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control[aria-readonly=true]:hover,.fd-select__control[readonly].is-hover,.fd-select__control[readonly]:hover{--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control.is-readonly.is-focus,.fd-select__control.is-readonly:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control[aria-readonly=true]:focus,.fd-select__control[readonly].is-focus,.fd-select__control[readonly]:focus{z-index:5;--fdInput_Outline_Offset:-.25rem;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-select__control .fd-select__button{background:var(--fdInput_Group_Button_Background);background-color:var(--fdButtonBackgroundColor);border:none;border-radius:var(--fdInput_Group_Button_Border_Raduis);color:var(--fdInput_Group_Button_Text_Color);overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:auto!important}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:after{border-radius:var(--fdInput_Outline_Border_Radius)}.fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button:hover{--fdInput_Group_Button_Text_Color:var(--fdInput_Group_Button_Hover_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Hover_Background);-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button:active{background:var(--fdInput_Group_Button_Active_Background);-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Box_Shadow);color:var(--fdInput_Group_Button_Active_Text_Color)}.fd-select__control.is-success.is-focus,.fd-select__control.is-success:focus{z-index:5}.fd-select__control.is-success.is-focus .fd-select__button,.fd-select__control.is-success:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-focus .fd-select__button.is-hover,.fd-select__control.is-success.is-focus .fd-select__button:hover,.fd-select__control.is-success:focus .fd-select__button.is-hover,.fd-select__control.is-success:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-expanded .fd-select__button,.fd-select__control.is-success[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success.is-expanded .fd-select__button.is-hover,.fd-select__control.is-success.is-expanded .fd-select__button:hover,.fd-select__control.is-success[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-success[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-success .fd-select__button.is-active,.fd-select__control.is-success .fd-select__button.is-hover,.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button.is-active,.fd-select__control.is-success .fd-select__button:active{color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-select__control.is-error.is-focus,.fd-select__control.is-error:focus{z-index:5}.fd-select__control.is-error.is-focus .fd-select__button,.fd-select__control.is-error:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-focus .fd-select__button.is-hover,.fd-select__control.is-error.is-focus .fd-select__button:hover,.fd-select__control.is-error:focus .fd-select__button.is-hover,.fd-select__control.is-error:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-expanded .fd-select__button,.fd-select__control.is-error[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error.is-expanded .fd-select__button.is-hover,.fd-select__control.is-error.is-expanded .fd-select__button:hover,.fd-select__control.is-error[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-error[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-error .fd-select__button.is-active,.fd-select__control.is-error .fd-select__button.is-hover,.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button.is-active,.fd-select__control.is-error .fd-select__button:active{color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-select__control.is-warning.is-focus,.fd-select__control.is-warning:focus{z-index:5}.fd-select__control.is-warning.is-focus .fd-select__button,.fd-select__control.is-warning:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-focus .fd-select__button.is-hover,.fd-select__control.is-warning.is-focus .fd-select__button:hover,.fd-select__control.is-warning:focus .fd-select__button.is-hover,.fd-select__control.is-warning:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-expanded .fd-select__button,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning.is-expanded .fd-select__button.is-hover,.fd-select__control.is-warning.is-expanded .fd-select__button:hover,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-warning[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-warning .fd-select__button.is-active,.fd-select__control.is-warning .fd-select__button.is-hover,.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button.is-active,.fd-select__control.is-warning .fd-select__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-select__control.is-alert.is-focus,.fd-select__control.is-alert:focus{z-index:5}.fd-select__control.is-alert.is-focus .fd-select__button,.fd-select__control.is-alert:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-focus .fd-select__button.is-hover,.fd-select__control.is-alert.is-focus .fd-select__button:hover,.fd-select__control.is-alert:focus .fd-select__button.is-hover,.fd-select__control.is-alert:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-expanded .fd-select__button,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert.is-expanded .fd-select__button.is-hover,.fd-select__control.is-alert.is-expanded .fd-select__button:hover,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-alert[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-alert .fd-select__button.is-active,.fd-select__control.is-alert .fd-select__button.is-hover,.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button.is-active,.fd-select__control.is-alert .fd-select__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-select__control.is-information.is-focus,.fd-select__control.is-information:focus{z-index:5}.fd-select__control.is-information.is-focus .fd-select__button,.fd-select__control.is-information:focus .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-focus .fd-select__button.is-hover,.fd-select__control.is-information.is-focus .fd-select__button:hover,.fd-select__control.is-information:focus .fd-select__button.is-hover,.fd-select__control.is-information:focus .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-expanded .fd-select__button,.fd-select__control.is-information[aria-expanded=true] .fd-select__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information.is-expanded .fd-select__button.is-hover,.fd-select__control.is-information.is-expanded .fd-select__button:hover,.fd-select__control.is-information[aria-expanded=true] .fd-select__button.is-hover,.fd-select__control.is-information[aria-expanded=true] .fd-select__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-select__control.is-information .fd-select__button.is-active,.fd-select__control.is-information .fd-select__button.is-hover,.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button:hover{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button.is-active,.fd-select__control.is-information .fd-select__button:active{color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-select__control.is-disabled,.fd-select__control:disabled,.fd-select__control[aria-disabled=true]{pointer-events:none}.fd-select__control:after{border-radius:var(--sapField_BorderCornerRadius);-webkit-box-shadow:var(--sapField_Shadow);box-shadow:var(--sapField_Shadow);content:\\\"\\\";inset:0;pointer-events:none;position:absolute}.fd-select__control.is-readonly,.fd-select__control[aria-readonly=true],.fd-select__control[readonly]{cursor:text}.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{--fdSelect_Min_Width:5rem;padding-inline:.625rem}.fd-select__control.is-readonly[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-readonly=true][aria-selected=false] .fd-select__text-content,.fd-select__control[readonly][aria-selected=false] .fd-select__text-content{visibility:hidden}.fd-select__control.is-readonly .fd-select__button,.fd-select__control[aria-readonly=true] .fd-select__button,.fd-select__control[readonly] .fd-select__button{opacity:0}.fd-select__control.is-disabled[aria-selected=false] .fd-select__text-content,.fd-select__control:disabled[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-disabled=true][aria-selected=false] .fd-select__text-content{visibility:hidden}.fd-select__control[aria-selected=false] .fd-select__text-content{padding-block:0;padding-inline:.625rem}.fd-select__control[aria-selected=false] .fd-select__text-content,.fd-select__control[aria-selected=false] .fd-select__text-content [class*=sap-icon]{color:var(--sapField_PlaceholderTextColor);font-style:italic;font-weight:400}.fd-select__text-content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-width:calc(var(--fdSelect_Min_Width) - var(--sapField_BorderWidth)*2);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;--fdSelect_Min_Width:2.5rem;-webkit-padding-start:.625rem;color:var(--fdSelect_Text_Content_Color,var(--sapTextColor));cursor:pointer;display:var(--fdSelect_Text_Content_Display,inline-block);padding-inline-start:.625rem}.fd-select__text-content:after,.fd-select__text-content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-select[class*=-compact],.fd-select[class*=-condensed],[class*=-compact] .fd-select:not([class*=-cozy]),[class*=-condensed] .fd-select:not([class*=-cozy]){margin-block:.1875rem;margin-inline:0}.fd-select[class*=-compact] .fd-select__control,.fd-select[class*=-condensed] .fd-select__control,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control{height:1.625rem;min-height:1.625rem}.fd-select[class*=-compact] .fd-select__control .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control .fd-select__text-content{--fdSelect_Min_Width:2.75rem;-webkit-padding-start:.5rem;padding-inline-start:.5rem}.fd-select[class*=-compact] .fd-select__control.is-readonly .fd-select__text-content,.fd-select[class*=-compact] .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select[class*=-compact] .fd-select__control[readonly] .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control.is-readonly .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select[class*=-condensed] .fd-select__control[readonly] .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control.is-readonly .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control[aria-readonly=true] .fd-select__text-content,[class*=-compact] .fd-select:not([class*=-cozy]) .fd-select__control[readonly] .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control.is-readonly .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control[aria-readonly=true] .fd-select__text-content,[class*=-condensed] .fd-select:not([class*=-cozy]) .fd-select__control[readonly] .fd-select__text-content{padding-inline:.5rem}.fd-button{--fdButton_Clickable_Height:2.75rem;--fdButton_Padding_X:.625rem;--fdButton_Min_Width:2.25rem;--fdButton_Badge_Offset:-.3125rem;--fdButton_Badge_Margin:.25rem;--fdButton_Badge_Margin_Inline_Start:0;--fdButton_Badge_Width:auto;--fdButton_Badge_Height:1rem;--fdButton_Badge_Position:absolute;--fdButton_Badge_Position_Attention:absolute;--fdButton_Badge_Padding_Inline:.3125rem;--fdButton_Badge_Size_Attention:.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;background-image:none;border:0;border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;outline:0;padding-block:0;padding-inline:0;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-style:solid;border-width:var(--sapButton_BorderWidth);height:var(--fdButton_Height,var(--sapElement_Height));max-height:var(--fdButton_Height,var(--sapElement_Height));min-width:var(--fdButton_Min_Width);padding-inline:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));position:relative;text-align:center;text-shadow:var(--fdButton_Text_Shadow);--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button:after,.fd-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button::-moz-focus-inner{border:0}.fd-button:before{content:\\\"\\\";display:block;height:auto;inset:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height, var(--sapElement_Height)))*-.5) 0;position:absolute;width:100%}.fd-button__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:inherit;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button__text:after,.fd-button__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button,.fd-button__text{font-family:var(--fdButton_Font_Family,var(--sapButton_FontFamily))}.fd-button :not(:first-child):not(.fd-button__badge){-webkit-margin-start:.375rem;margin-inline-start:.375rem}.fd-button>[class*=sap-icon]{color:inherit;font-size:1rem;font-style:normal;height:1rem;line-height:1rem;min-width:1rem;vertical-align:text-bottom;width:1rem}.fd-button>[class*=sap-icon]:after,.fd-button>[class*=sap-icon]:before{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.fd-button__badge{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapContent_BadgeBackground);border:.0625rem solid var(--sapContent_BadgeBorderColor);border-radius:.5rem;color:var(--sapContent_BadgeTextColor);font-size:var(--sapFontSmallSize);height:var(--fdButton_Badge_Height);padding-block:0;padding-inline:var(--fdButton_Badge_Padding_Inline);position:var(--fdButton_Badge_Position);right:var(--fdButton_Badge_Offset);top:var(--fdButton_Badge_Offset);width:var(--fdButton_Badge_Width);z-index:1;-webkit-margin-start:var(--fdButton_Badge_Margin_Inline_Start);margin-inline-start:var(--fdButton_Badge_Margin_Inline_Start)}.fd-button__badge:after,.fd-button__badge:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button__badge[dir=rtl],[dir=rtl] .fd-button__badge{left:var(--fdButton_Badge_Offset);right:auto}.fd-button__badge--attention{--fdButton_Badge_Padding_Inline:0;--fdButton_Badge_Offset:-.1875rem;--fdButton_Badge_Width:var(--fdButton_Badge_Size_Attention);--fdButton_Badge_Height:var(--fdButton_Badge_Size_Attention);--fdButton_Badge_Position:var(--fdButton_Badge_Position_Attention)}.fd-button[class*=-compact],.fd-button[class*=-condensed],[class*=-compact] .fd-button:not([class*=-cozy]),[class*=-condensed] .fd-button:not([class*=-cozy]){--fdButton_Height:var(--fdButton_Compact_Height,var(--sapElement_Compact_Height));--fdButton_Clickable_Height:2rem;--fdButton_Padding_X:.5rem;--fdButton_Min_Width:2rem;--fdButton_Badge_Position:static;--fdButton_Badge_Margin_Inline_Start:.25rem;--fdButton_Badge_Size_Attention:.625rem}.fd-button[class*=-compact]:not(.fd-button--tool-header):has(.fd-button__badge),.fd-button[class*=-condensed]:not(.fd-button--tool-header):has(.fd-button__badge),[class*=-compact] .fd-button:not([class*=-cozy]):not(.fd-button--tool-header):has(.fd-button__badge),[class*=-condensed] .fd-button:not([class*=-cozy]):not(.fd-button--tool-header):has(.fd-button__badge){padding-inline:calc(.5rem - var(--sapButton_BorderWidth)) calc(.25rem - var(--sapButton_BorderWidth))}.fd-button--menu{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-button--menu-fixed-width{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fd-button--menu .fd-button__text{line-height:1rem;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:start}.fd-button--full-width{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:100%;width:100%}.fd-button--text-alignment-left{text-align:left;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.fd-button--text-alignment-right{text-align:right;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-button--decisive{min-width:4rem}.fd-button__instructions{position:absolute;clip:rect(0 0 0 0);border:0;height:1px;margin-block:-1px;margin-inline:-1px;overflow:hidden;padding-block:0;padding-inline:0;white-space:nowrap;width:1px}.fd-button.is-focus,.fd-button:focus{-webkit-box-shadow:none;box-shadow:none;outline:none;z-index:5}.fd-button.is-focus:after,.fd-button:focus:after{border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--fdButton_Focus_Border_Radius);content:\\\"\\\";display:block;inset:var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset) var(--fdButton_Outline_Offset);position:absolute}.fd-button.is-focus.fd-button--toggled:after,.fd-button.is-focus.is-selected:after,.fd-button:focus.fd-button--toggled:after,.fd-button:focus.is-selected:after{border-color:var(--fdButton_Outline_Contrast)}.fd-button.is-active,.fd-button.is-selected,.fd-button:active,.fd-button[aria-selected=true]{-webkit-box-shadow:none;box-shadow:none;outline:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:var(--sapContent_DisabledOpacity)}.fd-button.is-selected,.fd-button[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.is-hover,.fd-button:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button.is-active,.fd-button:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button.is-active .fd-button__icon,.fd-button:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background))}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button.fd-button--toggled.is-hover,.fd-button.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button.fd-button--toggled.is-active,.fd-button.fd-button--toggled.is-selected,.fd-button.fd-button--toggled:active,.fd-button.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active .fd-button__icon,.fd-button.fd-button--toggled.is-selected .fd-button__icon,.fd-button.fd-button--toggled:active .fd-button__icon,.fd-button.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.fd-button--toggled.is-disabled,.fd-button.fd-button--toggled:disabled,.fd-button.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--emphasized,.fd-button--emphasized .fd-button__text{--fdButton_Font_Family:var(--sapButton_Emphasized_FontFamily)}.fd-button--emphasized{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);border-width:var(--sapButton_Emphasized_BorderWidth);color:var(--fdButtonColor);font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button--emphasized.is-selected,.fd-button--emphasized[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.is-hover,.fd-button--emphasized:hover{--fdButtonColor:var(--sapButton_Emphasized_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Emphasized_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Emphasized_Hover_Background))}.fd-button--emphasized.is-active,.fd-button--emphasized:active{--fdButtonColor:var(--sapButton_Emphasized_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Emphasized_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Emphasized_Active_Background));--fdElementTextColor:var(--sapButton_Emphasized_Active_TextColor);--fdElementIconColor:var(--sapButton_Emphasized_Active_TextColor)}.fd-button--emphasized.is-active .fd-button__icon,.fd-button--emphasized:active .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.is-disabled,.fd-button--emphasized:disabled,.fd-button--emphasized[aria-disabled=true]{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background))}.fd-button--emphasized.is-disabled.is-selected,.fd-button--emphasized.is-disabled[aria-selected=true],.fd-button--emphasized:disabled.is-selected,.fd-button--emphasized:disabled[aria-selected=true],.fd-button--emphasized[aria-disabled=true].is-selected,.fd-button--emphasized[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--emphasized.fd-button--toggled.is-hover,.fd-button--emphasized.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active .fd-button__icon,.fd-button--emphasized.fd-button--toggled.is-selected .fd-button__icon,.fd-button--emphasized.fd-button--toggled:active .fd-button__icon,.fd-button--emphasized.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.fd-button--toggled.is-disabled,.fd-button--emphasized.fd-button--toggled:disabled,.fd-button--emphasized.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--emphasized.is-focus,.fd-button--emphasized:focus{z-index:5}.fd-button--emphasized.is-focus:after,.fd-button--emphasized:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.fd-button--emphasized.is-focus.is-active:after,.fd-button--emphasized.is-focus:active:after,.fd-button--emphasized:focus.is-active:after,.fd-button--emphasized:focus:active:after{border-color:var(--sapContent_FocusColor)}.fd-button--emphasized[class*=-compact].is-focus,.fd-button--emphasized[class*=-compact]:focus,.fd-button--emphasized[class*=-condensed].is-focus,.fd-button--emphasized[class*=-condensed]:focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus{z-index:5}.fd-button--emphasized[class*=-compact].is-focus.is-active:after,.fd-button--emphasized[class*=-compact].is-focus:active:after,.fd-button--emphasized[class*=-compact]:focus.is-active:after,.fd-button--emphasized[class*=-compact]:focus:active:after,.fd-button--emphasized[class*=-condensed].is-focus.is-active:after,.fd-button--emphasized[class*=-condensed].is-focus:active:after,.fd-button--emphasized[class*=-condensed]:focus.is-active:after,.fd-button--emphasized[class*=-condensed]:focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus:active:after{border-color:transparent}.fd-button--emphasized.is-active,.fd-button--emphasized.is-selected,.fd-button--emphasized:active,.fd-button--emphasized[aria-selected=true]{outline:none}.fd-button--emphasized.fd-button--toggled.is-focus,.fd-button--emphasized.fd-button--toggled:focus{outline-color:var(--fdButton_Emphasized_Active_Outline);z-index:5}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{outline:none}.fd-button--attention{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--attention.is-selected,.fd-button--attention[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.is-hover,.fd-button--attention:hover{--fdButtonColor:var(--sapButton_Attention_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Attention_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Attention_Hover_Background))}.fd-button--attention.is-active,.fd-button--attention:active{--fdButtonColor:var(--sapButton_Attention_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Attention_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Attention_Active_Background));--fdElementTextColor:var(--sapButton_Attention_Active_TextColor);--fdElementIconColor:var(--sapButton_Attention_Active_TextColor)}.fd-button--attention.is-active .fd-button__icon,.fd-button--attention:active .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.is-disabled,.fd-button--attention:disabled,.fd-button--attention[aria-disabled=true]{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background))}.fd-button--attention.is-disabled.is-selected,.fd-button--attention.is-disabled[aria-selected=true],.fd-button--attention:disabled.is-selected,.fd-button--attention:disabled[aria-selected=true],.fd-button--attention[aria-disabled=true].is-selected,.fd-button--attention[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Attention_Selected_Background)}.fd-button--attention.fd-button--toggled.is-hover,.fd-button--attention.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Attention_Selected_Hover_Background)}.fd-button--attention.fd-button--toggled.is-active,.fd-button--attention.fd-button--toggled.is-selected,.fd-button--attention.fd-button--toggled:active,.fd-button--attention.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active .fd-button__icon,.fd-button--attention.fd-button--toggled.is-selected .fd-button__icon,.fd-button--attention.fd-button--toggled:active .fd-button__icon,.fd-button--attention.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.fd-button--toggled.is-disabled,.fd-button--attention.fd-button--toggled:disabled,.fd-button--attention.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--negative{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--negative.is-selected,.fd-button--negative[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.is-hover,.fd-button--negative:hover{--fdButtonColor:var(--sapButton_Reject_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Reject_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Reject_Hover_Background))}.fd-button--negative.is-active,.fd-button--negative:active{--fdButtonColor:var(--sapButton_Reject_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Reject_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Reject_Active_Background));--fdElementTextColor:var(--sapButton_Reject_Active_TextColor);--fdElementIconColor:var(--sapButton_Reject_Active_TextColor)}.fd-button--negative.is-active .fd-button__icon,.fd-button--negative:active .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.is-disabled,.fd-button--negative:disabled,.fd-button--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background))}.fd-button--negative.is-disabled.is-selected,.fd-button--negative.is-disabled[aria-selected=true],.fd-button--negative:disabled.is-selected,.fd-button--negative:disabled[aria-selected=true],.fd-button--negative[aria-disabled=true].is-selected,.fd-button--negative[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Reject_Selected_Background)}.fd-button--negative.fd-button--toggled.is-hover,.fd-button--negative.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Reject_Selected_Hover_Background)}.fd-button--negative.fd-button--toggled.is-active,.fd-button--negative.fd-button--toggled.is-selected,.fd-button--negative.fd-button--toggled:active,.fd-button--negative.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active .fd-button__icon,.fd-button--negative.fd-button--toggled.is-selected .fd-button__icon,.fd-button--negative.fd-button--toggled:active .fd-button__icon,.fd-button--negative.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.fd-button--toggled.is-disabled,.fd-button--negative.fd-button--toggled:disabled,.fd-button--negative.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--positive{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--positive.is-selected,.fd-button--positive[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.is-hover,.fd-button--positive:hover{--fdButtonColor:var(--sapButton_Accept_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Accept_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Accept_Hover_Background))}.fd-button--positive.is-active,.fd-button--positive:active{--fdButtonColor:var(--sapButton_Accept_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Accept_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Accept_Active_Background));--fdElementTextColor:var(--sapButton_Accept_Active_TextColor);--fdElementIconColor:var(--sapButton_Accept_Active_TextColor)}.fd-button--positive.is-active .fd-button__icon,.fd-button--positive:active .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.is-disabled,.fd-button--positive:disabled,.fd-button--positive[aria-disabled=true]{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background))}.fd-button--positive.is-disabled.is-selected,.fd-button--positive.is-disabled[aria-selected=true],.fd-button--positive:disabled.is-selected,.fd-button--positive:disabled[aria-selected=true],.fd-button--positive[aria-disabled=true].is-selected,.fd-button--positive[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Accept_Selected_Background)}.fd-button--positive.fd-button--toggled.is-hover,.fd-button--positive.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Accept_Selected_Hover_Background)}.fd-button--positive.fd-button--toggled.is-active,.fd-button--positive.fd-button--toggled.is-selected,.fd-button--positive.fd-button--toggled:active,.fd-button--positive.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active .fd-button__icon,.fd-button--positive.fd-button--toggled.is-selected .fd-button__icon,.fd-button--positive.fd-button--toggled:active .fd-button__icon,.fd-button--positive.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.fd-button--toggled.is-disabled,.fd-button--positive.fd-button--toggled:disabled,.fd-button--positive.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--transparent{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--transparent.is-selected,.fd-button--transparent[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.is-hover,.fd-button--transparent:hover{--fdButtonColor:var(--sapButton_Lite_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Lite_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Lite_Hover_Background))}.fd-button--transparent.is-active,.fd-button--transparent:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Lite_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Lite_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--transparent.is-active .fd-button__icon,.fd-button--transparent:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.is-disabled,.fd-button--transparent:disabled,.fd-button--transparent[aria-disabled=true]{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background))}.fd-button--transparent.is-disabled.is-selected,.fd-button--transparent.is-disabled[aria-selected=true],.fd-button--transparent:disabled.is-selected,.fd-button--transparent:disabled[aria-selected=true],.fd-button--transparent[aria-disabled=true].is-selected,.fd-button--transparent[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--transparent.fd-button--toggled.is-hover,.fd-button--transparent.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--transparent.fd-button--toggled.is-active,.fd-button--transparent.fd-button--toggled.is-selected,.fd-button--transparent.fd-button--toggled:active,.fd-button--transparent.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active .fd-button__icon,.fd-button--transparent.fd-button--toggled.is-selected .fd-button__icon,.fd-button--transparent.fd-button--toggled:active .fd-button__icon,.fd-button--transparent.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.fd-button--toggled.is-disabled,.fd-button--transparent.fd-button--toggled:disabled,.fd-button--transparent.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--ghost{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--ghost.is-selected,.fd-button--ghost[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.is-hover,.fd-button--ghost:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button--ghost.is-active,.fd-button--ghost:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--ghost.is-active .fd-button__icon,.fd-button--ghost:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.is-disabled,.fd-button--ghost:disabled,.fd-button--ghost[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background))}.fd-button--ghost.is-disabled.is-selected,.fd-button--ghost.is-disabled[aria-selected=true],.fd-button--ghost:disabled.is-selected,.fd-button--ghost:disabled[aria-selected=true],.fd-button--ghost[aria-disabled=true].is-selected,.fd-button--ghost[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Background)}.fd-button--ghost.fd-button--toggled.is-hover,.fd-button--ghost.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background));--fdButtonPrioritizedBackgroundColor:var(--sapButton_Selected_Hover_Background)}.fd-button--ghost.fd-button--toggled.is-active,.fd-button--ghost.fd-button--toggled.is-selected,.fd-button--ghost.fd-button--toggled:active,.fd-button--ghost.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active .fd-button__icon,.fd-button--ghost.fd-button--toggled.is-selected .fd-button__icon,.fd-button--ghost.fd-button--toggled:active .fd-button__icon,.fd-button--ghost.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.fd-button--toggled.is-disabled,.fd-button--ghost.fd-button--toggled:disabled,.fd-button--ghost.fd-button--toggled[aria-disabled=true]{-webkit-box-shadow:none;box-shadow:none}.fd-button--tool-header{--fdButton_ToolHeader_Icon_Size:1rem;--fdButton_ToolHeader_Padding:.75rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size);--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Normal);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Button_Border_Radius);background:var(--fdButton_ToolHeader_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_ToolHeader_Border_Color);border-radius:var(--fdButton_ToolHeader_Border_Radius);color:var(--fdButton_ToolHeader_Color);height:var(--fdButton_ToolHeader_Size);max-height:var(--fdButton_ToolHeader_Size);max-width:var(--fdButton_ToolHeader_Size);min-height:var(--fdButton_ToolHeader_Size);min-width:var(--fdButton_ToolHeader_Size);padding-block:var(--fdButton_ToolHeader_Padding);padding-inline:var(--fdButton_ToolHeader_Padding);width:var(--fdButton_ToolHeader_Size)}.fd-button--tool-header [class*=sap-icon],.fd-button--tool-header[class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:inherit;font-size:var(--fdButton_ToolHeader_Icon_Size);height:var(--fdButton_ToolHeader_Icon_Size);width:var(--fdButton_ToolHeader_Icon_Size)}.fd-button--tool-header.is-hover,.fd-button--tool-header:hover{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Hover);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--tool-header.is-active,.fd-button--tool-header:active{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus,.fd-button--tool-header.is-active:focus,.fd-button--tool-header:active.is-focus,.fd-button--tool-header:active:focus{z-index:5;--fdButton_ToolHeader_Border_Radius:.375rem;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus:after,.fd-button--tool-header.is-active:focus:after,.fd-button--tool-header:active.is-focus:after,.fd-button--tool-header:active:focus:after{border:none}.fd-button--tool-header.is-focus,.fd-button--tool-header:focus{z-index:5;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Focus);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--fdButton_ToolHeader_Outline_Color)}.fd-button--tool-header.is-focus:after,.fd-button--tool-header:focus:after{border:none}.fd-button--tool-header.is-disabled,.fd-button--tool-header:disabled,.fd-button--tool-header[aria-disabled=true]{--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--tool-header[class*=-compact],[class*=-compact] .fd-button--tool-header:not([class*=-cozy]){--fdButton_ToolHeader_Padding:.5rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size_Compact)}.fd-button--tool-header .fd-button__badge{background:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_ToolHeader_Badge_Border_Color);border-radius:100%;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeBackground);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.625rem;line-height:normal;margin-block:0;margin-inline:0;max-height:.625rem;max-width:.625rem;min-height:.625rem;min-width:.625rem;overflow:hidden;padding-block:0;padding-inline:0;position:absolute;right:-.125rem;top:-.125rem;width:.625rem}.fd-button--tool-header .fd-button__badge:after,.fd-button--tool-header .fd-button__badge:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button--tool-header .fd-button__badge[dir=rtl],[dir=rtl] .fd-button--tool-header .fd-button__badge{left:-.125rem;right:auto}.fd-button--nested,.fd-button--nested-square{--fdButton_Nested_Size:1.5rem;--fdButton_Nested_Icon_Size:.75rem;--fdButton_Nested_Click_Area:2rem;--fdButton_Nested_Color:var(--sapContent_IconColor);--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_Nested_Border_Radius:1rem;background:var(--fdButton_Nested_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_Nested_Border_Color);border-radius:var(--fdButton_Nested_Border_Radius);color:var(--fdButton_Nested_Color);height:var(--fdButton_Nested_Size);max-height:var(--fdButton_Nested_Size);max-width:var(--fdButton_Nested_Size);min-height:var(--fdButton_Nested_Size);min-width:var(--fdButton_Nested_Size);padding-block:0;padding-inline:0;width:var(--fdButton_Nested_Size)}.fd-button--nested [class*=sap-icon],.fd-button--nested-square [class*=sap-icon],.fd-button--nested-square[class*=sap-icon],.fd-button--nested[class*=sap-icon]{color:inherit;font-size:var(--fdButton_Nested_Icon_Size)}.fd-button--nested-square:before,.fd-button--nested:before{height:var(--fdButton_Nested_Click_Area);inset:auto;max-height:var(--fdButton_Nested_Click_Area);max-width:var(--fdButton_Nested_Click_Area);min-height:var(--fdButton_Nested_Click_Area);min-width:var(--fdButton_Nested_Click_Area);width:var(--fdButton_Nested_Click_Area)}.fd-button--nested-square.is-hover,.fd-button--nested-square:hover,.fd-button--nested.is-hover,.fd-button--nested:hover{--fdButton_Nested_Background:var(--sapButton_Lite_Hover_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--nested-square.is-active,.fd-button--nested-square:active,.fd-button--nested.is-active,.fd-button--nested:active{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);--fdButton_Nested_Color:var(--fdButton_Nested_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested.is-active.is-focus,.fd-button--nested.is-active:focus,.fd-button--nested:active.is-focus,.fd-button--nested:active:focus{z-index:5;--fdButton_Nested_Border_Radius:.75rem;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus:after,.fd-button--nested-square.is-active:focus:after,.fd-button--nested-square:active.is-focus:after,.fd-button--nested-square:active:focus:after,.fd-button--nested.is-active.is-focus:after,.fd-button--nested.is-active:focus:after,.fd-button--nested:active.is-focus:after,.fd-button--nested:active:focus:after{border:none}.fd-button--nested-square.is-focus,.fd-button--nested-square:focus,.fd-button--nested.is-focus,.fd-button--nested:focus{z-index:5;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Focus);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Focus);--fdButton_Nested_Border_Radius:var(--fdButton_Nested_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor)}.fd-button--nested-square.is-focus:after,.fd-button--nested-square:focus:after,.fd-button--nested.is-focus:after,.fd-button--nested:focus:after{border:none}.fd-button--nested-square.is-disabled,.fd-button--nested-square:disabled,.fd-button--nested-square[aria-disabled=true],.fd-button--nested.is-disabled,.fd-button--nested:disabled,.fd-button--nested[aria-disabled=true]{--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--nested-square[class*=-compact],.fd-button--nested[class*=-compact],[class*=-compact] .fd-button--nested-square:not([class*=-cozy]),[class*=-compact] .fd-button--nested:not([class*=-cozy]){--fdButton_Nested_Size:1.375rem;--fdButton_Nested_Click_Area:1.625rem}.fd-button--nested-square,.fd-button--nested-square.is-active,.fd-button--nested-square:active{--fdButton_Nested_Border_Radius:.1875rem}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square.is-focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested-square:focus{z-index:5;--fdButton_Nested_Border_Radius:.1875rem}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.fd-select{display:block;max-width:100%}.fd-select .fd-popover-custom{min-width:100%}.fd-select--inline{display:inline-block}.fd-select .fd-select__control .fd-select__button{position:static}.fd-select .fd-select__control.is-placeholder .fd-select__text-content{font-style:italic;font-weight:400;padding:0 .625rem;color:var(--sapField_PlaceholderTextColor)}.fd-select .fd-select__control.is-placeholder .fd-select__text-content [class*=sap-icon]{font-style:italic;font-weight:400;color:var(--sapField_PlaceholderTextColor)}.fd-select-options .fd-select-message{min-height:2rem;height:auto;display:flex;align-items:center;position:relative}.fd-popover__body .fd-select__form-message{margin-top:-.25rem}[class*=--compact] .fd-popover__body .fd-select__form-message:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-popover__body .fd-select__form-message:not(.is-cozy):not(.is-condensed),.fd-popover__body .fd-select__form-message[class*=--compact],.fd-popover__body .fd-select__form-message.is-compact{margin-top:-.1875rem}.fd-select__control.is-expanded{outline:none}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }, { type: i1.SelectKeyManagerService }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i2.DynamicComponentService, decorators: [{\n type: Optional\n }] }, { type: i3.NgControl, decorators: [{\n type: Optional\n }, {\n type: Self\n }] }, { type: i0.Injector, decorators: [{\n type: Optional\n }] }, { type: i4.ContentDensityObserver }], propDecorators: { extendedBodyTemplate: [{\n type: Input\n }], scrollStrategy: [{\n type: Input\n }], textOverflow: [{\n type: Input\n }], controlId: [{\n type: Input\n }], state: [{\n type: Input\n }], mobile: [{\n type: Input\n }], stateMessage: [{\n type: Input\n }], disabled: [{\n type: Input\n }], required: [{\n type: Input\n }], readonly: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], value: [{\n type: Input\n }], maxHeight: [{\n type: Input\n }], glyph: [{\n type: Input\n }], glyphFont: [{\n type: Input\n }], closeOnOutsideClick: [{\n type: Input\n }], fillControlMode: [{\n type: Input\n }], controlTemplate: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], unselectMissingOption: [{\n type: Input\n }], typeaheadDebounceInterval: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], mobileConfig: [{\n type: Input\n }], inline: [{\n type: Input\n }], selectControlClass: [{\n type: Input\n }], selectDropdownButtonClass: [{\n type: Input\n }], advancedStateMessage: [{\n type: Input\n }], tabOutStrategy: [{\n type: Input\n }], isOpenChange: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], _options: [{\n type: ContentChildren,\n args: [OptionComponent, { descendants: true }]\n }], _controlElementRef: [{\n type: ViewChild,\n args: ['selectControl']\n }], selectOptionsListTemplate: [{\n type: ViewChild,\n args: ['selectOptionsListTemplate']\n }], _dialogContainerElementRef: [{\n type: ViewChild,\n args: ['dialogContainer']\n }], _overlayDir: [{\n type: ViewChild,\n args: [CdkConnectedOverlay]\n }], _optionPanel: [{\n type: ViewChild,\n args: ['optionPanel', { read: ElementRef }]\n }], compareWith: [{\n type: Input\n }], _resizeScrollHandler: [{\n type: HostListener,\n args: ['window:resize']\n }], _handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], toggle: [{\n type: HostListener,\n args: ['click']\n }] } });\nexport class DeprecatedSelectCSSClasses {\n constructor() {\n /** @hidden */\n this.message = `Select CSS classes fd-select--compact, fd-select--compact--mobile, fd-popover-custom-select-body, fd-popover-custom-list are deprecated`;\n /** @hidden */\n this.alternative = {\n name: 'Inspect the elements of the Select component to see the new classes',\n link: ['/core', 'select']\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUdILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxFQUVKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLE9BQU8sRUFHUCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHVC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QUEwQjtJQUF2QztRQUNJLGNBQWM7UUFDZCxZQUFPLEdBQUcseUlBQXlJLENBQUM7UUFFcEosY0FBYztRQUNkLGdCQUFXLEdBQUc7WUFDVixJQUFJLEVBQUUscUVBQXFFO1lBQzNFLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7U0FDNUIsQ0FBQztJQUNOLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBpc0Rldk1vZGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBkZWZlciwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgS2V5VXRpbCxcbiAgICBNb2R1bGVEZXByZWNhdGlvbixcbiAgICBOdWxsYWJsZSxcbiAgICBSdGxTZXJ2aWNlLFxuICAgIGRlc3Ryb3lPYnNlcnZhYmxlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcbmltcG9ydCB7IFBvcG92ZXJGaWxsTW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1GaWVsZEFkdmFuY2VkU3RhdGVNZXNzYWdlLCBGb3JtU3RhdGVzLCBTaW5nbGVEcm9wZG93blZhbHVlQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uQ29tcG9uZW50LCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RNZXNzYWdlRGlyZWN0aXZlLCBMaXN0VGl0bGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGlzdCc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmRPcHRpb25TZWxlY3Rpb25DaGFuZ2UsIE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0S2V5TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdC1rZXktbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlbGVjdE1vYmlsZUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LW1vYmlsZS9zZWxlY3QtbW9iaWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09NUE9ORU5ULCBTZWxlY3RJbnRlcmZhY2UgfSBmcm9tICcuL3NlbGVjdC5pbnRlcmZhY2UnO1xuXG5sZXQgc2VsZWN0VW5pcXVlSWQgPSAwO1xuXG5jb25zdCBTRUxFQ1RfSEVBREVSX0lERU5USUZJRVIgPSAnLmZkLWxpc3RfX2dyb3VwLWhlYWRlcic7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCA9IDI1MDtcblxuLyoqIFRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBpdGVtcyBpbiBgcmVtYCB1bml0cy4gKi9cbmV4cG9ydCBjb25zdCBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gPSA0O1xuXG5leHBvcnQgdHlwZSBUZXh0T3ZlcmZsb3dNb2RlID0gJ2Z1bGwnIHwgJ2VsbGlwc2lzJztcblxuZXhwb3J0IGVudW0gVGV4dE92ZXJmbG93TW9kZUVudW0ge1xuICAgIEZVTEwgPSAnZnVsbCcsXG4gICAgRUxMSVBTSVMgPSAnZWxsaXBzaXMnXG59XG5cbi8qKlxuICogU2VsZWN0IGNvbXBvbmVudCBpbnRlbmRlZCB0byBtaW1pY1xuICogdGhlIGJlaGF2aW91ciBvZiB0aGUgbmF0aXZlIHNlbGVjdCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtc2VsZWN0JyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zZWxlY3QtLWlubGluZV0nOiAnaW5saW5lJyxcbiAgICAgICAgLy8gQGRlcHJlY2F0ZWQgbGVhdmluZyBjbGFzcyBmZC1zZWxlY3QtY3VzdG9tLWNsYXNzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAnW2NsYXNzLmZkLXNlbGVjdC1jdXN0b20tY2xhc3NdJzogJ2lubGluZScsXG4gICAgICAgIC8vIEBkZXByZWNhdGVkIGxlYXZpbmcgY2xhc3MgZmQtc2VsZWN0LWN1c3RvbS1jbGFzcy0tbW9iaWxlIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAnW2NsYXNzLmZkLXNlbGVjdC1jdXN0b20tY2xhc3MtLW1vYmlsZV0nOiAnbW9iaWxlJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU2VsZWN0Q29tcG9uZW50XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sKFNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIFNlbGVjdEtleU1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBMaXN0Q29tcG9uZW50LFxuICAgICAgICBMaXN0TWVzc2FnZURpcmVjdGl2ZSxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIExpc3RUaXRsZURpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSBhbnk+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBTaW5nbGVEcm9wZG93blZhbHVlQ29udHJvbCxcbiAgICAgICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgICAgIFNlbGVjdEludGVyZmFjZSxcbiAgICAgICAgT25Jbml0LFxuICAgICAgICBBZnRlclZpZXdJbml0LFxuICAgICAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgICAgICBPbkNoYW5nZXMsXG4gICAgICAgIE9uRGVzdHJveSxcbiAgICAgICAgRm9ybUl0ZW1Db250cm9sXG57XG4gICAgLyoqIEBkZXByZWNhdGVkXG4gICAgICogaXQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IGNvbnRyb2xUZW1wbGF0ZSAhPSBudWxsfHVuZGVmaW5lZCBpc1xuICAgICAqIEVxdWFsIGFzIGV4dGVuZGVkQm9keVRlbXBsYXRlIGFzIHRydWUuXG4gICAgICogV2hldGhlciBvcHRpb24gY29tcG9uZW50cyBjb250YWluIG1vcmUgdGhhbiBiYXNpYyB0ZXh0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGV4dGVuZGVkQm9keVRlbXBsYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2V4dGVuZGVkQm9keVRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGV4dGVuZGVkQm9keVRlbXBsYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXh0ZW5kZWRCb2R5VGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqIFNjcm9sbGluZyBzdHJhdGVneSB0byBiZSB1c2VkIGZvciBwb3BvdmVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2Nyb2xsU3RyYXRlZ3k6IFNjcm9sbFN0cmF0ZWd5O1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgaG93IGxvbmcgdGV4dCBpcyBkaXNwbGF5ZWQgaW4gdGhlIGRyb3Bkb3duIGxpc3Qgb2YgdGhlIFNlbGVjdCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiAtIGAnZWxsaXBzaXMnYDogVHJ1bmNhdGVzIHRoZSB0ZXh0IHdpdGggYW4gZWxsaXBzaXMgKGAuLi5gKSBpZiBpdCBleGNlZWRzIGEgY2VydGFpbiBsZW5ndGguXG4gICAgICogLSBgJ2Z1bGwnYDogRGlzcGxheXMgdGhlIGVudGlyZSB0ZXh0IG9uIG11bHRpcGxlIGxpbmVzLCBlbnN1cmluZyBmdWxsIHZpc2liaWxpdHkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0ZXh0T3ZlcmZsb3c6IFRleHRPdmVyZmxvd01vZGUgPSAnZWxsaXBzaXMnO1xuXG4gICAgLyoqIFRoZSBJRCBvZiB0aGUgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRyb2xJZCA9IGBmZC1zZWxlY3QtJHtzZWxlY3RVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogSG9sZHMgdGhlIGNvbnRyb2wgc3RhdGUgb2Ygc2VsZWN0ICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogTnVsbGFibGU8Rm9ybVN0YXRlcz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2VsZWN0IGNvbXBvbmVudCBzaG91bGQgYmUgZGlzcGxheWVkIGluIG1vYmlsZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlID0gZmFsc2U7XG5cbiAgICAvKiogSG9sZHMgdGhlIG1lc3NhZ2Ugd2l0aCByZXNwZWN0IHRvIHN0YXRlICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZU1lc3NhZ2U6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2VsZWN0IGNvbXBvbmVudCBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogSWYgaXQgaXMgbWFuZGF0b3J5IGZpZWxkICovXG4gICAgQElucHV0KClcbiAgICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdCBjb21wb25lbnQgaXMgcmVhZG9ubHkuICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seSA9IGZhbHNlO1xuXG4gICAgLyoqIFBsYWNlaG9sZGVyIGZvciB0aGUgc2VsZWN0LiBBcHBlYXJzIGluIHRoZSB0cmlnZ2VyYm94IGlmIG5vIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogVmFsdWUgb2YgdGhlIHNlbGVjdCBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl9pbnRlcm5hbFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogTWF4IGhlaWdodCBvZiB0aGUgcG9wb3Zlci4gQW55IG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpbGwgYmUgYWNjZXNzaWJsZSB0aHJvdWdoIHNjcm9sbGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1heEhlaWdodDogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoIHRvIGFkZCBpY29uIGluIHRoZSBzZWxlY3QgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGggPSAnc2xpbS1hcnJvdy1kb3duJztcblxuICAgIC8qKiBHbHlwaCBmb250IGZhbWlseSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhGb250OiBJY29uRm9udCA9IEZEX0RFRkFVTFRfSUNPTl9GT05UX0ZBTUlMWTtcblxuICAgIC8qKiBXaGV0aGVyIGNsb3NlIHRoZSBwb3BvdmVyIG9uIG91dHNpZGUgY2xpY2suICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZU9uT3V0c2lkZUNsaWNrID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgU2VsZWN0IGJvZHkgd2lkdGgsIHdoYXRldmVyIGlzIGNob3NlbiwgdGhlIGJvZHkgaGFzIGEgNjAwcHggbGltaXQuXG4gICAgICogKiBgYXQtbGVhc3RgIHdpbGwgYXBwbHkgYSBtaW5pbXVtIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLiAtIERlZmF1bHRcbiAgICAgKiAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogJ2ZpdC1jb250ZW50JyB3aWxsIGFwcGx5IHdpZHRoIG5lZWRlZCB0byBwcm9wZXJseSBkaXNwbGF5IGl0ZW1zIGluc2lkZSwgaW5kZXBlbmRlbnQgb2YgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogUG9wb3ZlckZpbGxNb2RlID0gJ2F0LWxlYXN0JztcblxuICAgIC8qKiBDdXN0b20gdGVtcGxhdGUgdXNlZCB0byBidWlsZCBjb250cm9sIGJvZHkuICovXG4gICAgQElucHV0KClcbiAgICBjb250cm9sVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogVGhlIGVsZW1lbnQgdG8gd2hpY2ggdGhlIHBvcG92ZXIgc2hvdWxkIGJlIGFwcGVuZGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXBwZW5kVG86IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgb3B0aW9uIHNob3VsZCBiZSB1bnNlbGVjdGVkIGFuZCB2YWx1ZSBjaGFuZ2VkIHRvIHVuZGVmaW5lZCwgd2hlbiB0aGUgY3VycmVudCB2YWx1ZSBpc1xuICAgICAqIG5vdCBwcmVzZW50ZWQgaW4gb3B0aW9uIGFycmF5LiBTd2l0Y2hpbmcgaXQgb2ZmIGNhbiBiZSBoYW5keSwgd2hlbiB0aGVyZSBpcyBzb21lIGRlbGF5IGJldHdlZW4gcHJvdmlkaW5nXG4gICAgICogcG9zc2libGUgb3B0aW9ucyBhbmQgY2hvc2VuIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdW5zZWxlY3RNaXNzaW5nT3B0aW9uID0gdHJ1ZTtcblxuICAgIC8qKiBUaW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IGtleWRvd24gYmVmb3JlIGZvY3VzaW5nIG9yIHNlbGVjdGluZyBvcHRpb24gYmFzZWQgb24gYWxwaGFudW1lcmljIGtleXMuICovXG4gICAgQElucHV0KClcbiAgICB0eXBlYWhlYWREZWJvdW5jZUludGVydmFsID0gMjUwO1xuXG4gICAgLyoqIEJpbmRzIHRvIGNvbnRyb2wgYXJpYS1sYWJlbGxlZEJ5IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2VsZWN0IElucHV0IE1vYmlsZSBDb25maWd1cmF0aW9uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWcgPSB7IGhhc0Nsb3NlQnV0dG9uOiB0cnVlIH07XG5cbiAgICAvKiogU2hvdWxkIHNlbGVjdCBiZSBpbmxpbmVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gdHJ1ZTtcblxuICAgIC8qKiBBZGRpdGlvbmFsIGNsYXNzbmFtZSBmb3IgdGhlIHNlbGVjdCBjb250cm9sIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RDb250cm9sQ2xhc3M6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQWRkaXRpb25hbCBjbGFzc25hbWUgZm9yIHRoZSBzZWxlY3QgZHJvcGRvd24gYnV0dG9uIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3REcm9wZG93bkJ1dHRvbkNsYXNzOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEhvbGRzIGFkdmFuY2VkIG1lc3NhZ2UgcmVuZGVyZXIgd2l0aCByZXNwZWN0IHRvIHN0YXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWR2YW5jZWRTdGF0ZU1lc3NhZ2U6IE51bGxhYmxlPEZvcm1GaWVsZEFkdmFuY2VkU3RhdGVNZXNzYWdlPjtcblxuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0byBwZXJmb3JtIHdoZW4gdXNlciBzaGlmdHMgZm9jdXMgZnJvbSB0aGUgZHJvcGRvd24uXG4gICAgICogLSBgY2xvc2VgIHdpbGwgY2xvc2UgdGhlIGRyb3Bkb3duIHByZXNlcnZpbmcgcHJldmlvdXNseSBzZWxlY3RlZCB2YWx1ZS5cbiAgICAgKiAtIGBjbG9zZUFuZFNlbGVjdGAgd2lsbCBjbG9zZSB0aGUgZHJvcGRvd24gYW5kIHNlbGVjdCBsYXN0IGZvY3VzZWQgZHJvcGRvd24gaXRlbS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYk91dFN0cmF0ZWd5OiAnY2xvc2UnIHwgJ2Nsb3NlQW5kU2VsZWN0JyA9ICdjbG9zZSc7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBfb3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbnRyb2wnKVxuICAgIF9jb250cm9sRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogUmVmZXJlbmNlIHRvIGVsZW1lbnQgY29udGFpbmluZyBsaXN0IG9mIG9wdGlvbnMgKi9cbiAgICBAVmlld0NoaWxkKCdzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlJylcbiAgICBzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBSZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50IGZvciB0aGUgbW9iaWxlIG1vZGUgZGlhbG9nICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nQ29udGFpbmVyJylcbiAgICBfZGlhbG9nQ29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpXG4gICAgX292ZXJsYXlEaXI6IENka0Nvbm5lY3RlZE92ZXJsYXk7XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlZmVyZW50IHRvIHRoZSBvcHRpb247cyBjb250YWluZXJcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdvcHRpb25QYW5lbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIF9vcHRpb25QYW5lbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIgaXMgb3BlbmVkXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9pc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9saXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW50ZXJuYWxWYWx1ZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FsY3VsYXRlZE1heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHNob3dFbGxpcHNpcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dE92ZXJmbG93ID09PSBUZXh0T3ZlcmZsb3dNb2RlRW51bS5FTExJUFNJUztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVHJpZ2dlcnMgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2VsZWN0Q29udHJvbENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbdGhpcy5zdGF0ZSA/IGBpcy0ke3RoaXMuc3RhdGV9YCA6ICcnLCB0aGlzLnNlbGVjdENvbnRyb2xDbGFzc11cbiAgICAgICAgICAgIC5maWx0ZXIoKGNsYXNzTmFtZSkgPT4gISFjbGFzc05hbWUpXG4gICAgICAgICAgICAuam9pbignICcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDb21iaW5lZCBzdHJlYW0gb2YgYWxsIG9mIHRoZSBjaGlsZCBvcHRpb25zJyBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBfb3B0aW9ucz8uY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKF9vcHRpb25zKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLyoqIFNlbGVjdGVkIG9wdGlvbi4gKi9cbiAgICBnZXQgc2VsZWN0ZWQoKTogT3B0aW9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWV2ZXMgc2VsZWN0ZWQgdmFsdWUgaWYgYW55LiAqL1xuICAgIGdldCB0cmlnZ2VyVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZW1wdHlWYWx1ZSA9ICcgJztcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgZW1wdHlWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC52aWV3VmFsdWUgfHwgdGhpcy5wbGFjZWhvbGRlciB8fCBlbXB0eVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBlcXVhbCB0byBjbG9zZVxuICAgICAqIFRlbGxzIHRoZSBPcHRpb25MaXN0IGlmIGl0J3MgY2xvc2FibGUgYnkgc2ltcGx5IHNlbGVjdGluZyB0aGUgaXRlbSBlaXRoZXIgd2l0aCBDTElDSyB8IFNQQUNFIHwgRU5URVIuXG4gICAgICogV2hlbiB3ZSBhcmUgaW4gbW9iaWxlIG1vZGUgKG1vYmlsZT10cnVlKSBhbmQgaGF2ZSB3ZSBoYXZlIGVuYWJsZWQgY29uZmlybWF0aW9uIGJ1dHRvbnMgdGhlbiB3ZVxuICAgICAqIGRvbnQgY2xvc2Ugb3B0aW9uIGxpc3QuIFdlIGNsb3NlIG9ubHkgYWZ0ZXIgd2UgaGl0IGNvbmZpcm0gYnV0dG9uLlxuICAgICAqL1xuICAgIGdldCBjYW5DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEodGhpcy5tb2JpbGUgJiYgdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIGNvbnRyb2wgY2FuIGJlIGludGVyYWN0ZWQgd2l0aCAqL1xuICAgIGdldCBpc0ludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHdlIGNhbiBlbWl0IGEgdmFsdWUuIFRoZXkgYXJlIDMgZGlmZmVyZW50IHBhdGhzIHdoZXJlIHdlIGNhbiBlbWl0IHZhbHVlOlxuICAgICAqICAtIFdlIGFyZSBub3QgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09ZmFsc2VcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBhcyBqdXN0IGNsb3NlIFggYnV0dG9uIHRvIGRpc21pc3MgaXRcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBoYXMgQXBwcm92ZUJ1dHRvbiBhdmFpbGFibGUgYW5kXG4gICAgICogIGRpYWxvZyBpcyBjbG9zZWQuIChtZWFuaW5nIHdlIGFscmVhZHkgY2xpY2tlZCB0aGlzIGJ1dHRvbilcbiAgICAgKi9cbiAgICBnZXQgY2FuRW1pdFZhbHVlQ2hhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubW9iaWxlIHx8XG4gICAgICAgICAgICAodGhpcy5tb2JpbGUgJiZcbiAgICAgICAgICAgICAgICAvLyBBcHByb3ZlICsgQ2FuY2VsXG4gICAgICAgICAgICAgICAgISF0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9pc09wZW4pIHx8XG4gICAgICAgICAgICAvLyBDbG9zZUJ1dHRvbi4gRW1pdHMgd2hlbiB5b3UgY2xpY2sgb24gdGhlIG9wdGlvbiBpdGVtXG4gICAgICAgICAgICAoISF0aGlzLm1vYmlsZUNvbmZpZy5oYXNDbG9zZUJ1dHRvbiAmJiAhIXRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ID09PSBmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY29tcGFyZVdpdGgoZm46IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdjb21wYXJlV2l0aGAgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm47XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgICAgICAgLy8gQSBkaWZmZXJlbnQgY29tcGFyYXRvciBtZWFucyB0aGUgc2VsZWN0aW9uIGNvdWxkIGNoYW5nZS5cbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb21wYXJlV2l0aCgpOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZCB8fCB0aGlzLl9pc09wZW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgY2FsY3VsYXRlZE1heEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4SGVpZ2h0IHx8IHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQ7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZSA9IGluamVjdChSdGxTZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2V4dGVuZGVkQm9keVRlbXBsYXRlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbnRyb2xFbGVtRm9udFNpemUgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU3RvcmVkIGNhbGN1bGF0ZWQgbWF4SGVpZ2h0IGZyb20gT3B0aW9uIFBhbmVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbWF4SGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYmluZGV4JykgX3RhYkluZGV4OiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2tleU1hbmFnZXJTZXJ2aWNlOiBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9keW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gcGFyc2VJbnQoX3RhYkluZGV4LCAxMCkgfHwgMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIF9yZXNpemVTY3JvbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxjdWxhdGVkSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzT3BlblxuICAgICAgICAgICAgICAgID8gdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2hhbmRsZU9wZW5LZXlkb3duKGV2ZW50KVxuICAgICAgICAgICAgICAgIDogdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2hhbmRsZUNsb3NlZEtleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRSwgRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUb2dnbGVzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCA/IC0xIDogMDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29tcGFyZVdpdGggPSAobzE6IGFueSwgbzI6IGFueSk6IGJvb2xlYW4gPT4gbzEgPT09IG8yO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUNvbW1vbkJlaGF2aW9yKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9pbml0S2V5TWFuYWdlcigpO1xuICAgICAgICB0aGlzLl9zZXR1cE1vYmlsZU1vZGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJFdmVudHNBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWyd0eXBlYWhlYWREZWJvdW5jZUludGVydmFsJ10gJiYgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLndpdGhUeXBlQWhlYWQodGhpcy50eXBlYWhlYWREZWJvdW5jZUludGVydmFsKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJJbmRleCA9IHRoaXMuZGlzYWJsZWQgPyAtMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogT3BlbnMgdGhlIHNlbGVjdCBwb3BvdmVyIGJvZHkuICovXG4gICAgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSB8fCAhdGhpcy5fb3B0aW9ucyB8fCAhdGhpcy5fZ2V0SXRlbUNvdW50KCkgfHwgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9jb250cm9sRWxlbUZvbnRTaXplID0gcGFyc2VJbnQoXG4gICAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZvbnRTaXplIHx8ICcwJyxcbiAgICAgICAgICAgIDEwXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fY29udHJvbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xvc2UoZm9yY2VDbG9zZSA9IGZhbHNlLCB0YWJPdXQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNPcGVuIHx8IGZvcmNlQ2xvc2UpIHtcbiAgICAgICAgICAgIGlmICh0YWJPdXQgJiYgdGhpcy50YWJPdXRTdHJhdGVneSA9PT0gJ2Nsb3NlQW5kU2VsZWN0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Ll9zZWxlY3RWaWFJbnRlcmFjdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMucnRsJCgpID8gJ3J0bCcgOiAnbHRyJyk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZvY3VzZXMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9jb250cm9sRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQmx1cnMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgYmx1cigpOiB2b2lkIHtcbiAgICAgICAgKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5ibHVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZyb20gQ29udHJvbFZhbHVlIEFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFNlbGVjdGlvbkJ5VmFsdWUodmFsdWU6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdPcHRpb24gPSB0aGlzLl9zZWxlY3RWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gU2hpZnQgZm9jdXMgdG8gdGhlIGFjdGl2ZSBpdGVtLiBOb3RlIHRoYXQgd2Ugc2hvdWxkbid0IGRvIHRoaXMgaW4gbXVsdGlwbGVcbiAgICAgICAgLy8gbW9kZSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQgb3B0aW9uIHRoZSB1c2VyIGludGVyYWN0ZWQgd2l0aCBsYXN0LlxuICAgICAgICBpZiAoY29ycmVzcG9uZGluZ09wdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgcmVzZXQgdGhlIGhpZ2hsaWdodGVkIG9wdGlvbi4gTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlzIHdoaWxlXG4gICAgICAgICAgICAvLyBjbG9zZWQsIGJlY2F1c2UgZG9pbmcgaXQgd2hpbGUgb3BlbiBjYW4gc2hpZnQgdGhlIHVzZXIncyBmb2N1cyB1bm5lY2Vzc2FyaWx5LlxuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RWYWx1ZSh2YWx1ZTogYW55KTogT3B0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY29ycmVzcG9uZGluZ09wdGlvbiA9IHRoaXMuX29wdGlvbnMuZmluZCgob3B0aW9uOiBPcHRpb25Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gVHJlYXQgbnVsbCBhcyBhIHNwZWNpYWwgcmVzZXQgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSAhPSBudWxsICYmIHRoaXMuX2NvbXBhcmVXaXRoKG9wdGlvbi52YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aWZ5IGRldmVsb3BlcnMgb2YgZXJyb3JzIGluIHRoZWlyIGNvbXBhcmF0b3IuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3JyZXNwb25kaW5nT3B0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BvcG92ZXJPcGVuQ2hhbmdlSGFuZGxlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpc09wZW4gPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIF9rZXlNYW5hZ2VyU2VydmljZS4gKi9cbiAgICBfZ2V0S2V5U2VydmljZSgpOiBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIgJiYgIXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIC8vIERlZmVyIHNldHRpbmcgdGhlIHZhbHVlIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBcIkV4cHJlc3Npb25cbiAgICAgICAgLy8gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBlcnJvcnMgZnJvbSBBbmd1bGFyLlxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodGhpcy5uZ0NvbnRyb2wgPyB0aGlzLm5nQ29udHJvbC52YWx1ZSA6IHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBvc2Ugb3V0c2lkZSBvZiB0aGlzIG1peGluIHRvIGdpdmUgY29tcG9uZW50IGFiaWxpdHlcbiAgICAgKiB0byB1cGRhdGUgY2FsdWNsYXRlZE1heEhlaWdodCBpZiBuZWVkZWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZWRNYXhIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ1O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldE9wdGlvblNjcm9sbFBvc2l0aW9uKG9wdGlvbkluZGV4OiBudW1iZXIsIGl0ZW1IZWlnaHQ6IG51bWJlciwgY3VycmVudFNjcm9sbFBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBvcHRpb25IZWlnaHQgPSB0aGlzLl9vcHRpb25zLmdldChvcHRpb25JbmRleCk/Ll9nZXRIdG1sRWxlbWVudCgpLm9mZnNldEhlaWdodCB8fCBpdGVtSGVpZ2h0O1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSBvcHRpb25JbmRleCAqIG9wdGlvbkhlaWdodDtcbiAgICAgICAgaWYgKG9wdGlvbk9mZnNldCA8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbk9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25PZmZzZXQgKyBvcHRpb25IZWlnaHQgPiBjdXJyZW50U2Nyb2xsUG9zaXRpb24gKyBTRUxFQ1RfUEFORUxfTUFYX0hFSUdIVCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIG9wdGlvbk9mZnNldCAtIFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUICsgb3B0aW9uSGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudFNjcm9sbFBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEl0ZW1IZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gYWxzbyBpbmNsdWRlIGJvcmRlciB3aXRoIGRlZmF1bHQgdmFsdWUgMS5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xFbGVtRm9udFNpemUgKiBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gKyAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8T3B0aW9uQ29tcG9uZW50PihmYWxzZSk7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9jb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNhbGN1bGF0ZWRIZWlnaHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yZWdpc3RlckV2ZW50c0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LmFkZGVkLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLl9zZWxlY3QoKSk7XG4gICAgICAgICAgICBldmVudC5yZW1vdmVkLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLl9kZXNlbGVjdCgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLl9pc09wZW4gJiYgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIgJiYgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLl9pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2J1dHRvbkNsaWNrKCk6IHZvaWQge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaGFuZ2VkT3JEZXN0cm95ZWQgPSBtZXJnZSh0aGlzLl9vcHRpb25zLmNoYW5nZXMsIGRlc3Ryb3lPYnNlcnZhYmxlKHRoaXMuX2Rlc3Ryb3kpKTtcblxuICAgICAgICB0aGlzLl9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uU2VsZWN0KGV2ZW50LnNvdXJjZSwgZXZlbnQuaXNVc2VySW5wdXQpO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuaXNVc2VySW5wdXQgJiYgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTGlzdGVuIHRvIGNoYW5nZXMgaW4gdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSBfb3B0aW9ucyBhbmQgcmVhY3QgYWNjb3JkaW5nbHkuXG4gICAgICAgIC8vIEhhbmRsZXMgY2FzZXMgbGlrZSB0aGUgbGFiZWxzIG9mIHRoZSBzZWxlY3RlZCBfb3B0aW9ucyBjaGFuZ2luZy5cbiAgICAgICAgbWVyZ2UoLi4udGhpcy5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLl9zdGF0ZUNoYW5nZXMpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBJbnZva2VkIHdoZW4gYW4gb3B0aW9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25TZWxlY3Qob3B0aW9uOiBPcHRpb25Db21wb25lbnQsIGlzVXNlcklucHV0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pO1xuICAgICAgICBpZiAoKG9wdGlvbi52YWx1ZSA9PT0gbnVsbCB8fCBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgJiYgdGhpcy51bnNlbGVjdE1pc3NpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIG9wdGlvbi5fZGVzZWxlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA/IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pIDogdGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3Qob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1VzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ob3B0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3YXNTZWxlY3RlZCAhPT0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pIHx8IHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0U2VsZWN0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtaXRTZWxlY3RDaGFuZ2UoZGVmYXVsdFZhbD86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5FbWl0VmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnNlbGVjdGVkIGFzIE9wdGlvbkNvbXBvbmVudCkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0VmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9pbnRlcm5hbFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvblBhbmVsICYmIHRoaXMuX2hlYWRlckVsZW1lbnRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoICsgdGhpcy5faGVhZGVyRWxlbWVudHMoKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGVhZGVyRWxlbWVudHMoKTogTm9kZUxpc3RPZjxFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25QYW5lbD8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFNFTEVDVF9IRUFERVJfSURFTlRJRklFUik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXR1cE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VMRUNUX0NPTVBPTkVOVCwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUR5bmFtaWNDb21wb25lbnQoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGUsXG4gICAgICAgICAgICBTZWxlY3RNb2JpbGVDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmOiB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBpbmplY3RvciB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZFNlbGVjdENTU0NsYXNzZXMgaW1wbGVtZW50cyBNb2R1bGVEZXByZWNhdGlvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtZXNzYWdlID0gYFNlbGVjdCBDU1MgY2xhc3NlcyBmZC1zZWxlY3QtLWNvbXBhY3QsIGZkLXNlbGVjdC0tY29tcGFjdC0tbW9iaWxlLCBmZC1wb3BvdmVyLWN1c3RvbS1zZWxlY3QtYm9keSwgZmQtcG9wb3Zlci1jdXN0b20tbGlzdCBhcmUgZGVwcmVjYXRlZGA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnSW5zcGVjdCB0aGUgZWxlbWVudHMgb2YgdGhlIFNlbGVjdCBjb21wb25lbnQgdG8gc2VlIHRoZSBuZXcgY2xhc3NlcycsXG4gICAgICAgIGxpbms6IFsnL2NvcmUnLCAnc2VsZWN0J11cbiAgICB9O1xufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vYmlsZSA/IG1vYmlsZVRlbXBsYXRlIDogZGVza3RvcFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVza3RvcFRlbXBsYXRlPlxuICAgIDwhLS0gJiM2NDtkZXByZWNhdGVkIGxlYXZpbmcgY2xhc3MgZmQtcG9wb3Zlci1jdXN0b20tbGlzdCB0byBzdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LS0+XG4gICAgPGZkLXBvcG92ZXJcbiAgICAgICAgYWRkaXRpb25hbEJvZHlDbGFzcz1cImZkLXNlbGVjdC1kcm9wZG93biBmZC1wb3BvdmVyLWN1c3RvbS1saXN0XCJcbiAgICAgICAgW2lzT3Blbl09XCJfaXNPcGVuXCJcbiAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgICAgICAgW3Njcm9sbFN0cmF0ZWd5XT1cInNjcm9sbFN0cmF0ZWd5XCJcbiAgICAgICAgW2Nsb3NlT25Fc2NhcGVLZXldPVwidHJ1ZVwiXG4gICAgICAgIFtmaWxsQ29udHJvbE1vZGVdPVwiZmlsbENvbnRyb2xNb2RlXCJcbiAgICAgICAgW21heFdpZHRoXT1cIjYwMFwiXG4gICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImNsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0SW5wdXRDb250cm9sVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPCEtLSAmIzY0O2RlcHJlY2F0ZWQgbGVhdmluZyBjbGFzcyBmZC1wb3BvdmVyLWN1c3RvbS1zZWxlY3QtYm9keSB0byBzdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LS0+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJmZC1wb3BvdmVyLWN1c3RvbS1zZWxlY3QtYm9keVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtc2VsZWN0X19jb250cm9sXCJcbiAgICAgICAgI3NlbGVjdENvbnRyb2xcbiAgICAgICAgW2NsYXNzXT1cIl9zZWxlY3RDb250cm9sQ2xhc3NcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cIl9pc09wZW5cIlxuICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5pcy1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtjbGFzcy5pcy1wbGFjZWhvbGRlcl09XCIhc2VsZWN0ZWRcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJfdGFiSW5kZXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sSWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZV09XCJfaXNPcGVuXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLXJvbGVkZXNjcmlwdGlvbj1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIl9pc09wZW5cIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb250cm9sSWQgKyAnLWxpc3QtYm94J1wiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJ0cmlnZ2VyVmFsdWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCAoJ3BsYXRmb3JtU2VsZWN0LnNlbGVjdE9wdGlvbkxhYmVsJyB8IGZkVHJhbnNsYXRlKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJfZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKVwiXG4gICAgICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCJcbiAgICAgICAgKGJsdXIpPVwiX29uQmx1cigpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1zZWxlY3RfX3RleHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udHJvbFRlbXBsYXRlID8gY29udHJvbFRlbXBsYXRlIDogZGVmYXVsdFNlbGVjdENvbnRlbnRcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdHJpZ2dlclZhbHVlLCBzZWxlY3RlZDogc2VsZWN0ZWQgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICB7eyB0cmlnZ2VyVmFsdWUgfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1zZWxlY3RfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0RHJvcGRvd25CdXR0b25DbGFzc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbYXJpYUhpZGRlbl09XCJ0cnVlXCIgW2dseXBoXT1cImdseXBoXCIgW2ZvbnRdPVwiZ2x5cGhGb250XCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlPlxuICAgIDx1bFxuICAgICAgICAjb3B0aW9uUGFuZWxcbiAgICAgICAgZmQtbGlzdFxuICAgICAgICBjbGFzcz1cImZkLXNlbGVjdC1vcHRpb25zXCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW21vYmlsZU1vZGVdPVwibW9iaWxlXCJcbiAgICAgICAgW2Ryb3Bkb3duTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgW2hhc01lc3NhZ2VdPVwiISFzdGF0ZU1lc3NhZ2UgfHwgKCEhYWR2YW5jZWRTdGF0ZU1lc3NhZ2U/Lmhhc0Vycm9ycyAmJiAhIWFkdmFuY2VkU3RhdGVNZXNzYWdlPy50ZW1wbGF0ZSlcIlxuICAgICAgICBbYXR0ci5pZF09XCJjb250cm9sSWQgKyAnLWxpc3QtYm94J1wiXG4gICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodCB8fCBjYWxjdWxhdGVkTWF4SGVpZ2h0ICsgJ3B4J1wiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLWJsb2NrLXN0YXJ0LnJlbV09XCJzaG93RWxsaXBzaXMgJiYgc3RhdGVNZXNzYWdlID8gMiA6IDBcIlxuICAgICAgICBbYXR0ci50b29sdGlwXT1cInRyaWdnZXJWYWx1ZVwiXG4gICAgPlxuICAgICAgICBAaWYgKHN0YXRlTWVzc2FnZSkge1xuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzdGF0ZU1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIGZkLWxpc3QtbWVzc2FnZVxuICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1zZWxlY3QtbWVzc2FnZV09XCIhc2hvd0VsbGlwc2lzXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJzdGF0ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoIXNob3dFbGxpcHNpcykge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGVNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBzdGF0ZU1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChhZHZhbmNlZFN0YXRlTWVzc2FnZT8uaGFzRXJyb3JzICYmIGFkdmFuY2VkU3RhdGVNZXNzYWdlPy50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGxpIGZkLWxpc3QtbWVzc2FnZSB0YWJpbmRleD1cIi0xXCIgcm9sZT1cInByZXNlbnRhdGlvblwiIFt0eXBlXT1cInN0YXRlIHx8ICdkZWZhdWx0J1wiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhZHZhbmNlZFN0YXRlTWVzc2FnZSEudGVtcGxhdGUhXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtb2JpbGVUZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0SW5wdXRDb250cm9sVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgI2RpYWxvZ0NvbnRhaW5lcj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { OptionComponent } from './option/option.component';\nimport { SelectComponent } from './select.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\nexport class SelectModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectModule, imports: [SelectComponent, OptionComponent], exports: [SelectComponent, OptionComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectModule, imports: [SelectComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SelectModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SelectComponent, OptionComponent],\n imports: [SelectComponent, OptionComponent]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWxlY3Qvc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJEOzs7R0FHRztBQUtILE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQUZYLGVBQWUsRUFBRSxlQUFlLGFBRGhDLGVBQWUsRUFBRSxlQUFlOytHQUdqQyxZQUFZLFlBRlgsZUFBZTs7MkZBRWhCLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBkaXJlY3QgaW1wb3J0cyBvZiBjb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGV4cG9ydHM6IFtTZWxlY3RDb21wb25lbnQsIE9wdGlvbkNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1NlbGVjdENvbXBvbmVudCwgT3B0aW9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNvcmUtc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NlbGVjdC9mdW5kYW1lbnRhbC1uZ3gtY29yZS1zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1.SelectKeyManagerService"],"mappings":"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"}
|