@ultraviolet/ui 1.51.1 → 1.51.3
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/dist/components/ActionBar/index.d.ts +20 -0
- package/dist/components/ActionBar/index.js +30 -0
- package/dist/components/Alert/index.d.ts +27 -0
- package/dist/components/Alert/index.js +115 -0
- package/dist/components/Avatar/index.d.ts +43 -0
- package/dist/components/Avatar/index.js +57 -0
- package/dist/components/Badge/index.d.ts +31 -0
- package/dist/components/Badge/index.js +99 -0
- package/dist/components/Banner/assets/default-image-small.svg.js +4 -0
- package/dist/components/Banner/assets/default-image.svg.js +4 -0
- package/dist/components/Banner/index.d.ts +24 -0
- package/dist/components/Banner/index.js +116 -0
- package/dist/components/BarChart/Tooltip.d.ts +9 -0
- package/dist/components/BarChart/Tooltip.js +41 -0
- package/dist/components/BarChart/index.d.ts +27 -0
- package/dist/components/BarChart/index.js +69 -0
- package/dist/components/BarStack/index.d.ts +36 -0
- package/dist/components/BarStack/index.js +114 -0
- package/dist/components/Breadcrumbs/index.d.ts +30 -0
- package/dist/components/Breadcrumbs/index.js +73 -0
- package/dist/components/Bullet/index.d.ts +39 -0
- package/dist/components/Bullet/index.js +84 -0
- package/dist/components/Button/index.d.ts +120 -0
- package/dist/components/Button/index.js +249 -0
- package/dist/components/Card/index.d.ts +20 -0
- package/dist/components/Card/index.js +52 -0
- package/dist/components/Carousel/index.d.ts +19 -0
- package/dist/components/Carousel/index.js +123 -0
- package/dist/components/Checkbox/index.d.ts +36 -0
- package/dist/components/Checkbox/index.js +262 -0
- package/dist/components/CheckboxGroup/index.d.ts +24 -0
- package/dist/components/CheckboxGroup/index.js +116 -0
- package/dist/components/CopyButton/index.d.ts +19 -0
- package/dist/components/CopyButton/index.js +23 -0
- package/dist/components/DateInput/datepicker.css.js +4 -0
- package/dist/components/DateInput/index.d.ts +38 -0
- package/dist/components/DateInput/index.js +182 -0
- package/dist/components/Dialog/Context.d.ts +7 -0
- package/dist/components/Dialog/Context.js +13 -0
- package/dist/components/Dialog/constants.d.ts +2 -0
- package/dist/components/Dialog/index.d.ts +87 -0
- package/dist/components/Dialog/index.js +66 -0
- package/dist/components/Dialog/subComponents/Button.d.ts +7 -0
- package/dist/components/Dialog/subComponents/Button.js +15 -0
- package/dist/components/Dialog/subComponents/Buttons.d.ts +7 -0
- package/dist/components/Dialog/subComponents/Buttons.js +12 -0
- package/dist/components/Dialog/subComponents/CancelButton.d.ts +8 -0
- package/dist/components/Dialog/subComponents/CancelButton.js +9 -0
- package/dist/components/Dialog/subComponents/Stack.d.ts +6 -0
- package/dist/components/Dialog/subComponents/Stack.js +8 -0
- package/dist/components/Dialog/subComponents/Text.d.ts +6 -0
- package/dist/components/Dialog/subComponents/Text.js +8 -0
- package/dist/components/EmptyState/index.d.ts +38 -0
- package/dist/components/EmptyState/index.js +90 -0
- package/dist/components/Expandable/index.d.ts +33 -0
- package/dist/components/Expandable/index.js +75 -0
- package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +3 -0
- package/dist/components/GlobalAlert/GlobalAlertLink.js +23 -0
- package/dist/components/GlobalAlert/index.d.ts +40 -0
- package/dist/components/GlobalAlert/index.js +59 -0
- package/dist/components/LineChart/CustomLegend.d.ts +13 -0
- package/dist/components/LineChart/CustomLegend.js +113 -0
- package/dist/components/LineChart/Tooltip.d.ts +6 -0
- package/dist/components/LineChart/Tooltip.js +35 -0
- package/dist/components/LineChart/helpers.d.ts +8 -0
- package/dist/{src/components → components}/LineChart/helpers.js +22 -10
- package/dist/components/LineChart/index.d.ts +25 -0
- package/dist/components/LineChart/index.js +101 -0
- package/dist/components/Link/index.d.ts +33 -0
- package/dist/components/Link/index.js +128 -0
- package/dist/components/List/Body.d.ts +6 -0
- package/dist/components/List/Body.js +16 -0
- package/dist/components/List/Cell.d.ts +12 -0
- package/dist/components/List/Cell.js +41 -0
- package/dist/components/List/HeaderCell.d.ts +11 -0
- package/dist/components/List/HeaderCell.js +82 -0
- package/dist/components/List/HeaderRow.d.ts +7 -0
- package/dist/components/List/HeaderRow.js +36 -0
- package/dist/components/List/ListContext.d.ts +34 -0
- package/dist/{src/components → components}/List/ListContext.js +27 -29
- package/dist/components/List/Row.d.ts +23 -0
- package/dist/components/List/Row.js +161 -0
- package/dist/components/List/SelectBar.d.ts +15 -0
- package/dist/components/List/SelectBar.js +52 -0
- package/dist/components/List/SkeletonRows.d.ts +7 -0
- package/dist/components/List/SkeletonRows.js +55 -0
- package/dist/components/List/constants.d.ts +2 -0
- package/dist/{src/components → components}/List/constants.js +4 -2
- package/dist/components/List/index.d.ts +68 -0
- package/dist/components/List/index.js +60 -0
- package/dist/components/Loader/index.d.ts +22 -0
- package/dist/components/Loader/index.js +77 -0
- package/dist/components/Menu/Item.d.ts +15 -0
- package/dist/components/Menu/Item.js +91 -0
- package/dist/components/Menu/index.d.ts +49 -0
- package/dist/components/Menu/index.js +116 -0
- package/dist/components/MenuV2/Group.d.ts +7 -0
- package/dist/components/MenuV2/Group.js +21 -0
- package/dist/components/MenuV2/Item.d.ts +16 -0
- package/dist/components/MenuV2/Item.js +113 -0
- package/dist/components/MenuV2/index.d.ts +90 -0
- package/dist/components/MenuV2/index.js +90 -0
- package/dist/components/Meter/index.d.ts +26 -0
- package/dist/components/Meter/index.js +63 -0
- package/dist/components/Modal/Dialog.d.ts +3 -0
- package/dist/components/Modal/Dialog.js +141 -0
- package/dist/components/Modal/Disclosure.d.ts +3 -0
- package/dist/{src/components → components}/Modal/Disclosure.js +12 -12
- package/dist/components/Modal/constants.d.ts +3 -0
- package/dist/{src/components → components}/Modal/constants.js +8 -6
- package/dist/components/Modal/index.d.ts +42 -0
- package/dist/components/Modal/index.js +79 -0
- package/dist/components/Modal/types.d.ts +48 -0
- package/dist/components/Notice/index.d.ts +11 -0
- package/dist/components/Notice/index.js +23 -0
- package/dist/components/Notification/index.d.ts +36 -0
- package/dist/components/Notification/index.js +49 -0
- package/dist/components/Notification/react-toastify.css.js +4 -0
- package/dist/components/NumberInput/helpers.d.ts +4 -0
- package/dist/{src/components → components}/NumberInput/helpers.js +6 -2
- package/dist/components/NumberInput/index.d.ts +41 -0
- package/dist/components/NumberInput/index.js +262 -0
- package/dist/components/NumberInputV2/index.d.ts +27 -0
- package/dist/components/NumberInputV2/index.js +221 -0
- package/dist/components/Pagination/getPageNumbers.d.ts +8 -0
- package/dist/{src/components → components}/Pagination/getPageNumbers.js +3 -9
- package/dist/components/Pagination/index.d.ts +30 -0
- package/dist/components/Pagination/index.js +88 -0
- package/dist/components/PasswordCheck/index.d.ts +20 -0
- package/dist/components/PasswordCheck/index.js +24 -0
- package/dist/components/PasswordStrengthMeter/index.d.ts +39 -0
- package/dist/components/PasswordStrengthMeter/index.js +96 -0
- package/dist/components/PieChart/Legends.d.ts +9 -0
- package/dist/components/PieChart/Legends.js +142 -0
- package/dist/components/PieChart/Tooltip.d.ts +12 -0
- package/dist/components/PieChart/Tooltip.js +49 -0
- package/dist/components/PieChart/index.d.ts +20 -0
- package/dist/components/PieChart/index.js +101 -0
- package/dist/components/PieChart/types.d.ts +7 -0
- package/dist/components/Popover/index.d.ts +55 -0
- package/dist/components/Popover/index.js +100 -0
- package/dist/components/Popup/animations.d.ts +11 -0
- package/dist/{src/components → components}/Popup/animations.js +7 -6
- package/dist/components/Popup/helpers.d.ts +31 -0
- package/dist/components/Popup/helpers.js +216 -0
- package/dist/components/Popup/index.d.ts +72 -0
- package/dist/components/Popup/index.js +297 -0
- package/dist/components/ProgressBar/index.d.ts +14 -0
- package/dist/components/ProgressBar/index.js +53 -0
- package/dist/components/Radio/index.d.ts +21 -0
- package/dist/components/Radio/index.js +133 -0
- package/dist/components/RadioGroup/index.d.ts +25 -0
- package/dist/components/RadioGroup/index.js +99 -0
- package/dist/components/Row/index.d.ts +22 -0
- package/dist/components/Row/index.js +34 -0
- package/dist/components/SelectInput/index.d.ts +75 -0
- package/dist/components/SelectInput/index.js +516 -0
- package/dist/components/SelectInputV2/Dropdown.d.ts +23 -0
- package/dist/components/SelectInputV2/Dropdown.js +429 -0
- package/dist/components/SelectInputV2/DropdownOption.d.ts +8 -0
- package/dist/components/SelectInputV2/DropdownOption.js +62 -0
- package/dist/components/SelectInputV2/SearchBarDropdown.d.ts +9 -0
- package/dist/components/SelectInputV2/SearchBarDropdown.js +107 -0
- package/dist/components/SelectInputV2/SelectBar.d.ts +14 -0
- package/dist/components/SelectInputV2/SelectBar.js +224 -0
- package/dist/components/SelectInputV2/SelectInputProvider.d.ts +41 -0
- package/dist/{src/components → components}/SelectInputV2/SelectInputProvider.js +38 -36
- package/dist/components/SelectInputV2/findOptionInOptions.d.ts +2 -0
- package/dist/components/SelectInputV2/findOptionInOptions.js +12 -0
- package/dist/components/SelectInputV2/index.d.ts +115 -0
- package/dist/components/SelectInputV2/index.js +87 -0
- package/dist/components/SelectInputV2/types.d.ts +38 -0
- package/dist/{src/components → components}/SelectInputV2/types.js +4 -2
- package/dist/components/SelectableCard/index.d.ts +25 -0
- package/dist/components/SelectableCard/index.js +137 -0
- package/dist/components/SelectableCardGroup/index.d.ts +23 -0
- package/dist/components/SelectableCardGroup/index.js +107 -0
- package/dist/components/Separator/index.d.ts +17 -0
- package/dist/components/Separator/index.js +56 -0
- package/dist/components/Skeleton/Block.d.ts +3 -0
- package/dist/components/Skeleton/Block.js +38 -0
- package/dist/components/Skeleton/Blocks.d.ts +4 -0
- package/dist/components/Skeleton/Blocks.js +38 -0
- package/dist/components/Skeleton/BoxWithIcon.d.ts +4 -0
- package/dist/components/Skeleton/BoxWithIcon.js +36 -0
- package/dist/components/Skeleton/Donut.d.ts +1 -0
- package/dist/components/Skeleton/Donut.js +61 -0
- package/dist/components/Skeleton/IconSkeleton.d.ts +5 -0
- package/dist/components/Skeleton/IconSkeleton.js +22 -0
- package/dist/components/Skeleton/Line.d.ts +5 -0
- package/dist/components/Skeleton/Line.js +16 -0
- package/dist/components/Skeleton/List.d.ts +4 -0
- package/dist/components/Skeleton/List.js +56 -0
- package/dist/components/Skeleton/Slider.d.ts +3 -0
- package/dist/components/Skeleton/Slider.js +40 -0
- package/dist/components/Skeleton/Square.d.ts +5 -0
- package/dist/components/Skeleton/Square.js +12 -0
- package/dist/components/Skeleton/index.d.ts +47 -0
- package/dist/components/Skeleton/index.js +79 -0
- package/dist/components/Snippet/index.d.ts +23 -0
- package/dist/components/Snippet/index.js +182 -0
- package/dist/components/Stack/index.d.ts +23 -0
- package/dist/components/Stack/index.js +29 -0
- package/dist/components/Status/index.d.ts +32 -0
- package/dist/components/Status/index.js +72 -0
- package/dist/components/StepList/index.d.ts +33 -0
- package/dist/components/StepList/index.js +58 -0
- package/dist/components/Stepper/index.d.ts +15 -0
- package/dist/components/Stepper/index.js +145 -0
- package/dist/components/SwitchButton/FocusOverlay.d.ts +8 -0
- package/dist/components/SwitchButton/FocusOverlay.js +38 -0
- package/dist/components/SwitchButton/index.d.ts +26 -0
- package/dist/components/SwitchButton/index.js +76 -0
- package/dist/components/Table/Body.d.ts +6 -0
- package/dist/components/Table/Body.js +7 -0
- package/dist/components/Table/Cell.d.ts +9 -0
- package/dist/components/Table/Cell.js +19 -0
- package/dist/components/Table/Header.d.ts +6 -0
- package/dist/components/Table/Header.js +16 -0
- package/dist/components/Table/HeaderCell.d.ts +14 -0
- package/dist/components/Table/HeaderCell.js +80 -0
- package/dist/components/Table/HeaderRow.d.ts +7 -0
- package/dist/components/Table/HeaderRow.js +23 -0
- package/dist/components/Table/Row.d.ts +14 -0
- package/dist/components/Table/Row.js +80 -0
- package/dist/components/Table/SelectBar.d.ts +15 -0
- package/dist/components/Table/SelectBar.js +52 -0
- package/dist/components/Table/SkeletonRows.d.ts +7 -0
- package/dist/components/Table/SkeletonRows.js +54 -0
- package/dist/components/Table/TableContext.d.ts +27 -0
- package/dist/{src/components → components}/Table/TableContext.js +19 -21
- package/dist/components/Table/index.d.ts +60 -0
- package/dist/components/Table/index.js +67 -0
- package/dist/components/Tabs/Tab.d.ts +20 -0
- package/dist/components/Tabs/Tab.js +120 -0
- package/dist/components/Tabs/TabMenu.d.ts +8 -0
- package/dist/components/Tabs/TabMenu.js +62 -0
- package/dist/components/Tabs/TabMenuItem.d.ts +20 -0
- package/dist/components/Tabs/TabMenuItem.js +34 -0
- package/dist/components/Tabs/TabsContext.d.ts +8 -0
- package/dist/components/Tabs/TabsContext.js +7 -0
- package/dist/components/Tabs/index.d.ts +50 -0
- package/dist/components/Tabs/index.js +102 -0
- package/dist/components/Tag/index.d.ts +26 -0
- package/dist/components/Tag/index.js +144 -0
- package/dist/components/TagInput/index.d.ts +55 -0
- package/dist/components/TagInput/index.js +253 -0
- package/dist/components/TagList/index.d.ts +37 -0
- package/dist/components/TagList/index.js +98 -0
- package/dist/components/Text/index.d.ts +40 -0
- package/dist/components/Text/index.js +82 -0
- package/dist/components/TextArea/index.d.ts +50 -0
- package/dist/components/TextArea/index.js +158 -0
- package/dist/components/TextInput/index.d.ts +75 -0
- package/dist/components/TextInput/index.js +387 -0
- package/dist/components/TextInputV2/index.d.ts +30 -0
- package/dist/components/TextInputV2/index.js +190 -0
- package/dist/components/TimeInput/index.d.ts +25 -0
- package/dist/components/TimeInput/index.js +28 -0
- package/dist/components/Toaster/index.d.ts +46 -0
- package/dist/components/Toaster/index.js +83 -0
- package/dist/components/Toaster/react-toastify.css.js +4 -0
- package/dist/components/Toggle/index.d.ts +34 -0
- package/dist/components/Toggle/index.js +136 -0
- package/dist/components/ToggleGroup/index.d.ts +24 -0
- package/dist/components/ToggleGroup/index.js +96 -0
- package/dist/components/Tooltip/index.d.ts +9 -0
- package/dist/components/Tooltip/index.js +40 -0
- package/dist/components/VerificationCode/index.d.ts +36 -0
- package/dist/components/VerificationCode/index.js +217 -0
- package/dist/components/index.d.ts +75 -0
- package/dist/helpers/isJSON.d.ts +2 -0
- package/dist/{src/helpers → helpers}/isJSON.js +4 -3
- package/dist/helpers/jestMockMatchMedia.d.ts +6 -0
- package/dist/helpers/keycode.d.ts +3 -0
- package/dist/helpers/legend.d.ts +2 -0
- package/dist/helpers/legend.js +14 -0
- package/dist/helpers/numbers.d.ts +2 -0
- package/dist/helpers/recursivelyGetChildrenString.d.ts +3 -0
- package/dist/helpers/recursivelyGetChildrenString.js +15 -0
- package/dist/hooks/useIsOverflowing.d.ts +5 -0
- package/dist/hooks/useIsOverflowing.js +23 -0
- package/dist/index.d.ts +4 -3723
- package/dist/index.js +187 -0
- package/dist/mocks/list.d.ts +12 -0
- package/dist/theme/index.d.ts +1573 -0
- package/dist/theme/index.js +27 -0
- package/dist/types.d.ts +6 -0
- package/dist/utils/animations.d.ts +27 -0
- package/dist/{src/utils → utils}/animations.js +30 -4
- package/dist/utils/capitalize.d.ts +2 -0
- package/dist/utils/capitalize.js +4 -0
- package/dist/utils/ids.d.ts +1 -0
- package/dist/{src/utils → utils}/ids.js +5 -4
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/normalize.d.ts +2 -0
- package/dist/{src/utils → utils}/normalize.js +4 -3
- package/dist/utils/orderBy.d.ts +2 -0
- package/dist/utils/responsive/Breakpoint.d.ts +9 -0
- package/dist/utils/responsive/Breakpoint.js +15 -0
- package/dist/utils/responsive/index.d.ts +2 -0
- package/dist/utils/responsive/utilities.d.ts +3 -0
- package/dist/{src/utils → utils}/responsive/utilities.js +9 -6
- package/package.json +18 -8
- package/dist/react-datepicker/dist/react-datepicker.min.css.js +0 -3
- package/dist/react-toastify/dist/ReactToastify.min.css.js +0 -3
- package/dist/src/components/ActionBar/index.js +0 -40
- package/dist/src/components/Alert/index.js +0 -133
- package/dist/src/components/Avatar/index.js +0 -74
- package/dist/src/components/Badge/index.js +0 -116
- package/dist/src/components/Banner/assets/default-image-small.svg.js +0 -5
- package/dist/src/components/Banner/assets/default-image.svg.js +0 -5
- package/dist/src/components/Banner/index.js +0 -159
- package/dist/src/components/BarChart/Tooltip.js +0 -48
- package/dist/src/components/BarChart/index.js +0 -95
- package/dist/src/components/BarStack/index.js +0 -136
- package/dist/src/components/Breadcrumbs/index.js +0 -82
- package/dist/src/components/Bullet/index.js +0 -98
- package/dist/src/components/Button/index.js +0 -311
- package/dist/src/components/Card/index.js +0 -67
- package/dist/src/components/Carousel/index.js +0 -128
- package/dist/src/components/Checkbox/index.js +0 -316
- package/dist/src/components/CheckboxGroup/index.js +0 -143
- package/dist/src/components/CopyButton/index.js +0 -37
- package/dist/src/components/DateInput/index.js +0 -242
- package/dist/src/components/Dialog/Context.js +0 -12
- package/dist/src/components/Dialog/index.js +0 -88
- package/dist/src/components/Dialog/subComponents/Button.js +0 -21
- package/dist/src/components/Dialog/subComponents/Buttons.js +0 -14
- package/dist/src/components/Dialog/subComponents/CancelButton.js +0 -14
- package/dist/src/components/Dialog/subComponents/Stack.js +0 -11
- package/dist/src/components/Dialog/subComponents/Text.js +0 -12
- package/dist/src/components/EmptyState/index.js +0 -112
- package/dist/src/components/Expandable/index.js +0 -96
- package/dist/src/components/GlobalAlert/GlobalAlertLink.js +0 -38
- package/dist/src/components/GlobalAlert/index.js +0 -82
- package/dist/src/components/LineChart/CustomLegend.js +0 -138
- package/dist/src/components/LineChart/Tooltip.js +0 -43
- package/dist/src/components/LineChart/index.js +0 -131
- package/dist/src/components/Link/index.js +0 -147
- package/dist/src/components/List/Body.js +0 -16
- package/dist/src/components/List/Cell.js +0 -43
- package/dist/src/components/List/HeaderCell.js +0 -90
- package/dist/src/components/List/HeaderRow.js +0 -43
- package/dist/src/components/List/Row.js +0 -185
- package/dist/src/components/List/SelectBar.js +0 -48
- package/dist/src/components/List/SkeletonRows.js +0 -53
- package/dist/src/components/List/index.js +0 -75
- package/dist/src/components/Loader/index.js +0 -100
- package/dist/src/components/Menu/Item.js +0 -112
- package/dist/src/components/Menu/index.js +0 -129
- package/dist/src/components/MenuV2/Group.js +0 -25
- package/dist/src/components/MenuV2/Item.js +0 -139
- package/dist/src/components/MenuV2/index.js +0 -118
- package/dist/src/components/Meter/index.js +0 -76
- package/dist/src/components/Modal/Dialog.js +0 -182
- package/dist/src/components/Modal/index.js +0 -113
- package/dist/src/components/Notice/index.js +0 -34
- package/dist/src/components/Notification/index.js +0 -77
- package/dist/src/components/NumberInput/index.js +0 -299
- package/dist/src/components/NumberInputV2/index.js +0 -284
- package/dist/src/components/Pagination/index.js +0 -117
- package/dist/src/components/PasswordCheck/index.js +0 -41
- package/dist/src/components/PasswordStrengthMeter/index.js +0 -102
- package/dist/src/components/PieChart/Legends.js +0 -138
- package/dist/src/components/PieChart/Tooltip.js +0 -61
- package/dist/src/components/PieChart/index.js +0 -125
- package/dist/src/components/Popover/index.js +0 -146
- package/dist/src/components/Popup/helpers.js +0 -252
- package/dist/src/components/Popup/index.js +0 -383
- package/dist/src/components/ProgressBar/index.js +0 -57
- package/dist/src/components/Radio/index.js +0 -157
- package/dist/src/components/RadioGroup/index.js +0 -131
- package/dist/src/components/Row/index.js +0 -41
- package/dist/src/components/SelectInput/index.js +0 -610
- package/dist/src/components/SelectInputV2/Dropdown.js +0 -594
- package/dist/src/components/SelectInputV2/DropdownOption.js +0 -130
- package/dist/src/components/SelectInputV2/SearchBarDropdown.js +0 -122
- package/dist/src/components/SelectInputV2/SelectBar.js +0 -282
- package/dist/src/components/SelectInputV2/findOptionInOptions.js +0 -11
- package/dist/src/components/SelectInputV2/index.js +0 -137
- package/dist/src/components/SelectableCard/index.js +0 -175
- package/dist/src/components/SelectableCardGroup/index.js +0 -141
- package/dist/src/components/Separator/index.js +0 -73
- package/dist/src/components/Skeleton/Block.js +0 -35
- package/dist/src/components/Skeleton/Blocks.js +0 -34
- package/dist/src/components/Skeleton/BoxWithIcon.js +0 -32
- package/dist/src/components/Skeleton/Donut.js +0 -55
- package/dist/src/components/Skeleton/IconSkeleton.js +0 -19
- package/dist/src/components/Skeleton/Line.js +0 -13
- package/dist/src/components/Skeleton/List.js +0 -51
- package/dist/src/components/Skeleton/Slider.js +0 -36
- package/dist/src/components/Skeleton/Square.js +0 -9
- package/dist/src/components/Skeleton/index.js +0 -82
- package/dist/src/components/Snippet/index.js +0 -200
- package/dist/src/components/Stack/index.js +0 -29
- package/dist/src/components/Status/index.js +0 -74
- package/dist/src/components/StepList/index.js +0 -69
- package/dist/src/components/Stepper/index.js +0 -150
- package/dist/src/components/SwitchButton/FocusOverlay.js +0 -37
- package/dist/src/components/SwitchButton/index.js +0 -108
- package/dist/src/components/Table/Body.js +0 -9
- package/dist/src/components/Table/Cell.js +0 -21
- package/dist/src/components/Table/Header.js +0 -15
- package/dist/src/components/Table/HeaderCell.js +0 -103
- package/dist/src/components/Table/HeaderRow.js +0 -32
- package/dist/src/components/Table/Row.js +0 -89
- package/dist/src/components/Table/SelectBar.js +0 -48
- package/dist/src/components/Table/SkeletonRows.js +0 -51
- package/dist/src/components/Table/index.js +0 -82
- package/dist/src/components/Tabs/Tab.js +0 -138
- package/dist/src/components/Tabs/TabMenu.js +0 -59
- package/dist/src/components/Tabs/TabMenuItem.js +0 -36
- package/dist/src/components/Tabs/TabsContext.js +0 -6
- package/dist/src/components/Tabs/index.js +0 -117
- package/dist/src/components/Tag/index.js +0 -169
- package/dist/src/components/TagInput/index.js +0 -309
- package/dist/src/components/TagList/index.js +0 -106
- package/dist/src/components/Text/index.js +0 -107
- package/dist/src/components/TextArea/index.js +0 -210
- package/dist/src/components/TextInput/index.js +0 -451
- package/dist/src/components/TextInputV2/index.js +0 -289
- package/dist/src/components/TimeInput/index.js +0 -37
- package/dist/src/components/Toaster/index.js +0 -131
- package/dist/src/components/Toggle/index.js +0 -160
- package/dist/src/components/ToggleGroup/index.js +0 -122
- package/dist/src/components/Tooltip/index.js +0 -55
- package/dist/src/components/VerificationCode/index.js +0 -222
- package/dist/src/helpers/legend.js +0 -13
- package/dist/src/helpers/recursivelyGetChildrenString.js +0 -11
- package/dist/src/hooks/useIsOverflowing.js +0 -34
- package/dist/src/index.js +0 -77
- package/dist/src/theme/index.js +0 -29
- package/dist/src/utils/capitalize.js +0 -3
- package/dist/src/utils/responsive/Breakpoint.js +0 -12
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { HTMLAttributes, KeyboardEventHandler, ReactNode, Ref, RefObject } from 'react';
|
|
2
|
+
import type { PopupPlacement } from './helpers';
|
|
3
|
+
type PopupProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Id is automatically generated if not set. It is used for associating popup wrapper with popup portal.
|
|
6
|
+
*/
|
|
7
|
+
id?: string;
|
|
8
|
+
children: ReactNode | ((renderProps: {
|
|
9
|
+
className?: string;
|
|
10
|
+
onBlur: () => void;
|
|
11
|
+
onFocus: () => void;
|
|
12
|
+
onPointerEnter: () => void;
|
|
13
|
+
onPointerLeave: () => void;
|
|
14
|
+
ref: RefObject<HTMLDivElement>;
|
|
15
|
+
}) => ReactNode);
|
|
16
|
+
maxWidth?: number | string;
|
|
17
|
+
/**
|
|
18
|
+
* `auto` placement will change the position of the popup if it doesn't fit in the viewport.
|
|
19
|
+
*/
|
|
20
|
+
placement?: PopupPlacement;
|
|
21
|
+
/**
|
|
22
|
+
* Content of the popup, preferably text inside.
|
|
23
|
+
*/
|
|
24
|
+
text?: ReactNode;
|
|
25
|
+
className?: string;
|
|
26
|
+
/**
|
|
27
|
+
* It will add `width: 100%` to the popup container.
|
|
28
|
+
*/
|
|
29
|
+
containerFullWidth?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* It will force display popup. This can be useful if you need to always display the popup without hover needed.
|
|
32
|
+
*/
|
|
33
|
+
visible?: boolean;
|
|
34
|
+
innerRef?: Ref<HTMLDivElement | null>;
|
|
35
|
+
role?: string;
|
|
36
|
+
'data-testid'?: string;
|
|
37
|
+
hasArrow?: boolean;
|
|
38
|
+
onClose?: () => void;
|
|
39
|
+
tabIndex?: number;
|
|
40
|
+
onKeyDown?: KeyboardEventHandler;
|
|
41
|
+
'aria-haspopup'?: HTMLAttributes<HTMLDivElement>['aria-haspopup'];
|
|
42
|
+
hideOnClickOutside?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* If you set debounceTime to false, the popup will not debounce the hover event and will be displayed instantly.
|
|
45
|
+
* If set to 0 it will disable debounce.
|
|
46
|
+
*/
|
|
47
|
+
debounceDelay?: number;
|
|
48
|
+
/**
|
|
49
|
+
* If you set a max height keep in mind that the animation is disabled, or it will not work properly on some browsers.
|
|
50
|
+
*/
|
|
51
|
+
maxHeight?: string | number;
|
|
52
|
+
/**
|
|
53
|
+
* Will remove the animation on the popup if set to false.
|
|
54
|
+
*/
|
|
55
|
+
disableAnimation?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* By default, the portal target is children container or document.body if children is a function. You can override this
|
|
58
|
+
* behavior by setting a portalTarget prop.
|
|
59
|
+
*/
|
|
60
|
+
portalTarget?: HTMLElement;
|
|
61
|
+
/**
|
|
62
|
+
* If you set this to true, the popup will be rendered in the DOM only when it is visible.
|
|
63
|
+
* When set to false, the popup will always be rendered in the DOM. By default this value is set to `true`, if for some
|
|
64
|
+
* reason you need to disable it, you can set it to `false`.
|
|
65
|
+
*/
|
|
66
|
+
dynamicDomRendering?: boolean;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @experimental This component is experimental and may be subject to breaking changes in the future.
|
|
70
|
+
*/
|
|
71
|
+
export declare const Popup: import("react").ForwardRefExoticComponent<PopupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import _styled from "@emotion/styled/base";
|
|
3
|
+
import { css } from "@emotion/react";
|
|
4
|
+
import { forwardRef, useRef, useImperativeHandle, useMemo, useState, useId, useCallback, useEffect } from "react";
|
|
5
|
+
import { createPortal } from "react-dom";
|
|
6
|
+
import { animation, exitAnimation } from "./animations.js";
|
|
7
|
+
import { ARROW_WIDTH, DEFAULT_POSITIONS, computePositions } from "./helpers.js";
|
|
8
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() {
|
|
9
|
+
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
10
|
+
}
|
|
11
|
+
const DEFAULT_ANIMATION_DURATION = 230;
|
|
12
|
+
const DEFAULT_DEBOUNCE_DURATION = 200;
|
|
13
|
+
function noop() {
|
|
14
|
+
}
|
|
15
|
+
const StyledPopup = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
16
|
+
shouldForwardProp: (prop) => !["maxWidth", "positions", "reverseAnimation", "maxHeight", "animationDuration", "isDialog"].includes(prop),
|
|
17
|
+
target: "e4h1g861"
|
|
18
|
+
} : {
|
|
19
|
+
shouldForwardProp: (prop) => !["maxWidth", "positions", "reverseAnimation", "maxHeight", "animationDuration", "isDialog"].includes(prop),
|
|
20
|
+
target: "e4h1g861",
|
|
21
|
+
label: "StyledPopup"
|
|
22
|
+
})("background:", ({
|
|
23
|
+
theme
|
|
24
|
+
}) => theme.colors.neutral.backgroundStronger, ";color:", ({
|
|
25
|
+
theme
|
|
26
|
+
}) => theme.colors.neutral.textStronger, ";border-radius:", ({
|
|
27
|
+
theme
|
|
28
|
+
}) => theme.radii.default, ";padding:", ({
|
|
29
|
+
theme
|
|
30
|
+
}) => `${theme.space["0.5"]} ${theme.space["1"]}`, ";text-align:center;position:absolute;max-width:", ({
|
|
31
|
+
maxWidth
|
|
32
|
+
}) => typeof maxWidth === "number" ? `${maxWidth}px` : maxWidth, ";max-height:", ({
|
|
33
|
+
maxHeight
|
|
34
|
+
}) => typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight, ";overflow:", ({
|
|
35
|
+
maxHeight
|
|
36
|
+
}) => maxHeight ? "auto" : void 0, ";overflow-wrap:break-word;font-size:0.8rem;inset:0 auto auto 0;top:0;left:0;opacity:0;z-index:1;transform:", ({
|
|
37
|
+
positions
|
|
38
|
+
}) => positions.popupPosition, ";animation:", ({
|
|
39
|
+
positions,
|
|
40
|
+
reverseAnimation,
|
|
41
|
+
maxHeight,
|
|
42
|
+
animationDuration
|
|
43
|
+
}) => maxHeight || animationDuration === 0 || animationDuration === void 0 ? void 0 : /* @__PURE__ */ css(animationDuration, "ms ", !reverseAnimation ? animation(positions) : exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RVciLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvdWkvc3JjL2NvbXBvbmVudHMvUG9wdXAvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB0eXBlIHtcbiAgSFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgUmVhY3ROb2RlLFxuICBSZWYsXG4gIFJlZk9iamVjdCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHsgQVJST1dfV0lEVEgsIERFRkFVTFRfUE9TSVRJT05TLCBjb21wdXRlUG9zaXRpb25zIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5mdW5jdGlvbiBub29wKCkge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQb3B1cCA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbXG4gICAgICAnbWF4V2lkdGgnLFxuICAgICAgJ3Bvc2l0aW9ucycsXG4gICAgICAncmV2ZXJzZUFuaW1hdGlvbicsXG4gICAgICAnbWF4SGVpZ2h0JyxcbiAgICAgICdhbmltYXRpb25EdXJhdGlvbicsXG4gICAgICAnaXNEaWFsb2cnLFxuICAgIF0uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQb3B1cFByb3BzPmBcbiAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0U3Ryb25nZXJ9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWF4LXdpZHRoOiAkeyh7IG1heFdpZHRoIH0pID0+XG4gICAgdHlwZW9mIG1heFdpZHRoID09PSAnbnVtYmVyJyA/IGAke21heFdpZHRofXB4YCA6IG1heFdpZHRofTtcbiAgbWF4LWhlaWdodDogJHsoeyBtYXhIZWlnaHQgfSkgPT5cbiAgICB0eXBlb2YgbWF4SGVpZ2h0ID09PSAnbnVtYmVyJyA/IGAke21heEhlaWdodH1weGAgOiBtYXhIZWlnaHR9O1xuICBvdmVyZmxvdzogJHsoeyBtYXhIZWlnaHQgfSkgPT4gKG1heEhlaWdodCA/ICdhdXRvJyA6IHVuZGVmaW5lZCl9O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgaW5zZXQ6IDAgYXV0byBhdXRvIDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucG9wdXBQb3NpdGlvbn07XG4gIGFuaW1hdGlvbjogJHsoe1xuICAgIHBvc2l0aW9ucyxcbiAgICByZXZlcnNlQW5pbWF0aW9uLFxuICAgIG1heEhlaWdodCxcbiAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgfSkgPT5cbiAgICBtYXhIZWlnaHQgfHwgYW5pbWF0aW9uRHVyYXRpb24gPT09IDAgfHwgYW5pbWF0aW9uRHVyYXRpb24gPT09IHVuZGVmaW5lZFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogY3NzYFxuICAgICAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHshcmV2ZXJzZUFuaW1hdGlvblxuICAgICAgICAgICAgPyBhbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgICAgICAgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucyl9IGZvcndhcmRzXG4gICAgICAgIGB9O1xuXG4gICZbZGF0YS1oYXMtYXJyb3c9J3RydWUnXSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7QVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7QVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn1cbiAgICAgICAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtdmlzaWJsZS1pbi1kb209J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD0ndHJ1ZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuYFxuXG50eXBlIFBvcHVwUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBJZCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiBub3Qgc2V0LiBJdCBpcyB1c2VkIGZvciBhc3NvY2lhdGluZyBwb3B1cCB3cmFwcGVyIHdpdGggcG9wdXAgcG9ydGFsLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgY2hpbGRyZW46XG4gICAgfCBSZWFjdE5vZGVcbiAgICB8ICgocmVuZGVyUHJvcHM6IHtcbiAgICAgICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgICAgIG9uQmx1cjogKCkgPT4gdm9pZFxuICAgICAgICBvbkZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckVudGVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uUG9pbnRlckxlYXZlOiAoKSA9PiB2b2lkXG4gICAgICAgIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBDb250ZW50IG9mIHRoZSBwb3B1cCwgcHJlZmVyYWJseSB0ZXh0IGluc2lkZS5cbiAgICovXG4gIHRleHQ/OiBSZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCB3aWxsIGFkZCBgd2lkdGg6IDEwMCVgIHRvIHRoZSBwb3B1cCBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXJGdWxsV2lkdGg/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAyMzIsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4oKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4oKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKHRydWUpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIH0sIGFuaW1hdGlvbkR1cmF0aW9uKVxuICAgICAgICB9LFxuICAgICAgICBkZWJvdW5jZURlbGF5ICYmICFkaXNhYmxlQW5pbWF0aW9uID8gZGVib3VuY2VEZWxheSA6IDAsXG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uLFxuICAgICAgZGVib3VuY2VEZWxheSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB1bm1vdW50UG9wdXBGcm9tRG9tLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG1vdXNlIGhvdmVyIG9yIHN0b3AgaG92ZXJpbmcgY2hpbGRyZW4gdGhpcyBmdW5jdGlvbiBkaXNwbGF5IG9yIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uXG4gICAgICogZW5kLCB0aGVuIHJlbW92ZSBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBvblBvaW50ZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlYm91bmNlRGVsYXkgYW5kIHRoZSBwb3B1cCBpcyBub3QgdmlzaWJsZSwgd2UgY2xlYXIgdGhlIGRlYm91bmNlIHRpbWVyXG4gICAgICAgIGlmICghdmlzaWJsZSAmJiBkZWJvdW5jZURlbGF5ID4gMCAmJiBkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byB1bm1vdW50IHRoZSBwb3B1cFxuICAgICAgICAvLyBUaGVyZSBpcyBkZWJvdW5jZSBpbiBvcmRlciB0byBhdm9pZCBwb3B1cCB0byBmbGlja2VyIHdoZW4gd2UgbW92ZSB0aGUgbW91c2UgZnJvbSBjaGlsZHJlbiB0byBwb3B1cFxuICAgICAgICAvLyBUaW1lciBpcyB1c2VkIHRvIGZvbGxvdyB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uXG4gICAgICAgIGlmICghaXNWaXNpYmxlICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCAmJiAhZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH0gZWxzZSBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byBtb3VudCB0aGUgcG9wdXBcbiAgICAgICAgICAvLyBJZiB0aGUgdGltZXIgZXhpc3RzIGl0IG1lYW5zIHRoZSBwb3B1cCB3YXMgYWJvdXQgdG8gdW1vdW50LCBidXQgd2UgaG92ZXJlZCB0aGUgY2hpbGRyZW4gYWdhaW4sXG4gICAgICAgICAgLy8gc28gd2UgY2xlYXIgdGhlIHRpbWVyIGFuZCB0aGUgcG9wdXAgd2lsbCBub3QgYmUgdW5tb3VudGVkXG4gICAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQW5kIGhlcmUgaXMgd2hlbiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgZGVib3VuY2UgdGltZXIsIGl0IG1lYW5zIHBvcHVwIHdhcyBob3ZlcmVkIGR1cmluZ1xuICAgICAgICAgIC8vIHRoYXQgcGVyaW9kLCBhbmQgc28gd2UgY2FuIGNsZWFyIGRlYm91bmNlIHRpbWVyXG4gICAgICAgICAgaWYgKGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVib3VuY2VEZWxheSA+IDApIHtcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0sIGRlYm91bmNlRGVsYXkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodmlzaWJsZUluRG9tICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbcG9zaXRpb25zXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGdlbmVyYXRlZElkLFxuICAgICAgaXNDb250cm9sbGVkLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgb25Qb2ludGVyRXZlbnQsXG4gICAgICB0YWJJbmRleCxcbiAgICBdKVxuXG4gICAgY29uc3Qgc2hvdWxkUmVuZGVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWR5bmFtaWNEb21SZW5kZXJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGR5bmFtaWNEb21SZW5kZXJpbmcgJiYgdmlzaWJsZUluRG9tKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkeW5hbWljRG9tUmVuZGVyaW5nLCB2aXNpYmxlSW5Eb21dKVxuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gbnVsbFxuXG4gICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCBoYW5kbGUgYWxsb3cgdXMgdG8gbm90IGJ1YmJsZSB0aGUgZXZlbnQgdG8gZG9jdW1lbnQuYm9keSBsaWtlIHRoaXMgcmVhY3Qtc2VsZWN0IHdvcmtzIGZpbmVcbiAgICAgKi9cbiAgICBjb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7cmVuZGVyQ2hpbGRyZW4oKX1cbiAgICAgICAge3Nob3VsZFJlbmRlclxuICAgICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkUG9wdXBcbiAgICAgICAgICAgICAgICByZWY9e2lubmVyUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zPXtwb3NpdGlvbnN9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgICAgaWQ9e2dlbmVyYXRlZElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIHJldmVyc2VBbmltYXRpb249e3JldmVyc2VBbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1oYXMtYXJyb3c9e2hhc0Fycm93fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17YW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtyb2xlID09PSAnZGlhbG9nJyA/IGhhbmRsZUZvY3VzVHJhcCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgZGF0YS12aXNpYmxlLWluLWRvbT17XG4gICAgICAgICAgICAgICAgICAhZHluYW1pY0RvbVJlbmRlcmluZyA/IHZpc2libGVJbkRvbSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZFBvcHVwPixcbiAgICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuIl19 */"), ";&[data-has-arrow='true']{&::after{content:' ';position:absolute;top:", ({
|
|
44
|
+
positions
|
|
45
|
+
}) => positions.arrowTop, "px;left:", ({
|
|
46
|
+
positions
|
|
47
|
+
}) => positions.arrowLeft, "px;transform:", ({
|
|
48
|
+
positions
|
|
49
|
+
}) => positions.arrowTransform, " rotate(", ({
|
|
50
|
+
positions
|
|
51
|
+
}) => positions.rotate, "deg);margin-left:-", ARROW_WIDTH, "px;border-width:", ARROW_WIDTH, "px;border-style:solid;border-color:", ({
|
|
52
|
+
theme
|
|
53
|
+
}) => theme.colors.neutral.backgroundStronger, " transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom='false']{display:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRG9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbnNUeXBlIH0gZnJvbSAnLi9hbmltYXRpb25zJ1xuaW1wb3J0IHsgYW5pbWF0aW9uLCBleGl0QW5pbWF0aW9uIH0gZnJvbSAnLi9hbmltYXRpb25zJ1xuaW1wb3J0IHR5cGUgeyBQb3B1cFBsYWNlbWVudCB9IGZyb20gJy4vaGVscGVycydcbmltcG9ydCB7IEFSUk9XX1dJRFRILCBERUZBVUxUX1BPU0lUSU9OUywgY29tcHV0ZVBvc2l0aW9ucyB9IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuICBhbmltYXRpb246ICR7KHtcbiAgICBwb3NpdGlvbnMsXG4gICAgcmV2ZXJzZUFuaW1hdGlvbixcbiAgICBtYXhIZWlnaHQsXG4gICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gIH0pID0+XG4gICAgbWF4SGVpZ2h0IHx8IGFuaW1hdGlvbkR1cmF0aW9uID09PSAwIHx8IGFuaW1hdGlvbkR1cmF0aW9uID09PSB1bmRlZmluZWRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGNzc2BcbiAgICAgICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7IXJldmVyc2VBbmltYXRpb25cbiAgICAgICAgICAgID8gYW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgICAgICAgIDogZXhpdEFuaW1hdGlvbihwb3NpdGlvbnMpfSBmb3J3YXJkc1xuICAgICAgICBgfTtcblxuICAmW2RhdGEtaGFzLWFycm93PSd0cnVlJ10ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAke0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmNvbnN0IFN0eWxlZENoaWxkcmVuQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5oZXJpdDtcblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9J3RydWUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbiAgICAgIH0pID0+IFJlYWN0Tm9kZSlcbiAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIGBhdXRvYCBwbGFjZW1lbnQgd2lsbCBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBpZiBpdCBkb2Vzbid0IGZpdCBpbiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwbGFjZW1lbnQ/OiBQb3B1cFBsYWNlbWVudFxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBmb3JjZSBkaXNwbGF5IHBvcHVwLiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91IG5lZWQgdG8gYWx3YXlzIGRpc3BsYXkgdGhlIHBvcHVwIHdpdGhvdXQgaG92ZXIgbmVlZGVkLlxuICAgKi9cbiAgdmlzaWJsZT86IGJvb2xlYW5cbiAgaW5uZXJSZWY/OiBSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICByb2xlPzogc3RyaW5nXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbiAgaGFzQXJyb3c/OiBib29sZWFuXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHRhYkluZGV4PzogbnVtYmVyXG4gIG9uS2V5RG93bj86IEtleWJvYXJkRXZlbnRIYW5kbGVyXG4gICdhcmlhLWhhc3BvcHVwJz86IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlsnYXJpYS1oYXNwb3B1cCddXG4gIGhpZGVPbkNsaWNrT3V0c2lkZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgZGVib3VuY2VUaW1lIHRvIGZhbHNlLCB0aGUgcG9wdXAgd2lsbCBub3QgZGVib3VuY2UgdGhlIGhvdmVyIGV2ZW50IGFuZCB3aWxsIGJlIGRpc3BsYXllZCBpbnN0YW50bHkuXG4gICAqIElmIHNldCB0byAwIGl0IHdpbGwgZGlzYWJsZSBkZWJvdW5jZS5cbiAgICovXG4gIGRlYm91bmNlRGVsYXk/OiBudW1iZXJcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgYSBtYXggaGVpZ2h0IGtlZXAgaW4gbWluZCB0aGF0IHRoZSBhbmltYXRpb24gaXMgZGlzYWJsZWQsIG9yIGl0IHdpbGwgbm90IHdvcmsgcHJvcGVybHkgb24gc29tZSBicm93c2Vycy5cbiAgICovXG4gIG1heEhlaWdodD86IHN0cmluZyB8IG51bWJlclxuICAvKipcbiAgICogV2lsbCByZW1vdmUgdGhlIGFuaW1hdGlvbiBvbiB0aGUgcG9wdXAgaWYgc2V0IHRvIGZhbHNlLlxuICAgKi9cbiAgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBwb3J0YWwgdGFyZ2V0IGlzIGNoaWxkcmVuIGNvbnRhaW5lciBvciBkb2N1bWVudC5ib2R5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24uIFlvdSBjYW4gb3ZlcnJpZGUgdGhpc1xuICAgKiBiZWhhdmlvciBieSBzZXR0aW5nIGEgcG9ydGFsVGFyZ2V0IHByb3AuXG4gICAqL1xuICBwb3J0YWxUYXJnZXQ/OiBIVE1MRWxlbWVudFxuICAvKipcbiAgICogSWYgeW91IHNldCB0aGlzIHRvIHRydWUsIHRoZSBwb3B1cCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSBET00gb25seSB3aGVuIGl0IGlzIHZpc2libGUuXG4gICAqIFdoZW4gc2V0IHRvIGZhbHNlLCB0aGUgcG9wdXAgd2lsbCBhbHdheXMgYmUgcmVuZGVyZWQgaW4gdGhlIERPTS4gQnkgZGVmYXVsdCB0aGlzIHZhbHVlIGlzIHNldCB0byBgdHJ1ZWAsIGlmIGZvciBzb21lXG4gICAqIHJlYXNvbiB5b3UgbmVlZCB0byBkaXNhYmxlIGl0LCB5b3UgY2FuIHNldCBpdCB0byBgZmFsc2VgLlxuICAgKi9cbiAgZHluYW1pY0RvbVJlbmRlcmluZz86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgY29tcG9uZW50IGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGJlIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgY29uc3QgUG9wdXAgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgY2hpbGRyZW4sXG4gICAgICB0ZXh0ID0gJycsXG4gICAgICBwbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIG1heFdpZHRoID0gMjMyLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgdmlzaWJsZSxcbiAgICAgIGlubmVyUmVmLFxuICAgICAgcm9sZSA9ICdwb3B1cCcsXG4gICAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICAgICAgaGFzQXJyb3cgPSB0cnVlLFxuICAgICAgb25DbG9zZSxcbiAgICAgIHRhYkluZGV4ID0gMCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYUhhc1BvcHVwLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2UsXG4gICAgICBkZWJvdW5jZURlbGF5ID0gREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTixcbiAgICAgIGRpc2FibGVBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHBvcnRhbFRhcmdldCxcbiAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmcgPSB0cnVlLFxuICAgIH06IFBvcHVwUHJvcHMsXG4gICAgcmVmOiBSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGlubmVyUmVmLCAoKSA9PiBjaGlsZHJlblJlZi5jdXJyZW50KVxuXG4gICAgY29uc3QgaW5uZXJQb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJQb3B1cFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgdGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ+KClcbiAgICBjb25zdCBwb3B1cFBvcnRhbFRhcmdldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbFRhcmdldCkgcmV0dXJuIHBvcnRhbFRhcmdldFxuXG4gICAgICBpZiAocm9sZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQpIHJldHVybiBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ+KClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW3BsYWNlbWVudCwgcG9wdXBQb3J0YWxUYXJnZXRdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY2xvc2VQb3B1cCwgZGVib3VuY2VEZWxheSwgdmlzaWJsZV0sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogT25jZSBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20gd2UgY2FuIGNvbXB1dGUgcG9zaXRpb25zLCB0aGVuIHNldCBpdCB2aXNpYmxlIG9uIHNjcmVlbiBhbmQgYWRkIGV2ZW50IHRvXG4gICAgICogcmVjb21wdXRlIHBvc2l0aW9ucyBvbiBzY3JvbGwgb3Igc2NyZWVuIHJlc2l6ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcblxuICAgICAgICBpZiAocG9wdXBQb3J0YWxUYXJnZXQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAvLyBXZSB3YW50IHRvIGRldGVjdCBzY3JvbGwgYW5kIHJlc2l6ZSBpbiBvcmRlciB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwXG4gICAgICAgICAgLy8gQWRkaW5nIHRydWUgYXMgdGhpcmQgcGFyYW1ldGVyIHRvIGV2ZW50IGxpc3RlbmVyIHdpbGwgZGV0ZWN0IG5lc3RlZCBzY3JvbGxzLlxuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyxcbiAgICAgIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0LFxuICAgIF0pXG5cbiAgICAvLyBUaGlzIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcG9zaXRpb25zIGFyZSBjb21wdXRlZCBhbmQgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tLlxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVJbkRvbSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW3Bvc2l0aW9uc10sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogSWYgcG9wdXAgaGFzIGB2aXNpYmxlYCBwcm9wIGl0IG1lYW5zIHRoZSBwb3B1cCBpcyBtYW51YWxseSBjb250cm9sbGVkIHRocm91Z2ggdGhpcyBwcm9wLlxuICAgICAqIEluIHRoaXMgY2FzIHdlIGRvbid0IHdhbnQgdG8gZGlzcGxheSBwb3B1cCBvbiBob3ZlciwgYnV0IG9ubHkgd2hlbiBgdmlzaWJsZWAgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBvblBvaW50ZXJFdmVudCh2aXNpYmxlKSgpXG4gICAgICB9XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25Qb2ludGVyRXZlbnQsIHZpc2libGVdKVxuXG4gICAgLy8gSGFuZGxlIGhpZGUgb24gZXNjIHByZXNzIGFuZCBoaWRlIG9uIGNsaWNrIG91dHNpZGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlRXNjUHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcG9wdXBDdXJyZW50ID0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ3VycmVudCA9IGNoaWxkcmVuUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAocG9wdXBDdXJyZW50ICYmIGhpZGVPbkNsaWNrT3V0c2lkZSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBwb3B1cEN1cnJlbnQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gY2hpbGRyZW5DdXJyZW50ICYmXG4gICAgICAgICAgICAhY2hpbGRyZW5DdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3B1cEN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGNsb3NlUG9wdXAsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBpbm5lclBvcHVwUmVmLFxuICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUsXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgd2lsbCBvY2N1ciBvbmx5IGZvciBkaWFsb2cgYW5kIHdpbGwgdHJhcCBmb2N1cyBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1c1RyYXA6IEtleWJvYXJkRXZlbnRIYW5kbGVyID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5ID09PSAnVGFiJ1xuICAgICAgaWYgKCFpc1RhYlByZXNzZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICBjb25zdCBmb2N1c2FibGVFbHMgPVxuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2FbaHJlZl06bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICAgICAgICkgPz8gW11cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBubyBpbnRlcmFjdGl2ZSBlbGVtZW50IGFyZSB3aXRoaW4gdGhlIG1vZGFsIChpbmNsdWRpbmcgY2xvc2UgaWNvbilcbiAgICAgIGlmIChmb2N1c2FibGVFbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1swXSBhcyBIVE1MRWxlbWVudFxuICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzW1xuICAgICAgICBmb2N1c2FibGVFbHMubGVuZ3RoIC0gMVxuICAgICAgXSBhcyBIVE1MRWxlbWVudFxuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgLyoqXG4gICAgICogV2lsbCByZW5kZXIgY2hpbGRyZW4gY29uZGl0aW9uYWxseSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICAgKi9cbiAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICAgICAgICBvbkJsdXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIHJlZjogY2hpbGRyZW5SZWYsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDaGlsZHJlbkNvbnRhaW5lclxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIG9uQmx1cj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgb25Gb2N1cz17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgcmVmPXtjaGlsZHJlblJlZn1cbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPXthcmlhSGFzUG9wdXB9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkQ2hpbGRyZW5Db250YWluZXI+XG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYXJpYUhhc1BvcHVwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG51bGxcblxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gICAgICovXG4gICAgY29uc3Qgc3RvcENsaWNrUHJvcGFnYXRpb246IE1vdXNlRXZlbnRIYW5kbGVyID0gZXZlbnQgPT4ge1xuICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"));
|
|
54
|
+
const StyledChildrenContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
55
|
+
target: "e4h1g860"
|
|
56
|
+
} : {
|
|
57
|
+
target: "e4h1g860",
|
|
58
|
+
label: "StyledChildrenContainer"
|
|
59
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
60
|
+
name: "jhu4ja",
|
|
61
|
+
styles: "display:inherit;&[data-container-full-width='true']{width:100%;}"
|
|
62
|
+
} : {
|
|
63
|
+
name: "jhu4ja",
|
|
64
|
+
styles: "display:inherit;&[data-container-full-width='true']{width:100%;}",
|
|
65
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRzBDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbnNUeXBlIH0gZnJvbSAnLi9hbmltYXRpb25zJ1xuaW1wb3J0IHsgYW5pbWF0aW9uLCBleGl0QW5pbWF0aW9uIH0gZnJvbSAnLi9hbmltYXRpb25zJ1xuaW1wb3J0IHR5cGUgeyBQb3B1cFBsYWNlbWVudCB9IGZyb20gJy4vaGVscGVycydcbmltcG9ydCB7IEFSUk9XX1dJRFRILCBERUZBVUxUX1BPU0lUSU9OUywgY29tcHV0ZVBvc2l0aW9ucyB9IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuICBhbmltYXRpb246ICR7KHtcbiAgICBwb3NpdGlvbnMsXG4gICAgcmV2ZXJzZUFuaW1hdGlvbixcbiAgICBtYXhIZWlnaHQsXG4gICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gIH0pID0+XG4gICAgbWF4SGVpZ2h0IHx8IGFuaW1hdGlvbkR1cmF0aW9uID09PSAwIHx8IGFuaW1hdGlvbkR1cmF0aW9uID09PSB1bmRlZmluZWRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGNzc2BcbiAgICAgICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7IXJldmVyc2VBbmltYXRpb25cbiAgICAgICAgICAgID8gYW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgICAgICAgIDogZXhpdEFuaW1hdGlvbihwb3NpdGlvbnMpfSBmb3J3YXJkc1xuICAgICAgICBgfTtcblxuICAmW2RhdGEtaGFzLWFycm93PSd0cnVlJ10ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAke0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmNvbnN0IFN0eWxlZENoaWxkcmVuQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5oZXJpdDtcblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9J3RydWUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cbiAgICAgIH0pID0+IFJlYWN0Tm9kZSlcbiAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqXG4gICAqIGBhdXRvYCBwbGFjZW1lbnQgd2lsbCBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBpZiBpdCBkb2Vzbid0IGZpdCBpbiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwbGFjZW1lbnQ/OiBQb3B1cFBsYWNlbWVudFxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBmb3JjZSBkaXNwbGF5IHBvcHVwLiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91IG5lZWQgdG8gYWx3YXlzIGRpc3BsYXkgdGhlIHBvcHVwIHdpdGhvdXQgaG92ZXIgbmVlZGVkLlxuICAgKi9cbiAgdmlzaWJsZT86IGJvb2xlYW5cbiAgaW5uZXJSZWY/OiBSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICByb2xlPzogc3RyaW5nXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbiAgaGFzQXJyb3c/OiBib29sZWFuXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIHRhYkluZGV4PzogbnVtYmVyXG4gIG9uS2V5RG93bj86IEtleWJvYXJkRXZlbnRIYW5kbGVyXG4gICdhcmlhLWhhc3BvcHVwJz86IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlsnYXJpYS1oYXNwb3B1cCddXG4gIGhpZGVPbkNsaWNrT3V0c2lkZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgZGVib3VuY2VUaW1lIHRvIGZhbHNlLCB0aGUgcG9wdXAgd2lsbCBub3QgZGVib3VuY2UgdGhlIGhvdmVyIGV2ZW50IGFuZCB3aWxsIGJlIGRpc3BsYXllZCBpbnN0YW50bHkuXG4gICAqIElmIHNldCB0byAwIGl0IHdpbGwgZGlzYWJsZSBkZWJvdW5jZS5cbiAgICovXG4gIGRlYm91bmNlRGVsYXk/OiBudW1iZXJcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgYSBtYXggaGVpZ2h0IGtlZXAgaW4gbWluZCB0aGF0IHRoZSBhbmltYXRpb24gaXMgZGlzYWJsZWQsIG9yIGl0IHdpbGwgbm90IHdvcmsgcHJvcGVybHkgb24gc29tZSBicm93c2Vycy5cbiAgICovXG4gIG1heEhlaWdodD86IHN0cmluZyB8IG51bWJlclxuICAvKipcbiAgICogV2lsbCByZW1vdmUgdGhlIGFuaW1hdGlvbiBvbiB0aGUgcG9wdXAgaWYgc2V0IHRvIGZhbHNlLlxuICAgKi9cbiAgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBwb3J0YWwgdGFyZ2V0IGlzIGNoaWxkcmVuIGNvbnRhaW5lciBvciBkb2N1bWVudC5ib2R5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24uIFlvdSBjYW4gb3ZlcnJpZGUgdGhpc1xuICAgKiBiZWhhdmlvciBieSBzZXR0aW5nIGEgcG9ydGFsVGFyZ2V0IHByb3AuXG4gICAqL1xuICBwb3J0YWxUYXJnZXQ/OiBIVE1MRWxlbWVudFxuICAvKipcbiAgICogSWYgeW91IHNldCB0aGlzIHRvIHRydWUsIHRoZSBwb3B1cCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSBET00gb25seSB3aGVuIGl0IGlzIHZpc2libGUuXG4gICAqIFdoZW4gc2V0IHRvIGZhbHNlLCB0aGUgcG9wdXAgd2lsbCBhbHdheXMgYmUgcmVuZGVyZWQgaW4gdGhlIERPTS4gQnkgZGVmYXVsdCB0aGlzIHZhbHVlIGlzIHNldCB0byBgdHJ1ZWAsIGlmIGZvciBzb21lXG4gICAqIHJlYXNvbiB5b3UgbmVlZCB0byBkaXNhYmxlIGl0LCB5b3UgY2FuIHNldCBpdCB0byBgZmFsc2VgLlxuICAgKi9cbiAgZHluYW1pY0RvbVJlbmRlcmluZz86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgY29tcG9uZW50IGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGJlIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgY29uc3QgUG9wdXAgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgY2hpbGRyZW4sXG4gICAgICB0ZXh0ID0gJycsXG4gICAgICBwbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIG1heFdpZHRoID0gMjMyLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgdmlzaWJsZSxcbiAgICAgIGlubmVyUmVmLFxuICAgICAgcm9sZSA9ICdwb3B1cCcsXG4gICAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICAgICAgaGFzQXJyb3cgPSB0cnVlLFxuICAgICAgb25DbG9zZSxcbiAgICAgIHRhYkluZGV4ID0gMCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogYXJpYUhhc1BvcHVwLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlID0gZmFsc2UsXG4gICAgICBkZWJvdW5jZURlbGF5ID0gREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTixcbiAgICAgIGRpc2FibGVBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHBvcnRhbFRhcmdldCxcbiAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmcgPSB0cnVlLFxuICAgIH06IFBvcHVwUHJvcHMsXG4gICAgcmVmOiBSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGlubmVyUmVmLCAoKSA9PiBjaGlsZHJlblJlZi5jdXJyZW50KVxuXG4gICAgY29uc3QgaW5uZXJQb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJQb3B1cFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50KVxuXG4gICAgY29uc3QgdGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ+KClcbiAgICBjb25zdCBwb3B1cFBvcnRhbFRhcmdldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbFRhcmdldCkgcmV0dXJuIHBvcnRhbFRhcmdldFxuXG4gICAgICBpZiAocm9sZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQpIHJldHVybiBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ+KClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW3BsYWNlbWVudCwgcG9wdXBQb3J0YWxUYXJnZXRdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY2xvc2VQb3B1cCwgZGVib3VuY2VEZWxheSwgdmlzaWJsZV0sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogT25jZSBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20gd2UgY2FuIGNvbXB1dGUgcG9zaXRpb25zLCB0aGVuIHNldCBpdCB2aXNpYmxlIG9uIHNjcmVlbiBhbmQgYWRkIGV2ZW50IHRvXG4gICAgICogcmVjb21wdXRlIHBvc2l0aW9ucyBvbiBzY3JvbGwgb3Igc2NyZWVuIHJlc2l6ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcblxuICAgICAgICBpZiAocG9wdXBQb3J0YWxUYXJnZXQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAvLyBXZSB3YW50IHRvIGRldGVjdCBzY3JvbGwgYW5kIHJlc2l6ZSBpbiBvcmRlciB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwXG4gICAgICAgICAgLy8gQWRkaW5nIHRydWUgYXMgdGhpcmQgcGFyYW1ldGVyIHRvIGV2ZW50IGxpc3RlbmVyIHdpbGwgZGV0ZWN0IG5lc3RlZCBzY3JvbGxzLlxuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyxcbiAgICAgIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0LFxuICAgIF0pXG5cbiAgICAvLyBUaGlzIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcG9zaXRpb25zIGFyZSBjb21wdXRlZCBhbmQgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tLlxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVJbkRvbSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW3Bvc2l0aW9uc10sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogSWYgcG9wdXAgaGFzIGB2aXNpYmxlYCBwcm9wIGl0IG1lYW5zIHRoZSBwb3B1cCBpcyBtYW51YWxseSBjb250cm9sbGVkIHRocm91Z2ggdGhpcyBwcm9wLlxuICAgICAqIEluIHRoaXMgY2FzIHdlIGRvbid0IHdhbnQgdG8gZGlzcGxheSBwb3B1cCBvbiBob3ZlciwgYnV0IG9ubHkgd2hlbiBgdmlzaWJsZWAgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBvblBvaW50ZXJFdmVudCh2aXNpYmxlKSgpXG4gICAgICB9XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25Qb2ludGVyRXZlbnQsIHZpc2libGVdKVxuXG4gICAgLy8gSGFuZGxlIGhpZGUgb24gZXNjIHByZXNzIGFuZCBoaWRlIG9uIGNsaWNrIG91dHNpZGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlRXNjUHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcG9wdXBDdXJyZW50ID0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ3VycmVudCA9IGNoaWxkcmVuUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAocG9wdXBDdXJyZW50ICYmIGhpZGVPbkNsaWNrT3V0c2lkZSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBwb3B1cEN1cnJlbnQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gY2hpbGRyZW5DdXJyZW50ICYmXG4gICAgICAgICAgICAhY2hpbGRyZW5DdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3B1cEN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGNsb3NlUG9wdXAsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBpbm5lclBvcHVwUmVmLFxuICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUsXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgd2lsbCBvY2N1ciBvbmx5IGZvciBkaWFsb2cgYW5kIHdpbGwgdHJhcCBmb2N1cyBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1c1RyYXA6IEtleWJvYXJkRXZlbnRIYW5kbGVyID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5ID09PSAnVGFiJ1xuICAgICAgaWYgKCFpc1RhYlByZXNzZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICBjb25zdCBmb2N1c2FibGVFbHMgPVxuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2FbaHJlZl06bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICAgICAgICkgPz8gW11cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBubyBpbnRlcmFjdGl2ZSBlbGVtZW50IGFyZSB3aXRoaW4gdGhlIG1vZGFsIChpbmNsdWRpbmcgY2xvc2UgaWNvbilcbiAgICAgIGlmIChmb2N1c2FibGVFbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1swXSBhcyBIVE1MRWxlbWVudFxuICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzW1xuICAgICAgICBmb2N1c2FibGVFbHMubGVuZ3RoIC0gMVxuICAgICAgXSBhcyBIVE1MRWxlbWVudFxuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgLyoqXG4gICAgICogV2lsbCByZW5kZXIgY2hpbGRyZW4gY29uZGl0aW9uYWxseSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICAgKi9cbiAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICAgICAgICBvbkJsdXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIHJlZjogY2hpbGRyZW5SZWYsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDaGlsZHJlbkNvbnRhaW5lclxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIG9uQmx1cj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgb25Gb2N1cz17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgcmVmPXtjaGlsZHJlblJlZn1cbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPXthcmlhSGFzUG9wdXB9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkQ2hpbGRyZW5Db250YWluZXI+XG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYXJpYUhhc1BvcHVwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG51bGxcblxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gICAgICovXG4gICAgY29uc3Qgc3RvcENsaWNrUHJvcGFnYXRpb246IE1vdXNlRXZlbnRIYW5kbGVyID0gZXZlbnQgPT4ge1xuICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */",
|
|
66
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
67
|
+
});
|
|
68
|
+
const Popup = forwardRef(({
|
|
69
|
+
children,
|
|
70
|
+
text = "",
|
|
71
|
+
placement = "auto",
|
|
72
|
+
id,
|
|
73
|
+
className,
|
|
74
|
+
containerFullWidth,
|
|
75
|
+
maxWidth = 232,
|
|
76
|
+
maxHeight,
|
|
77
|
+
visible,
|
|
78
|
+
innerRef,
|
|
79
|
+
role = "popup",
|
|
80
|
+
"data-testid": dataTestId,
|
|
81
|
+
hasArrow = true,
|
|
82
|
+
onClose,
|
|
83
|
+
tabIndex = 0,
|
|
84
|
+
onKeyDown,
|
|
85
|
+
"aria-haspopup": ariaHasPopup,
|
|
86
|
+
hideOnClickOutside = false,
|
|
87
|
+
debounceDelay = DEFAULT_DEBOUNCE_DURATION,
|
|
88
|
+
disableAnimation = false,
|
|
89
|
+
portalTarget,
|
|
90
|
+
dynamicDomRendering = true
|
|
91
|
+
}, ref) => {
|
|
92
|
+
const childrenRef = useRef(null);
|
|
93
|
+
useImperativeHandle(innerRef, () => childrenRef.current);
|
|
94
|
+
const innerPopupRef = useRef(null);
|
|
95
|
+
useImperativeHandle(ref, () => innerPopupRef.current);
|
|
96
|
+
const timer = useRef();
|
|
97
|
+
const popupPortalTarget = useMemo(() => {
|
|
98
|
+
if (portalTarget)
|
|
99
|
+
return portalTarget;
|
|
100
|
+
if (role === "dialog") {
|
|
101
|
+
if (childrenRef.current)
|
|
102
|
+
return childrenRef.current;
|
|
103
|
+
if (typeof window !== "undefined")
|
|
104
|
+
return document.body;
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
if (typeof window !== "undefined") {
|
|
108
|
+
return document.body;
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}, [portalTarget, role, childrenRef.current]);
|
|
112
|
+
const animationDuration = disableAnimation || maxHeight ? 0 : DEFAULT_ANIMATION_DURATION;
|
|
113
|
+
const debounceTimer = useRef();
|
|
114
|
+
const [visibleInDom, setVisibleInDom] = useState(false);
|
|
115
|
+
const [reverseAnimation, setReverseAnimation] = useState(false);
|
|
116
|
+
const [positions, setPositions] = useState({
|
|
117
|
+
...DEFAULT_POSITIONS
|
|
118
|
+
});
|
|
119
|
+
const uniqueId = useId();
|
|
120
|
+
const generatedId = id ?? uniqueId;
|
|
121
|
+
const isControlled = visible !== void 0;
|
|
122
|
+
const generatePopupPositions = useCallback(() => {
|
|
123
|
+
if (childrenRef.current && innerPopupRef.current) {
|
|
124
|
+
setPositions(computePositions({
|
|
125
|
+
childrenRef,
|
|
126
|
+
placement,
|
|
127
|
+
popupRef: innerPopupRef,
|
|
128
|
+
popupPortalTarget
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
}, [placement, popupPortalTarget]);
|
|
132
|
+
const onWindowChangeDetected = useCallback(() => {
|
|
133
|
+
if (innerPopupRef.current) {
|
|
134
|
+
innerPopupRef.current.style.animation = "none";
|
|
135
|
+
}
|
|
136
|
+
generatePopupPositions();
|
|
137
|
+
}, [generatePopupPositions, innerPopupRef]);
|
|
138
|
+
const unmountPopupFromDom = useCallback(() => {
|
|
139
|
+
setVisibleInDom(false);
|
|
140
|
+
setReverseAnimation(false);
|
|
141
|
+
window.removeEventListener("scroll", onWindowChangeDetected, true);
|
|
142
|
+
}, [onWindowChangeDetected]);
|
|
143
|
+
const closePopup = useCallback(() => {
|
|
144
|
+
debounceTimer.current = setTimeout(() => {
|
|
145
|
+
setReverseAnimation(true);
|
|
146
|
+
timer.current = setTimeout(() => {
|
|
147
|
+
unmountPopupFromDom();
|
|
148
|
+
onClose?.();
|
|
149
|
+
}, animationDuration);
|
|
150
|
+
}, debounceDelay && !disableAnimation ? debounceDelay : 0);
|
|
151
|
+
}, [animationDuration, disableAnimation, debounceDelay, onClose, unmountPopupFromDom]);
|
|
152
|
+
const onPointerEvent = useCallback((isVisible) => () => {
|
|
153
|
+
if (!visible && debounceDelay > 0 && debounceTimer.current) {
|
|
154
|
+
clearTimeout(debounceTimer.current);
|
|
155
|
+
debounceTimer.current = void 0;
|
|
156
|
+
}
|
|
157
|
+
if (!isVisible && innerPopupRef.current && !debounceTimer.current) {
|
|
158
|
+
closePopup();
|
|
159
|
+
} else if (isVisible) {
|
|
160
|
+
if (timer.current) {
|
|
161
|
+
setReverseAnimation(false);
|
|
162
|
+
clearTimeout(timer.current);
|
|
163
|
+
timer.current = void 0;
|
|
164
|
+
}
|
|
165
|
+
if (debounceTimer.current) {
|
|
166
|
+
clearTimeout(debounceTimer.current);
|
|
167
|
+
debounceTimer.current = void 0;
|
|
168
|
+
}
|
|
169
|
+
if (debounceDelay > 0) {
|
|
170
|
+
debounceTimer.current = setTimeout(() => {
|
|
171
|
+
setVisibleInDom(true);
|
|
172
|
+
}, debounceDelay);
|
|
173
|
+
} else {
|
|
174
|
+
setVisibleInDom(true);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}, [closePopup, debounceDelay, visible]);
|
|
178
|
+
useEffect(() => {
|
|
179
|
+
if (visibleInDom) {
|
|
180
|
+
generatePopupPositions();
|
|
181
|
+
if (popupPortalTarget === document.body) {
|
|
182
|
+
window.addEventListener("scroll", onWindowChangeDetected, true);
|
|
183
|
+
}
|
|
184
|
+
window.addEventListener("resize", onWindowChangeDetected, true);
|
|
185
|
+
}
|
|
186
|
+
return () => {
|
|
187
|
+
window.removeEventListener("scroll", onWindowChangeDetected, true);
|
|
188
|
+
window.removeEventListener("resize", onWindowChangeDetected, true);
|
|
189
|
+
if (timer.current) {
|
|
190
|
+
clearTimeout(timer.current);
|
|
191
|
+
timer.current = void 0;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}, [generatePopupPositions, onWindowChangeDetected, visibleInDom, maxWidth, popupPortalTarget]);
|
|
195
|
+
useEffect(
|
|
196
|
+
() => {
|
|
197
|
+
if (visibleInDom && innerPopupRef.current) {
|
|
198
|
+
innerPopupRef.current.style.opacity = "1";
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
202
|
+
[positions]
|
|
203
|
+
);
|
|
204
|
+
useEffect(() => {
|
|
205
|
+
if (isControlled) {
|
|
206
|
+
onPointerEvent(visible)();
|
|
207
|
+
}
|
|
208
|
+
}, [isControlled, onPointerEvent, visible]);
|
|
209
|
+
useEffect(() => {
|
|
210
|
+
const handleEscPress = (event) => {
|
|
211
|
+
if (event.key === "Escape") {
|
|
212
|
+
event.preventDefault();
|
|
213
|
+
event.stopPropagation();
|
|
214
|
+
closePopup();
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const handleClickOutside = (event) => {
|
|
218
|
+
const popupCurrent = innerPopupRef.current;
|
|
219
|
+
const childrenCurrent = childrenRef.current;
|
|
220
|
+
if (popupCurrent && hideOnClickOutside && !event.defaultPrevented) {
|
|
221
|
+
if (event.target && event.target !== popupCurrent && event.target !== childrenCurrent && !childrenCurrent?.contains(event.target) && !popupCurrent.contains(event.target)) {
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
event.stopPropagation();
|
|
224
|
+
closePopup();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
if (visibleInDom) {
|
|
229
|
+
document.body.addEventListener("keyup", handleEscPress);
|
|
230
|
+
document.body.addEventListener("click", handleClickOutside);
|
|
231
|
+
}
|
|
232
|
+
return () => {
|
|
233
|
+
document.body.removeEventListener("keyup", handleEscPress);
|
|
234
|
+
document.body.removeEventListener("click", handleClickOutside);
|
|
235
|
+
};
|
|
236
|
+
}, [closePopup, visibleInDom, innerPopupRef, childrenRef, hideOnClickOutside]);
|
|
237
|
+
const handleFocusTrap = useCallback((event) => {
|
|
238
|
+
const isTabPressed = event.key === "Tab";
|
|
239
|
+
if (!isTabPressed) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
event.stopPropagation();
|
|
243
|
+
const focusableEls = innerPopupRef.current?.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])") ?? [];
|
|
244
|
+
if (focusableEls.length === 0) {
|
|
245
|
+
event.preventDefault();
|
|
246
|
+
}
|
|
247
|
+
const firstFocusableEl = focusableEls[0];
|
|
248
|
+
const lastFocusableEl = focusableEls[focusableEls.length - 1];
|
|
249
|
+
if (event.shiftKey) {
|
|
250
|
+
if (document.activeElement === firstFocusableEl || document.activeElement === innerPopupRef.current) {
|
|
251
|
+
lastFocusableEl.focus();
|
|
252
|
+
event.preventDefault();
|
|
253
|
+
}
|
|
254
|
+
} else if (document.activeElement === lastFocusableEl || document.activeElement === innerPopupRef.current) {
|
|
255
|
+
firstFocusableEl.focus();
|
|
256
|
+
event.preventDefault();
|
|
257
|
+
}
|
|
258
|
+
}, []);
|
|
259
|
+
const renderChildren = useCallback(() => {
|
|
260
|
+
if (typeof children === "function") {
|
|
261
|
+
return children({
|
|
262
|
+
onBlur: !isControlled ? onPointerEvent(false) : noop,
|
|
263
|
+
onFocus: !isControlled ? onPointerEvent(true) : noop,
|
|
264
|
+
onPointerEnter: !isControlled ? onPointerEvent(true) : noop,
|
|
265
|
+
onPointerLeave: !isControlled ? onPointerEvent(false) : noop,
|
|
266
|
+
ref: childrenRef
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return /* @__PURE__ */ jsx(StyledChildrenContainer, { "aria-describedby": generatedId, "aria-controls": generatedId, onBlur: !isControlled ? onPointerEvent(false) : noop, onFocus: !isControlled ? onPointerEvent(true) : noop, onPointerEnter: !isControlled ? onPointerEvent(true) : noop, onPointerLeave: !isControlled ? onPointerEvent(false) : noop, ref: childrenRef, tabIndex, onKeyDown: (event) => {
|
|
270
|
+
onKeyDown?.(event);
|
|
271
|
+
}, "data-container-full-width": containerFullWidth, "aria-haspopup": ariaHasPopup, children });
|
|
272
|
+
}, [ariaHasPopup, children, containerFullWidth, generatedId, isControlled, onKeyDown, onPointerEvent, tabIndex]);
|
|
273
|
+
const shouldRender = useMemo(() => {
|
|
274
|
+
if (!dynamicDomRendering) {
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
if (dynamicDomRendering && visibleInDom) {
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
return false;
|
|
281
|
+
}, [dynamicDomRendering, visibleInDom]);
|
|
282
|
+
if (!text) {
|
|
283
|
+
if (typeof children === "function")
|
|
284
|
+
return null;
|
|
285
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
286
|
+
}
|
|
287
|
+
const stopClickPropagation = (event) => {
|
|
288
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
289
|
+
};
|
|
290
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
291
|
+
renderChildren(),
|
|
292
|
+
shouldRender ? createPortal(/* @__PURE__ */ jsx(StyledPopup, { ref: innerPopupRef, positions, maxWidth, maxHeight, role, id: generatedId, className, reverseAnimation, "data-testid": dataTestId, "data-has-arrow": hasArrow, onClick: stopClickPropagation, onPointerEnter: !isControlled ? onPointerEvent(true) : noop, onPointerLeave: !isControlled ? onPointerEvent(false) : noop, animationDuration, onKeyDown: role === "dialog" ? handleFocusTrap : void 0, isDialog: role === "dialog", "data-visible-in-dom": !dynamicDomRendering ? visibleInDom : void 0, children: text }), popupPortalTarget) : null
|
|
293
|
+
] });
|
|
294
|
+
});
|
|
295
|
+
export {
|
|
296
|
+
Popup
|
|
297
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const progressBarSentiments: readonly ["primary", "success", "warning", "info", "danger"];
|
|
2
|
+
type ProgressBarProps = {
|
|
3
|
+
sentiment?: (typeof progressBarSentiments)[number];
|
|
4
|
+
value?: number;
|
|
5
|
+
/** Put ProgressBar in a loading state */
|
|
6
|
+
progress?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
'data-testid'?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Progress bar component to display progress of a task. Can be used to display progress of a form or a loading state.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ProgressBar: ({ progress, value, sentiment, className, "data-testid": dataTestId, }: ProgressBarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import _styled from "@emotion/styled/base";
|
|
3
|
+
import { keyframes } from "@emotion/react";
|
|
4
|
+
const shineAnimation = keyframes`
|
|
5
|
+
from {
|
|
6
|
+
left: -25%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
to {
|
|
10
|
+
left: 100%;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
const StyledProgressContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
14
|
+
target: "e1b95x8r2"
|
|
15
|
+
} : {
|
|
16
|
+
target: "e1b95x8r2",
|
|
17
|
+
label: "StyledProgressContainer"
|
|
18
|
+
})("overflow:hidden;position:relative;height:4px;margin-left:0;margin-right:0;border-radius:", ({
|
|
19
|
+
theme
|
|
20
|
+
}) => theme.radii.default, ";background-color:", ({
|
|
21
|
+
theme
|
|
22
|
+
}) => theme.colors.neutral.backgroundStrong, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQjBDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSAnLi4vLi4vdGhlbWUnXG5cbmNvbnN0IHNoaW5lQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBsZWZ0OiAtMjUlO1xuICB9XG5cbiAgdG8ge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzQmFyU2VudGltZW50cyA9IFtcbiAgJ3ByaW1hcnknLFxuICAnc3VjY2VzcycsXG4gICd3YXJuaW5nJyxcbiAgJ2luZm8nLFxuICAnZGFuZ2VyJyxcbl0gYXMgY29uc3RcblxuY29uc3QgU3R5bGVkUHJvZ3Jlc3NDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmd9O1xuYFxuXG5jb25zdCBTdHlsZWRQcm9ncmVzcyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAyNSU7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKVxuICApO1xuICBhbmltYXRpb246ICR7c2hpbmVBbmltYXRpb259IDFzIGxpbmVhciBpbmZpbml0ZTtcbmBcblxuY29uc3QgU3R5bGVkRmlsbGVkID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ3NlbnRpbWVudCcsICd2YWx1ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBzZW50aW1lbnQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PmBcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSwgc2VudGltZW50IH0pID0+XG4gICAgdGhlbWUuY29sb3JzW3NlbnRpbWVudCBhcyBDb2xvcl0uYmFja2dyb3VuZFN0cm9uZyA/PyAnaW5oZXJpdCd9O1xuICB0cmFuc2l0aW9uOiAwLjNzIHdpZHRoO1xuICB3aWR0aDogJHsoeyB2YWx1ZSB9KSA9PiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIHZhbHVlKSl9JTtcbmBcblxudHlwZSBQcm9ncmVzc0JhclByb3BzID0ge1xuICBzZW50aW1lbnQ/OiAodHlwZW9mIHByb2dyZXNzQmFyU2VudGltZW50cylbbnVtYmVyXVxuICB2YWx1ZT86IG51bWJlclxuICAvKiogUHV0IFByb2dyZXNzQmFyIGluIGEgbG9hZGluZyBzdGF0ZSAqL1xuICBwcm9ncmVzcz86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQcm9ncmVzcyBiYXIgY29tcG9uZW50IHRvIGRpc3BsYXkgcHJvZ3Jlc3Mgb2YgYSB0YXNrLiBDYW4gYmUgdXNlZCB0byBkaXNwbGF5IHByb2dyZXNzIG9mIGEgZm9ybSBvciBhIGxvYWRpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0JhciA9ICh7XG4gIHByb2dyZXNzID0gZmFsc2UsXG4gIHZhbHVlID0gMCxcbiAgc2VudGltZW50ID0gJ3ByaW1hcnknLFxuICBjbGFzc05hbWUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQcm9ncmVzc0JhclByb3BzKSA9PiAoXG4gIDxTdHlsZWRQcm9ncmVzc0NvbnRhaW5lclxuICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgYXJpYS12YWx1ZW5vdz17dmFsdWV9XG4gICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICBhcmlhLXZhbHVlbWF4PXsxMDB9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gID5cbiAgICB7cHJvZ3Jlc3MgPyAoXG4gICAgICA8U3R5bGVkUHJvZ3Jlc3MgLz5cbiAgICApIDogKFxuICAgICAgPFN0eWxlZEZpbGxlZCBzZW50aW1lbnQ9e3NlbnRpbWVudH0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICl9XG4gIDwvU3R5bGVkUHJvZ3Jlc3NDb250YWluZXI+XG4pXG4iXX0= */"));
|
|
23
|
+
const StyledProgress = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
24
|
+
target: "e1b95x8r1"
|
|
25
|
+
} : {
|
|
26
|
+
target: "e1b95x8r1",
|
|
27
|
+
label: "StyledProgress"
|
|
28
|
+
})("position:absolute;top:0;left:0;bottom:0;width:25%;opacity:0.8;background:linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0),\n rgba(255, 255, 255, 0.3),\n rgba(255, 255, 255, 0.4),\n rgba(255, 255, 255, 0.3),\n rgba(255, 255, 255, 0)\n );animation:", shineAnimation, " 1s linear infinite;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ2lDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSAnLi4vLi4vdGhlbWUnXG5cbmNvbnN0IHNoaW5lQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBsZWZ0OiAtMjUlO1xuICB9XG5cbiAgdG8ge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzQmFyU2VudGltZW50cyA9IFtcbiAgJ3ByaW1hcnknLFxuICAnc3VjY2VzcycsXG4gICd3YXJuaW5nJyxcbiAgJ2luZm8nLFxuICAnZGFuZ2VyJyxcbl0gYXMgY29uc3RcblxuY29uc3QgU3R5bGVkUHJvZ3Jlc3NDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmd9O1xuYFxuXG5jb25zdCBTdHlsZWRQcm9ncmVzcyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAyNSU7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKVxuICApO1xuICBhbmltYXRpb246ICR7c2hpbmVBbmltYXRpb259IDFzIGxpbmVhciBpbmZpbml0ZTtcbmBcblxuY29uc3QgU3R5bGVkRmlsbGVkID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ3NlbnRpbWVudCcsICd2YWx1ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBzZW50aW1lbnQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PmBcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSwgc2VudGltZW50IH0pID0+XG4gICAgdGhlbWUuY29sb3JzW3NlbnRpbWVudCBhcyBDb2xvcl0uYmFja2dyb3VuZFN0cm9uZyA/PyAnaW5oZXJpdCd9O1xuICB0cmFuc2l0aW9uOiAwLjNzIHdpZHRoO1xuICB3aWR0aDogJHsoeyB2YWx1ZSB9KSA9PiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIHZhbHVlKSl9JTtcbmBcblxudHlwZSBQcm9ncmVzc0JhclByb3BzID0ge1xuICBzZW50aW1lbnQ/OiAodHlwZW9mIHByb2dyZXNzQmFyU2VudGltZW50cylbbnVtYmVyXVxuICB2YWx1ZT86IG51bWJlclxuICAvKiogUHV0IFByb2dyZXNzQmFyIGluIGEgbG9hZGluZyBzdGF0ZSAqL1xuICBwcm9ncmVzcz86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQcm9ncmVzcyBiYXIgY29tcG9uZW50IHRvIGRpc3BsYXkgcHJvZ3Jlc3Mgb2YgYSB0YXNrLiBDYW4gYmUgdXNlZCB0byBkaXNwbGF5IHByb2dyZXNzIG9mIGEgZm9ybSBvciBhIGxvYWRpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0JhciA9ICh7XG4gIHByb2dyZXNzID0gZmFsc2UsXG4gIHZhbHVlID0gMCxcbiAgc2VudGltZW50ID0gJ3ByaW1hcnknLFxuICBjbGFzc05hbWUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQcm9ncmVzc0JhclByb3BzKSA9PiAoXG4gIDxTdHlsZWRQcm9ncmVzc0NvbnRhaW5lclxuICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgYXJpYS12YWx1ZW5vdz17dmFsdWV9XG4gICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICBhcmlhLXZhbHVlbWF4PXsxMDB9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gID5cbiAgICB7cHJvZ3Jlc3MgPyAoXG4gICAgICA8U3R5bGVkUHJvZ3Jlc3MgLz5cbiAgICApIDogKFxuICAgICAgPFN0eWxlZEZpbGxlZCBzZW50aW1lbnQ9e3NlbnRpbWVudH0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICl9XG4gIDwvU3R5bGVkUHJvZ3Jlc3NDb250YWluZXI+XG4pXG4iXX0= */"));
|
|
29
|
+
const StyledFilled = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
30
|
+
shouldForwardProp: (prop) => !["sentiment", "value"].includes(prop),
|
|
31
|
+
target: "e1b95x8r0"
|
|
32
|
+
} : {
|
|
33
|
+
shouldForwardProp: (prop) => !["sentiment", "value"].includes(prop),
|
|
34
|
+
target: "e1b95x8r0",
|
|
35
|
+
label: "StyledFilled"
|
|
36
|
+
})("border-radius:", ({
|
|
37
|
+
theme
|
|
38
|
+
}) => theme.radii.default, ";position:absolute;top:0;left:0;bottom:0;background-color:", ({
|
|
39
|
+
theme,
|
|
40
|
+
sentiment
|
|
41
|
+
}) => theme.colors[sentiment].backgroundStrong ?? "inherit", ";transition:0.3s width;width:", ({
|
|
42
|
+
value
|
|
43
|
+
}) => Math.max(0, Math.min(100, value)), "%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvRHdDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSAnLi4vLi4vdGhlbWUnXG5cbmNvbnN0IHNoaW5lQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBsZWZ0OiAtMjUlO1xuICB9XG5cbiAgdG8ge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzQmFyU2VudGltZW50cyA9IFtcbiAgJ3ByaW1hcnknLFxuICAnc3VjY2VzcycsXG4gICd3YXJuaW5nJyxcbiAgJ2luZm8nLFxuICAnZGFuZ2VyJyxcbl0gYXMgY29uc3RcblxuY29uc3QgU3R5bGVkUHJvZ3Jlc3NDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmd9O1xuYFxuXG5jb25zdCBTdHlsZWRQcm9ncmVzcyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAyNSU7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKVxuICApO1xuICBhbmltYXRpb246ICR7c2hpbmVBbmltYXRpb259IDFzIGxpbmVhciBpbmZpbml0ZTtcbmBcblxuY29uc3QgU3R5bGVkRmlsbGVkID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ3NlbnRpbWVudCcsICd2YWx1ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBzZW50aW1lbnQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9PmBcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSwgc2VudGltZW50IH0pID0+XG4gICAgdGhlbWUuY29sb3JzW3NlbnRpbWVudCBhcyBDb2xvcl0uYmFja2dyb3VuZFN0cm9uZyA/PyAnaW5oZXJpdCd9O1xuICB0cmFuc2l0aW9uOiAwLjNzIHdpZHRoO1xuICB3aWR0aDogJHsoeyB2YWx1ZSB9KSA9PiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIHZhbHVlKSl9JTtcbmBcblxudHlwZSBQcm9ncmVzc0JhclByb3BzID0ge1xuICBzZW50aW1lbnQ/OiAodHlwZW9mIHByb2dyZXNzQmFyU2VudGltZW50cylbbnVtYmVyXVxuICB2YWx1ZT86IG51bWJlclxuICAvKiogUHV0IFByb2dyZXNzQmFyIGluIGEgbG9hZGluZyBzdGF0ZSAqL1xuICBwcm9ncmVzcz86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQcm9ncmVzcyBiYXIgY29tcG9uZW50IHRvIGRpc3BsYXkgcHJvZ3Jlc3Mgb2YgYSB0YXNrLiBDYW4gYmUgdXNlZCB0byBkaXNwbGF5IHByb2dyZXNzIG9mIGEgZm9ybSBvciBhIGxvYWRpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0JhciA9ICh7XG4gIHByb2dyZXNzID0gZmFsc2UsXG4gIHZhbHVlID0gMCxcbiAgc2VudGltZW50ID0gJ3ByaW1hcnknLFxuICBjbGFzc05hbWUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQcm9ncmVzc0JhclByb3BzKSA9PiAoXG4gIDxTdHlsZWRQcm9ncmVzc0NvbnRhaW5lclxuICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgYXJpYS12YWx1ZW5vdz17dmFsdWV9XG4gICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICBhcmlhLXZhbHVlbWF4PXsxMDB9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gID5cbiAgICB7cHJvZ3Jlc3MgPyAoXG4gICAgICA8U3R5bGVkUHJvZ3Jlc3MgLz5cbiAgICApIDogKFxuICAgICAgPFN0eWxlZEZpbGxlZCBzZW50aW1lbnQ9e3NlbnRpbWVudH0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICl9XG4gIDwvU3R5bGVkUHJvZ3Jlc3NDb250YWluZXI+XG4pXG4iXX0= */"));
|
|
44
|
+
const ProgressBar = ({
|
|
45
|
+
progress = false,
|
|
46
|
+
value = 0,
|
|
47
|
+
sentiment = "primary",
|
|
48
|
+
className,
|
|
49
|
+
"data-testid": dataTestId
|
|
50
|
+
}) => /* @__PURE__ */ jsx(StyledProgressContainer, { role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": 100, className, "data-testid": dataTestId, children: progress ? /* @__PURE__ */ jsx(StyledProgress, {}) : /* @__PURE__ */ jsx(StyledFilled, { sentiment, value }) });
|
|
51
|
+
export {
|
|
52
|
+
ProgressBar
|
|
53
|
+
};
|