@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-slider.mjs","sources":["../../../../libs/core/slider/slider-position.directive.ts","../../../../libs/core/slider/constants.ts","../../../../libs/core/slider/slider.model.ts","../../../../libs/core/slider/slider.component.ts","../../../../libs/core/slider/slider.component.html","../../../../libs/core/slider/slider.module.ts","../../../../libs/core/slider/fundamental-ngx-core-slider.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnChanges, Optional, Renderer2, computed, effect } from '@angular/core';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-slider-position]',\n standalone: true\n})\nexport class SliderPositionDirective implements OnChanges {\n /** Position of the slider */\n @Input()\n position: number;\n\n /** Whether the slider is rendered vertically. */\n @Input()\n vertical = false;\n\n private readonly _rtl$ = computed(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _renderer: Renderer2,\n @Optional() private readonly _rtlService: RtlService\n ) {\n effect(() => {\n this._setPosition(this._rtl$());\n });\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._setPosition();\n }\n /** @hidden */\n private _setPosition(rtl = this._rtl$()): void {\n if (this.vertical) {\n this._renderer.setStyle(this._elementRef.nativeElement, 'bottom', `${this.position}%`);\n return;\n }\n\n this._renderer.setStyle(this._elementRef.nativeElement, 'left', !rtl ? `${this.position}%` : 'unset');\n this._renderer.setStyle(this._elementRef.nativeElement, 'right', rtl ? `${this.position}%` : 'unset');\n }\n}\n","export const MIN_DISTANCE_BETWEEN_TICKS = 8;\n","export enum SliderValueTargets {\n SINGLE_SLIDER,\n RANGE_SLIDER1,\n RANGE_SLIDER2\n}\n\nexport enum SliderRangeHandles {\n First,\n Second,\n Both\n}\n\nexport interface SliderTickMark {\n value: number | string;\n label: string;\n position?: number;\n}\n\nexport type SliderCustomValue = Omit<SliderTickMark, 'position'>;\n\nexport type SliderControlValue = number | number[] | SliderTickMark | SliderTickMark[];\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Optional,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n computed,\n forwardRef,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable, combineLatest, fromEvent, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, mapTo, skip, startWith, switchMap, take } from 'rxjs/operators';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n CssClassBuilder,\n KeyUtil,\n Nullable,\n OnlyDigitsDirective,\n RtlService,\n applyCssClass\n} from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityMode,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverComponent, PopoverTriggerDirective } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { MIN_DISTANCE_BETWEEN_TICKS } from './constants';\nimport { SliderPositionDirective } from './slider-position.directive';\nimport {\n SliderControlValue,\n SliderCustomValue,\n SliderRangeHandles,\n SliderTickMark,\n SliderValueTargets\n} from './slider.model';\n\nexport const SLIDER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n};\nlet sliderId = 0;\n@Component({\n selector: 'fd-slider',\n templateUrl: './slider.component.html',\n styleUrl: './slider.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SLIDER_VALUE_ACCESSOR,\n registerFormItemControl(SliderComponent),\n contentDensityObserverProviders({\n defaultContentDensity: ContentDensityMode.COMPACT,\n modifiers: {\n [ContentDensityMode.COZY]: 'fd-slider--lg'\n }\n })\n ],\n host: {\n '(mouseenter)': 'this._componentHovered$.next(true)',\n '(mouseleave)': 'this._componentHovered$.next(false)',\n '(focusout)': 'onTouched()'\n },\n imports: [\n NgTemplateOutlet,\n SliderPositionDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n FormsModule,\n OnlyDigitsDirective,\n FdTranslatePipe\n ]\n})\nexport class SliderComponent\n implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor, CssClassBuilder, FormItemControl\n{\n /** Slider id, it has some default value if not set, */\n @Input()\n @HostBinding('attr.id')\n id = 'fd-slider-id-' + sliderId++;\n\n /** User's custom classes */\n @Input()\n class: string;\n\n /** ID of the element that labels slider. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the slider. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Minimum value. */\n @Input()\n set min(value: number) {\n const newValue = coerceNumberProperty(value, this._min);\n if (((this.max - newValue) / this.step) % 1 !== 0) {\n return;\n }\n this._min = value;\n }\n get min(): number {\n return this._min;\n }\n\n /** Maximum value. */\n @Input()\n set max(value: number) {\n const newValue = coerceNumberProperty(value, this._max);\n if (((newValue - this.min) / this.step) % 1 !== 0) {\n return;\n }\n this._max = value;\n }\n get max(): number {\n return this._max;\n }\n\n /** Step value. */\n @Input()\n set step(value: number) {\n const newValue = coerceNumberProperty(value, this._step);\n if (((this.max - this.min) / newValue) % 1 !== 0) {\n return;\n }\n this._step = value;\n }\n get step(): number {\n return this._step;\n }\n\n /** Jump value. */\n @Input()\n set jump(value: number) {\n this._jump = coerceNumberProperty(value, this._jump);\n }\n get jump(): number {\n return this._jump;\n }\n\n /** Put a label on every N-th tickmark. */\n @Input()\n set tickmarksBetweenLabels(value: number) {\n this._tickmarksBetweenLabels = coerceNumberProperty(value, this._tickmarksBetweenLabels);\n }\n get tickmarksBetweenLabels(): number {\n return this._tickmarksBetweenLabels;\n }\n\n /**\n * Slider mode.\n * Options include: 'single' | 'range'\n * The default is set to 'single'\n */\n @Input()\n mode: 'single' | 'range' = 'single';\n\n /** Toggles the visibility of tick marks. */\n @Input()\n showTicks = false;\n\n /** Toggles the visibility of tick mark labels. Must be used in conjunction with 'showTicks' */\n @Input()\n showTicksLabels = false;\n\n /** Array of custom values to use for Slider. */\n @Input()\n customValues: SliderCustomValue[] = [];\n\n /** Tooltip can be two types, 'readonly' to display value and 'editable' to make the ability to set and display value. */\n @Input()\n tooltipMode: 'readonly' | 'editable';\n\n /** Hides display of colored progress bar. */\n @Input()\n hideProgressBar = false;\n\n /** Whether the control is disabled. */\n @Input()\n disabled = false;\n\n /**\n * Whether slider should have vertical alignment.\n */\n @Input()\n vertical = false;\n\n /** @hidden */\n _position: number | number[] = 0;\n\n /** Control value */\n @Input()\n set value(value: SliderControlValue) {\n this._setValue(value);\n }\n get value(): SliderControlValue {\n return this._value;\n }\n\n /** @hidden */\n get _popoverValueRef(): number[] {\n return [this._position as number, this._handle1Value, this._handle2Value];\n }\n\n /** @hidden */\n @ViewChild('track', { read: ElementRef, static: true })\n trackEl: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ViewChild('handle', {\n read: ElementRef\n })\n handle: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ViewChild('rangeHandle1', {\n read: ElementRef\n })\n rangeHandle1: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ViewChild('rangeHandle2', {\n read: ElementRef\n })\n rangeHandle2: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ViewChild('rangeGroupHandle', { read: ElementRef, static: false })\n _rangeGroupHandle: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ViewChildren(PopoverComponent)\n _popovers: QueryList<PopoverComponent>;\n\n /** @hidden */\n @ViewChildren('sliderTooltipWrapper')\n _sliderTooltipWrappers: QueryList<ElementRef<HTMLDivElement>>;\n\n /** @hidden */\n _value: number | SliderTickMark | SliderTickMark[] | number[] = 0;\n\n /** @hidden */\n _progress = 0;\n\n /** @hidden */\n @HostBinding('class.fd-slider--range')\n _isRange = false;\n\n /** @hidden */\n _handle1Position = 0;\n\n /** @hidden */\n _handle2Position = 0;\n\n /** @hidden */\n _handle1Value = 0;\n\n /** @hidden */\n _handle2Value = 0;\n\n /** @hidden */\n _rangeProgress = 0;\n\n /** @hidden */\n _tickMarks: SliderTickMark[] = [];\n\n /** @hidden */\n _sliderValueTargets = SliderValueTargets;\n\n /** @hidden */\n _popoverInputFieldClass = `fd-slider-popover-input-${sliderId}`;\n\n /**\n * @hidden\n * whether to use value with a prefix for announcing\n */\n _useSliderValuePrefix = true;\n\n /** @hidden */\n _handles = SliderRangeHandles;\n\n /** @hidden */\n private _min = 0;\n\n /** @hidden */\n private _max = 100;\n\n /** @hidden */\n private _step = 1;\n\n /** @hidden */\n private _jump = 10;\n\n /** @hidden */\n private _tickmarksBetweenLabels = 1;\n\n /** @hidden */\n private _valuesBySteps: number[] = [];\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n readonly _componentHovered$ = new BehaviorSubject(false);\n\n /** @hidden */\n readonly _handleFocused$ = new BehaviorSubject(false);\n\n /** @hidden */\n readonly _rangeHandle1Focused$ = new BehaviorSubject(false);\n\n /** @hidden */\n readonly _rangeHandle2Focused$ = new BehaviorSubject(false);\n\n /** @hidden */\n readonly _popoverInputFieldFocused$ = new BehaviorSubject(false);\n\n /** @hidden */\n readonly _popoverInputFieldHovered$ = new BehaviorSubject(false);\n\n /** @hidden */\n private readonly _rtl$ = computed(() => !!this._rtlService?.rtlSignal());\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n private readonly _platform: Platform,\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Optional()\n private readonly _rtlService: RtlService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\n }\n\n /**\n * @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-slider',\n this.disabled ? 'is-disabled' : '',\n this._isRange ? 'fd-slider--range' : '',\n this.showTicks && this.showTicksLabels ? 'fd-slider--with-labels' : '',\n this.vertical ? 'fd-slider--vertical' : '',\n this.class,\n this._platform.EDGE || this._platform.TRIDENT ? 'fd-slider__alternative-tick-width' : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._attachResizeListener();\n this._onResize();\n if (this._valuesBySteps.length === 0) {\n this._constructValuesBySteps();\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n this._checkIsInRangeMode();\n this._constructTickMarks();\n this._constructValuesBySteps();\n this._recalcHandlePositions();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToInteractionChanges();\n }\n\n /** @hidden */\n getValuenow(position: number | number[], sliderValueTarget: SliderValueTargets): string | number {\n return this.customValues.length > 0\n ? this.customValues[position as number].label\n : this._popoverValueRef[sliderValueTarget];\n }\n\n /** @hidden */\n get minValue(): string | number {\n return this.customValues.length > 0 ? this.customValues[this.min as number].label : this.min;\n }\n\n /** @hidden */\n get maxValue(): string | number {\n return this.customValues.length > 0 ? this.customValues[this.max as number].label : this.max;\n }\n\n /** @hidden */\n onChange: (value: SliderControlValue) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: (value: SliderControlValue) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** @hidden */\n writeValue(value: SliderControlValue): void {\n this._setValue(value, false);\n }\n\n /** @hidden */\n onTrackClick(event: MouseEvent): void {\n if (this.disabled || this._isRange) {\n return;\n }\n this._setValue(this._calculateValueFromPointerPosition(event));\n this._updatePopoversPosition();\n this.handle.nativeElement.focus();\n }\n\n /** @hidden */\n onHandleClick(event: MouseEvent, group = false): void {\n if (this.disabled) {\n return;\n }\n\n let firstHandleCoords: { x: number; y: number };\n let rangeSliderStartCoords: { x: number; y: number };\n\n if (group) {\n rangeSliderStartCoords = {\n x: event.clientX,\n y: event.clientY\n };\n\n const firstHandleRect = this.rangeHandle1.nativeElement.getBoundingClientRect();\n\n firstHandleCoords = {\n x: firstHandleRect.x + firstHandleRect.width / 2,\n y: firstHandleRect.y + firstHandleRect.height / 2\n };\n }\n\n const unsubscribeFromMousemove = this._renderer.listen('document', 'mousemove', (moveEvent: MouseEvent) => {\n this._updatePopoversPosition();\n if (!this._isRange) {\n this._setValue(this._calculateValueFromPointerPosition(moveEvent));\n return;\n }\n\n let coords = {\n clientX: moveEvent.clientX,\n clientY: moveEvent.clientY\n };\n\n let handleIndex: SliderRangeHandles;\n if (group) {\n handleIndex = SliderRangeHandles.Both;\n // Mimic dragging first handle to calculate the difference between old and new values.\n coords = {\n clientX: firstHandleCoords!.x + (moveEvent.clientX - rangeSliderStartCoords!.x),\n clientY: firstHandleCoords!.y + (moveEvent.clientY - rangeSliderStartCoords!.y)\n };\n } else if (event.target === this.rangeHandle1.nativeElement) {\n handleIndex = SliderRangeHandles.First;\n } else if (event.target === this.rangeHandle2.nativeElement) {\n handleIndex = SliderRangeHandles.Second;\n } else {\n return;\n }\n\n const value = this._calculateValueFromPointerPosition(coords, false) as number;\n this._setRangeHandleValueAndPosition(handleIndex, value);\n this._setValue(this._constructRangeModelValue());\n });\n const unsubscribeFromMouseup = this._renderer.listen('document', 'mouseup', () => {\n unsubscribeFromMousemove();\n unsubscribeFromMouseup();\n });\n }\n\n /** @hidden */\n onKeyDown(event: KeyboardEvent, handle?: SliderRangeHandles): void {\n if (this.disabled) {\n return;\n }\n const allowedKeys: number[] = [LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, ENTER, SPACE];\n if (!KeyUtil.isKeyCode(event, allowedKeys)) {\n return;\n }\n event.preventDefault();\n const upActionKey = KeyUtil.isKeyCode(event, [UP_ARROW, this._rtl$() ? LEFT_ARROW : RIGHT_ARROW]);\n const downActionKey = KeyUtil.isKeyCode(event, [DOWN_ARROW, this._rtl$() ? RIGHT_ARROW : LEFT_ARROW]);\n\n if (!upActionKey && !downActionKey) {\n return;\n }\n\n const diff = event.shiftKey ? this.jump : this.step;\n let newValue: number | SliderTickMark | null = null;\n if (!this._isRange) {\n newValue = (this._position as number) + diff * (upActionKey ? 1 : -1);\n\n if (newValue === null) {\n return;\n }\n\n newValue = this._processNewValue(newValue as number, !this._isRange);\n\n this._setValue(newValue);\n this._updatePopoversPosition();\n return;\n }\n\n this._handleRangeKeydown(\n handle === SliderRangeHandles.Both ? [SliderRangeHandles.First, SliderRangeHandles.Second] : handle!,\n diff,\n upActionKey\n );\n\n this._updatePopoversPosition();\n }\n\n /** @hidden */\n _updateValueFromInput(value: string, target: SliderValueTargets): void {\n const newValue = this._processNewValue(+value) as number;\n if (!this._isRange && target === SliderValueTargets.SINGLE_SLIDER) {\n this._setValue(newValue);\n this.handle.nativeElement.focus();\n this._updatePopoversPosition();\n return;\n }\n if (target === SliderValueTargets.RANGE_SLIDER1) {\n this._setRangeHandleValueAndPosition(SliderRangeHandles.First, newValue);\n this.rangeHandle1.nativeElement.focus();\n }\n if (target === SliderValueTargets.RANGE_SLIDER2) {\n this._setRangeHandleValueAndPosition(SliderRangeHandles.Second, newValue);\n this.rangeHandle2.nativeElement.focus();\n }\n this._setValue(this._constructRangeModelValue());\n this._updatePopoversPosition();\n }\n\n /** @hidden */\n private _handleRangeKeydown(handles: SliderRangeHandles | SliderRangeHandles[], diff: number, up: boolean): void {\n handles = Array.isArray(handles) ? handles : [handles];\n const valueMap = new Map<\n SliderRangeHandles,\n { prev: number | SliderTickMark | null; current: number | SliderTickMark | null }\n >();\n handles.forEach((handle) => {\n const prevValue = handle === SliderRangeHandles.First ? this._handle1Value : this._handle2Value;\n let newValue: number | SliderTickMark | null = prevValue + diff * (up ? 1 : -1);\n if (newValue === null) {\n return;\n }\n\n newValue = this._processNewValue(newValue as number, !this._isRange);\n\n valueMap.set(handle, { prev: prevValue, current: newValue });\n });\n\n if (Array.from(valueMap.values()).some((entry) => entry.current === entry.prev)) {\n return;\n }\n\n valueMap.forEach((entry, handle) => {\n this._setRangeHandleValueAndPosition(handle, entry.current as number);\n });\n\n this._setValue(this._constructRangeModelValue());\n }\n\n /** @hidden */\n private _setValue(value: SliderControlValue, emitEvent = true): void {\n if (this._isRange) {\n this._initRangeMode((value ?? [0.0]) as number[] | SliderTickMark[]);\n } else {\n this._initSingeMode((value ?? 0) as number | SliderTickMark);\n }\n this._value = value;\n if (emitEvent) {\n this.onChange(value);\n }\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _updatePopoversPosition(): void {\n this._cdr.detectChanges();\n this._popovers.forEach((popover) => popover.refreshPosition());\n }\n\n /** @hidden */\n private _calculateValueFromPointerPosition(\n coords: { clientY: number; clientX: number },\n takeCustomValue = true\n ): number | SliderTickMark {\n const { left, width, bottom, height } = this.trackEl.nativeElement.getBoundingClientRect();\n let percentage = this.vertical ? (bottom - coords.clientY) / height : (coords.clientX - left) / width;\n\n if (this._rtl$()) {\n percentage = 1 - percentage;\n }\n const newValue = this.min + percentage * (this.max - this.min);\n return this._processNewValue(newValue, takeCustomValue);\n }\n\n /** @hidden */\n private _processNewValue(newValue: number, takeCustomValue = true): number | SliderTickMark {\n if (newValue > this.max) {\n newValue = this.max;\n }\n if (newValue < this.min) {\n newValue = this.min;\n }\n this._useSliderValuePrefix = false;\n this._cdr.markForCheck();\n const stepDiffArray = this._valuesBySteps\n .map((stepValue) => ({\n diff: Math.abs(stepValue - newValue),\n value: stepValue\n }))\n .sort((a, b) => a.diff - b.diff);\n let value: SliderTickMark | number = stepDiffArray[0].value;\n if (takeCustomValue && this.customValues.length > 0) {\n value = this.customValues[value];\n }\n return value;\n }\n\n /** @hidden */\n private _setRangeHandleValueAndPosition(handleIndex: SliderRangeHandles, value: number): void {\n const position = this._calcProgress(value, true);\n if (handleIndex === SliderRangeHandles.First) {\n this._handle1Value = value;\n this._handle1Position = position;\n } else if (handleIndex === SliderRangeHandles.Second) {\n this._handle2Value = value;\n this._handle2Position = position;\n } else if (handleIndex === SliderRangeHandles.Both) {\n // Calculate how much steps being skipped.\n const oldValueIndex = this._valuesBySteps.indexOf(this._handle1Value);\n const newValueIndex = this._valuesBySteps.indexOf(value);\n const diff = oldValueIndex - newValueIndex;\n const handle2ValueIndex = this._valuesBySteps.indexOf(this._handle2Value);\n\n if (diff === 0 || this._valuesBySteps.length <= handle2ValueIndex - diff) {\n return;\n }\n\n const positionShift = position - this._handle1Position;\n this._handle1Position = position;\n this._handle2Position = this._handle2Position + positionShift;\n this._handle1Value = value;\n this._handle2Value = this._valuesBySteps[handle2ValueIndex - diff];\n }\n this._rangeProgress = Math.abs(this._handle2Position - this._handle1Position);\n }\n\n /** @hidden */\n private _constructRangeModelValue(): number[] | SliderTickMark[] {\n let rangeLowerValue: number | string;\n let rangeHigherValue: number | string;\n let rangeValue: number[] | SliderTickMark[] = [\n Math.min(this._handle1Value, this._handle2Value),\n Math.max(this._handle1Value, this._handle2Value)\n ];\n rangeLowerValue = rangeValue[0];\n rangeHigherValue = rangeValue[1];\n if (this.customValues.length > 0) {\n const min = this.customValues[rangeValue[0]] || this.customValues[0];\n const max = this.customValues[rangeValue[1]] || this.customValues[this.customValues.length - 1];\n rangeValue = [min, max];\n rangeLowerValue = rangeValue[0].label;\n rangeHigherValue = rangeValue[1].label;\n }\n this._liveAnnouncer.announce('range value between ' + rangeLowerValue + ' and ' + rangeHigherValue, 'polite');\n return rangeValue;\n }\n\n /** @hidden */\n private _attachResizeListener(): void {\n fromEvent(window, 'resize')\n .pipe(debounceTime(500), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._onResize());\n }\n\n /** @hidden */\n private _onResize(): void {\n this._constructTickMarks();\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _constructValuesBySteps(): void {\n try {\n this._valuesBySteps = Array.from(\n {\n length: (this.max - this.min) / this.step + 1\n },\n (_, i) => Number((this.min + i * this.step).toFixed(2))\n );\n } catch {}\n }\n\n /** @hidden */\n private _constructTickMarks(): void {\n if (!this.showTicks) {\n this._tickMarks = [];\n return;\n }\n if (this.customValues.length) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.step = 1;\n const customValuesLength = this.customValues.length - 1;\n this._tickMarks = this.customValues.map((item, i) => ({\n ...item,\n position: (100 / customValuesLength) * i\n }));\n } else {\n const total = this.max - this.min;\n const tickMarksCount = total / this.step + 1;\n if (this._maxTickMarksNumber !== undefined && tickMarksCount > this._maxTickMarksNumber) {\n this._tickMarks = [\n {\n position: 0,\n value: 0,\n label: `${this.min}`\n },\n {\n position: 100,\n value: total,\n label: `${this.max}`\n }\n ];\n return;\n }\n if (tickMarksCount % 1 === 0) {\n this._tickMarks = Array.from(\n {\n length: tickMarksCount\n },\n (_, i) => {\n const value = Math.round(i * this.step * 100) / 100;\n const position = (value / (this.max - this.min)) * 100;\n return {\n value,\n position,\n label: `${this.min + value}`\n };\n }\n );\n }\n }\n }\n\n /** @hidden */\n private get _maxTickMarksNumber(): number | undefined {\n if (!this.trackEl || !this.trackEl.nativeElement) {\n return;\n }\n\n const { width, height } = this.trackEl.nativeElement.getBoundingClientRect();\n\n return Math.floor((this.vertical ? height : width) / MIN_DISTANCE_BETWEEN_TICKS);\n }\n\n /** @hidden */\n private _calcProgress(value: number, skipRtl = false): number {\n let progress = ((value - this.min) / (this.max - this.min)) * 100;\n if (!skipRtl && this._rtl$()) {\n progress = 100 - progress;\n }\n if (progress > 100) {\n return 100;\n }\n if (progress < 0) {\n return 0;\n }\n return progress;\n }\n\n /** @hidden */\n private _recalcHandlePositions(): void {\n if (this._isRange) {\n this._handle1Position = this._calcProgress(this._handle1Value);\n this._handle2Position = this._calcProgress(this._handle2Value);\n this._rangeProgress = Math.abs(this._handle2Position - this._handle1Position);\n }\n this._progress = this._calcProgress(this._position as number, true);\n }\n\n /** @hidden */\n private _checkIsInRangeMode(): void {\n this._isRange = this.mode === 'range';\n }\n\n /** @hidden */\n private _initSingeMode(value: number | SliderTickMark): void {\n if (this.customValues.length > 0) {\n this._initSingeModeWithCustomValue(value as SliderTickMark);\n return;\n }\n this._initSingeModeDefault(coerceNumberProperty(value, this.min));\n }\n\n /** @hidden */\n private _initSingeModeDefault(value: number): void {\n this._position = value;\n this._progress = this._calcProgress(value, true);\n }\n\n /** @hidden */\n private _initSingeModeWithCustomValue(sliderTickMark: SliderTickMark): void {\n const value = (this._getCustomValuesPosition(sliderTickMark) as number) || this.min;\n this._initSingeModeDefault(value);\n }\n\n /** @hidden */\n private _initRangeMode(value: number[] | SliderTickMark[]): void {\n if (this.customValues.length > 0) {\n this._initRangeModeWithCustomValues(value as SliderTickMark[]);\n return;\n }\n const firstHandle = coerceNumberProperty(value[0], this.min);\n const secondHandle = coerceNumberProperty(value[1], this.max);\n this._initRangeModeDefault([firstHandle, secondHandle]);\n }\n\n /** @hidden */\n private _initRangeModeDefault([firstHandle, secondHandle]: number[]): void {\n this._position = [firstHandle, secondHandle];\n this._setRangeHandleValueAndPosition(SliderRangeHandles.First, firstHandle);\n this._setRangeHandleValueAndPosition(SliderRangeHandles.Second, secondHandle);\n }\n\n /** @hidden */\n private _initRangeModeWithCustomValues([firstHandle, secondHandle]: SliderTickMark[]): void {\n const value = this._getCustomValuesPosition([firstHandle, secondHandle]) || [this.min, this.max];\n this._initRangeModeDefault(value as number[]);\n }\n\n /** @hidden */\n private _getCustomValuesPosition(value: SliderTickMark | SliderTickMark[]): number | number[] {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.step = 1;\n return this._getCustomValuesPositions(value);\n }\n\n /** @hidden */\n private _getCustomValuesPositions(value: SliderTickMark | SliderTickMark[]): number | number[] {\n if (!value || (value as SliderTickMark[]).length === 0) {\n return this._isRange ? [0, this.customValues.length - 1] : 0;\n }\n if (Array.isArray(value)) {\n let [firstHandle, secondHandle] = value;\n if (!this._instanceOfCustomValue(firstHandle)) {\n firstHandle = this.customValues[0];\n }\n if (!this._instanceOfCustomValue(secondHandle)) {\n secondHandle = this.customValues[this.customValues.length - 1];\n }\n const firstHandlePosition = this.customValues.findIndex((item) => item.value === firstHandle.value);\n const secondHandlePosition = this.customValues.findIndex((item) => item.value === secondHandle.value);\n const indexes = [\n firstHandlePosition >= 0 ? firstHandlePosition : 0,\n secondHandlePosition >= 0 ? secondHandlePosition : this.customValues.length - 1\n ];\n return indexes;\n } else {\n let firstHandle = value as SliderTickMark;\n if (!this._instanceOfCustomValue(firstHandle)) {\n firstHandle = this.customValues[0];\n }\n return this.customValues.findIndex((item) => item.value === firstHandle.value) || 0;\n }\n }\n\n /** @hidden */\n private _instanceOfCustomValue(object: any): object is SliderCustomValue {\n return !!object && 'value' in object && 'label' in object;\n }\n\n /** @hidden */\n private _listenToInteractionChanges(): void {\n combineLatest([\n this._handleFocused$,\n this._rangeHandle1Focused$,\n this._rangeHandle2Focused$,\n this._popoverInputFieldFocused$,\n this._componentHovered$,\n this._popoverInputFieldHovered$\n ])\n .pipe(\n skip(1),\n map((states) => states.some(Boolean)),\n switchMap((focused) => {\n if (focused) {\n return of(true);\n }\n // If not focused, check for the edge case,\n // when hover is on the fd-popover-body, that is a parent for the tooltip.\n // This will return true, when hovering the gap between handle and the tooltip.\n return this._isPopoverHovered();\n }),\n debounceTime(10),\n distinctUntilChanged(),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((focused) => {\n if (focused) {\n this._popovers.forEach((popover) => popover.open());\n } else {\n this._resetPrefix();\n this._popovers.forEach((popover) => popover.close());\n }\n });\n }\n\n /** @hidden reset default prefix on leaving the slider */\n private _resetPrefix(): void {\n // reset prefix string for slider current value that need to be announced\n this._useSliderValuePrefix = true;\n this._cdr.markForCheck();\n }\n\n /**\n * @hidden\n * Checks whether input popover element is hovered.\n * Will also return true, when hovering the gap between handle and the tooltip.\n * If yes, returns \"true\" instantly and \"false\" once it's not hovered anymore.\n */\n private _isPopoverHovered(): Observable<boolean> {\n const popoverBody = this._sliderTooltipWrappers.first?.nativeElement.closest('fd-popover-body');\n if (popoverBody?.matches(':hover')) {\n return fromEvent(popoverBody, 'mouseleave').pipe(mapTo(false), take(1), startWith(true));\n }\n return of(false);\n }\n}\n","<div class=\"fd-slider__inner\">\n <ng-template [ngTemplateOutlet]=\"_isRange ? rangeMode : singleMode\"></ng-template>\n <div class=\"fd-slider__track\" (click)=\"onTrackClick($event)\" #track>\n <ng-template [ngTemplateOutlet]=\"_isRange ? rangeModeTrack : singleModeTrack\"></ng-template>\n </div>\n <div class=\"fd-slider__tick-wrapper\">\n <div class=\"fd-slider__ticks\" (click)=\"onTrackClick($event)\">\n @if (showTicks) {\n @for (tick of _tickMarks; track tick; let i = $index) {\n <div\n class=\"fd-slider__tick\"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"tick.position || 0\"\n [class.fd-slider__tick--in-range]=\"\n !hideProgressBar &&\n (_isRange\n ? tick.value >= _position[0] && tick.value <= _position[1]\n : tick.value <= _position)\n \"\n ></div>\n }\n }\n </div>\n @if (showTicks && showTicksLabels) {\n <div class=\"fd-slider__labels\">\n @for (tick of _tickMarks; track tick; let i = $index; let last = $last; let first = $first) {\n @if (first || last || i % tickmarksBetweenLabels === 0) {\n <div\n class=\"fd-slider__label\"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"tick.position || 0\"\n >\n {{ tick.label }}\n </div>\n }\n }\n </div>\n }\n </div>\n</div>\n<ng-template #singleModeTrack>\n @if (!hideProgressBar) {\n <div\n class=\"fd-slider__track-range\"\n [style.height.%]=\"vertical ? _progress : null\"\n [style.width.%]=\"vertical ? null : _progress\"\n ></div>\n }\n</ng-template>\n<ng-template #rangeModeTrack>\n @if (!hideProgressBar) {\n <div\n class=\"fd-slider__track-range\"\n [style.height.%]=\"vertical ? _rangeProgress : null\"\n [style.width.%]=\"vertical ? null : _rangeProgress\"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"_handle1Position < _handle2Position ? _handle1Position : _handle2Position\"\n >\n <div\n class=\"fd-slider__track-focus-range\"\n (mousedown)=\"onHandleClick($event, true)\"\n (keydown)=\"onKeyDown($event, _handles.Both)\"\n tabindex=\"0\"\n #rangeGroupHandle\n ></div>\n </div>\n }\n</ng-template>\n<ng-template #singleMode>\n <div\n #handle\n class=\"fd-slider__handle\"\n [class.fd-slider__handle--lg]=\"_contentDensityObserver.isCozySignal()\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n role=\"slider\"\n [attr.aria-label]=\"\n ariaLabel || ('coreSlider.singleMinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\n \"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [fdPopoverTrigger]=\"tooltipMode ? singleSliderPopover : null\"\n [attr.aria-valuemin]=\"'coreSlider.singleValueminDetails' | fdTranslate: { value: minValue }\"\n [attr.aria-valuemax]=\"'coreSlider.singleValuemaxDetails' | fdTranslate: { value: maxValue }\"\n [attr.aria-valuenow]=\"\n _useSliderValuePrefix\n ? ('coreSlider.singleValueNowDetails'\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\n \"\n [attr.aria-valuetext]=\"\n _useSliderValuePrefix\n ? ('coreSlider.singleValueNowDetails'\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\n \"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"_progress\"\n (mousedown)=\"onHandleClick($event); $event.stopPropagation()\"\n (focus)=\"_handleFocused$.next(true)\"\n (blur)=\"_handleFocused$.next(false)\"\n (keydown)=\"onKeyDown($event)\"\n ></div>\n <fd-popover\n #singleSliderPopover\n [triggers]=\"[]\"\n [closeOnOutsideClick]=\"false\"\n [appendTo]=\"handle\"\n [disabled]=\"!tooltipMode\"\n class=\"fd-popover--slider\"\n additionalBodyClass=\"fd-slider-tooltip-popover\"\n placement=\"top\"\n >\n <ng-template\n [ngTemplateOutlet]=\"popoverInner\"\n [ngTemplateOutletContext]=\"{ target: _sliderValueTargets.SINGLE_SLIDER, position: _position }\"\n ></ng-template>\n </fd-popover>\n</ng-template>\n<ng-template #rangeMode>\n <div\n #rangeHandle1\n class=\"fd-slider__handle\"\n [class.fd-slider__handle--lg]=\"_contentDensityObserver.isCozySignal()\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n role=\"slider\"\n [attr.aria-label]=\"\n ariaLabel || ('coreSlider.multipleHandle1MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\n \"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [fdPopoverTrigger]=\"tooltipMode ? rangeSliderPopover1 : null\"\n [attr.aria-valuemin]=\"'coreSlider.multipleHandle1ValueminDetails' | fdTranslate: { value: minValue }\"\n [attr.aria-valuemax]=\"'coreSlider.multipleHandle1ValuemaxDetails' | fdTranslate: { value: maxValue }\"\n [attr.aria-valuenow]=\"\n _useSliderValuePrefix\n ? ('coreSlider.multipleHandle1ValueNowDetails'\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\n \"\n [attr.aria-valuetext]=\"\n _useSliderValuePrefix\n ? ('coreSlider.multipleHandle1ValueNowDetails'\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\n \"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"_handle1Position\"\n (mousedown)=\"onHandleClick($event); $event.stopPropagation()\"\n (keydown)=\"onKeyDown($event, _handles.First)\"\n (focus)=\"_rangeHandle1Focused$.next(true)\"\n (blur)=\"_rangeHandle1Focused$.next(false)\"\n ></div>\n <div\n #rangeHandle2\n class=\"fd-slider__handle\"\n [class.fd-slider__handle--lg]=\"_contentDensityObserver.isCozySignal()\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n role=\"slider\"\n [attr.aria-label]=\"\n ariaLabel || ('coreSlider.multipleHandle2MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\n \"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [fdPopoverTrigger]=\"tooltipMode ? rangeSliderPopover2 : null\"\n [attr.aria-valuemin]=\"'coreSlider.multipleHandle2ValueminDetails' | fdTranslate: { value: minValue }\"\n [attr.aria-valuemax]=\"'coreSlider.multipleHandle2ValuemaxDetails' | fdTranslate: { value: maxValue }\"\n [attr.aria-valuenow]=\"\n _useSliderValuePrefix\n ? ('coreSlider.multipleHandle2ValueNowDetails'\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\n \"\n [attr.aria-valuetext]=\"\n _useSliderValuePrefix\n ? ('coreSlider.multipleHandle2ValueNowDetails'\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\n \"\n fd-slider-position\n [vertical]=\"vertical\"\n [position]=\"_handle2Position\"\n (mousedown)=\"onHandleClick($event); $event.stopPropagation()\"\n (keydown)=\"onKeyDown($event, _handles.Second)\"\n (focus)=\"_rangeHandle2Focused$.next(true)\"\n (blur)=\"_rangeHandle2Focused$.next(false)\"\n ></div>\n <fd-popover\n #rangeSliderPopover1\n [triggers]=\"[]\"\n [closeOnOutsideClick]=\"false\"\n [appendTo]=\"rangeHandle1\"\n [disabled]=\"!tooltipMode\"\n additionalBodyClass=\"fd-slider-tooltip-popover\"\n class=\"fd-popover--slider\"\n placement=\"top\"\n >\n <ng-template\n [ngTemplateOutlet]=\"popoverInner\"\n [ngTemplateOutletContext]=\"{ target: _sliderValueTargets.RANGE_SLIDER1, position: _handle1Value }\"\n ></ng-template>\n </fd-popover>\n <fd-popover\n #rangeSliderPopover2\n [triggers]=\"[]\"\n [closeOnOutsideClick]=\"false\"\n [appendTo]=\"rangeHandle2\"\n [disabled]=\"!tooltipMode\"\n additionalBodyClass=\"fd-slider-tooltip-popover\"\n class=\"fd-popover--slider\"\n placement=\"top\"\n >\n <ng-template\n [ngTemplateOutlet]=\"popoverInner\"\n [ngTemplateOutletContext]=\"{ target: _sliderValueTargets.RANGE_SLIDER2, position: _handle2Value }\"\n ></ng-template>\n </fd-popover>\n</ng-template>\n<ng-template #popoverInner let-target=\"target\" let-position=\"position\">\n <div\n #sliderTooltipWrapper\n class=\"fd-slider-tooltip-wrapper\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n (mouseenter)=\"_popoverInputFieldHovered$.next(true)\"\n (mouseleave)=\"_popoverInputFieldHovered$.next(false)\"\n >\n @if ((customValues && customValues.length > 0) || tooltipMode === 'readonly') {\n <div class=\"fd-slider-tooltip\">\n {{ customValues && customValues.length > 0 ? customValues[position].label : _popoverValueRef[target] }}\n </div>\n }\n @if (customValues.length === 0 && tooltipMode === 'editable') {\n <input\n #popoverInputField\n tabindex=\"-1\"\n type=\"text\"\n [disabled]=\"disabled\"\n fdkOnlyDigits\n [decimal]=\"true\"\n [style.width.ch]=\"('' + _popoverValueRef[target]).length + 2\"\n class=\"fd-input fd-slider-tooltip {{ _popoverInputFieldClass }}\"\n [(ngModel)]=\"_popoverValueRef[target]\"\n (blur)=\"_updateValueFromInput(popoverInputField.value, target)\"\n (keydown.enter)=\"_updateValueFromInput(popoverInputField.value, target)\"\n (focus)=\"_popoverInputFieldFocused$.next(true)\"\n (blur)=\"_popoverInputFieldFocused$.next(false)\"\n />\n }\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { OnlyDigitsModule } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SliderPositionDirective } from './slider-position.directive';\nimport { SliderComponent } from './slider.component';\n\nconst EXPORTS = [SliderComponent, SliderPositionDirective];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [PopoverModule, FormsModule, OnlyDigitsModule, ContentDensityModule, I18nModule, ...EXPORTS],\n exports: [...EXPORTS]\n})\nexport class SliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-slider.mjs","sources":["../tmp-esm2022/slider/slider-position.directive.js","../tmp-esm2022/slider/constants.js","../tmp-esm2022/slider/slider.model.js","../tmp-esm2022/slider/slider.component.js","../tmp-esm2022/slider/slider.module.js","../tmp-esm2022/slider/fundamental-ngx-core-slider.js"],"sourcesContent":["import { Directive, ElementRef, Input, Optional, Renderer2, computed, effect } from '@angular/core';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/cdk/utils\";\nexport class SliderPositionDirective {\n /** @hidden */\n constructor(_elementRef, _renderer, _rtlService) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._rtlService = _rtlService;\n /** Whether the slider is rendered vertically. */\n this.vertical = false;\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n effect(() => {\n this._setPosition(this._rtl$());\n });\n }\n /** @hidden */\n ngOnChanges() {\n this._setPosition();\n }\n /** @hidden */\n _setPosition(rtl = this._rtl$()) {\n if (this.vertical) {\n this._renderer.setStyle(this._elementRef.nativeElement, 'bottom', `${this.position}%`);\n return;\n }\n this._renderer.setStyle(this._elementRef.nativeElement, 'left', !rtl ? `${this.position}%` : 'unset');\n this._renderer.setStyle(this._elementRef.nativeElement, 'right', rtl ? `${this.position}%` : 'unset');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: SliderPositionDirective, isStandalone: true, selector: \"[fd-slider-position]\", inputs: { position: \"position\", vertical: \"vertical\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderPositionDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-slider-position]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.RtlService, decorators: [{\n type: Optional\n }] }], propDecorators: { position: [{\n type: Input\n }], vertical: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXBvc2l0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zbGlkZXIvc2xpZGVyLXBvc2l0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBT3hELE1BQU0sT0FBTyx1QkFBdUI7SUFXaEMsY0FBYztJQUNkLFlBQ3FCLFdBQW9DLEVBQ3BDLFNBQW9CLEVBQ1IsV0FBdUI7UUFGbkMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDUixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQVZ4RCxpREFBaUQ7UUFFakQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVBLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGlEQUFDLENBQUM7UUFRckUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELGNBQWM7SUFDTixZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDbkMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDdkYsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUcsQ0FBQzs4R0FuQ1EsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQWdCUSxRQUFRO3lDQVpiLFFBQVE7c0JBRFAsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtc2xpZGVyLXBvc2l0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJQb3NpdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBzbGlkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHBvc2l0aW9uOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2xpZGVyIGlzIHJlbmRlcmVkIHZlcnRpY2FsbHkuICovXG4gICAgQElucHV0KClcbiAgICB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldFBvc2l0aW9uKHRoaXMuX3J0bCQoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0UG9zaXRpb24ocnRsID0gdGhpcy5fcnRsJCgpKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLnBvc2l0aW9ufSVgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCAhcnRsID8gYCR7dGhpcy5wb3NpdGlvbn0lYCA6ICd1bnNldCcpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIHJ0bCA/IGAke3RoaXMucG9zaXRpb259JWAgOiAndW5zZXQnKTtcbiAgICB9XG59XG4iXX0=","export const MIN_DISTANCE_BETWEEN_TICKS = 8;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NsaWRlci9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JTl9ESVNUQU5DRV9CRVRXRUVOX1RJQ0tTID0gODtcbiJdfQ==","export var SliderValueTargets;\n(function (SliderValueTargets) {\n SliderValueTargets[SliderValueTargets[\"SINGLE_SLIDER\"] = 0] = \"SINGLE_SLIDER\";\n SliderValueTargets[SliderValueTargets[\"RANGE_SLIDER1\"] = 1] = \"RANGE_SLIDER1\";\n SliderValueTargets[SliderValueTargets[\"RANGE_SLIDER2\"] = 2] = \"RANGE_SLIDER2\";\n})(SliderValueTargets || (SliderValueTargets = {}));\nexport var SliderRangeHandles;\n(function (SliderRangeHandles) {\n SliderRangeHandles[SliderRangeHandles[\"First\"] = 0] = \"First\";\n SliderRangeHandles[SliderRangeHandles[\"Second\"] = 1] = \"Second\";\n SliderRangeHandles[SliderRangeHandles[\"Both\"] = 2] = \"Both\";\n})(SliderRangeHandles || (SliderRangeHandles = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NsaWRlci9zbGlkZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUMxQiw2RUFBYSxDQUFBO0lBQ2IsNkVBQWEsQ0FBQTtJQUNiLDZFQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzFCLDZEQUFLLENBQUE7SUFDTCwrREFBTSxDQUFBO0lBQ04sMkRBQUksQ0FBQTtBQUNSLENBQUMsRUFKVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2xpZGVyVmFsdWVUYXJnZXRzIHtcbiAgICBTSU5HTEVfU0xJREVSLFxuICAgIFJBTkdFX1NMSURFUjEsXG4gICAgUkFOR0VfU0xJREVSMlxufVxuXG5leHBvcnQgZW51bSBTbGlkZXJSYW5nZUhhbmRsZXMge1xuICAgIEZpcnN0LFxuICAgIFNlY29uZCxcbiAgICBCb3RoXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xpZGVyVGlja01hcmsge1xuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBwb3NpdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgU2xpZGVyQ3VzdG9tVmFsdWUgPSBPbWl0PFNsaWRlclRpY2tNYXJrLCAncG9zaXRpb24nPjtcblxuZXhwb3J0IHR5cGUgU2xpZGVyQ29udHJvbFZhbHVlID0gbnVtYmVyIHwgbnVtYmVyW10gfCBTbGlkZXJUaWNrTWFyayB8IFNsaWRlclRpY2tNYXJrW107XG4iXX0=","import { __decorate, __metadata } from \"tslib\";\n/* eslint-disable @typescript-eslint/member-ordering */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Platform } from '@angular/cdk/platform';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, HostBinding, Input, Optional, QueryList, Renderer2, ViewChild, ViewChildren, ViewEncapsulation, computed, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, combineLatest, fromEvent, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, mapTo, skip, startWith, switchMap, take } from 'rxjs/operators';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, OnlyDigitsDirective, RtlService, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityMode, ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverComponent, PopoverTriggerDirective } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { MIN_DISTANCE_BETWEEN_TICKS } from './constants';\nimport { SliderPositionDirective } from './slider-position.directive';\nimport { SliderRangeHandles, SliderValueTargets } from './slider.model';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/platform\";\nimport * as i2 from \"@angular/cdk/a11y\";\nimport * as i3 from \"@fundamental-ngx/cdk/utils\";\nimport * as i4 from \"@fundamental-ngx/core/content-density\";\nimport * as i5 from \"@angular/forms\";\nexport const SLIDER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n};\nlet sliderId = 0;\nexport class SliderComponent {\n /** Minimum value. */\n set min(value) {\n const newValue = coerceNumberProperty(value, this._min);\n if (((this.max - newValue) / this.step) % 1 !== 0) {\n return;\n }\n this._min = value;\n }\n get min() {\n return this._min;\n }\n /** Maximum value. */\n set max(value) {\n const newValue = coerceNumberProperty(value, this._max);\n if (((newValue - this.min) / this.step) % 1 !== 0) {\n return;\n }\n this._max = value;\n }\n get max() {\n return this._max;\n }\n /** Step value. */\n set step(value) {\n const newValue = coerceNumberProperty(value, this._step);\n if (((this.max - this.min) / newValue) % 1 !== 0) {\n return;\n }\n this._step = value;\n }\n get step() {\n return this._step;\n }\n /** Jump value. */\n set jump(value) {\n this._jump = coerceNumberProperty(value, this._jump);\n }\n get jump() {\n return this._jump;\n }\n /** Put a label on every N-th tickmark. */\n set tickmarksBetweenLabels(value) {\n this._tickmarksBetweenLabels = coerceNumberProperty(value, this._tickmarksBetweenLabels);\n }\n get tickmarksBetweenLabels() {\n return this._tickmarksBetweenLabels;\n }\n /** Control value */\n set value(value) {\n this._setValue(value);\n }\n get value() {\n return this._value;\n }\n /** @hidden */\n get _popoverValueRef() {\n return [this._position, this._handle1Value, this._handle2Value];\n }\n /** @hidden */\n constructor(elementRef, _cdr, _renderer, _platform, _liveAnnouncer, _rtlService, _contentDensityObserver) {\n this.elementRef = elementRef;\n this._cdr = _cdr;\n this._renderer = _renderer;\n this._platform = _platform;\n this._liveAnnouncer = _liveAnnouncer;\n this._rtlService = _rtlService;\n this._contentDensityObserver = _contentDensityObserver;\n /** Slider id, it has some default value if not set, */\n this.id = 'fd-slider-id-' + sliderId++;\n /**\n * Slider mode.\n * Options include: 'single' | 'range'\n * The default is set to 'single'\n */\n this.mode = 'single';\n /** Toggles the visibility of tick marks. */\n this.showTicks = false;\n /** Toggles the visibility of tick mark labels. Must be used in conjunction with 'showTicks' */\n this.showTicksLabels = false;\n /** Array of custom values to use for Slider. */\n this.customValues = [];\n /** Hides display of colored progress bar. */\n this.hideProgressBar = false;\n /** Whether the control is disabled. */\n this.disabled = false;\n /**\n * Whether slider should have vertical alignment.\n */\n this.vertical = false;\n /** @hidden */\n this._position = 0;\n /** @hidden */\n this._value = 0;\n /** @hidden */\n this._progress = 0;\n /** @hidden */\n this._isRange = false;\n /** @hidden */\n this._handle1Position = 0;\n /** @hidden */\n this._handle2Position = 0;\n /** @hidden */\n this._handle1Value = 0;\n /** @hidden */\n this._handle2Value = 0;\n /** @hidden */\n this._rangeProgress = 0;\n /** @hidden */\n this._tickMarks = [];\n /** @hidden */\n this._sliderValueTargets = SliderValueTargets;\n /** @hidden */\n this._popoverInputFieldClass = `fd-slider-popover-input-${sliderId}`;\n /**\n * @hidden\n * whether to use value with a prefix for announcing\n */\n this._useSliderValuePrefix = true;\n /** @hidden */\n this._handles = SliderRangeHandles;\n /** @hidden */\n this._min = 0;\n /** @hidden */\n this._max = 100;\n /** @hidden */\n this._step = 1;\n /** @hidden */\n this._jump = 10;\n /** @hidden */\n this._tickmarksBetweenLabels = 1;\n /** @hidden */\n this._valuesBySteps = [];\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n this._destroyRef = inject(DestroyRef);\n /** @hidden */\n this._componentHovered$ = new BehaviorSubject(false);\n /** @hidden */\n this._handleFocused$ = new BehaviorSubject(false);\n /** @hidden */\n this._rangeHandle1Focused$ = new BehaviorSubject(false);\n /** @hidden */\n this._rangeHandle2Focused$ = new BehaviorSubject(false);\n /** @hidden */\n this._popoverInputFieldFocused$ = new BehaviorSubject(false);\n /** @hidden */\n this._popoverInputFieldHovered$ = new BehaviorSubject(false);\n /** @hidden */\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n _contentDensityObserver.subscribe();\n }\n /**\n * @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass() {\n return [\n 'fd-slider',\n this.disabled ? 'is-disabled' : '',\n this._isRange ? 'fd-slider--range' : '',\n this.showTicks && this.showTicksLabels ? 'fd-slider--with-labels' : '',\n this.vertical ? 'fd-slider--vertical' : '',\n this.class,\n this._platform.EDGE || this._platform.TRIDENT ? 'fd-slider__alternative-tick-width' : ''\n ];\n }\n /** @hidden */\n ngOnInit() {\n this._attachResizeListener();\n this._onResize();\n if (this._valuesBySteps.length === 0) {\n this._constructValuesBySteps();\n }\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngOnChanges() {\n this.buildComponentCssClass();\n this._checkIsInRangeMode();\n this._constructTickMarks();\n this._constructValuesBySteps();\n this._recalcHandlePositions();\n }\n /** @hidden */\n ngAfterViewInit() {\n this._listenToInteractionChanges();\n }\n /** @hidden */\n getValuenow(position, sliderValueTarget) {\n return this.customValues.length > 0\n ? this.customValues[position].label\n : this._popoverValueRef[sliderValueTarget];\n }\n /** @hidden */\n get minValue() {\n return this.customValues.length > 0 ? this.customValues[this.min].label : this.min;\n }\n /** @hidden */\n get maxValue() {\n return this.customValues.length > 0 ? this.customValues[this.max].label : this.max;\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /** @hidden */\n writeValue(value) {\n this._setValue(value, false);\n }\n /** @hidden */\n onTrackClick(event) {\n if (this.disabled || this._isRange) {\n return;\n }\n this._setValue(this._calculateValueFromPointerPosition(event));\n this._updatePopoversPosition();\n this.handle.nativeElement.focus();\n }\n /** @hidden */\n onHandleClick(event, group = false) {\n if (this.disabled) {\n return;\n }\n let firstHandleCoords;\n let rangeSliderStartCoords;\n if (group) {\n rangeSliderStartCoords = {\n x: event.clientX,\n y: event.clientY\n };\n const firstHandleRect = this.rangeHandle1.nativeElement.getBoundingClientRect();\n firstHandleCoords = {\n x: firstHandleRect.x + firstHandleRect.width / 2,\n y: firstHandleRect.y + firstHandleRect.height / 2\n };\n }\n const unsubscribeFromMousemove = this._renderer.listen('document', 'mousemove', (moveEvent) => {\n this._updatePopoversPosition();\n if (!this._isRange) {\n this._setValue(this._calculateValueFromPointerPosition(moveEvent));\n return;\n }\n let coords = {\n clientX: moveEvent.clientX,\n clientY: moveEvent.clientY\n };\n let handleIndex;\n if (group) {\n handleIndex = SliderRangeHandles.Both;\n // Mimic dragging first handle to calculate the difference between old and new values.\n coords = {\n clientX: firstHandleCoords.x + (moveEvent.clientX - rangeSliderStartCoords.x),\n clientY: firstHandleCoords.y + (moveEvent.clientY - rangeSliderStartCoords.y)\n };\n }\n else if (event.target === this.rangeHandle1.nativeElement) {\n handleIndex = SliderRangeHandles.First;\n }\n else if (event.target === this.rangeHandle2.nativeElement) {\n handleIndex = SliderRangeHandles.Second;\n }\n else {\n return;\n }\n const value = this._calculateValueFromPointerPosition(coords, false);\n this._setRangeHandleValueAndPosition(handleIndex, value);\n this._setValue(this._constructRangeModelValue());\n });\n const unsubscribeFromMouseup = this._renderer.listen('document', 'mouseup', () => {\n unsubscribeFromMousemove();\n unsubscribeFromMouseup();\n });\n }\n /** @hidden */\n onKeyDown(event, handle) {\n if (this.disabled) {\n return;\n }\n const allowedKeys = [LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, ENTER, SPACE];\n if (!KeyUtil.isKeyCode(event, allowedKeys)) {\n return;\n }\n event.preventDefault();\n const upActionKey = KeyUtil.isKeyCode(event, [UP_ARROW, this._rtl$() ? LEFT_ARROW : RIGHT_ARROW]);\n const downActionKey = KeyUtil.isKeyCode(event, [DOWN_ARROW, this._rtl$() ? RIGHT_ARROW : LEFT_ARROW]);\n if (!upActionKey && !downActionKey) {\n return;\n }\n const diff = event.shiftKey ? this.jump : this.step;\n let newValue = null;\n if (!this._isRange) {\n newValue = this._position + diff * (upActionKey ? 1 : -1);\n if (newValue === null) {\n return;\n }\n newValue = this._processNewValue(newValue, !this._isRange);\n this._setValue(newValue);\n this._updatePopoversPosition();\n return;\n }\n this._handleRangeKeydown(handle === SliderRangeHandles.Both ? [SliderRangeHandles.First, SliderRangeHandles.Second] : handle, diff, upActionKey);\n this._updatePopoversPosition();\n }\n /** @hidden */\n _updateValueFromInput(value, target) {\n const newValue = this._processNewValue(+value);\n if (!this._isRange && target === SliderValueTargets.SINGLE_SLIDER) {\n this._setValue(newValue);\n this.handle.nativeElement.focus();\n this._updatePopoversPosition();\n return;\n }\n if (target === SliderValueTargets.RANGE_SLIDER1) {\n this._setRangeHandleValueAndPosition(SliderRangeHandles.First, newValue);\n this.rangeHandle1.nativeElement.focus();\n }\n if (target === SliderValueTargets.RANGE_SLIDER2) {\n this._setRangeHandleValueAndPosition(SliderRangeHandles.Second, newValue);\n this.rangeHandle2.nativeElement.focus();\n }\n this._setValue(this._constructRangeModelValue());\n this._updatePopoversPosition();\n }\n /** @hidden */\n _handleRangeKeydown(handles, diff, up) {\n handles = Array.isArray(handles) ? handles : [handles];\n const valueMap = new Map();\n handles.forEach((handle) => {\n const prevValue = handle === SliderRangeHandles.First ? this._handle1Value : this._handle2Value;\n let newValue = prevValue + diff * (up ? 1 : -1);\n if (newValue === null) {\n return;\n }\n newValue = this._processNewValue(newValue, !this._isRange);\n valueMap.set(handle, { prev: prevValue, current: newValue });\n });\n if (Array.from(valueMap.values()).some((entry) => entry.current === entry.prev)) {\n return;\n }\n valueMap.forEach((entry, handle) => {\n this._setRangeHandleValueAndPosition(handle, entry.current);\n });\n this._setValue(this._constructRangeModelValue());\n }\n /** @hidden */\n _setValue(value, emitEvent = true) {\n if (this._isRange) {\n this._initRangeMode((value ?? [0.0]));\n }\n else {\n this._initSingeMode((value ?? 0));\n }\n this._value = value;\n if (emitEvent) {\n this.onChange(value);\n }\n this._cdr.markForCheck();\n }\n /** @hidden */\n _updatePopoversPosition() {\n this._cdr.detectChanges();\n this._popovers.forEach((popover) => popover.refreshPosition());\n }\n /** @hidden */\n _calculateValueFromPointerPosition(coords, takeCustomValue = true) {\n const { left, width, bottom, height } = this.trackEl.nativeElement.getBoundingClientRect();\n let percentage = this.vertical ? (bottom - coords.clientY) / height : (coords.clientX - left) / width;\n if (this._rtl$()) {\n percentage = 1 - percentage;\n }\n const newValue = this.min + percentage * (this.max - this.min);\n return this._processNewValue(newValue, takeCustomValue);\n }\n /** @hidden */\n _processNewValue(newValue, takeCustomValue = true) {\n if (newValue > this.max) {\n newValue = this.max;\n }\n if (newValue < this.min) {\n newValue = this.min;\n }\n this._useSliderValuePrefix = false;\n this._cdr.markForCheck();\n const stepDiffArray = this._valuesBySteps\n .map((stepValue) => ({\n diff: Math.abs(stepValue - newValue),\n value: stepValue\n }))\n .sort((a, b) => a.diff - b.diff);\n let value = stepDiffArray[0].value;\n if (takeCustomValue && this.customValues.length > 0) {\n value = this.customValues[value];\n }\n return value;\n }\n /** @hidden */\n _setRangeHandleValueAndPosition(handleIndex, value) {\n const position = this._calcProgress(value, true);\n if (handleIndex === SliderRangeHandles.First) {\n this._handle1Value = value;\n this._handle1Position = position;\n }\n else if (handleIndex === SliderRangeHandles.Second) {\n this._handle2Value = value;\n this._handle2Position = position;\n }\n else if (handleIndex === SliderRangeHandles.Both) {\n // Calculate how much steps being skipped.\n const oldValueIndex = this._valuesBySteps.indexOf(this._handle1Value);\n const newValueIndex = this._valuesBySteps.indexOf(value);\n const diff = oldValueIndex - newValueIndex;\n const handle2ValueIndex = this._valuesBySteps.indexOf(this._handle2Value);\n if (diff === 0 || this._valuesBySteps.length <= handle2ValueIndex - diff) {\n return;\n }\n const positionShift = position - this._handle1Position;\n this._handle1Position = position;\n this._handle2Position = this._handle2Position + positionShift;\n this._handle1Value = value;\n this._handle2Value = this._valuesBySteps[handle2ValueIndex - diff];\n }\n this._rangeProgress = Math.abs(this._handle2Position - this._handle1Position);\n }\n /** @hidden */\n _constructRangeModelValue() {\n let rangeLowerValue;\n let rangeHigherValue;\n let rangeValue = [\n Math.min(this._handle1Value, this._handle2Value),\n Math.max(this._handle1Value, this._handle2Value)\n ];\n rangeLowerValue = rangeValue[0];\n rangeHigherValue = rangeValue[1];\n if (this.customValues.length > 0) {\n const min = this.customValues[rangeValue[0]] || this.customValues[0];\n const max = this.customValues[rangeValue[1]] || this.customValues[this.customValues.length - 1];\n rangeValue = [min, max];\n rangeLowerValue = rangeValue[0].label;\n rangeHigherValue = rangeValue[1].label;\n }\n this._liveAnnouncer.announce('range value between ' + rangeLowerValue + ' and ' + rangeHigherValue, 'polite');\n return rangeValue;\n }\n /** @hidden */\n _attachResizeListener() {\n fromEvent(window, 'resize')\n .pipe(debounceTime(500), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._onResize());\n }\n /** @hidden */\n _onResize() {\n this._constructTickMarks();\n this._cdr.markForCheck();\n }\n /** @hidden */\n _constructValuesBySteps() {\n try {\n this._valuesBySteps = Array.from({\n length: (this.max - this.min) / this.step + 1\n }, (_, i) => Number((this.min + i * this.step).toFixed(2)));\n }\n catch { }\n }\n /** @hidden */\n _constructTickMarks() {\n if (!this.showTicks) {\n this._tickMarks = [];\n return;\n }\n if (this.customValues.length) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.step = 1;\n const customValuesLength = this.customValues.length - 1;\n this._tickMarks = this.customValues.map((item, i) => ({\n ...item,\n position: (100 / customValuesLength) * i\n }));\n }\n else {\n const total = this.max - this.min;\n const tickMarksCount = total / this.step + 1;\n if (this._maxTickMarksNumber !== undefined && tickMarksCount > this._maxTickMarksNumber) {\n this._tickMarks = [\n {\n position: 0,\n value: 0,\n label: `${this.min}`\n },\n {\n position: 100,\n value: total,\n label: `${this.max}`\n }\n ];\n return;\n }\n if (tickMarksCount % 1 === 0) {\n this._tickMarks = Array.from({\n length: tickMarksCount\n }, (_, i) => {\n const value = Math.round(i * this.step * 100) / 100;\n const position = (value / (this.max - this.min)) * 100;\n return {\n value,\n position,\n label: `${this.min + value}`\n };\n });\n }\n }\n }\n /** @hidden */\n get _maxTickMarksNumber() {\n if (!this.trackEl || !this.trackEl.nativeElement) {\n return;\n }\n const { width, height } = this.trackEl.nativeElement.getBoundingClientRect();\n return Math.floor((this.vertical ? height : width) / MIN_DISTANCE_BETWEEN_TICKS);\n }\n /** @hidden */\n _calcProgress(value, skipRtl = false) {\n let progress = ((value - this.min) / (this.max - this.min)) * 100;\n if (!skipRtl && this._rtl$()) {\n progress = 100 - progress;\n }\n if (progress > 100) {\n return 100;\n }\n if (progress < 0) {\n return 0;\n }\n return progress;\n }\n /** @hidden */\n _recalcHandlePositions() {\n if (this._isRange) {\n this._handle1Position = this._calcProgress(this._handle1Value);\n this._handle2Position = this._calcProgress(this._handle2Value);\n this._rangeProgress = Math.abs(this._handle2Position - this._handle1Position);\n }\n this._progress = this._calcProgress(this._position, true);\n }\n /** @hidden */\n _checkIsInRangeMode() {\n this._isRange = this.mode === 'range';\n }\n /** @hidden */\n _initSingeMode(value) {\n if (this.customValues.length > 0) {\n this._initSingeModeWithCustomValue(value);\n return;\n }\n this._initSingeModeDefault(coerceNumberProperty(value, this.min));\n }\n /** @hidden */\n _initSingeModeDefault(value) {\n this._position = value;\n this._progress = this._calcProgress(value, true);\n }\n /** @hidden */\n _initSingeModeWithCustomValue(sliderTickMark) {\n const value = this._getCustomValuesPosition(sliderTickMark) || this.min;\n this._initSingeModeDefault(value);\n }\n /** @hidden */\n _initRangeMode(value) {\n if (this.customValues.length > 0) {\n this._initRangeModeWithCustomValues(value);\n return;\n }\n const firstHandle = coerceNumberProperty(value[0], this.min);\n const secondHandle = coerceNumberProperty(value[1], this.max);\n this._initRangeModeDefault([firstHandle, secondHandle]);\n }\n /** @hidden */\n _initRangeModeDefault([firstHandle, secondHandle]) {\n this._position = [firstHandle, secondHandle];\n this._setRangeHandleValueAndPosition(SliderRangeHandles.First, firstHandle);\n this._setRangeHandleValueAndPosition(SliderRangeHandles.Second, secondHandle);\n }\n /** @hidden */\n _initRangeModeWithCustomValues([firstHandle, secondHandle]) {\n const value = this._getCustomValuesPosition([firstHandle, secondHandle]) || [this.min, this.max];\n this._initRangeModeDefault(value);\n }\n /** @hidden */\n _getCustomValuesPosition(value) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.step = 1;\n return this._getCustomValuesPositions(value);\n }\n /** @hidden */\n _getCustomValuesPositions(value) {\n if (!value || value.length === 0) {\n return this._isRange ? [0, this.customValues.length - 1] : 0;\n }\n if (Array.isArray(value)) {\n let [firstHandle, secondHandle] = value;\n if (!this._instanceOfCustomValue(firstHandle)) {\n firstHandle = this.customValues[0];\n }\n if (!this._instanceOfCustomValue(secondHandle)) {\n secondHandle = this.customValues[this.customValues.length - 1];\n }\n const firstHandlePosition = this.customValues.findIndex((item) => item.value === firstHandle.value);\n const secondHandlePosition = this.customValues.findIndex((item) => item.value === secondHandle.value);\n const indexes = [\n firstHandlePosition >= 0 ? firstHandlePosition : 0,\n secondHandlePosition >= 0 ? secondHandlePosition : this.customValues.length - 1\n ];\n return indexes;\n }\n else {\n let firstHandle = value;\n if (!this._instanceOfCustomValue(firstHandle)) {\n firstHandle = this.customValues[0];\n }\n return this.customValues.findIndex((item) => item.value === firstHandle.value) || 0;\n }\n }\n /** @hidden */\n _instanceOfCustomValue(object) {\n return !!object && 'value' in object && 'label' in object;\n }\n /** @hidden */\n _listenToInteractionChanges() {\n combineLatest([\n this._handleFocused$,\n this._rangeHandle1Focused$,\n this._rangeHandle2Focused$,\n this._popoverInputFieldFocused$,\n this._componentHovered$,\n this._popoverInputFieldHovered$\n ])\n .pipe(skip(1), map((states) => states.some(Boolean)), switchMap((focused) => {\n if (focused) {\n return of(true);\n }\n // If not focused, check for the edge case,\n // when hover is on the fd-popover-body, that is a parent for the tooltip.\n // This will return true, when hovering the gap between handle and the tooltip.\n return this._isPopoverHovered();\n }), debounceTime(10), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe((focused) => {\n if (focused) {\n this._popovers.forEach((popover) => popover.open());\n }\n else {\n this._resetPrefix();\n this._popovers.forEach((popover) => popover.close());\n }\n });\n }\n /** @hidden reset default prefix on leaving the slider */\n _resetPrefix() {\n // reset prefix string for slider current value that need to be announced\n this._useSliderValuePrefix = true;\n this._cdr.markForCheck();\n }\n /**\n * @hidden\n * Checks whether input popover element is hovered.\n * Will also return true, when hovering the gap between handle and the tooltip.\n * If yes, returns \"true\" instantly and \"false\" once it's not hovered anymore.\n */\n _isPopoverHovered() {\n const popoverBody = this._sliderTooltipWrappers.first?.nativeElement.closest('fd-popover-body');\n if (popoverBody?.matches(':hover')) {\n return fromEvent(popoverBody, 'mouseleave').pipe(mapTo(false), take(1), startWith(true));\n }\n return of(false);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.Platform }, { token: i2.LiveAnnouncer }, { token: i3.RtlService, optional: true }, { token: i4.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: SliderComponent, isStandalone: true, selector: \"fd-slider\", inputs: { id: \"id\", class: \"class\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", min: \"min\", max: \"max\", step: \"step\", jump: \"jump\", tickmarksBetweenLabels: \"tickmarksBetweenLabels\", mode: \"mode\", showTicks: \"showTicks\", showTicksLabels: \"showTicksLabels\", customValues: \"customValues\", tooltipMode: \"tooltipMode\", hideProgressBar: \"hideProgressBar\", disabled: \"disabled\", vertical: \"vertical\", value: \"value\" }, host: { listeners: { \"mouseenter\": \"this._componentHovered$.next(true)\", \"mouseleave\": \"this._componentHovered$.next(false)\", \"focusout\": \"onTouched()\" }, properties: { \"attr.id\": \"this.id\", \"class.fd-slider--range\": \"this._isRange\" } }, providers: [\n SLIDER_VALUE_ACCESSOR,\n registerFormItemControl(SliderComponent),\n contentDensityObserverProviders({\n defaultContentDensity: ContentDensityMode.COMPACT,\n modifiers: {\n [ContentDensityMode.COZY]: 'fd-slider--lg'\n }\n })\n ], viewQueries: [{ propertyName: \"trackEl\", first: true, predicate: [\"track\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"handle\", first: true, predicate: [\"handle\"], descendants: true, read: ElementRef }, { propertyName: \"rangeHandle1\", first: true, predicate: [\"rangeHandle1\"], descendants: true, read: ElementRef }, { propertyName: \"rangeHandle2\", first: true, predicate: [\"rangeHandle2\"], descendants: true, read: ElementRef }, { propertyName: \"_rangeGroupHandle\", first: true, predicate: [\"rangeGroupHandle\"], descendants: true, read: ElementRef }, { propertyName: \"_popovers\", predicate: PopoverComponent, descendants: true }, { propertyName: \"_sliderTooltipWrappers\", predicate: [\"sliderTooltipWrapper\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"fd-slider__inner\\\">\\n <ng-template [ngTemplateOutlet]=\\\"_isRange ? rangeMode : singleMode\\\"></ng-template>\\n <div class=\\\"fd-slider__track\\\" (click)=\\\"onTrackClick($event)\\\" #track>\\n <ng-template [ngTemplateOutlet]=\\\"_isRange ? rangeModeTrack : singleModeTrack\\\"></ng-template>\\n </div>\\n <div class=\\\"fd-slider__tick-wrapper\\\">\\n <div class=\\\"fd-slider__ticks\\\" (click)=\\\"onTrackClick($event)\\\">\\n @if (showTicks) {\\n @for (tick of _tickMarks; track tick; let i = $index) {\\n <div\\n class=\\\"fd-slider__tick\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"tick.position || 0\\\"\\n [class.fd-slider__tick--in-range]=\\\"\\n !hideProgressBar &&\\n (_isRange\\n ? tick.value >= _position[0] && tick.value <= _position[1]\\n : tick.value <= _position)\\n \\\"\\n ></div>\\n }\\n }\\n </div>\\n @if (showTicks && showTicksLabels) {\\n <div class=\\\"fd-slider__labels\\\">\\n @for (tick of _tickMarks; track tick; let i = $index; let last = $last; let first = $first) {\\n @if (first || last || i % tickmarksBetweenLabels === 0) {\\n <div\\n class=\\\"fd-slider__label\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"tick.position || 0\\\"\\n >\\n {{ tick.label }}\\n </div>\\n }\\n }\\n </div>\\n }\\n </div>\\n</div>\\n<ng-template #singleModeTrack>\\n @if (!hideProgressBar) {\\n <div\\n class=\\\"fd-slider__track-range\\\"\\n [style.height.%]=\\\"vertical ? _progress : null\\\"\\n [style.width.%]=\\\"vertical ? null : _progress\\\"\\n ></div>\\n }\\n</ng-template>\\n<ng-template #rangeModeTrack>\\n @if (!hideProgressBar) {\\n <div\\n class=\\\"fd-slider__track-range\\\"\\n [style.height.%]=\\\"vertical ? _rangeProgress : null\\\"\\n [style.width.%]=\\\"vertical ? null : _rangeProgress\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle1Position < _handle2Position ? _handle1Position : _handle2Position\\\"\\n >\\n <div\\n class=\\\"fd-slider__track-focus-range\\\"\\n (mousedown)=\\\"onHandleClick($event, true)\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.Both)\\\"\\n tabindex=\\\"0\\\"\\n #rangeGroupHandle\\n ></div>\\n </div>\\n }\\n</ng-template>\\n<ng-template #singleMode>\\n <div\\n #handle\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.singleMinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? singleSliderPopover : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.singleValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.singleValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.singleValueNowDetails'\\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.singleValueNowDetails'\\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_progress\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (focus)=\\\"_handleFocused$.next(true)\\\"\\n (blur)=\\\"_handleFocused$.next(false)\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n ></div>\\n <fd-popover\\n #singleSliderPopover\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"handle\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n class=\\\"fd-popover--slider\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.SINGLE_SLIDER, position: _position }\\\"\\n ></ng-template>\\n </fd-popover>\\n</ng-template>\\n<ng-template #rangeMode>\\n <div\\n #rangeHandle1\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.multipleHandle1MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? rangeSliderPopover1 : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.multipleHandle1ValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.multipleHandle1ValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle1ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle1ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle1Position\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.First)\\\"\\n (focus)=\\\"_rangeHandle1Focused$.next(true)\\\"\\n (blur)=\\\"_rangeHandle1Focused$.next(false)\\\"\\n ></div>\\n <div\\n #rangeHandle2\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.multipleHandle2MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? rangeSliderPopover2 : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.multipleHandle2ValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.multipleHandle2ValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle2ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle2ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle2Position\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.Second)\\\"\\n (focus)=\\\"_rangeHandle2Focused$.next(true)\\\"\\n (blur)=\\\"_rangeHandle2Focused$.next(false)\\\"\\n ></div>\\n <fd-popover\\n #rangeSliderPopover1\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"rangeHandle1\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n class=\\\"fd-popover--slider\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.RANGE_SLIDER1, position: _handle1Value }\\\"\\n ></ng-template>\\n </fd-popover>\\n <fd-popover\\n #rangeSliderPopover2\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"rangeHandle2\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n class=\\\"fd-popover--slider\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.RANGE_SLIDER2, position: _handle2Value }\\\"\\n ></ng-template>\\n </fd-popover>\\n</ng-template>\\n<ng-template #popoverInner let-target=\\\"target\\\" let-position=\\\"position\\\">\\n <div\\n #sliderTooltipWrapper\\n class=\\\"fd-slider-tooltip-wrapper\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"$event.stopPropagation()\\\"\\n (mouseenter)=\\\"_popoverInputFieldHovered$.next(true)\\\"\\n (mouseleave)=\\\"_popoverInputFieldHovered$.next(false)\\\"\\n >\\n @if ((customValues && customValues.length > 0) || tooltipMode === 'readonly') {\\n <div class=\\\"fd-slider-tooltip\\\">\\n {{ customValues && customValues.length > 0 ? customValues[position].label : _popoverValueRef[target] }}\\n </div>\\n }\\n @if (customValues.length === 0 && tooltipMode === 'editable') {\\n <input\\n #popoverInputField\\n tabindex=\\\"-1\\\"\\n type=\\\"text\\\"\\n [disabled]=\\\"disabled\\\"\\n fdkOnlyDigits\\n [decimal]=\\\"true\\\"\\n [style.width.ch]=\\\"('' + _popoverValueRef[target]).length + 2\\\"\\n class=\\\"fd-input fd-slider-tooltip {{ _popoverInputFieldClass }}\\\"\\n [(ngModel)]=\\\"_popoverValueRef[target]\\\"\\n (blur)=\\\"_updateValueFromInput(popoverInputField.value, target)\\\"\\n (keydown.enter)=\\\"_updateValueFromInput(popoverInputField.value, target)\\\"\\n (focus)=\\\"_popoverInputFieldFocused$.next(true)\\\"\\n (blur)=\\\"_popoverInputFieldFocused$.next(false)\\\"\\n />\\n }\\n </div>\\n</ng-template>\\n\", styles: [\".fd-slider{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;max-width:100%;min-width:4rem;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:calc(var(--fdSlider_Handle_Width)*.5 + .125rem);position:relative}.fd-slider:after,.fd-slider:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider.is-disabled,.fd-slider:disabled,.fd-slider[aria-disabled=true]{cursor:not-allowed}.fd-slider--lg{--fdSlider_Handle_Width:var(--fdSlider_Mobile_Handle_Width);--fdSlider_Handle_Height:var(--fdSlider_Mobile_Handle_Height);--fdSlider_Handle_Active_Width:var(--fdSlider_Mobile_Handle_Active_Size);--fdSlider_Handle_Active_Height:var(--fdSlider_Mobile_Handle_Active_Size);padding-inline:calc(var(--fdSlider_Mobile_Handle_Width)*.5 + .125rem)}.fd-slider__inner{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;padding-block:0;padding-inline:0;position:relative}.fd-slider__inner:after,.fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Active_Background);border:0;border:var(--fdSlider_Endpoint_Active_Border);border-radius:50%;-webkit-box-sizing:inherit;box-sizing:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);content:\\\"\\\";font-family:var(--sapFontFamily);font-size:inherit;font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdSlider_Endpoint_Size);left:-.7rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--fdSlider_Endpoint_Size)}.fd-slider__inner:after:after,.fd-slider__inner:after:before,.fd-slider__inner:before:after,.fd-slider__inner:before:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__inner:after{left:auto;right:-.7rem}.fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner[dir=rtl]:before,.fd-slider__inner:after,[dir=rtl] .fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Background);border:var(--fdSlider_Endpoint_Border)}.fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner[dir=rtl]:after,[dir=rtl] .fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner:after{background-color:var(--fdSlider_Endpoint_Active_Background);border:var(--fdSlider_Endpoint_Active_Border)}.fd-slider__track{background-color:var(--fdSlider_Track_Background);border:0;border-radius:var(--fdSlider_Track_BorderRadius);-webkit-box-shadow:inset 0 0 0 var(--fdSlider_Track_Border_Width) var(--fdSlider_Track_Border_Color);box-shadow:inset 0 0 0 var(--fdSlider_Track_Border_Width) var(--fdSlider_Track_Border_Color);-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;height:var(--fdSlider_Track_Height);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;width:100%;z-index:1}.fd-slider__track:after,.fd-slider__track:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__track .fd-slider__handle.is-focus,.fd-slider__track .fd-slider__handle:focus{z-index:5;z-index:2;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fd-slider__track-range{background-color:var(--fdSlider_Track_Active_Background);border:0;border:.0625rem solid var(--fdSlider_Track_Active_Border);border-radius:.25rem;-webkit-box-shadow:var(--fdSlider_Track_Active_Box_Shadow);box-shadow:var(--fdSlider_Track_Active_Box_Shadow);-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;height:100%;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-slider__track-range:after,.fd-slider__track-range:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick-wrapper{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;padding-block:0;padding-inline:0;position:absolute;top:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);width:100%;z-index:2}.fd-slider__tick-wrapper:after,.fd-slider__tick-wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__ticks{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;height:var(--fdSlider_Tick_Height);justify-content:space-between}.fd-slider__ticks:after,.fd-slider__ticks:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__labels{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;height:1rem;justify-content:space-between;position:relative;top:.5rem}.fd-slider__labels:after,.fd-slider__labels:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick{border:0;border-left:.0625rem solid var(--fdSlider_Tick_Background);-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;height:var(--fdSlider_Tick_Height);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-slider__tick:after,.fd-slider__tick:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick--in-range{border-color:var(--fdSlider_Active_Tick_Background)}.fd-slider__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize);position:relative;width:0}.fd-slider__label:after,.fd-slider__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__handle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block: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(--fdSlider_Handle_Background);border:var(--fdSlider_Handle_Border);border-radius:var(--fdSlider_Handle_Border_Radius);cursor:pointer;height:var(--fdSlider_Handle_Height);position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:var(--fdSlider_Handle_Width);z-index:3}.fd-slider__handle:after,.fd-slider__handle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__handle:before{content:\\\"\\\";height:var(--fdSlider_Handle_Active_Height);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:var(--fdSlider_Handle_Active_Width)}.fd-slider__handle:after{color:var(--sapContent_Selected_ForegroundColor);content:\\\"\\\\e29c\\\";display:var(--fdSlider_Handle_Icon_Display);font-family:SAP-icons;font-size:.875rem;line-height:1}.fd-slider__handle.is-focus,.fd-slider__handle:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-focus:after,.fd-slider__handle:focus:after{display:none}.fd-slider__handle.is-hover,.fd-slider__handle:hover{background-color:var(--fdSlider_Hover_Handle_Background);border:var(--fdSlider_Hover_Handle_Border);border-color:var(--fdSlider_Handle_Border_Hover_Color)}.fd-slider__handle.is-hover.is-focus,.fd-slider__handle.is-hover:focus,.fd-slider__handle:hover.is-focus,.fd-slider__handle:hover:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-hover.is-focus:after,.fd-slider__handle.is-hover:focus:after,.fd-slider__handle:hover.is-focus:after,.fd-slider__handle:hover:focus:after{display:none}.fd-slider__handle.is-active,.fd-slider__handle:active{background-color:var(--fdSlider_Active_Handle_Background);border:var(--fdSlider_Active_Handle_Border)}.fd-slider__handle.is-active.is-focus,.fd-slider__handle.is-active:focus,.fd-slider__handle:active.is-focus,.fd-slider__handle:active:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-active.is-focus:after,.fd-slider__handle.is-active:focus:after,.fd-slider__handle:active.is-focus:after,.fd-slider__handle:active:focus:after{display:none}.fd-slider__track-focus-range{border:0;border-radius:var(--fdSlider_Range_Track_Border_Radius);-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;height:calc(var(--fdSlider_Handle_Height) + .5rem);left:0;line-height:normal;margin-block:0;margin-inline:0;margin-inline:calc(var(--fdSlider_Handle_Height)*-1/1.1);padding-block:0;padding-inline:0;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-slider__track-focus-range:after,.fd-slider__track-focus-range:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__track-focus-range.is-focus,.fd-slider__track-focus-range:focus{outline:var(--fdSlider_Focus_Range_Outline);z-index:5}.fd-slider--range .fd-slider__inner:after,.fd-slider--range .fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Background);border:var(--fdSlider_Endpoint_Border)}.fd-slider--range .fd-slider__inner .fd-slider__handle{background-color:var(--fdSlider_Range_Handle_Background);border:var(--fdSlider_Range_Handle_Border)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-hover,.fd-slider--range .fd-slider__inner .fd-slider__handle:hover{background-color:var(--fdSlider_Range_Hover_Handle_Background);border-color:var(--fdSlider_Range_Hover_Handle_Border_Color)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-active,.fd-slider--range .fd-slider__inner .fd-slider__handle:active{background-color:var(--fdSlider_Range_Active_Handle_Background);border-color:var(--fdSlider_Range_Active_Handle_Border_Color)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-active:after,.fd-slider--range .fd-slider__inner .fd-slider__handle:active:after{display:var(--fdSlider_Focus_Handle_Display)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-focus,.fd-slider--range .fd-slider__inner .fd-slider__handle:focus{background-color:var(--fdSlider_Range_Focus_Handle_Background);border:var(--fdSlider_Range_Focus_Handle_Border);z-index:5}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-focus:after,.fd-slider--range .fd-slider__inner .fd-slider__handle:focus:after{display:var(--fdSlider_Focus_Handle_Display)}.fd-slider--vertical{height:100%}.fd-slider--vertical .fd-slider__inner{height:100%;width:var(--fdSlider_Track_Height)}.fd-slider--vertical .fd-slider__inner:after,.fd-slider--vertical .fd-slider__inner:before{left:50%;right:auto;top:auto;-webkit-transform:translateX(-50%);transform:translate(-50%)}.fd-slider--vertical .fd-slider__inner:before{bottom:-.7rem}.fd-slider--vertical .fd-slider__inner:after{top:-.7rem}.fd-slider--vertical .fd-slider__track{height:100%;width:var(--fdSlider_Track_Height)}.fd-slider--vertical .fd-slider__track-range{bottom:0;position:absolute;width:100%}.fd-slider--vertical .fd-slider__handle{bottom:0;height:var(--fdSlider_Handle_Width);left:50%;top:auto;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%);width:var(--fdSlider_Handle_Height)}.fd-slider--vertical .fd-slider__handle:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fd-slider--vertical .fd-slider__tick-wrapper{height:100%;left:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);right:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);top:0}.fd-slider--vertical .fd-slider__ticks{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:100%}.fd-slider--vertical .fd-slider__tick{border-left:none;border-top-style:solid;border-top-width:.0625rem;height:0;width:var(--fdSlider_Tick_Height)}.fd-slider--vertical .fd-slider__labels{height:100%;position:absolute;top:-.55rem;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;left:calc(var(--fdSlider_Handle_Width)*.5 + .125rem)}.fd-slider--vertical .fd-slider__labels[dir=rtl],[dir=rtl] .fd-slider--vertical .fd-slider__labels{left:auto;right:calc(var(--fdSlider_Handle_Width)*.5 + .125rem)}.fd-slider--vertical .fd-slider__label{height:.0625rem;width:auto}.fd-slider--vertical.fd-slider--range .fd-slider__track-range{left:0}.fd-slider--vertical.fd-slider--range .fd-slider__track-focus-range{height:auto;inset:0 auto 0 50%;margin-block:calc(var(--fdSlider_Handle_Height)*-1/1.1);margin-inline:0;-webkit-transform:translateX(-50%);transform:translate(-50%);width:calc(var(--fdSlider_Handle_Height) + .5rem)}.fd-slider-tooltip-popover.fd-popover__body{background:var(--sapBackgroundColor);border:none;border-radius:.0625rem;-webkit-box-shadow:var(--sapContent_Shadow1);box-shadow:var(--sapContent_Shadow1);height:1rem;overflow:hidden;padding-block:0;padding-inline:.5rem;top:-.4375rem!important}.fd-slider-tooltip-popover.fd-popover__body .fd-slider-tooltip{color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSmallSize);line-height:1rem;text-align:center}.fd-slider-tooltip-popover.fd-popover__body:has(input){-webkit-box-shadow:none;box-shadow:none;height:auto;padding-inline:0;width:auto}.fd-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle,var(--sapField_BackgroundStyle));background-color:var(--sapField_Background,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-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;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:0;margin-block:var(--fdInput_Field_Margin_Block,.25rem);margin-inline:0;min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:2.75rem;outline:none;overflow:hidden;padding-block:0;padding-inline:0;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}.fd-input:after,.fd-input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-input::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-input::-webkit-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-input::-moz-placeholder{text-indent:.125rem}.fd-input[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-input:-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-input::-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{background:var(--sapField_Hover_BackgroundStyle,var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{background:var(--sapField_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-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){-webkit-box-sizing:border-box;box-sizing:border-box;height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));margin-block:var(--fdInput_Field_Compact_Margin_Block,.1875rem);margin-inline:0;min-height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));min-width:var(--fdInput_Field_Compact_Min_Width,2rem);padding-block:0;padding-inline:var(--fdInput_Field_Compact_Padding,.5rem)}.fd-input--no-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin-block:0;margin-inline:0}.fd-input.right-align{text-align:right}.fd-input.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-input.is-success.is-hover,.fd-input.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-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.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-input.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-input.is-error.is-hover,.fd-input.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-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.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-input.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-input.is-warning.is-hover,.fd-input.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-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.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-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.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-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.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-input.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-input.is-information.is-hover,.fd-input.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-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.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-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-webkit-input-placeholder,.fd-input.is-error::-webkit-input-placeholder,.fd-input.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-moz-placeholder,.fd-input.is-error::-moz-placeholder,.fd-input.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert:-ms-input-placeholder,.fd-input.is-error:-ms-input-placeholder,.fd-input.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-ms-input-placeholder,.fd-input.is-error::-ms-input-placeholder,.fd-input.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::-webkit-input-placeholder,.fd-input:disabled::-webkit-input-placeholder,.fd-input[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-moz-placeholder,.fd-input:disabled::-moz-placeholder,.fd-input[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled:-ms-input-placeholder,.fd-input:disabled:-ms-input-placeholder,.fd-input[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-ms-input-placeholder,.fd-input:disabled::-ms-input-placeholder,.fd-input[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[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-input.is-readonly::-webkit-input-placeholder,.fd-input[aria-readonly=true]::-webkit-input-placeholder,.fd-input[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-moz-placeholder,.fd-input[aria-readonly=true]::-moz-placeholder,.fd-input[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly:-ms-input-placeholder,.fd-input[aria-readonly=true]:-ms-input-placeholder,.fd-input[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-ms-input-placeholder,.fd-input[aria-readonly=true]::-ms-input-placeholder,.fd-input[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[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-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}.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-popover--slider{display:block!important}.fd-popover__body.fd-slider-tooltip-popover{height:1rem;border:none;padding-block:0;overflow:hidden;padding-inline:.5rem;border-radius:.0625rem;top:-.4375rem!important;background:var(--sapBackgroundColor);box-shadow:var(--sapContent_Shadow1)}.fd-popover__body.fd-slider-tooltip-popover .fd-slider-tooltip{line-height:1rem;text-align:center;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSmallSize)}.fd-popover__body.fd-slider-tooltip-popover:has(input){width:auto;height:auto;box-shadow:none;padding-inline:0}.fd-slider{display:block}.fd-slider.fd-slider--with-labels{padding-bottom:2rem}.fd-slider__tick-wrapper .fd-slider__label,.fd-slider__tick-wrapper .fd-slider__tick{position:absolute}.fd-slider__ticks{height:var(--fdSlider_Tick_Height)}.fd-slider__track .fd-slider__handle:focus{z-index:2;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fd-slider__track .fd-popover-custom{display:none}.fd-slider__labels .fd-slider__label{white-space:nowrap}[dir=rtl] .fd-slider__handle{transform:translate(50%,-50%)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/input.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: \"directive\", type: SliderPositionDirective, selector: \"[fd-slider-position]\", inputs: [\"position\", \"vertical\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"directive\", type: PopoverTriggerDirective, selector: \"[fdPopoverTrigger], [fd-popover-trigger]\", inputs: [\"fdPopoverTrigger\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i5.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i5.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i5.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: OnlyDigitsDirective, selector: \"[fdkOnlyDigits]\", inputs: [\"decimal\", \"decimalSeparator\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\n__decorate([\n applyCssClass,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Array)\n], SliderComponent.prototype, \"buildComponentCssClass\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fd-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n SLIDER_VALUE_ACCESSOR,\n registerFormItemControl(SliderComponent),\n contentDensityObserverProviders({\n defaultContentDensity: ContentDensityMode.COMPACT,\n modifiers: {\n [ContentDensityMode.COZY]: 'fd-slider--lg'\n }\n })\n ], host: {\n '(mouseenter)': 'this._componentHovered$.next(true)',\n '(mouseleave)': 'this._componentHovered$.next(false)',\n '(focusout)': 'onTouched()'\n }, imports: [\n NgTemplateOutlet,\n SliderPositionDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n FormsModule,\n OnlyDigitsDirective,\n FdTranslatePipe\n ], template: \"<div class=\\\"fd-slider__inner\\\">\\n <ng-template [ngTemplateOutlet]=\\\"_isRange ? rangeMode : singleMode\\\"></ng-template>\\n <div class=\\\"fd-slider__track\\\" (click)=\\\"onTrackClick($event)\\\" #track>\\n <ng-template [ngTemplateOutlet]=\\\"_isRange ? rangeModeTrack : singleModeTrack\\\"></ng-template>\\n </div>\\n <div class=\\\"fd-slider__tick-wrapper\\\">\\n <div class=\\\"fd-slider__ticks\\\" (click)=\\\"onTrackClick($event)\\\">\\n @if (showTicks) {\\n @for (tick of _tickMarks; track tick; let i = $index) {\\n <div\\n class=\\\"fd-slider__tick\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"tick.position || 0\\\"\\n [class.fd-slider__tick--in-range]=\\\"\\n !hideProgressBar &&\\n (_isRange\\n ? tick.value >= _position[0] && tick.value <= _position[1]\\n : tick.value <= _position)\\n \\\"\\n ></div>\\n }\\n }\\n </div>\\n @if (showTicks && showTicksLabels) {\\n <div class=\\\"fd-slider__labels\\\">\\n @for (tick of _tickMarks; track tick; let i = $index; let last = $last; let first = $first) {\\n @if (first || last || i % tickmarksBetweenLabels === 0) {\\n <div\\n class=\\\"fd-slider__label\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"tick.position || 0\\\"\\n >\\n {{ tick.label }}\\n </div>\\n }\\n }\\n </div>\\n }\\n </div>\\n</div>\\n<ng-template #singleModeTrack>\\n @if (!hideProgressBar) {\\n <div\\n class=\\\"fd-slider__track-range\\\"\\n [style.height.%]=\\\"vertical ? _progress : null\\\"\\n [style.width.%]=\\\"vertical ? null : _progress\\\"\\n ></div>\\n }\\n</ng-template>\\n<ng-template #rangeModeTrack>\\n @if (!hideProgressBar) {\\n <div\\n class=\\\"fd-slider__track-range\\\"\\n [style.height.%]=\\\"vertical ? _rangeProgress : null\\\"\\n [style.width.%]=\\\"vertical ? null : _rangeProgress\\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle1Position < _handle2Position ? _handle1Position : _handle2Position\\\"\\n >\\n <div\\n class=\\\"fd-slider__track-focus-range\\\"\\n (mousedown)=\\\"onHandleClick($event, true)\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.Both)\\\"\\n tabindex=\\\"0\\\"\\n #rangeGroupHandle\\n ></div>\\n </div>\\n }\\n</ng-template>\\n<ng-template #singleMode>\\n <div\\n #handle\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.singleMinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? singleSliderPopover : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.singleValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.singleValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.singleValueNowDetails'\\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.singleValueNowDetails'\\n | fdTranslate: { value: getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER) })\\n : getValuenow(_position, _sliderValueTargets.SINGLE_SLIDER)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_progress\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (focus)=\\\"_handleFocused$.next(true)\\\"\\n (blur)=\\\"_handleFocused$.next(false)\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n ></div>\\n <fd-popover\\n #singleSliderPopover\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"handle\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n class=\\\"fd-popover--slider\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.SINGLE_SLIDER, position: _position }\\\"\\n ></ng-template>\\n </fd-popover>\\n</ng-template>\\n<ng-template #rangeMode>\\n <div\\n #rangeHandle1\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.multipleHandle1MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? rangeSliderPopover1 : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.multipleHandle1ValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.multipleHandle1ValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle1ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle1ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1) })\\n : getValuenow(_handle1Value, _sliderValueTargets.RANGE_SLIDER1)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle1Position\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.First)\\\"\\n (focus)=\\\"_rangeHandle1Focused$.next(true)\\\"\\n (blur)=\\\"_rangeHandle1Focused$.next(false)\\\"\\n ></div>\\n <div\\n #rangeHandle2\\n class=\\\"fd-slider__handle\\\"\\n [class.fd-slider__handle--lg]=\\\"_contentDensityObserver.isCozySignal()\\\"\\n [attr.tabindex]=\\\"disabled ? -1 : 0\\\"\\n role=\\\"slider\\\"\\n [attr.aria-label]=\\\"\\n ariaLabel || ('coreSlider.multipleHandle2MinMaxDetails' | fdTranslate: { min: minValue, max: maxValue })\\n \\\"\\n [attr.aria-labelledby]=\\\"ariaLabelledBy\\\"\\n [fdPopoverTrigger]=\\\"tooltipMode ? rangeSliderPopover2 : null\\\"\\n [attr.aria-valuemin]=\\\"'coreSlider.multipleHandle2ValueminDetails' | fdTranslate: { value: minValue }\\\"\\n [attr.aria-valuemax]=\\\"'coreSlider.multipleHandle2ValuemaxDetails' | fdTranslate: { value: maxValue }\\\"\\n [attr.aria-valuenow]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle2ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\\n \\\"\\n [attr.aria-valuetext]=\\\"\\n _useSliderValuePrefix\\n ? ('coreSlider.multipleHandle2ValueNowDetails'\\n | fdTranslate: { value: getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2) })\\n : getValuenow(_handle2Value, _sliderValueTargets.RANGE_SLIDER2)\\n \\\"\\n fd-slider-position\\n [vertical]=\\\"vertical\\\"\\n [position]=\\\"_handle2Position\\\"\\n (mousedown)=\\\"onHandleClick($event); $event.stopPropagation()\\\"\\n (keydown)=\\\"onKeyDown($event, _handles.Second)\\\"\\n (focus)=\\\"_rangeHandle2Focused$.next(true)\\\"\\n (blur)=\\\"_rangeHandle2Focused$.next(false)\\\"\\n ></div>\\n <fd-popover\\n #rangeSliderPopover1\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"rangeHandle1\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n class=\\\"fd-popover--slider\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.RANGE_SLIDER1, position: _handle1Value }\\\"\\n ></ng-template>\\n </fd-popover>\\n <fd-popover\\n #rangeSliderPopover2\\n [triggers]=\\\"[]\\\"\\n [closeOnOutsideClick]=\\\"false\\\"\\n [appendTo]=\\\"rangeHandle2\\\"\\n [disabled]=\\\"!tooltipMode\\\"\\n additionalBodyClass=\\\"fd-slider-tooltip-popover\\\"\\n class=\\\"fd-popover--slider\\\"\\n placement=\\\"top\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"popoverInner\\\"\\n [ngTemplateOutletContext]=\\\"{ target: _sliderValueTargets.RANGE_SLIDER2, position: _handle2Value }\\\"\\n ></ng-template>\\n </fd-popover>\\n</ng-template>\\n<ng-template #popoverInner let-target=\\\"target\\\" let-position=\\\"position\\\">\\n <div\\n #sliderTooltipWrapper\\n class=\\\"fd-slider-tooltip-wrapper\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n (keydown)=\\\"$event.stopPropagation()\\\"\\n (mouseenter)=\\\"_popoverInputFieldHovered$.next(true)\\\"\\n (mouseleave)=\\\"_popoverInputFieldHovered$.next(false)\\\"\\n >\\n @if ((customValues && customValues.length > 0) || tooltipMode === 'readonly') {\\n <div class=\\\"fd-slider-tooltip\\\">\\n {{ customValues && customValues.length > 0 ? customValues[position].label : _popoverValueRef[target] }}\\n </div>\\n }\\n @if (customValues.length === 0 && tooltipMode === 'editable') {\\n <input\\n #popoverInputField\\n tabindex=\\\"-1\\\"\\n type=\\\"text\\\"\\n [disabled]=\\\"disabled\\\"\\n fdkOnlyDigits\\n [decimal]=\\\"true\\\"\\n [style.width.ch]=\\\"('' + _popoverValueRef[target]).length + 2\\\"\\n class=\\\"fd-input fd-slider-tooltip {{ _popoverInputFieldClass }}\\\"\\n [(ngModel)]=\\\"_popoverValueRef[target]\\\"\\n (blur)=\\\"_updateValueFromInput(popoverInputField.value, target)\\\"\\n (keydown.enter)=\\\"_updateValueFromInput(popoverInputField.value, target)\\\"\\n (focus)=\\\"_popoverInputFieldFocused$.next(true)\\\"\\n (blur)=\\\"_popoverInputFieldFocused$.next(false)\\\"\\n />\\n }\\n </div>\\n</ng-template>\\n\", styles: [\".fd-slider{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;max-width:100%;min-width:4rem;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:calc(var(--fdSlider_Handle_Width)*.5 + .125rem);position:relative}.fd-slider:after,.fd-slider:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider.is-disabled,.fd-slider:disabled,.fd-slider[aria-disabled=true]{cursor:not-allowed}.fd-slider--lg{--fdSlider_Handle_Width:var(--fdSlider_Mobile_Handle_Width);--fdSlider_Handle_Height:var(--fdSlider_Mobile_Handle_Height);--fdSlider_Handle_Active_Width:var(--fdSlider_Mobile_Handle_Active_Size);--fdSlider_Handle_Active_Height:var(--fdSlider_Mobile_Handle_Active_Size);padding-inline:calc(var(--fdSlider_Mobile_Handle_Width)*.5 + .125rem)}.fd-slider__inner{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;padding-block:0;padding-inline:0;position:relative}.fd-slider__inner:after,.fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Active_Background);border:0;border:var(--fdSlider_Endpoint_Active_Border);border-radius:50%;-webkit-box-sizing:inherit;box-sizing:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);content:\\\"\\\";font-family:var(--sapFontFamily);font-size:inherit;font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdSlider_Endpoint_Size);left:-.7rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--fdSlider_Endpoint_Size)}.fd-slider__inner:after:after,.fd-slider__inner:after:before,.fd-slider__inner:before:after,.fd-slider__inner:before:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__inner:after{left:auto;right:-.7rem}.fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner[dir=rtl]:before,.fd-slider__inner:after,[dir=rtl] .fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Background);border:var(--fdSlider_Endpoint_Border)}.fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner[dir=rtl]:after,[dir=rtl] .fd-slider:not(.fd-slider--vertical,.fd-slider--range) .fd-slider__inner:after{background-color:var(--fdSlider_Endpoint_Active_Background);border:var(--fdSlider_Endpoint_Active_Border)}.fd-slider__track{background-color:var(--fdSlider_Track_Background);border:0;border-radius:var(--fdSlider_Track_BorderRadius);-webkit-box-shadow:inset 0 0 0 var(--fdSlider_Track_Border_Width) var(--fdSlider_Track_Border_Color);box-shadow:inset 0 0 0 var(--fdSlider_Track_Border_Width) var(--fdSlider_Track_Border_Color);-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;height:var(--fdSlider_Track_Height);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;width:100%;z-index:1}.fd-slider__track:after,.fd-slider__track:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__track .fd-slider__handle.is-focus,.fd-slider__track .fd-slider__handle:focus{z-index:5;z-index:2;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fd-slider__track-range{background-color:var(--fdSlider_Track_Active_Background);border:0;border:.0625rem solid var(--fdSlider_Track_Active_Border);border-radius:.25rem;-webkit-box-shadow:var(--fdSlider_Track_Active_Box_Shadow);box-shadow:var(--fdSlider_Track_Active_Box_Shadow);-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;height:100%;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-slider__track-range:after,.fd-slider__track-range:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick-wrapper{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;padding-block:0;padding-inline:0;position:absolute;top:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);width:100%;z-index:2}.fd-slider__tick-wrapper:after,.fd-slider__tick-wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__ticks{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;height:var(--fdSlider_Tick_Height);justify-content:space-between}.fd-slider__ticks:after,.fd-slider__ticks:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__labels{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;height:1rem;justify-content:space-between;position:relative;top:.5rem}.fd-slider__labels:after,.fd-slider__labels:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick{border:0;border-left:.0625rem solid var(--fdSlider_Tick_Background);-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;height:var(--fdSlider_Tick_Height);line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-slider__tick:after,.fd-slider__tick:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__tick--in-range{border-color:var(--fdSlider_Active_Tick_Background)}.fd-slider__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize);position:relative;width:0}.fd-slider__label:after,.fd-slider__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__handle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display: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-block: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(--fdSlider_Handle_Background);border:var(--fdSlider_Handle_Border);border-radius:var(--fdSlider_Handle_Border_Radius);cursor:pointer;height:var(--fdSlider_Handle_Height);position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:var(--fdSlider_Handle_Width);z-index:3}.fd-slider__handle:after,.fd-slider__handle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__handle:before{content:\\\"\\\";height:var(--fdSlider_Handle_Active_Height);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:var(--fdSlider_Handle_Active_Width)}.fd-slider__handle:after{color:var(--sapContent_Selected_ForegroundColor);content:\\\"\\\\e29c\\\";display:var(--fdSlider_Handle_Icon_Display);font-family:SAP-icons;font-size:.875rem;line-height:1}.fd-slider__handle.is-focus,.fd-slider__handle:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-focus:after,.fd-slider__handle:focus:after{display:none}.fd-slider__handle.is-hover,.fd-slider__handle:hover{background-color:var(--fdSlider_Hover_Handle_Background);border:var(--fdSlider_Hover_Handle_Border);border-color:var(--fdSlider_Handle_Border_Hover_Color)}.fd-slider__handle.is-hover.is-focus,.fd-slider__handle.is-hover:focus,.fd-slider__handle:hover.is-focus,.fd-slider__handle:hover:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-hover.is-focus:after,.fd-slider__handle.is-hover:focus:after,.fd-slider__handle:hover.is-focus:after,.fd-slider__handle:hover:focus:after{display:none}.fd-slider__handle.is-active,.fd-slider__handle:active{background-color:var(--fdSlider_Active_Handle_Background);border:var(--fdSlider_Active_Handle_Border)}.fd-slider__handle.is-active.is-focus,.fd-slider__handle.is-active:focus,.fd-slider__handle:active.is-focus,.fd-slider__handle:active:focus{background-color:var(--fdSlider_Focus_Handle_Background);border:var(--fdSlider_Focus_Handle_Border);outline:none;z-index:5}.fd-slider__handle.is-active.is-focus:after,.fd-slider__handle.is-active:focus:after,.fd-slider__handle:active.is-focus:after,.fd-slider__handle:active:focus:after{display:none}.fd-slider__track-focus-range{border:0;border-radius:var(--fdSlider_Range_Track_Border_Radius);-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;height:calc(var(--fdSlider_Handle_Height) + .5rem);left:0;line-height:normal;margin-block:0;margin-inline:0;margin-inline:calc(var(--fdSlider_Handle_Height)*-1/1.1);padding-block:0;padding-inline:0;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-slider__track-focus-range:after,.fd-slider__track-focus-range:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-slider__track-focus-range.is-focus,.fd-slider__track-focus-range:focus{outline:var(--fdSlider_Focus_Range_Outline);z-index:5}.fd-slider--range .fd-slider__inner:after,.fd-slider--range .fd-slider__inner:before{background-color:var(--fdSlider_Endpoint_Background);border:var(--fdSlider_Endpoint_Border)}.fd-slider--range .fd-slider__inner .fd-slider__handle{background-color:var(--fdSlider_Range_Handle_Background);border:var(--fdSlider_Range_Handle_Border)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-hover,.fd-slider--range .fd-slider__inner .fd-slider__handle:hover{background-color:var(--fdSlider_Range_Hover_Handle_Background);border-color:var(--fdSlider_Range_Hover_Handle_Border_Color)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-active,.fd-slider--range .fd-slider__inner .fd-slider__handle:active{background-color:var(--fdSlider_Range_Active_Handle_Background);border-color:var(--fdSlider_Range_Active_Handle_Border_Color)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-active:after,.fd-slider--range .fd-slider__inner .fd-slider__handle:active:after{display:var(--fdSlider_Focus_Handle_Display)}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-focus,.fd-slider--range .fd-slider__inner .fd-slider__handle:focus{background-color:var(--fdSlider_Range_Focus_Handle_Background);border:var(--fdSlider_Range_Focus_Handle_Border);z-index:5}.fd-slider--range .fd-slider__inner .fd-slider__handle.is-focus:after,.fd-slider--range .fd-slider__inner .fd-slider__handle:focus:after{display:var(--fdSlider_Focus_Handle_Display)}.fd-slider--vertical{height:100%}.fd-slider--vertical .fd-slider__inner{height:100%;width:var(--fdSlider_Track_Height)}.fd-slider--vertical .fd-slider__inner:after,.fd-slider--vertical .fd-slider__inner:before{left:50%;right:auto;top:auto;-webkit-transform:translateX(-50%);transform:translate(-50%)}.fd-slider--vertical .fd-slider__inner:before{bottom:-.7rem}.fd-slider--vertical .fd-slider__inner:after{top:-.7rem}.fd-slider--vertical .fd-slider__track{height:100%;width:var(--fdSlider_Track_Height)}.fd-slider--vertical .fd-slider__track-range{bottom:0;position:absolute;width:100%}.fd-slider--vertical .fd-slider__handle{bottom:0;height:var(--fdSlider_Handle_Width);left:50%;top:auto;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%);width:var(--fdSlider_Handle_Height)}.fd-slider--vertical .fd-slider__handle:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fd-slider--vertical .fd-slider__tick-wrapper{height:100%;left:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);right:calc((var(--fdSlider_Track_Height) - var(--fdSlider_Tick_Height))/2);top:0}.fd-slider--vertical .fd-slider__ticks{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:100%}.fd-slider--vertical .fd-slider__tick{border-left:none;border-top-style:solid;border-top-width:.0625rem;height:0;width:var(--fdSlider_Tick_Height)}.fd-slider--vertical .fd-slider__labels{height:100%;position:absolute;top:-.55rem;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;left:calc(var(--fdSlider_Handle_Width)*.5 + .125rem)}.fd-slider--vertical .fd-slider__labels[dir=rtl],[dir=rtl] .fd-slider--vertical .fd-slider__labels{left:auto;right:calc(var(--fdSlider_Handle_Width)*.5 + .125rem)}.fd-slider--vertical .fd-slider__label{height:.0625rem;width:auto}.fd-slider--vertical.fd-slider--range .fd-slider__track-range{left:0}.fd-slider--vertical.fd-slider--range .fd-slider__track-focus-range{height:auto;inset:0 auto 0 50%;margin-block:calc(var(--fdSlider_Handle_Height)*-1/1.1);margin-inline:0;-webkit-transform:translateX(-50%);transform:translate(-50%);width:calc(var(--fdSlider_Handle_Height) + .5rem)}.fd-slider-tooltip-popover.fd-popover__body{background:var(--sapBackgroundColor);border:none;border-radius:.0625rem;-webkit-box-shadow:var(--sapContent_Shadow1);box-shadow:var(--sapContent_Shadow1);height:1rem;overflow:hidden;padding-block:0;padding-inline:.5rem;top:-.4375rem!important}.fd-slider-tooltip-popover.fd-popover__body .fd-slider-tooltip{color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSmallSize);line-height:1rem;text-align:center}.fd-slider-tooltip-popover.fd-popover__body:has(input){-webkit-box-shadow:none;box-shadow:none;height:auto;padding-inline:0;width:auto}.fd-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle,var(--sapField_BackgroundStyle));background-color:var(--sapField_Background,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-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;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:0;margin-block:var(--fdInput_Field_Margin_Block,.25rem);margin-inline:0;min-height:var(--fdInput_Height,var(--sapElement_Height));min-width:2.75rem;outline:none;overflow:hidden;padding-block:0;padding-inline:0;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}.fd-input:after,.fd-input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-input::-webkit-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-moz-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input:-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::-ms-input-placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::-webkit-input-placeholder,[dir=rtl] .fd-input::-webkit-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-moz-placeholder,[dir=rtl] .fd-input::-moz-placeholder{text-indent:.125rem}.fd-input[dir=rtl]:-ms-input-placeholder,[dir=rtl] .fd-input:-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::-ms-input-placeholder,[dir=rtl] .fd-input::-ms-input-placeholder{text-indent:.125rem}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::-moz-selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{background:var(--sapField_Hover_BackgroundStyle,var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background,var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{background:var(--sapField_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-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){-webkit-box-sizing:border-box;box-sizing:border-box;height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));margin-block:var(--fdInput_Field_Compact_Margin_Block,.1875rem);margin-inline:0;min-height:var(--fdInput_Compact_Height,var(--sapElement_Compact_Height));min-width:var(--fdInput_Field_Compact_Min_Width,2rem);padding-block:0;padding-inline:var(--fdInput_Field_Compact_Padding,.5rem)}.fd-input--no-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin-block:0;margin-inline:0}.fd-input.right-align{text-align:right}.fd-input.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-input.is-success.is-hover,.fd-input.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-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.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-input.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-input.is-error.is-hover,.fd-input.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-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.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-input.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-input.is-warning.is-hover,.fd-input.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-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.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-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.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-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.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-input.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-input.is-information.is-hover,.fd-input.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-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{-webkit-box-shadow:none;box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.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-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-webkit-input-placeholder,.fd-input.is-error::-webkit-input-placeholder,.fd-input.is-warning::-webkit-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-moz-placeholder,.fd-input.is-error::-moz-placeholder,.fd-input.is-warning::-moz-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert:-ms-input-placeholder,.fd-input.is-error:-ms-input-placeholder,.fd-input.is-warning:-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::-ms-input-placeholder,.fd-input.is-error::-ms-input-placeholder,.fd-input.is-warning::-ms-input-placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::-webkit-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-moz-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error:-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::-ms-input-placeholder{color:var(--sapField_TextColor)}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::-webkit-input-placeholder,.fd-input:disabled::-webkit-input-placeholder,.fd-input[aria-disabled=true]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-moz-placeholder,.fd-input:disabled::-moz-placeholder,.fd-input[aria-disabled=true]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled:-ms-input-placeholder,.fd-input:disabled:-ms-input-placeholder,.fd-input[aria-disabled=true]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::-ms-input-placeholder,.fd-input:disabled::-ms-input-placeholder,.fd-input[aria-disabled=true]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[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-input.is-readonly::-webkit-input-placeholder,.fd-input[aria-readonly=true]::-webkit-input-placeholder,.fd-input[readonly]::-webkit-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-moz-placeholder,.fd-input[aria-readonly=true]::-moz-placeholder,.fd-input[readonly]::-moz-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly:-ms-input-placeholder,.fd-input[aria-readonly=true]:-ms-input-placeholder,.fd-input[readonly]:-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::-ms-input-placeholder,.fd-input[aria-readonly=true]::-ms-input-placeholder,.fd-input[readonly]::-ms-input-placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[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-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}.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-popover--slider{display:block!important}.fd-popover__body.fd-slider-tooltip-popover{height:1rem;border:none;padding-block:0;overflow:hidden;padding-inline:.5rem;border-radius:.0625rem;top:-.4375rem!important;background:var(--sapBackgroundColor);box-shadow:var(--sapContent_Shadow1)}.fd-popover__body.fd-slider-tooltip-popover .fd-slider-tooltip{line-height:1rem;text-align:center;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSmallSize)}.fd-popover__body.fd-slider-tooltip-popover:has(input){width:auto;height:auto;box-shadow:none;padding-inline:0}.fd-slider{display:block}.fd-slider.fd-slider--with-labels{padding-bottom:2rem}.fd-slider__tick-wrapper .fd-slider__label,.fd-slider__tick-wrapper .fd-slider__tick{position:absolute}.fd-slider__ticks{height:var(--fdSlider_Tick_Height)}.fd-slider__track .fd-slider__handle:focus{z-index:2;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fd-slider__track .fd-popover-custom{display:none}.fd-slider__labels .fd-slider__label{white-space:nowrap}[dir=rtl] .fd-slider__handle{transform:translate(50%,-50%)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/input.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: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.Platform }, { type: i2.LiveAnnouncer }, { type: i3.RtlService, decorators: [{\n type: Optional\n }] }, { type: i4.ContentDensityObserver }], propDecorators: { id: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.id']\n }], class: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], step: [{\n type: Input\n }], jump: [{\n type: Input\n }], tickmarksBetweenLabels: [{\n type: Input\n }], mode: [{\n type: Input\n }], showTicks: [{\n type: Input\n }], showTicksLabels: [{\n type: Input\n }], customValues: [{\n type: Input\n }], tooltipMode: [{\n type: Input\n }], hideProgressBar: [{\n type: Input\n }], disabled: [{\n type: Input\n }], vertical: [{\n type: Input\n }], value: [{\n type: Input\n }], trackEl: [{\n type: ViewChild,\n args: ['track', { read: ElementRef, static: true }]\n }], handle: [{\n type: ViewChild,\n args: ['handle', {\n read: ElementRef\n }]\n }], rangeHandle1: [{\n type: ViewChild,\n args: ['rangeHandle1', {\n read: ElementRef\n }]\n }], rangeHandle2: [{\n type: ViewChild,\n args: ['rangeHandle2', {\n read: ElementRef\n }]\n }], _rangeGroupHandle: [{\n type: ViewChild,\n args: ['rangeGroupHandle', { read: ElementRef, static: false }]\n }], _popovers: [{\n type: ViewChildren,\n args: [PopoverComponent]\n }], _sliderTooltipWrappers: [{\n type: ViewChildren,\n args: ['sliderTooltipWrapper']\n }], _isRange: [{\n type: HostBinding,\n args: ['class.fd-slider--range']\n }], buildComponentCssClass: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEgsT0FBTyxFQUFFLGdC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QkFLRCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBS2xFLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBSzlCLHNCQUFzQjtzQkFEckIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBV3BDLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBc0dyQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgY29tcHV0ZWQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG1hcFRvLCBza2lwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIENzc0NsYXNzQnVpbGRlcixcbiAgICBLZXlVdGlsLFxuICAgIE51bGxhYmxlLFxuICAgIE9ubHlEaWdpdHNEaXJlY3RpdmUsXG4gICAgUnRsU2VydmljZSxcbiAgICBhcHBseUNzc0NsYXNzXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQ29udGVudERlbnNpdHlNb2RlLFxuICAgIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVyc1xufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBNSU5fRElTVEFOQ0VfQkVUV0VFTl9USUNLUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNsaWRlclBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zbGlkZXItcG9zaXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgU2xpZGVyQ29udHJvbFZhbHVlLFxuICAgIFNsaWRlckN1c3RvbVZhbHVlLFxuICAgIFNsaWRlclJhbmdlSGFuZGxlcyxcbiAgICBTbGlkZXJUaWNrTWFyayxcbiAgICBTbGlkZXJWYWx1ZVRhcmdldHNcbn0gZnJvbSAnLi9zbGlkZXIubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgU0xJREVSX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWRlckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5sZXQgc2xpZGVySWQgPSAwO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFNMSURFUl9WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woU2xpZGVyQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyh7XG4gICAgICAgICAgICBkZWZhdWx0Q29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNULFxuICAgICAgICAgICAgbW9kaWZpZXJzOiB7XG4gICAgICAgICAgICAgICAgW0NvbnRlbnREZW5zaXR5TW9kZS5DT1pZXTogJ2ZkLXNsaWRlci0tbGcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcobW91c2VlbnRlciknOiAndGhpcy5fY29tcG9uZW50SG92ZXJlZCQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAndGhpcy5fY29tcG9uZW50SG92ZXJlZCQubmV4dChmYWxzZSknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvblRvdWNoZWQoKSdcbiAgICB9LFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgU2xpZGVyUG9zaXRpb25EaXJlY3RpdmUsXG4gICAgICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgT25seURpZ2l0c0RpcmVjdGl2ZSxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQ3NzQ2xhc3NCdWlsZGVyLCBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogU2xpZGVyIGlkLCBpdCBoYXMgc29tZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzZXQsICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBpZCA9ICdmZC1zbGlkZXItaWQtJyArIHNsaWRlcklkKys7XG5cbiAgICAvKiogVXNlcidzIGN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHNsaWRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSBzbGlkZXIuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogTWluaW11bSB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBtaW4odmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCB0aGlzLl9taW4pO1xuICAgICAgICBpZiAoKCh0aGlzLm1heCAtIG5ld1ZhbHVlKSAvIHRoaXMuc3RlcCkgJSAxICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWluID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG5cbiAgICAvKiogTWF4aW11bSB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBtYXgodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCB0aGlzLl9tYXgpO1xuICAgICAgICBpZiAoKChuZXdWYWx1ZSAtIHRoaXMubWluKSAvIHRoaXMuc3RlcCkgJSAxICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWF4ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICB9XG5cbiAgICAvKiogU3RlcCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGVwKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgdGhpcy5fc3RlcCk7XG4gICAgICAgIGlmICgoKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gbmV3VmFsdWUpICUgMSAhPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0ZXAgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gICAgfVxuXG4gICAgLyoqIEp1bXAgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQganVtcCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2p1bXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgdGhpcy5fanVtcCk7XG4gICAgfVxuICAgIGdldCBqdW1wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9qdW1wO1xuICAgIH1cblxuICAgIC8qKiBQdXQgYSBsYWJlbCBvbiBldmVyeSBOLXRoIHRpY2ttYXJrLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRpY2ttYXJrc0JldHdlZW5MYWJlbHModmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl90aWNrbWFya3NCZXR3ZWVuTGFiZWxzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIHRoaXMuX3RpY2ttYXJrc0JldHdlZW5MYWJlbHMpO1xuICAgIH1cbiAgICBnZXQgdGlja21hcmtzQmV0d2VlbkxhYmVscygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGlja21hcmtzQmV0d2VlbkxhYmVscztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTbGlkZXIgbW9kZS5cbiAgICAgKiBPcHRpb25zIGluY2x1ZGU6ICdzaW5nbGUnIHwgJ3JhbmdlJ1xuICAgICAqIFRoZSBkZWZhdWx0IGlzIHNldCB0byAnc2luZ2xlJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogJ3NpbmdsZScgfCAncmFuZ2UnID0gJ3NpbmdsZSc7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aWNrIG1hcmtzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpY2tzID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aWNrIG1hcmsgbGFiZWxzLiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnc2hvd1RpY2tzJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpY2tzTGFiZWxzID0gZmFsc2U7XG5cbiAgICAvKiogQXJyYXkgb2YgY3VzdG9tIHZhbHVlcyB0byB1c2UgZm9yIFNsaWRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbVZhbHVlczogU2xpZGVyQ3VzdG9tVmFsdWVbXSA9IFtdO1xuXG4gICAgLyoqIFRvb2x0aXAgY2FuIGJlIHR3byB0eXBlcywgJ3JlYWRvbmx5JyB0byBkaXNwbGF5IHZhbHVlIGFuZCAnZWRpdGFibGUnIHRvIG1ha2UgdGhlIGFiaWxpdHkgdG8gc2V0IGFuZCBkaXNwbGF5IHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdG9vbHRpcE1vZGU6ICdyZWFkb25seScgfCAnZWRpdGFibGUnO1xuXG4gICAgLyoqIEhpZGVzIGRpc3BsYXkgb2YgY29sb3JlZCBwcm9ncmVzcyBiYXIuICovXG4gICAgQElucHV0KClcbiAgICBoaWRlUHJvZ3Jlc3NCYXIgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgc2xpZGVyIHNob3VsZCBoYXZlIHZlcnRpY2FsIGFsaWdubWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZlcnRpY2FsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3NpdGlvbjogbnVtYmVyIHwgbnVtYmVyW10gPSAwO1xuXG4gICAgLyoqIENvbnRyb2wgdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogU2xpZGVyQ29udHJvbFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IFNsaWRlckNvbnRyb2xWYWx1ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfcG9wb3ZlclZhbHVlUmVmKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLl9wb3NpdGlvbiBhcyBudW1iZXIsIHRoaXMuX2hhbmRsZTFWYWx1ZSwgdGhpcy5faGFuZGxlMlZhbHVlXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RyYWNrJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICB0cmFja0VsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaGFuZGxlJywge1xuICAgICAgICByZWFkOiBFbGVtZW50UmVmXG4gICAgfSlcbiAgICBoYW5kbGU6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdyYW5nZUhhbmRsZTEnLCB7XG4gICAgICAgIHJlYWQ6IEVsZW1lbnRSZWZcbiAgICB9KVxuICAgIHJhbmdlSGFuZGxlMTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3JhbmdlSGFuZGxlMicsIHtcbiAgICAgICAgcmVhZDogRWxlbWVudFJlZlxuICAgIH0pXG4gICAgcmFuZ2VIYW5kbGUyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgncmFuZ2VHcm91cEhhbmRsZScsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICAgIF9yYW5nZUdyb3VwSGFuZGxlOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihQb3BvdmVyQ29tcG9uZW50KVxuICAgIF9wb3BvdmVyczogUXVlcnlMaXN0PFBvcG92ZXJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKCdzbGlkZXJUb29sdGlwV3JhcHBlcicpXG4gICAgX3NsaWRlclRvb2x0aXBXcmFwcGVyczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhbHVlOiBudW1iZXIgfCBTbGlkZXJUaWNrTWFyayB8IFNsaWRlclRpY2tNYXJrW10gfCBudW1iZXJbXSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcm9ncmVzcyA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtc2xpZGVyLS1yYW5nZScpXG4gICAgX2lzUmFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhbmRsZTFQb3NpdGlvbiA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGUyUG9zaXRpb24gPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGFuZGxlMVZhbHVlID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhbmRsZTJWYWx1ZSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yYW5nZVByb2dyZXNzID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RpY2tNYXJrczogU2xpZGVyVGlja01hcmtbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2xpZGVyVmFsdWVUYXJnZXRzID0gU2xpZGVyVmFsdWVUYXJnZXRzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcG9wb3ZlcklucHV0RmllbGRDbGFzcyA9IGBmZC1zbGlkZXItcG9wb3Zlci1pbnB1dC0ke3NsaWRlcklkfWA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogd2hldGhlciB0byB1c2UgdmFsdWUgd2l0aCBhIHByZWZpeCBmb3IgYW5ub3VuY2luZ1xuICAgICAqL1xuICAgIF91c2VTbGlkZXJWYWx1ZVByZWZpeCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGVzID0gU2xpZGVyUmFuZ2VIYW5kbGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9taW4gPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXggPSAxMDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N0ZXAgPSAxO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9qdW1wID0gMTA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RpY2ttYXJrc0JldHdlZW5MYWJlbHMgPSAxO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZXNCeVN0ZXBzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfY29tcG9uZW50SG92ZXJlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2hhbmRsZUZvY3VzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9yYW5nZUhhbmRsZTFGb2N1c2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfcmFuZ2VIYW5kbGUyRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3BvcG92ZXJJbnB1dEZpZWxkRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3BvcG92ZXJJbnB1dEZpZWxkSG92ZXJlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlcixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHtcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdmZC1zbGlkZXInLFxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA/ICdpcy1kaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuX2lzUmFuZ2UgPyAnZmQtc2xpZGVyLS1yYW5nZScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpY2tzICYmIHRoaXMuc2hvd1RpY2tzTGFiZWxzID8gJ2ZkLXNsaWRlci0td2l0aC1sYWJlbHMnIDogJycsXG4gICAgICAgICAgICB0aGlzLnZlcnRpY2FsID8gJ2ZkLXNsaWRlci0tdmVydGljYWwnIDogJycsXG4gICAgICAgICAgICB0aGlzLmNsYXNzLFxuICAgICAgICAgICAgdGhpcy5fcGxhdGZvcm0uRURHRSB8fCB0aGlzLl9wbGF0Zm9ybS5UUklERU5UID8gJ2ZkLXNsaWRlcl9fYWx0ZXJuYXRpdmUtdGljay13aWR0aCcgOiAnJ1xuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F0dGFjaFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuX29uUmVzaXplKCk7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZXNCeVN0ZXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uc3RydWN0VmFsdWVzQnlTdGVwcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB0aGlzLl9jaGVja0lzSW5SYW5nZU1vZGUoKTtcbiAgICAgICAgdGhpcy5fY29uc3RydWN0VGlja01hcmtzKCk7XG4gICAgICAgIHRoaXMuX2NvbnN0cnVjdFZhbHVlc0J5U3RlcHMoKTtcbiAgICAgICAgdGhpcy5fcmVjYWxjSGFuZGxlUG9zaXRpb25zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvSW50ZXJhY3Rpb25DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRWYWx1ZW5vdyhwb3NpdGlvbjogbnVtYmVyIHwgbnVtYmVyW10sIHNsaWRlclZhbHVlVGFyZ2V0OiBTbGlkZXJWYWx1ZVRhcmdldHMpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21WYWx1ZXMubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyB0aGlzLmN1c3RvbVZhbHVlc1twb3NpdGlvbiBhcyBudW1iZXJdLmxhYmVsXG4gICAgICAgICAgICA6IHRoaXMuX3BvcG92ZXJWYWx1ZVJlZltzbGlkZXJWYWx1ZVRhcmdldF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgbWluVmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsdWVzLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbVZhbHVlc1t0aGlzLm1pbiBhcyBudW1iZXJdLmxhYmVsIDogdGhpcy5taW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgbWF4VmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsdWVzLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbVZhbHVlc1t0aGlzLm1heCBhcyBudW1iZXJdLmxhYmVsIDogdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBTbGlkZXJDb250cm9sVmFsdWUpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogU2xpZGVyQ29udHJvbFZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBTbGlkZXJDb250cm9sVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0VmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVHJhY2tDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9pc1JhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0VmFsdWUodGhpcy5fY2FsY3VsYXRlVmFsdWVGcm9tUG9pbnRlclBvc2l0aW9uKGV2ZW50KSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVBvcG92ZXJzUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5oYW5kbGUubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25IYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgZ3JvdXAgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZpcnN0SGFuZGxlQ29vcmRzOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gICAgICAgIGxldCByYW5nZVNsaWRlclN0YXJ0Q29vcmRzOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cbiAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICByYW5nZVNsaWRlclN0YXJ0Q29vcmRzID0ge1xuICAgICAgICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgeTogZXZlbnQuY2xpZW50WVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RIYW5kbGVSZWN0ID0gdGhpcy5yYW5nZUhhbmRsZTEubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgZmlyc3RIYW5kbGVDb29yZHMgPSB7XG4gICAgICAgICAgICAgICAgeDogZmlyc3RIYW5kbGVSZWN0LnggKyBmaXJzdEhhbmRsZVJlY3Qud2lkdGggLyAyLFxuICAgICAgICAgICAgICAgIHk6IGZpcnN0SGFuZGxlUmVjdC55ICsgZmlyc3RIYW5kbGVSZWN0LmhlaWdodCAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1bnN1YnNjcmliZUZyb21Nb3VzZW1vdmUgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ21vdXNlbW92ZScsIChtb3ZlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBvcG92ZXJzUG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNSYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuX2NhbGN1bGF0ZVZhbHVlRnJvbVBvaW50ZXJQb3NpdGlvbihtb3ZlRXZlbnQpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBjb29yZHMgPSB7XG4gICAgICAgICAgICAgICAgY2xpZW50WDogbW92ZUV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogbW92ZUV2ZW50LmNsaWVudFlcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCBoYW5kbGVJbmRleDogU2xpZGVyUmFuZ2VIYW5kbGVzO1xuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlSW5kZXggPSBTbGlkZXJSYW5nZUhhbmRsZXMuQm90aDtcbiAgICAgICAgICAgICAgICAvLyBNaW1pYyBkcmFnZ2luZyBmaXJzdCBoYW5kbGUgdG8gY2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gb2xkIGFuZCBuZXcgdmFsdWVzLlxuICAgICAgICAgICAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50WDogZmlyc3RIYW5kbGVDb29yZHMhLnggKyAobW92ZUV2ZW50LmNsaWVudFggLSByYW5nZVNsaWRlclN0YXJ0Q29vcmRzIS54KSxcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50WTogZmlyc3RIYW5kbGVDb29yZHMhLnkgKyAobW92ZUV2ZW50LmNsaWVudFkgLSByYW5nZVNsaWRlclN0YXJ0Q29vcmRzIS55KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5yYW5nZUhhbmRsZTEubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZUluZGV4ID0gU2xpZGVyUmFuZ2VIYW5kbGVzLkZpcnN0O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMucmFuZ2VIYW5kbGUyLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVJbmRleCA9IFNsaWRlclJhbmdlSGFuZGxlcy5TZWNvbmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9jYWxjdWxhdGVWYWx1ZUZyb21Qb2ludGVyUG9zaXRpb24oY29vcmRzLCBmYWxzZSkgYXMgbnVtYmVyO1xuICAgICAgICAgICAgdGhpcy5fc2V0UmFuZ2VIYW5kbGVWYWx1ZUFuZFBvc2l0aW9uKGhhbmRsZUluZGV4LCB2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9zZXRWYWx1ZSh0aGlzLl9jb25zdHJ1Y3RSYW5nZU1vZGVsVmFsdWUoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZUZyb21Nb3VzZXVwID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdtb3VzZXVwJywgKCkgPT4ge1xuICAgICAgICAgICAgdW5zdWJzY3JpYmVGcm9tTW91c2Vtb3ZlKCk7XG4gICAgICAgICAgICB1bnN1YnNjcmliZUZyb21Nb3VzZXVwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBoYW5kbGU/OiBTbGlkZXJSYW5nZUhhbmRsZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbGxvd2VkS2V5czogbnVtYmVyW10gPSBbTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XLCBET1dOX0FSUk9XLCBFTlRFUiwgU1BBQ0VdO1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBhbGxvd2VkS2V5cykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCB1cEFjdGlvbktleSA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbVVBfQVJST1csIHRoaXMuX3J0bCQoKSA/IExFRlRfQVJST1cgOiBSSUdIVF9BUlJPV10pO1xuICAgICAgICBjb25zdCBkb3duQWN0aW9uS2V5ID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCB0aGlzLl9ydGwkKCkgPyBSSUdIVF9BUlJPVyA6IExFRlRfQVJST1ddKTtcblxuICAgICAgICBpZiAoIXVwQWN0aW9uS2V5ICYmICFkb3duQWN0aW9uS2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWZmID0gZXZlbnQuc2hpZnRLZXkgPyB0aGlzLmp1bXAgOiB0aGlzLnN0ZXA7XG4gICAgICAgIGxldCBuZXdWYWx1ZTogbnVtYmVyIHwgU2xpZGVyVGlja01hcmsgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLl9pc1JhbmdlKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICh0aGlzLl9wb3NpdGlvbiBhcyBudW1iZXIpICsgZGlmZiAqICh1cEFjdGlvbktleSA/IDEgOiAtMSk7XG5cbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9wcm9jZXNzTmV3VmFsdWUobmV3VmFsdWUgYXMgbnVtYmVyLCAhdGhpcy5faXNSYW5nZSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBvcG92ZXJzUG9zaXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hhbmRsZVJhbmdlS2V5ZG93bihcbiAgICAgICAgICAgIGhhbmRsZSA9PT0gU2xpZGVyUmFuZ2VIYW5kbGVzLkJvdGggPyBbU2xpZGVyUmFuZ2VIYW5kbGVzLkZpcnN0LCBTbGlkZXJSYW5nZUhhbmRsZXMuU2Vjb25kXSA6IGhhbmRsZSEsXG4gICAgICAgICAgICBkaWZmLFxuICAgICAgICAgICAgdXBBY3Rpb25LZXlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl91cGRhdGVQb3BvdmVyc1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdXBkYXRlVmFsdWVGcm9tSW5wdXQodmFsdWU6IHN0cmluZywgdGFyZ2V0OiBTbGlkZXJWYWx1ZVRhcmdldHMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLl9wcm9jZXNzTmV3VmFsdWUoK3ZhbHVlKSBhcyBudW1iZXI7XG4gICAgICAgIGlmICghdGhpcy5faXNSYW5nZSAmJiB0YXJnZXQgPT09IFNsaWRlclZhbHVlVGFyZ2V0cy5TSU5HTEVfU0xJREVSKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQb3BvdmVyc1Bvc2l0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldCA9PT0gU2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjEpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFJhbmdlSGFuZGxlVmFsdWVBbmRQb3NpdGlvbihTbGlkZXJSYW5nZUhhbmRsZXMuRmlyc3QsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VIYW5kbGUxLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0ID09PSBTbGlkZXJWYWx1ZVRhcmdldHMuUkFOR0VfU0xJREVSMikge1xuICAgICAgICAgICAgdGhpcy5fc2V0UmFuZ2VIYW5kbGVWYWx1ZUFuZFBvc2l0aW9uKFNsaWRlclJhbmdlSGFuZGxlcy5TZWNvbmQsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VIYW5kbGUyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRWYWx1ZSh0aGlzLl9jb25zdHJ1Y3RSYW5nZU1vZGVsVmFsdWUoKSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVBvcG92ZXJzUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVJhbmdlS2V5ZG93bihoYW5kbGVzOiBTbGlkZXJSYW5nZUhhbmRsZXMgfCBTbGlkZXJSYW5nZUhhbmRsZXNbXSwgZGlmZjogbnVtYmVyLCB1cDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBoYW5kbGVzID0gQXJyYXkuaXNBcnJheShoYW5kbGVzKSA/IGhhbmRsZXMgOiBbaGFuZGxlc107XG4gICAgICAgIGNvbnN0IHZhbHVlTWFwID0gbmV3IE1hcDxcbiAgICAgICAgICAgIFNsaWRlclJhbmdlSGFuZGxlcyxcbiAgICAgICAgICAgIHsgcHJldjogbnVtYmVyIHwgU2xpZGVyVGlja01hcmsgfCBudWxsOyBjdXJyZW50OiBudW1iZXIgfCBTbGlkZXJUaWNrTWFyayB8IG51bGwgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGhhbmRsZXMuZm9yRWFjaCgoaGFuZGxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBoYW5kbGUgPT09IFNsaWRlclJhbmdlSGFuZGxlcy5GaXJzdCA/IHRoaXMuX2hhbmRsZTFWYWx1ZSA6IHRoaXMuX2hhbmRsZTJWYWx1ZTtcbiAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogbnVtYmVyIHwgU2xpZGVyVGlja01hcmsgfCBudWxsID0gcHJldlZhbHVlICsgZGlmZiAqICh1cCA/IDEgOiAtMSk7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5fcHJvY2Vzc05ld1ZhbHVlKG5ld1ZhbHVlIGFzIG51bWJlciwgIXRoaXMuX2lzUmFuZ2UpO1xuXG4gICAgICAgICAgICB2YWx1ZU1hcC5zZXQoaGFuZGxlLCB7IHByZXY6IHByZXZWYWx1ZSwgY3VycmVudDogbmV3VmFsdWUgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChBcnJheS5mcm9tKHZhbHVlTWFwLnZhbHVlcygpKS5zb21lKChlbnRyeSkgPT4gZW50cnkuY3VycmVudCA9PT0gZW50cnkucHJldikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlTWFwLmZvckVhY2goKGVudHJ5LCBoYW5kbGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldFJhbmdlSGFuZGxlVmFsdWVBbmRQb3NpdGlvbihoYW5kbGUsIGVudHJ5LmN1cnJlbnQgYXMgbnVtYmVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc2V0VmFsdWUodGhpcy5fY29uc3RydWN0UmFuZ2VNb2RlbFZhbHVlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsdWU6IFNsaWRlckNvbnRyb2xWYWx1ZSwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdFJhbmdlTW9kZSgodmFsdWUgPz8gWzAuMF0pIGFzIG51bWJlcltdIHwgU2xpZGVyVGlja01hcmtbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0U2luZ2VNb2RlKCh2YWx1ZSA/PyAwKSBhcyBudW1iZXIgfCBTbGlkZXJUaWNrTWFyayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlUG9wb3ZlcnNQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fcG9wb3ZlcnMuZm9yRWFjaCgocG9wb3ZlcikgPT4gcG9wb3Zlci5yZWZyZXNoUG9zaXRpb24oKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWYWx1ZUZyb21Qb2ludGVyUG9zaXRpb24oXG4gICAgICAgIGNvb3JkczogeyBjbGllbnRZOiBudW1iZXI7IGNsaWVudFg6IG51bWJlciB9LFxuICAgICAgICB0YWtlQ3VzdG9tVmFsdWUgPSB0cnVlXG4gICAgKTogbnVtYmVyIHwgU2xpZGVyVGlja01hcmsge1xuICAgICAgICBjb25zdCB7IGxlZnQsIHdpZHRoLCBib3R0b20sIGhlaWdodCB9ID0gdGhpcy50cmFja0VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCBwZXJjZW50YWdlID0gdGhpcy52ZXJ0aWNhbCA/IChib3R0b20gLSBjb29yZHMuY2xpZW50WSkgLyBoZWlnaHQgOiAoY29vcmRzLmNsaWVudFggLSBsZWZ0KSAvIHdpZHRoO1xuXG4gICAgICAgIGlmICh0aGlzLl9ydGwkKCkpIHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxIC0gcGVyY2VudGFnZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMubWluICsgcGVyY2VudGFnZSAqICh0aGlzLm1heCAtIHRoaXMubWluKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NOZXdWYWx1ZShuZXdWYWx1ZSwgdGFrZUN1c3RvbVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Byb2Nlc3NOZXdWYWx1ZShuZXdWYWx1ZTogbnVtYmVyLCB0YWtlQ3VzdG9tVmFsdWUgPSB0cnVlKTogbnVtYmVyIHwgU2xpZGVyVGlja01hcmsge1xuICAgICAgICBpZiAobmV3VmFsdWUgPiB0aGlzLm1heCkge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLm1heDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3VmFsdWUgPCB0aGlzLm1pbikge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91c2VTbGlkZXJWYWx1ZVByZWZpeCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGNvbnN0IHN0ZXBEaWZmQXJyYXkgPSB0aGlzLl92YWx1ZXNCeVN0ZXBzXG4gICAgICAgICAgICAubWFwKChzdGVwVmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgICAgZGlmZjogTWF0aC5hYnMoc3RlcFZhbHVlIC0gbmV3VmFsdWUpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBzdGVwVmFsdWVcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuZGlmZiAtIGIuZGlmZik7XG4gICAgICAgIGxldCB2YWx1ZTogU2xpZGVyVGlja01hcmsgfCBudW1iZXIgPSBzdGVwRGlmZkFycmF5WzBdLnZhbHVlO1xuICAgICAgICBpZiAodGFrZUN1c3RvbVZhbHVlICYmIHRoaXMuY3VzdG9tVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5jdXN0b21WYWx1ZXNbdmFsdWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFJhbmdlSGFuZGxlVmFsdWVBbmRQb3NpdGlvbihoYW5kbGVJbmRleDogU2xpZGVyUmFuZ2VIYW5kbGVzLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fY2FsY1Byb2dyZXNzKHZhbHVlLCB0cnVlKTtcbiAgICAgICAgaWYgKGhhbmRsZUluZGV4ID09PSBTbGlkZXJSYW5nZUhhbmRsZXMuRmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZTFWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlMVBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5kZXggPT09IFNsaWRlclJhbmdlSGFuZGxlcy5TZWNvbmQpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZTJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlMlBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5kZXggPT09IFNsaWRlclJhbmdlSGFuZGxlcy5Cb3RoKSB7XG4gICAgICAgICAgICAvLyBDYWxjdWxhdGUgaG93IG11Y2ggc3RlcHMgYmVpbmcgc2tpcHBlZC5cbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlSW5kZXggPSB0aGlzLl92YWx1ZXNCeVN0ZXBzLmluZGV4T2YodGhpcy5faGFuZGxlMVZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlSW5kZXggPSB0aGlzLl92YWx1ZXNCeVN0ZXBzLmluZGV4T2YodmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IG9sZFZhbHVlSW5kZXggLSBuZXdWYWx1ZUluZGV4O1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlMlZhbHVlSW5kZXggPSB0aGlzLl92YWx1ZXNCeVN0ZXBzLmluZGV4T2YodGhpcy5faGFuZGxlMlZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGRpZmYgPT09IDAgfHwgdGhpcy5fdmFsdWVzQnlTdGVwcy5sZW5ndGggPD0gaGFuZGxlMlZhbHVlSW5kZXggLSBkaWZmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblNoaWZ0ID0gcG9zaXRpb24gLSB0aGlzLl9oYW5kbGUxUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGUxUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZTJQb3NpdGlvbiA9IHRoaXMuX2hhbmRsZTJQb3NpdGlvbiArIHBvc2l0aW9uU2hpZnQ7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGUxVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZTJWYWx1ZSA9IHRoaXMuX3ZhbHVlc0J5U3RlcHNbaGFuZGxlMlZhbHVlSW5kZXggLSBkaWZmXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yYW5nZVByb2dyZXNzID0gTWF0aC5hYnModGhpcy5faGFuZGxlMlBvc2l0aW9uIC0gdGhpcy5faGFuZGxlMVBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbnN0cnVjdFJhbmdlTW9kZWxWYWx1ZSgpOiBudW1iZXJbXSB8IFNsaWRlclRpY2tNYXJrW10ge1xuICAgICAgICBsZXQgcmFuZ2VMb3dlclZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgICAgIGxldCByYW5nZUhpZ2hlclZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgICAgIGxldCByYW5nZVZhbHVlOiBudW1iZXJbXSB8IFNsaWRlclRpY2tNYXJrW10gPSBbXG4gICAgICAgICAgICBNYXRoLm1pbih0aGlzLl9oYW5kbGUxVmFsdWUsIHRoaXMuX2hhbmRsZTJWYWx1ZSksXG4gICAgICAgICAgICBNYXRoLm1heCh0aGlzLl9oYW5kbGUxVmFsdWUsIHRoaXMuX2hhbmRsZTJWYWx1ZSlcbiAgICAgICAgXTtcbiAgICAgICAgcmFuZ2VMb3dlclZhbHVlID0gcmFuZ2VWYWx1ZVswXTtcbiAgICAgICAgcmFuZ2VIaWdoZXJWYWx1ZSA9IHJhbmdlVmFsdWVbMV07XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBtaW4gPSB0aGlzLmN1c3RvbVZhbHVlc1tyYW5nZVZhbHVlWzBdXSB8fCB0aGlzLmN1c3RvbVZhbHVlc1swXTtcbiAgICAgICAgICAgIGNvbnN0IG1heCA9IHRoaXMuY3VzdG9tVmFsdWVzW3JhbmdlVmFsdWVbMV1dIHx8IHRoaXMuY3VzdG9tVmFsdWVzW3RoaXMuY3VzdG9tVmFsdWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgcmFuZ2VWYWx1ZSA9IFttaW4sIG1heF07XG4gICAgICAgICAgICByYW5nZUxvd2VyVmFsdWUgPSByYW5nZVZhbHVlWzBdLmxhYmVsO1xuICAgICAgICAgICAgcmFuZ2VIaWdoZXJWYWx1ZSA9IHJhbmdlVmFsdWVbMV0ubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSgncmFuZ2UgdmFsdWUgYmV0d2VlbiAnICsgcmFuZ2VMb3dlclZhbHVlICsgJyBhbmQgJyArIHJhbmdlSGlnaGVyVmFsdWUsICdwb2xpdGUnKTtcbiAgICAgICAgcmV0dXJuIHJhbmdlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hdHRhY2hSZXNpemVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9vblJlc2l6ZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb25zdHJ1Y3RUaWNrTWFya3MoKTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29uc3RydWN0VmFsdWVzQnlTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlc0J5U3RlcHMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOiAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnN0ZXAgKyAxXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoXywgaSkgPT4gTnVtYmVyKCh0aGlzLm1pbiArIGkgKiB0aGlzLnN0ZXApLnRvRml4ZWQoMikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIHt9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb25zdHJ1Y3RUaWNrTWFya3MoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaG93VGlja3MpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpY2tNYXJrcyA9IFtdO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubWluID0gMDtcbiAgICAgICAgICAgIHRoaXMubWF4ID0gdGhpcy5jdXN0b21WYWx1ZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21WYWx1ZXNMZW5ndGggPSB0aGlzLmN1c3RvbVZhbHVlcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5fdGlja01hcmtzID0gdGhpcy5jdXN0b21WYWx1ZXMubWFwKChpdGVtLCBpKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICgxMDAgLyBjdXN0b21WYWx1ZXNMZW5ndGgpICogaVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0aGlzLm1heCAtIHRoaXMubWluO1xuICAgICAgICAgICAgY29uc3QgdGlja01hcmtzQ291bnQgPSB0b3RhbCAvIHRoaXMuc3RlcCArIDE7XG4gICAgICAgICAgICBpZiAodGhpcy5fbWF4VGlja01hcmtzTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgdGlja01hcmtzQ291bnQgPiB0aGlzLl9tYXhUaWNrTWFya3NOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90aWNrTWFya3MgPSBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5taW59YFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvdGFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubWF4fWBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpY2tNYXJrc0NvdW50ICUgMSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpY2tNYXJrcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDogdGlja01hcmtzQ291bnRcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKF8sIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChpICogdGhpcy5zdGVwICogMTAwKSAvIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gKHZhbHVlIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMubWluICsgdmFsdWV9YFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9tYXhUaWNrTWFya3NOdW1iZXIoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRyYWNrRWwgfHwgIXRoaXMudHJhY2tFbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMudHJhY2tFbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCh0aGlzLnZlcnRpY2FsID8gaGVpZ2h0IDogd2lkdGgpIC8gTUlOX0RJU1RBTkNFX0JFVFdFRU5fVElDS1MpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2FsY1Byb2dyZXNzKHZhbHVlOiBudW1iZXIsIHNraXBSdGwgPSBmYWxzZSk6IG51bWJlciB7XG4gICAgICAgIGxldCBwcm9ncmVzcyA9ICgodmFsdWUgLSB0aGlzLm1pbikgLyAodGhpcy5tYXggLSB0aGlzLm1pbikpICogMTAwO1xuICAgICAgICBpZiAoIXNraXBSdGwgJiYgdGhpcy5fcnRsJCgpKSB7XG4gICAgICAgICAgICBwcm9ncmVzcyA9IDEwMCAtIHByb2dyZXNzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9ncmVzcyA+IDEwMCkge1xuICAgICAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZ3Jlc3MgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvZ3Jlc3M7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZWNhbGNIYW5kbGVQb3NpdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGUxUG9zaXRpb24gPSB0aGlzLl9jYWxjUHJvZ3Jlc3ModGhpcy5faGFuZGxlMVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZTJQb3NpdGlvbiA9IHRoaXMuX2NhbGNQcm9ncmVzcyh0aGlzLl9oYW5kbGUyVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcmFuZ2VQcm9ncmVzcyA9IE1hdGguYWJzKHRoaXMuX2hhbmRsZTJQb3NpdGlvbiAtIHRoaXMuX2hhbmRsZTFQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3MgPSB0aGlzLl9jYWxjUHJvZ3Jlc3ModGhpcy5fcG9zaXRpb24gYXMgbnVtYmVyLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NoZWNrSXNJblJhbmdlTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNSYW5nZSA9IHRoaXMubW9kZSA9PT0gJ3JhbmdlJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRTaW5nZU1vZGUodmFsdWU6IG51bWJlciB8IFNsaWRlclRpY2tNYXJrKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0U2luZ2VNb2RlV2l0aEN1c3RvbVZhbHVlKHZhbHVlIGFzIFNsaWRlclRpY2tNYXJrKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0U2luZ2VNb2RlRGVmYXVsdChjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgdGhpcy5taW4pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRTaW5nZU1vZGVEZWZhdWx0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3MgPSB0aGlzLl9jYWxjUHJvZ3Jlc3ModmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdFNpbmdlTW9kZVdpdGhDdXN0b21WYWx1ZShzbGlkZXJUaWNrTWFyazogU2xpZGVyVGlja01hcmspOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAodGhpcy5fZ2V0Q3VzdG9tVmFsdWVzUG9zaXRpb24oc2xpZGVyVGlja01hcmspIGFzIG51bWJlcikgfHwgdGhpcy5taW47XG4gICAgICAgIHRoaXMuX2luaXRTaW5nZU1vZGVEZWZhdWx0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRSYW5nZU1vZGUodmFsdWU6IG51bWJlcltdIHwgU2xpZGVyVGlja01hcmtbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXN0b21WYWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdFJhbmdlTW9kZVdpdGhDdXN0b21WYWx1ZXModmFsdWUgYXMgU2xpZGVyVGlja01hcmtbXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlyc3RIYW5kbGUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZVswXSwgdGhpcy5taW4pO1xuICAgICAgICBjb25zdCBzZWNvbmRIYW5kbGUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZVsxXSwgdGhpcy5tYXgpO1xuICAgICAgICB0aGlzLl9pbml0UmFuZ2VNb2RlRGVmYXVsdChbZmlyc3RIYW5kbGUsIHNlY29uZEhhbmRsZV0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdFJhbmdlTW9kZURlZmF1bHQoW2ZpcnN0SGFuZGxlLCBzZWNvbmRIYW5kbGVdOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IFtmaXJzdEhhbmRsZSwgc2Vjb25kSGFuZGxlXTtcbiAgICAgICAgdGhpcy5fc2V0UmFuZ2VIYW5kbGVWYWx1ZUFuZFBvc2l0aW9uKFNsaWRlclJhbmdlSGFuZGxlcy5GaXJzdCwgZmlyc3RIYW5kbGUpO1xuICAgICAgICB0aGlzLl9zZXRSYW5nZUhhbmRsZVZhbHVlQW5kUG9zaXRpb24oU2xpZGVyUmFuZ2VIYW5kbGVzLlNlY29uZCwgc2Vjb25kSGFuZGxlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRSYW5nZU1vZGVXaXRoQ3VzdG9tVmFsdWVzKFtmaXJzdEhhbmRsZSwgc2Vjb25kSGFuZGxlXTogU2xpZGVyVGlja01hcmtbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2dldEN1c3RvbVZhbHVlc1Bvc2l0aW9uKFtmaXJzdEhhbmRsZSwgc2Vjb25kSGFuZGxlXSkgfHwgW3RoaXMubWluLCB0aGlzLm1heF07XG4gICAgICAgIHRoaXMuX2luaXRSYW5nZU1vZGVEZWZhdWx0KHZhbHVlIGFzIG51bWJlcltdKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEN1c3RvbVZhbHVlc1Bvc2l0aW9uKHZhbHVlOiBTbGlkZXJUaWNrTWFyayB8IFNsaWRlclRpY2tNYXJrW10pOiBudW1iZXIgfCBudW1iZXJbXSB7XG4gICAgICAgIHRoaXMubWluID0gMDtcbiAgICAgICAgdGhpcy5tYXggPSB0aGlzLmN1c3RvbVZhbHVlcy5sZW5ndGggLSAxO1xuICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVmFsdWVzUG9zaXRpb25zKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEN1c3RvbVZhbHVlc1Bvc2l0aW9ucyh2YWx1ZTogU2xpZGVyVGlja01hcmsgfCBTbGlkZXJUaWNrTWFya1tdKTogbnVtYmVyIHwgbnVtYmVyW10ge1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICh2YWx1ZSBhcyBTbGlkZXJUaWNrTWFya1tdKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc1JhbmdlID8gWzAsIHRoaXMuY3VzdG9tVmFsdWVzLmxlbmd0aCAtIDFdIDogMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBbZmlyc3RIYW5kbGUsIHNlY29uZEhhbmRsZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5faW5zdGFuY2VPZkN1c3RvbVZhbHVlKGZpcnN0SGFuZGxlKSkge1xuICAgICAgICAgICAgICAgIGZpcnN0SGFuZGxlID0gdGhpcy5jdXN0b21WYWx1ZXNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2luc3RhbmNlT2ZDdXN0b21WYWx1ZShzZWNvbmRIYW5kbGUpKSB7XG4gICAgICAgICAgICAgICAgc2Vjb25kSGFuZGxlID0gdGhpcy5jdXN0b21WYWx1ZXNbdGhpcy5jdXN0b21WYWx1ZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaXJzdEhhbmRsZVBvc2l0aW9uID0gdGhpcy5jdXN0b21WYWx1ZXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBmaXJzdEhhbmRsZS52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWNvbmRIYW5kbGVQb3NpdGlvbiA9IHRoaXMuY3VzdG9tVmFsdWVzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gc2Vjb25kSGFuZGxlLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ZXMgPSBbXG4gICAgICAgICAgICAgICAgZmlyc3RIYW5kbGVQb3NpdGlvbiA+PSAwID8gZmlyc3RIYW5kbGVQb3NpdGlvbiA6IDAsXG4gICAgICAgICAgICAgICAgc2Vjb25kSGFuZGxlUG9zaXRpb24gPj0gMCA/IHNlY29uZEhhbmRsZVBvc2l0aW9uIDogdGhpcy5jdXN0b21WYWx1ZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHJldHVybiBpbmRleGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGZpcnN0SGFuZGxlID0gdmFsdWUgYXMgU2xpZGVyVGlja01hcms7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2luc3RhbmNlT2ZDdXN0b21WYWx1ZShmaXJzdEhhbmRsZSkpIHtcbiAgICAgICAgICAgICAgICBmaXJzdEhhbmRsZSA9IHRoaXMuY3VzdG9tVmFsdWVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsdWVzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gZmlyc3RIYW5kbGUudmFsdWUpIHx8IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luc3RhbmNlT2ZDdXN0b21WYWx1ZShvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBTbGlkZXJDdXN0b21WYWx1ZSB7XG4gICAgICAgIHJldHVybiAhIW9iamVjdCAmJiAndmFsdWUnIGluIG9iamVjdCAmJiAnbGFiZWwnIGluIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvSW50ZXJhY3Rpb25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUZvY3VzZWQkLFxuICAgICAgICAgICAgdGhpcy5fcmFuZ2VIYW5kbGUxRm9jdXNlZCQsXG4gICAgICAgICAgICB0aGlzLl9yYW5nZUhhbmRsZTJGb2N1c2VkJCxcbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJJbnB1dEZpZWxkRm9jdXNlZCQsXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRIb3ZlcmVkJCxcbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJJbnB1dEZpZWxkSG92ZXJlZCRcbiAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgbWFwKChzdGF0ZXMpID0+IHN0YXRlcy5zb21lKEJvb2xlYW4pKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGZvY3VzZWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBub3QgZm9jdXNlZCwgY2hlY2sgZm9yIHRoZSBlZGdlIGNhc2UsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gaG92ZXIgaXMgb24gdGhlIGZkLXBvcG92ZXItYm9keSwgdGhhdCBpcyBhIHBhcmVudCBmb3IgdGhlIHRvb2x0aXAuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdHJ1ZSwgd2hlbiBob3ZlcmluZyB0aGUgZ2FwIGJldHdlZW4gaGFuZGxlIGFuZCB0aGUgdG9vbHRpcC5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzUG9wb3ZlckhvdmVyZWQoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTApLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb2N1c2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9wb3ZlcnMuZm9yRWFjaCgocG9wb3ZlcikgPT4gcG9wb3Zlci5vcGVuKCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0UHJlZml4KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJzLmZvckVhY2goKHBvcG92ZXIpID0+IHBvcG92ZXIuY2xvc2UoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gcmVzZXQgZGVmYXVsdCBwcmVmaXggb24gbGVhdmluZyB0aGUgc2xpZGVyICovXG4gICAgcHJpdmF0ZSBfcmVzZXRQcmVmaXgoKTogdm9pZCB7XG4gICAgICAgIC8vIHJlc2V0IHByZWZpeCBzdHJpbmcgZm9yIHNsaWRlciBjdXJyZW50IHZhbHVlIHRoYXQgbmVlZCB0byBiZSBhbm5vdW5jZWRcbiAgICAgICAgdGhpcy5fdXNlU2xpZGVyVmFsdWVQcmVmaXggPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENoZWNrcyB3aGV0aGVyIGlucHV0IHBvcG92ZXIgZWxlbWVudCBpcyBob3ZlcmVkLlxuICAgICAqIFdpbGwgYWxzbyByZXR1cm4gdHJ1ZSwgd2hlbiBob3ZlcmluZyB0aGUgZ2FwIGJldHdlZW4gaGFuZGxlIGFuZCB0aGUgdG9vbHRpcC5cbiAgICAgKiBJZiB5ZXMsIHJldHVybnMgXCJ0cnVlXCIgaW5zdGFudGx5IGFuZCBcImZhbHNlXCIgb25jZSBpdCdzIG5vdCBob3ZlcmVkIGFueW1vcmUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaXNQb3BvdmVySG92ZXJlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgcG9wb3ZlckJvZHkgPSB0aGlzLl9zbGlkZXJUb29sdGlwV3JhcHBlcnMuZmlyc3Q/Lm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZmQtcG9wb3Zlci1ib2R5Jyk7XG4gICAgICAgIGlmIChwb3BvdmVyQm9keT8ubWF0Y2hlcygnOmhvdmVyJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQocG9wb3ZlckJvZHksICdtb3VzZWxlYXZlJykucGlwZShtYXBUbyhmYWxzZSksIHRha2UoMSksIHN0YXJ0V2l0aCh0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtc2xpZGVyX19pbm5lclwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfaXNSYW5nZSA/IHJhbmdlTW9kZSA6IHNpbmdsZU1vZGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1zbGlkZXJfX3RyYWNrXCIgKGNsaWNrKT1cIm9uVHJhY2tDbGljaygkZXZlbnQpXCIgI3RyYWNrPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2lzUmFuZ2UgPyByYW5nZU1vZGVUcmFjayA6IHNpbmdsZU1vZGVUcmFja1wiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZkLXNsaWRlcl9fdGljay13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1zbGlkZXJfX3RpY2tzXCIgKGNsaWNrKT1cIm9uVHJhY2tDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICBAaWYgKHNob3dUaWNrcykge1xuICAgICAgICAgICAgICAgIEBmb3IgKHRpY2sgb2YgX3RpY2tNYXJrczsgdHJhY2sgdGljazsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1zbGlkZXJfX3RpY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtc2xpZGVyLXBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmVydGljYWxdPVwidmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cInRpY2sucG9zaXRpb24gfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtc2xpZGVyX190aWNrLS1pbi1yYW5nZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaGlkZVByb2dyZXNzQmFyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9pc1JhbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGljay52YWx1ZSA+PSBfcG9zaXRpb25bMF0gJiYgdGljay52YWx1ZSA8PSBfcG9zaXRpb25bMV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aWNrLnZhbHVlIDw9IF9wb3NpdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHNob3dUaWNrcyAmJiBzaG93VGlja3NMYWJlbHMpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1zbGlkZXJfX2xhYmVsc1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHRpY2sgb2YgX3RpY2tNYXJrczsgdHJhY2sgdGljazsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3Q7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGZpcnN0IHx8IGxhc3QgfHwgaSAlIHRpY2ttYXJrc0JldHdlZW5MYWJlbHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXNsaWRlcl9fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXNsaWRlci1wb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cInRpY2sucG9zaXRpb24gfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGljay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3NpbmdsZU1vZGVUcmFjaz5cbiAgICBAaWYgKCFoaWRlUHJvZ3Jlc3NCYXIpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1zbGlkZXJfX3RyYWNrLXJhbmdlXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQuJV09XCJ2ZXJ0aWNhbCA/IF9wcm9ncmVzcyA6IG51bGxcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwidmVydGljYWwgPyBudWxsIDogX3Byb2dyZXNzXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JhbmdlTW9kZVRyYWNrPlxuICAgIEBpZiAoIWhpZGVQcm9ncmVzc0Jhcikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLXNsaWRlcl9fdHJhY2stcmFuZ2VcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC4lXT1cInZlcnRpY2FsID8gX3JhbmdlUHJvZ3Jlc3MgOiBudWxsXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInZlcnRpY2FsID8gbnVsbCA6IF9yYW5nZVByb2dyZXNzXCJcbiAgICAgICAgICAgIGZkLXNsaWRlci1wb3NpdGlvblxuICAgICAgICAgICAgW3ZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICAgICAgICAgIFtwb3NpdGlvbl09XCJfaGFuZGxlMVBvc2l0aW9uIDwgX2hhbmRsZTJQb3NpdGlvbiA/IF9oYW5kbGUxUG9zaXRpb24gOiBfaGFuZGxlMlBvc2l0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtc2xpZGVyX190cmFjay1mb2N1cy1yYW5nZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkhhbmRsZUNsaWNrKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIF9oYW5kbGVzLkJvdGgpXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICNyYW5nZUdyb3VwSGFuZGxlXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3NpbmdsZU1vZGU+XG4gICAgPGRpdlxuICAgICAgICAjaGFuZGxlXG4gICAgICAgIGNsYXNzPVwiZmQtc2xpZGVyX19oYW5kbGVcIlxuICAgICAgICBbY2xhc3MuZmQtc2xpZGVyX19oYW5kbGUtLWxnXT1cIl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ296eVNpZ25hbCgpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICByb2xlPVwic2xpZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIGFyaWFMYWJlbCB8fCAoJ2NvcmVTbGlkZXIuc2luZ2xlTWluTWF4RGV0YWlscycgfCBmZFRyYW5zbGF0ZTogeyBtaW46IG1pblZhbHVlLCBtYXg6IG1heFZhbHVlIH0pXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFtmZFBvcG92ZXJUcmlnZ2VyXT1cInRvb2x0aXBNb2RlID8gc2luZ2xlU2xpZGVyUG9wb3ZlciA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIidjb3JlU2xpZGVyLnNpbmdsZVZhbHVlbWluRGV0YWlscycgfCBmZFRyYW5zbGF0ZTogeyB2YWx1ZTogbWluVmFsdWUgfVwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWVtYXhdPVwiJ2NvcmVTbGlkZXIuc2luZ2xlVmFsdWVtYXhEZXRhaWxzJyB8IGZkVHJhbnNsYXRlOiB7IHZhbHVlOiBtYXhWYWx1ZSB9XCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJcbiAgICAgICAgICAgIF91c2VTbGlkZXJWYWx1ZVByZWZpeFxuICAgICAgICAgICAgICAgID8gKCdjb3JlU2xpZGVyLnNpbmdsZVZhbHVlTm93RGV0YWlscydcbiAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgdmFsdWU6IGdldFZhbHVlbm93KF9wb3NpdGlvbiwgX3NsaWRlclZhbHVlVGFyZ2V0cy5TSU5HTEVfU0xJREVSKSB9KVxuICAgICAgICAgICAgICAgIDogZ2V0VmFsdWVub3coX3Bvc2l0aW9uLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlNJTkdMRV9TTElERVIpXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWV0ZXh0XT1cIlxuICAgICAgICAgICAgX3VzZVNsaWRlclZhbHVlUHJlZml4XG4gICAgICAgICAgICAgICAgPyAoJ2NvcmVTbGlkZXIuc2luZ2xlVmFsdWVOb3dEZXRhaWxzJ1xuICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZTogeyB2YWx1ZTogZ2V0VmFsdWVub3coX3Bvc2l0aW9uLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlNJTkdMRV9TTElERVIpIH0pXG4gICAgICAgICAgICAgICAgOiBnZXRWYWx1ZW5vdyhfcG9zaXRpb24sIF9zbGlkZXJWYWx1ZVRhcmdldHMuU0lOR0xFX1NMSURFUilcbiAgICAgICAgXCJcbiAgICAgICAgZmQtc2xpZGVyLXBvc2l0aW9uXG4gICAgICAgIFt2ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXG4gICAgICAgIFtwb3NpdGlvbl09XCJfcHJvZ3Jlc3NcIlxuICAgICAgICAobW91c2Vkb3duKT1cIm9uSGFuZGxlQ2xpY2soJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKGZvY3VzKT1cIl9oYW5kbGVGb2N1c2VkJC5uZXh0KHRydWUpXCJcbiAgICAgICAgKGJsdXIpPVwiX2hhbmRsZUZvY3VzZWQkLm5leHQoZmFsc2UpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgID48L2Rpdj5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjc2luZ2xlU2xpZGVyUG9wb3ZlclxuICAgICAgICBbdHJpZ2dlcnNdPVwiW11cIlxuICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJmYWxzZVwiXG4gICAgICAgIFthcHBlbmRUb109XCJoYW5kbGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXRvb2x0aXBNb2RlXCJcbiAgICAgICAgY2xhc3M9XCJmZC1wb3BvdmVyLS1zbGlkZXJcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtc2xpZGVyLXRvb2x0aXAtcG9wb3ZlclwiXG4gICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcG92ZXJJbm5lclwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0YXJnZXQ6IF9zbGlkZXJWYWx1ZVRhcmdldHMuU0lOR0xFX1NMSURFUiwgcG9zaXRpb246IF9wb3NpdGlvbiB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1wb3BvdmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmFuZ2VNb2RlPlxuICAgIDxkaXZcbiAgICAgICAgI3JhbmdlSGFuZGxlMVxuICAgICAgICBjbGFzcz1cImZkLXNsaWRlcl9faGFuZGxlXCJcbiAgICAgICAgW2NsYXNzLmZkLXNsaWRlcl9faGFuZGxlLS1sZ109XCJfY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvenlTaWduYWwoKVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgICAgcm9sZT1cInNsaWRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICBhcmlhTGFiZWwgfHwgKCdjb3JlU2xpZGVyLm11bHRpcGxlSGFuZGxlMU1pbk1heERldGFpbHMnIHwgZmRUcmFuc2xhdGU6IHsgbWluOiBtaW5WYWx1ZSwgbWF4OiBtYXhWYWx1ZSB9KVxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbZmRQb3BvdmVyVHJpZ2dlcl09XCJ0b29sdGlwTW9kZSA/IHJhbmdlU2xpZGVyUG9wb3ZlcjEgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW1pbl09XCInY29yZVNsaWRlci5tdWx0aXBsZUhhbmRsZTFWYWx1ZW1pbkRldGFpbHMnIHwgZmRUcmFuc2xhdGU6IHsgdmFsdWU6IG1pblZhbHVlIH1cIlxuICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIidjb3JlU2xpZGVyLm11bHRpcGxlSGFuZGxlMVZhbHVlbWF4RGV0YWlscycgfCBmZFRyYW5zbGF0ZTogeyB2YWx1ZTogbWF4VmFsdWUgfVwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwiXG4gICAgICAgICAgICBfdXNlU2xpZGVyVmFsdWVQcmVmaXhcbiAgICAgICAgICAgICAgICA/ICgnY29yZVNsaWRlci5tdWx0aXBsZUhhbmRsZTFWYWx1ZU5vd0RldGFpbHMnXG4gICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlOiB7IHZhbHVlOiBnZXRWYWx1ZW5vdyhfaGFuZGxlMVZhbHVlLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjEpIH0pXG4gICAgICAgICAgICAgICAgOiBnZXRWYWx1ZW5vdyhfaGFuZGxlMVZhbHVlLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjEpXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWV0ZXh0XT1cIlxuICAgICAgICAgICAgX3VzZVNsaWRlclZhbHVlUHJlZml4XG4gICAgICAgICAgICAgICAgPyAoJ2NvcmVTbGlkZXIubXVsdGlwbGVIYW5kbGUxVmFsdWVOb3dEZXRhaWxzJ1xuICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZTogeyB2YWx1ZTogZ2V0VmFsdWVub3coX2hhbmRsZTFWYWx1ZSwgX3NsaWRlclZhbHVlVGFyZ2V0cy5SQU5HRV9TTElERVIxKSB9KVxuICAgICAgICAgICAgICAgIDogZ2V0VmFsdWVub3coX2hhbmRsZTFWYWx1ZSwgX3NsaWRlclZhbHVlVGFyZ2V0cy5SQU5HRV9TTElERVIxKVxuICAgICAgICBcIlxuICAgICAgICBmZC1zbGlkZXItcG9zaXRpb25cbiAgICAgICAgW3ZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICAgICAgW3Bvc2l0aW9uXT1cIl9oYW5kbGUxUG9zaXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cIm9uSGFuZGxlQ2xpY2soJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudCwgX2hhbmRsZXMuRmlyc3QpXCJcbiAgICAgICAgKGZvY3VzKT1cIl9yYW5nZUhhbmRsZTFGb2N1c2VkJC5uZXh0KHRydWUpXCJcbiAgICAgICAgKGJsdXIpPVwiX3JhbmdlSGFuZGxlMUZvY3VzZWQkLm5leHQoZmFsc2UpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAjcmFuZ2VIYW5kbGUyXG4gICAgICAgIGNsYXNzPVwiZmQtc2xpZGVyX19oYW5kbGVcIlxuICAgICAgICBbY2xhc3MuZmQtc2xpZGVyX19oYW5kbGUtLWxnXT1cIl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ296eVNpZ25hbCgpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICByb2xlPVwic2xpZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIGFyaWFMYWJlbCB8fCAoJ2NvcmVTbGlkZXIubXVsdGlwbGVIYW5kbGUyTWluTWF4RGV0YWlscycgfCBmZFRyYW5zbGF0ZTogeyBtaW46IG1pblZhbHVlLCBtYXg6IG1heFZhbHVlIH0pXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFtmZFBvcG92ZXJUcmlnZ2VyXT1cInRvb2x0aXBNb2RlID8gcmFuZ2VTbGlkZXJQb3BvdmVyMiA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIidjb3JlU2xpZGVyLm11bHRpcGxlSGFuZGxlMlZhbHVlbWluRGV0YWlscycgfCBmZFRyYW5zbGF0ZTogeyB2YWx1ZTogbWluVmFsdWUgfVwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWVtYXhdPVwiJ2NvcmVTbGlkZXIubXVsdGlwbGVIYW5kbGUyVmFsdWVtYXhEZXRhaWxzJyB8IGZkVHJhbnNsYXRlOiB7IHZhbHVlOiBtYXhWYWx1ZSB9XCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJcbiAgICAgICAgICAgIF91c2VTbGlkZXJWYWx1ZVByZWZpeFxuICAgICAgICAgICAgICAgID8gKCdjb3JlU2xpZGVyLm11bHRpcGxlSGFuZGxlMlZhbHVlTm93RGV0YWlscydcbiAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgdmFsdWU6IGdldFZhbHVlbm93KF9oYW5kbGUyVmFsdWUsIF9zbGlkZXJWYWx1ZVRhcmdldHMuUkFOR0VfU0xJREVSMikgfSlcbiAgICAgICAgICAgICAgICA6IGdldFZhbHVlbm93KF9oYW5kbGUyVmFsdWUsIF9zbGlkZXJWYWx1ZVRhcmdldHMuUkFOR0VfU0xJREVSMilcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZXRleHRdPVwiXG4gICAgICAgICAgICBfdXNlU2xpZGVyVmFsdWVQcmVmaXhcbiAgICAgICAgICAgICAgICA/ICgnY29yZVNsaWRlci5tdWx0aXBsZUhhbmRsZTJWYWx1ZU5vd0RldGFpbHMnXG4gICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlOiB7IHZhbHVlOiBnZXRWYWx1ZW5vdyhfaGFuZGxlMlZhbHVlLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjIpIH0pXG4gICAgICAgICAgICAgICAgOiBnZXRWYWx1ZW5vdyhfaGFuZGxlMlZhbHVlLCBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjIpXG4gICAgICAgIFwiXG4gICAgICAgIGZkLXNsaWRlci1wb3NpdGlvblxuICAgICAgICBbdmVydGljYWxdPVwidmVydGljYWxcIlxuICAgICAgICBbcG9zaXRpb25dPVwiX2hhbmRsZTJQb3NpdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25IYW5kbGVDbGljaygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50LCBfaGFuZGxlcy5TZWNvbmQpXCJcbiAgICAgICAgKGZvY3VzKT1cIl9yYW5nZUhhbmRsZTJGb2N1c2VkJC5uZXh0KHRydWUpXCJcbiAgICAgICAgKGJsdXIpPVwiX3JhbmdlSGFuZGxlMkZvY3VzZWQkLm5leHQoZmFsc2UpXCJcbiAgICA+PC9kaXY+XG4gICAgPGZkLXBvcG92ZXJcbiAgICAgICAgI3JhbmdlU2xpZGVyUG9wb3ZlcjFcbiAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiZmFsc2VcIlxuICAgICAgICBbYXBwZW5kVG9dPVwicmFuZ2VIYW5kbGUxXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiF0b29sdGlwTW9kZVwiXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC1zbGlkZXItdG9vbHRpcC1wb3BvdmVyXCJcbiAgICAgICAgY2xhc3M9XCJmZC1wb3BvdmVyLS1zbGlkZXJcIlxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3BvdmVySW5uZXJcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdGFyZ2V0OiBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjEsIHBvc2l0aW9uOiBfaGFuZGxlMVZhbHVlIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLXBvcG92ZXI+XG4gICAgPGZkLXBvcG92ZXJcbiAgICAgICAgI3JhbmdlU2xpZGVyUG9wb3ZlcjJcbiAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiZmFsc2VcIlxuICAgICAgICBbYXBwZW5kVG9dPVwicmFuZ2VIYW5kbGUyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiF0b29sdGlwTW9kZVwiXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC1zbGlkZXItdG9vbHRpcC1wb3BvdmVyXCJcbiAgICAgICAgY2xhc3M9XCJmZC1wb3BvdmVyLS1zbGlkZXJcIlxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3BvdmVySW5uZXJcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdGFyZ2V0OiBfc2xpZGVyVmFsdWVUYXJnZXRzLlJBTkdFX1NMSURFUjIsIHBvc2l0aW9uOiBfaGFuZGxlMlZhbHVlIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwb3BvdmVySW5uZXIgbGV0LXRhcmdldD1cInRhcmdldFwiIGxldC1wb3NpdGlvbj1cInBvc2l0aW9uXCI+XG4gICAgPGRpdlxuICAgICAgICAjc2xpZGVyVG9vbHRpcFdyYXBwZXJcbiAgICAgICAgY2xhc3M9XCJmZC1zbGlkZXItdG9vbHRpcC13cmFwcGVyXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIl9wb3BvdmVySW5wdXRGaWVsZEhvdmVyZWQkLm5leHQodHJ1ZSlcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJfcG9wb3ZlcklucHV0RmllbGRIb3ZlcmVkJC5uZXh0KGZhbHNlKVwiXG4gICAgPlxuICAgICAgICBAaWYgKChjdXN0b21WYWx1ZXMgJiYgY3VzdG9tVmFsdWVzLmxlbmd0aCA+IDApIHx8IHRvb2x0aXBNb2RlID09PSAncmVhZG9ubHknKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtc2xpZGVyLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICB7eyBjdXN0b21WYWx1ZXMgJiYgY3VzdG9tVmFsdWVzLmxlbmd0aCA+IDAgPyBjdXN0b21WYWx1ZXNbcG9zaXRpb25dLmxhYmVsIDogX3BvcG92ZXJWYWx1ZVJlZlt0YXJnZXRdIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGN1c3RvbVZhbHVlcy5sZW5ndGggPT09IDAgJiYgdG9vbHRpcE1vZGUgPT09ICdlZGl0YWJsZScpIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNwb3BvdmVySW5wdXRGaWVsZFxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGZka09ubHlEaWdpdHNcbiAgICAgICAgICAgICAgICBbZGVjaW1hbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguY2hdPVwiKCcnICsgX3BvcG92ZXJWYWx1ZVJlZlt0YXJnZXRdKS5sZW5ndGggKyAyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0IGZkLXNsaWRlci10b29sdGlwIHt7IF9wb3BvdmVySW5wdXRGaWVsZENsYXNzIH19XCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9wb3BvdmVyVmFsdWVSZWZbdGFyZ2V0XVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiX3VwZGF0ZVZhbHVlRnJvbUlucHV0KHBvcG92ZXJJbnB1dEZpZWxkLnZhbHVlLCB0YXJnZXQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfdXBkYXRlVmFsdWVGcm9tSW5wdXQocG9wb3ZlcklucHV0RmllbGQudmFsdWUsIHRhcmdldClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJfcG9wb3ZlcklucHV0RmllbGRGb2N1c2VkJC5uZXh0KHRydWUpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJfcG9wb3ZlcklucHV0RmllbGRGb2N1c2VkJC5uZXh0KGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { OnlyDigitsModule } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SliderPositionDirective } from './slider-position.directive';\nimport { SliderComponent } from './slider.component';\nimport * as i0 from \"@angular/core\";\nconst EXPORTS = [SliderComponent, SliderPositionDirective];\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\nexport class SliderModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderModule, imports: [PopoverModule, FormsModule, OnlyDigitsModule, ContentDensityModule, I18nModule, SliderComponent, SliderPositionDirective], exports: [SliderComponent, SliderPositionDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderModule, imports: [PopoverModule, FormsModule, OnlyDigitsModule, ContentDensityModule, I18nModule, SliderComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SliderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [PopoverModule, FormsModule, OnlyDigitsModule, ContentDensityModule, I18nModule, ...EXPORTS],\n exports: [...EXPORTS]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zbGlkZXIvc2xpZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztBQUUzRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZOytHQUFaLFlBQVksWUFIWCxhQUFhLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFQM0UsZUFBZSxFQUFFLHVCQUF1QixhQUF4QyxlQUFlLEVBQUUsdUJBQXVCOytHQVU1QyxZQUFZLFlBSFgsYUFBYSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBUDNFLGVBQWU7OzJGQVVuQixZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO29CQUNyRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9ubHlEaWdpdHNNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEkxOG5Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgU2xpZGVyUG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL3NsaWRlci1wb3NpdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zbGlkZXIuY29tcG9uZW50JztcblxuY29uc3QgRVhQT1JUUyA9IFtTbGlkZXJDb21wb25lbnQsIFNsaWRlclBvc2l0aW9uRGlyZWN0aXZlXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIGRpcmVjdCBpbXBvcnRzIG9mIGNvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1BvcG92ZXJNb2R1bGUsIEZvcm1zTW9kdWxlLCBPbmx5RGlnaXRzTW9kdWxlLCBDb250ZW50RGVuc2l0eU1vZHVsZSwgSTE4bk1vZHVsZSwgLi4uRVhQT1JUU10sXG4gICAgZXhwb3J0czogWy4uLkVYUE9SVFNdXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlck1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNvcmUtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NsaWRlci9mdW5kYW1lbnRhbC1uZ3gtY29yZS1zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i3"],"mappings":"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"}
|