@onepercentio/one-ui 1.3.4 → 1.3.5
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/README.md +1 -1
- package/dist/components/AdaptiveButton/AdaptiveButton.d.ts +9 -0
- package/dist/components/AdaptiveButton/AdaptiveButton.js +24 -26
- package/dist/components/AdaptiveButton/AdaptiveButton.js.map +1 -0
- package/dist/components/AdaptiveButton/index.d.ts +2 -0
- package/dist/components/AdaptiveButton/index.js +22 -25
- package/dist/components/AdaptiveButton/index.js.map +1 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +25 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +139 -140
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js.map +1 -0
- package/dist/components/AdaptiveContainer/index.d.ts +2 -0
- package/dist/components/AdaptiveContainer/index.js +22 -25
- package/dist/components/AdaptiveContainer/index.js.map +1 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +20 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +42 -73
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js.map +1 -0
- package/dist/components/AdaptiveDialog/index.d.ts +2 -0
- package/dist/components/AdaptiveDialog/index.js +22 -25
- package/dist/components/AdaptiveDialog/index.js.map +1 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.d.ts +25 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +54 -70
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js.map +1 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.d.ts +1 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +9 -10
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js.map +1 -0
- package/dist/components/AdaptiveSidebar/index.d.ts +2 -0
- package/dist/components/AdaptiveSidebar/index.js +22 -25
- package/dist/components/AdaptiveSidebar/index.js.map +1 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +37 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +154 -155
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js.map +1 -0
- package/dist/components/AnchoredTooltip/index.d.ts +2 -0
- package/dist/components/AnchoredTooltip/index.js +22 -25
- package/dist/components/AnchoredTooltip/index.js.map +1 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.d.ts +19 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +121 -154
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js.map +1 -0
- package/dist/components/AnimatedEntrance/index.d.ts +2 -0
- package/dist/components/AnimatedEntrance/index.js +22 -25
- package/dist/components/AnimatedEntrance/index.js.map +1 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.d.ts +29 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js +40 -80
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js.map +1 -0
- package/dist/components/AsyncTriggerContainer/index.d.ts +2 -0
- package/dist/components/AsyncTriggerContainer/index.js +22 -25
- package/dist/components/AsyncTriggerContainer/index.js.map +1 -0
- package/dist/components/AsyncWrapper/AsyncWrapper.d.ts +14 -0
- package/dist/components/AsyncWrapper/AsyncWrapper.js +16 -34
- package/dist/components/AsyncWrapper/AsyncWrapper.js.map +1 -0
- package/dist/components/AsyncWrapper/index.d.ts +2 -0
- package/dist/components/AsyncWrapper/index.js +22 -25
- package/dist/components/AsyncWrapper/index.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +10 -0
- package/dist/components/Avatar/Avatar.js +18 -33
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.js +22 -25
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/BucketFill/BucketFill.d.ts +11 -0
- package/dist/components/BucketFill/BucketFill.js +36 -49
- package/dist/components/BucketFill/BucketFill.js.map +1 -0
- package/dist/components/BucketFill/index.d.ts +2 -0
- package/dist/components/BucketFill/index.js +22 -25
- package/dist/components/BucketFill/index.js.map +1 -0
- package/dist/components/Button/Button.d.ts +16 -0
- package/dist/components/Button/Button.js +22 -30
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.js +22 -25
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Card/Card.d.ts +7 -0
- package/dist/components/Card/Card.js +10 -17
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.js +22 -25
- package/dist/components/Card/index.js.map +1 -0
- package/dist/components/Chart/Chart.d.ts +2 -0
- package/dist/components/Chart/Chart.e2e.d.ts +4 -0
- package/dist/components/Chart/Chart.e2e.js +9 -0
- package/dist/components/Chart/Chart.e2e.js.map +1 -0
- package/dist/components/Chart/Chart.js +22 -25
- package/dist/components/Chart/Chart.js.map +1 -0
- package/dist/components/Chart/Chart.logic.d.ts +3 -0
- package/dist/components/Chart/Chart.logic.js +9 -10
- package/dist/components/Chart/Chart.logic.js.map +1 -0
- package/dist/components/Chart/Chart.types.d.ts +24 -0
- package/dist/components/Chart/Chart.types.js +2 -5
- package/dist/components/Chart/Chart.types.js.map +1 -0
- package/dist/components/Chart/Chart.view.d.ts +5 -0
- package/dist/components/Chart/Chart.view.js +98 -174
- package/dist/components/Chart/Chart.view.js.map +1 -0
- package/dist/components/Chart/index.d.ts +2 -0
- package/dist/components/Chart/index.js +22 -25
- package/dist/components/Chart/index.js.map +1 -0
- package/dist/components/CheckBox/CheckBox.d.ts +18 -0
- package/dist/components/CheckBox/CheckBox.js +31 -45
- package/dist/components/CheckBox/CheckBox.js.map +1 -0
- package/dist/components/CheckBox/index.d.ts +2 -0
- package/dist/components/CheckBox/index.js +22 -25
- package/dist/components/CheckBox/index.js.map +1 -0
- package/dist/components/CodeInput/CodeInput.d.ts +8 -0
- package/dist/components/CodeInput/CodeInput.js +93 -75
- package/dist/components/CodeInput/CodeInput.js.map +1 -0
- package/dist/components/CodeInput/index.d.ts +2 -0
- package/dist/components/CodeInput/index.js +22 -25
- package/dist/components/CodeInput/index.js.map +1 -0
- package/dist/components/Collapsable/Collapsable.d.ts +54 -0
- package/dist/components/Collapsable/Collapsable.js +134 -164
- package/dist/components/Collapsable/Collapsable.js.map +1 -0
- package/dist/components/Collapsable/index.d.ts +2 -0
- package/dist/components/Collapsable/index.js +22 -25
- package/dist/components/Collapsable/index.js.map +1 -0
- package/dist/components/Countdown/Countdown.d.ts +28 -0
- package/dist/components/Countdown/Countdown.js +86 -69
- package/dist/components/Countdown/Countdown.js.map +1 -0
- package/dist/components/Countdown/index.d.ts +2 -0
- package/dist/components/Countdown/index.js +22 -25
- package/dist/components/Countdown/index.js.map +1 -0
- package/dist/components/CurrencyInput/CurrencyInput.d.ts +11 -0
- package/dist/components/CurrencyInput/CurrencyInput.hook.d.ts +7 -0
- package/dist/components/CurrencyInput/CurrencyInput.hook.js +25 -25
- package/dist/components/CurrencyInput/CurrencyInput.hook.js.map +1 -0
- package/dist/components/CurrencyInput/CurrencyInput.js +29 -48
- package/dist/components/CurrencyInput/CurrencyInput.js.map +1 -0
- package/dist/components/CurrencyInput/index.d.ts +2 -0
- package/dist/components/CurrencyInput/index.js +22 -25
- package/dist/components/CurrencyInput/index.js.map +1 -0
- package/dist/components/Divider/Divider.d.ts +6 -0
- package/dist/components/Divider/Divider.js +10 -16
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Divider/index.js +22 -25
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/EmailInput/EmailInput.d.ts +33 -0
- package/dist/components/EmailInput/EmailInput.js +23 -37
- package/dist/components/EmailInput/EmailInput.js.map +1 -0
- package/dist/components/EmailInput/index.d.ts +2 -0
- package/dist/components/EmailInput/index.js +22 -25
- package/dist/components/EmailInput/index.js.map +1 -0
- package/dist/components/FadeIn/FadeIn.d.ts +16 -0
- package/dist/components/FadeIn/FadeIn.js +51 -57
- package/dist/components/FadeIn/FadeIn.js.map +1 -0
- package/dist/components/FadeIn/index.d.ts +2 -0
- package/dist/components/FadeIn/index.js +22 -25
- package/dist/components/FadeIn/index.js.map +1 -0
- package/dist/components/FileInput/FileInput.d.ts +34 -0
- package/dist/components/FileInput/FileInput.js +38 -45
- package/dist/components/FileInput/FileInput.js.map +1 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.d.ts +6 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +16 -48
- package/dist/components/FileInput/View/BigFactory/BigFactory.js.map +1 -0
- package/dist/components/FileInput/View/BigFactory/index.d.ts +2 -0
- package/dist/components/FileInput/View/BigFactory/index.js +22 -25
- package/dist/components/FileInput/View/BigFactory/index.js.map +1 -0
- package/dist/components/FileInput/View/Compact/Compact.d.ts +11 -0
- package/dist/components/FileInput/View/Compact/Compact.js +46 -114
- package/dist/components/FileInput/View/Compact/Compact.js.map +1 -0
- package/dist/components/FileInput/View/Compact/index.d.ts +2 -0
- package/dist/components/FileInput/View/Compact/index.js +22 -25
- package/dist/components/FileInput/View/Compact/index.js.map +1 -0
- package/dist/components/FileInput/View/View.types.d.ts +8 -0
- package/dist/components/FileInput/View/View.types.js +2 -5
- package/dist/components/FileInput/View/View.types.js.map +1 -0
- package/dist/components/FileInput/index.d.ts +2 -0
- package/dist/components/FileInput/index.js +22 -25
- package/dist/components/FileInput/index.js.map +1 -0
- package/dist/components/FlowController/FlowController.d.ts +27 -0
- package/dist/components/FlowController/FlowController.js +25 -56
- package/dist/components/FlowController/FlowController.js.map +1 -0
- package/dist/components/FlowController/index.d.ts +2 -0
- package/dist/components/FlowController/index.js +22 -25
- package/dist/components/FlowController/index.js.map +1 -0
- package/dist/components/Form/Form.d.ts +30 -0
- package/dist/components/Form/Form.hook.d.ts +40 -0
- package/dist/components/Form/Form.hook.js +202 -217
- package/dist/components/Form/Form.hook.js.map +1 -0
- package/dist/components/Form/Form.js +65 -103
- package/dist/components/Form/Form.js.map +1 -0
- package/dist/components/Form/Form.types.d.ts +98 -0
- package/dist/components/Form/Form.types.js +53 -39
- package/dist/components/Form/Form.types.js.map +1 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.d.ts +13 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.js +53 -64
- package/dist/components/Form/FormField/Extensions/DateField/DateField.js.map +1 -0
- package/dist/components/Form/FormField/Extensions/DateField/index.d.ts +2 -0
- package/dist/components/Form/FormField/Extensions/DateField/index.js +22 -25
- package/dist/components/Form/FormField/Extensions/DateField/index.js.map +1 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.d.ts +9 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +78 -81
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js.map +1 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/index.d.ts +2 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/index.js +22 -25
- package/dist/components/Form/FormField/Extensions/PhoneField/index.js.map +1 -0
- package/dist/components/Form/FormField/FormField.d.ts +5 -0
- package/dist/components/Form/FormField/FormField.js +148 -287
- package/dist/components/Form/FormField/FormField.js.map +1 -0
- package/dist/components/Form/FormField/FormField.types.d.ts +103 -0
- package/dist/components/Form/FormField/FormField.types.js +7 -10
- package/dist/components/Form/FormField/FormField.types.js.map +1 -0
- package/dist/components/Form/FormField/index.d.ts +2 -0
- package/dist/components/Form/FormField/index.js +22 -25
- package/dist/components/Form/FormField/index.js.map +1 -0
- package/dist/components/Form/index.d.ts +2 -0
- package/dist/components/Form/index.js +22 -25
- package/dist/components/Form/index.js.map +1 -0
- package/dist/components/Freeze/Freeze.d.ts +5 -0
- package/dist/components/Freeze/Freeze.js +9 -13
- package/dist/components/Freeze/Freeze.js.map +1 -0
- package/dist/components/Freeze/index.d.ts +2 -0
- package/dist/components/Freeze/index.js +22 -25
- package/dist/components/Freeze/index.js.map +1 -0
- package/dist/components/HSForms/HSForms.d.ts +12 -0
- package/dist/components/HSForms/HSForms.js +69 -48
- package/dist/components/HSForms/HSForms.js.map +1 -0
- package/dist/components/HSForms/index.d.ts +2 -0
- package/dist/components/HSForms/index.js +22 -25
- package/dist/components/HSForms/index.js.map +1 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.d.ts +9 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +10 -19
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js.map +1 -0
- package/dist/components/HeaderCloseBtn/index.d.ts +2 -0
- package/dist/components/HeaderCloseBtn/index.js +22 -25
- package/dist/components/HeaderCloseBtn/index.js.map +1 -0
- package/dist/components/InfinityScroll/InfinityScroll.d.ts +22 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +94 -114
- package/dist/components/InfinityScroll/InfinityScroll.js.map +1 -0
- package/dist/components/InfinityScroll/index.d.ts +2 -0
- package/dist/components/InfinityScroll/index.js +22 -25
- package/dist/components/InfinityScroll/index.js.map +1 -0
- package/dist/components/Input/Input.d.ts +43 -0
- package/dist/components/Input/Input.js +57 -99
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.js +22 -25
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/InstantCounter/InstantCounter.d.ts +16 -0
- package/dist/components/InstantCounter/InstantCounter.js +31 -49
- package/dist/components/InstantCounter/InstantCounter.js.map +1 -0
- package/dist/components/InstantCounter/index.d.ts +2 -0
- package/dist/components/InstantCounter/index.js +22 -25
- package/dist/components/InstantCounter/index.js.map +1 -0
- package/dist/components/LavaLamp/LavaLamp.d.ts +12 -0
- package/dist/components/LavaLamp/LavaLamp.data.d.ts +16 -0
- package/dist/components/LavaLamp/LavaLamp.data.js +86 -83
- package/dist/components/LavaLamp/LavaLamp.data.js.map +1 -0
- package/dist/components/LavaLamp/LavaLamp.js +32 -119
- package/dist/components/LavaLamp/LavaLamp.js.map +1 -0
- package/dist/components/LavaLamp/index.d.ts +2 -0
- package/dist/components/LavaLamp/index.js +22 -25
- package/dist/components/LavaLamp/index.js.map +1 -0
- package/dist/components/LavaLamp/v2/LavaLamp.d.ts +4 -0
- package/dist/components/LavaLamp/v2/LavaLamp.js +156 -149
- package/dist/components/LavaLamp/v2/LavaLamp.js.map +1 -0
- package/dist/components/LinkToId/LinkToId.d.ts +11 -0
- package/dist/components/LinkToId/LinkToId.js +27 -39
- package/dist/components/LinkToId/LinkToId.js.map +1 -0
- package/dist/components/LinkToId/index.d.ts +2 -0
- package/dist/components/LinkToId/index.js +22 -25
- package/dist/components/LinkToId/index.js.map +1 -0
- package/dist/components/Loader/Loader.d.ts +8 -0
- package/dist/components/Loader/Loader.js +22 -21
- package/dist/components/Loader/Loader.js.map +1 -0
- package/dist/components/Loader/index.d.ts +2 -0
- package/dist/components/Loader/index.js +22 -25
- package/dist/components/Loader/index.js.map +1 -0
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.d.ts +12 -0
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +15 -27
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js.map +1 -0
- package/dist/components/LoaderDotsIndicator/index.d.ts +2 -0
- package/dist/components/LoaderDotsIndicator/index.js +22 -25
- package/dist/components/LoaderDotsIndicator/index.js.map +1 -0
- package/dist/components/LoopableVideo/LoopableVideo.d.ts +12 -0
- package/dist/components/LoopableVideo/LoopableVideo.js +25 -33
- package/dist/components/LoopableVideo/LoopableVideo.js.map +1 -0
- package/dist/components/LoopableVideo/index.d.ts +2 -0
- package/dist/components/LoopableVideo/index.js +22 -25
- package/dist/components/LoopableVideo/index.js.map +1 -0
- package/dist/components/MainGrid/MainGrid.d.ts +17 -0
- package/dist/components/MainGrid/MainGrid.js +23 -46
- package/dist/components/MainGrid/MainGrid.js.map +1 -0
- package/dist/components/MainGrid/index.d.ts +2 -0
- package/dist/components/MainGrid/index.js +22 -25
- package/dist/components/MainGrid/index.js.map +1 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.d.ts +8 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +23 -27
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js.map +1 -0
- package/dist/components/MutableHamburgerButton/index.d.ts +2 -0
- package/dist/components/MutableHamburgerButton/index.js +22 -25
- package/dist/components/MutableHamburgerButton/index.js.map +1 -0
- package/dist/components/Notification/Notification.d.ts +8 -0
- package/dist/components/Notification/Notification.js +11 -18
- package/dist/components/Notification/Notification.js.map +1 -0
- package/dist/components/Notification/index.d.ts +2 -0
- package/dist/components/Notification/index.js +22 -25
- package/dist/components/Notification/index.js.map +1 -0
- package/dist/components/NumberInput/NumberInput.d.ts +11 -0
- package/dist/components/NumberInput/NumberInput.js +42 -43
- package/dist/components/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/NumberInput/index.d.ts +2 -0
- package/dist/components/NumberInput/index.js +22 -25
- package/dist/components/NumberInput/index.js.map +1 -0
- package/dist/components/OrderableList/OrderableList.d.ts +40 -0
- package/dist/components/OrderableList/OrderableList.js +404 -416
- package/dist/components/OrderableList/OrderableList.js.map +1 -0
- package/dist/components/OrderableList/index.d.ts +2 -0
- package/dist/components/OrderableList/index.js +22 -25
- package/dist/components/OrderableList/index.js.map +1 -0
- package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +45 -0
- package/dist/components/PaginationIndicator/PaginationIndicator.js +198 -243
- package/dist/components/PaginationIndicator/PaginationIndicator.js.map +1 -0
- package/dist/components/PaginationIndicator/index.d.ts +2 -0
- package/dist/components/PaginationIndicator/index.js +22 -25
- package/dist/components/PaginationIndicator/index.js.map +1 -0
- package/dist/components/Parallax/Parallax.d.ts +20 -0
- package/dist/components/Parallax/Parallax.js +130 -156
- package/dist/components/Parallax/Parallax.js.map +1 -0
- package/dist/components/Parallax/index.d.ts +2 -0
- package/dist/components/Parallax/index.js +22 -25
- package/dist/components/Parallax/index.js.map +1 -0
- package/dist/components/Parallax/math/helpers.d.ts +58 -0
- package/dist/components/Parallax/math/helpers.js +216 -120
- package/dist/components/Parallax/math/helpers.js.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.d.ts +48 -0
- package/dist/components/PasswordInput/PasswordInput.js +71 -88
- package/dist/components/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/components/PasswordInput/index.d.ts +2 -0
- package/dist/components/PasswordInput/index.js +22 -25
- package/dist/components/PasswordInput/index.js.map +1 -0
- package/dist/components/PingPongText/PingPongText.d.ts +10 -0
- package/dist/components/PingPongText/PingPongText.js +67 -63
- package/dist/components/PingPongText/PingPongText.js.map +1 -0
- package/dist/components/PingPongText/index.d.ts +2 -0
- package/dist/components/PingPongText/index.js +22 -25
- package/dist/components/PingPongText/index.js.map +1 -0
- package/dist/components/PixelatedScan/PixelatedScan.d.ts +13 -0
- package/dist/components/PixelatedScan/PixelatedScan.js +74 -126
- package/dist/components/PixelatedScan/PixelatedScan.js.map +1 -0
- package/dist/components/PixelatedScan/index.d.ts +2 -0
- package/dist/components/PixelatedScan/index.js +22 -25
- package/dist/components/PixelatedScan/index.js.map +1 -0
- package/dist/components/Portal/Portal.d.ts +20 -0
- package/dist/components/Portal/Portal.js +43 -46
- package/dist/components/Portal/Portal.js.map +1 -0
- package/dist/components/Portal/index.d.ts +2 -0
- package/dist/components/Portal/index.js +22 -25
- package/dist/components/Portal/index.js.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +32 -0
- package/dist/components/ProgressBar/ProgressBar.js +47 -105
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/index.js +22 -25
- package/dist/components/ProgressBar/index.js.map +1 -0
- package/dist/components/ProgressTexts/ProgressTexts.d.ts +29 -0
- package/dist/components/ProgressTexts/ProgressTexts.js +29 -43
- package/dist/components/ProgressTexts/ProgressTexts.js.map +1 -0
- package/dist/components/ProgressTexts/index.d.ts +2 -0
- package/dist/components/ProgressTexts/index.js +22 -25
- package/dist/components/ProgressTexts/index.js.map +1 -0
- package/dist/components/Radio/Radio.d.ts +15 -0
- package/dist/components/Radio/Radio.js +28 -51
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/index.d.ts +2 -0
- package/dist/components/Radio/index.js +22 -25
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.d.ts +7 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.js +12 -18
- package/dist/components/Radio/variants/Checkmark/Checkmark.js.map +1 -0
- package/dist/components/Radio/variants/Checkmark/index.d.ts +2 -0
- package/dist/components/Radio/variants/Checkmark/index.js +22 -25
- package/dist/components/Radio/variants/Checkmark/index.js.map +1 -0
- package/dist/components/Radio/variants/Generic/Generic.d.ts +7 -0
- package/dist/components/Radio/variants/Generic/Generic.js +12 -20
- package/dist/components/Radio/variants/Generic/Generic.js.map +1 -0
- package/dist/components/Radio/variants/Generic/index.d.ts +2 -0
- package/dist/components/Radio/variants/Generic/index.js +22 -25
- package/dist/components/Radio/variants/Generic/index.js.map +1 -0
- package/dist/components/SectionContainer/SectionContainer.d.ts +19 -0
- package/dist/components/SectionContainer/SectionContainer.js +16 -38
- package/dist/components/SectionContainer/SectionContainer.js.map +1 -0
- package/dist/components/SectionContainer/index.d.ts +2 -0
- package/dist/components/SectionContainer/index.js +22 -25
- package/dist/components/SectionContainer/index.js.map +1 -0
- package/dist/components/Select/Select.d.ts +42 -0
- package/dist/components/Select/Select.js +95 -128
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.js +22 -25
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +10 -0
- package/dist/components/Skeleton/Skeleton.js +14 -22
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/index.js +22 -25
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Slider/Slider.d.ts +11 -0
- package/dist/components/Slider/Slider.e2e.d.ts +4 -0
- package/dist/components/Slider/Slider.e2e.js +6 -0
- package/dist/components/Slider/Slider.e2e.js.map +1 -0
- package/dist/components/Slider/Slider.js +59 -63
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.js +22 -25
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Spacing/Spacing.d.ts +11 -0
- package/dist/components/Spacing/Spacing.js +17 -25
- package/dist/components/Spacing/Spacing.js.map +1 -0
- package/dist/components/Spacing/index.d.ts +2 -0
- package/dist/components/Spacing/index.js +22 -25
- package/dist/components/Spacing/index.js.map +1 -0
- package/dist/components/StaticScroller/StaticScroller.d.ts +7 -0
- package/dist/components/StaticScroller/StaticScroller.js +61 -65
- package/dist/components/StaticScroller/StaticScroller.js.map +1 -0
- package/dist/components/StaticScroller/index.d.ts +2 -0
- package/dist/components/StaticScroller/index.js +22 -25
- package/dist/components/StaticScroller/index.js.map +1 -0
- package/dist/components/Switch/Switch.d.ts +12 -0
- package/dist/components/Switch/Switch.js +26 -40
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.js +22 -25
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Table/Table.d.ts +23 -0
- package/dist/components/Table/Table.js +56 -107
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/index.d.ts +2 -0
- package/dist/components/Table/index.js +22 -25
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +28 -0
- package/dist/components/Tabs/Tabs.js +54 -59
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.js +22 -25
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Text/Text.d.ts +22 -0
- package/dist/components/Text/Text.js +30 -35
- package/dist/components/Text/Text.js.map +1 -0
- package/dist/components/Text/index.d.ts +2 -0
- package/dist/components/Text/index.js +22 -25
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Transition/MasksFactory/DiagonalReveal.d.ts +1 -0
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +12 -46
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js.map +1 -0
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.d.ts +5 -0
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +49 -71
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js.map +1 -0
- package/dist/components/Transition/MasksFactory/PhysicsSquares.d.ts +7 -0
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +79 -89
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js.map +1 -0
- package/dist/components/Transition/MasksFactory/SquareToBalls.d.ts +5 -0
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +41 -60
- package/dist/components/Transition/MasksFactory/SquareToBalls.js.map +1 -0
- package/dist/components/Transition/MasksFactory/utils.d.ts +8 -0
- package/dist/components/Transition/MasksFactory/utils.js +27 -25
- package/dist/components/Transition/MasksFactory/utils.js.map +1 -0
- package/dist/components/Transition/Transition.d.ts +114 -0
- package/dist/components/Transition/Transition.js +319 -298
- package/dist/components/Transition/Transition.js.map +1 -0
- package/dist/components/Transition/index.d.ts +2 -0
- package/dist/components/Transition/index.js +22 -25
- package/dist/components/Transition/index.js.map +1 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +17 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +93 -101
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js.map +1 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.d.ts +1 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +19 -27
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js.map +1 -0
- package/dist/components/UncontrolledTransition/index.d.ts +2 -0
- package/dist/components/UncontrolledTransition/index.js +22 -25
- package/dist/components/UncontrolledTransition/index.js.map +1 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.d.ts +55 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +94 -101
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js.map +1 -0
- package/dist/components/WalletConnectionWrapper/index.d.ts +2 -0
- package/dist/components/WalletConnectionWrapper/index.js +22 -25
- package/dist/components/WalletConnectionWrapper/index.js.map +1 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.d.ts +7 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +43 -53
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js.map +1 -0
- package/dist/components/utilitary/ScrollAndFocusLock/index.d.ts +2 -0
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +22 -25
- package/dist/components/utilitary/ScrollAndFocusLock/index.js.map +1 -0
- package/dist/context/AsyncProcess.d.ts +23 -0
- package/dist/context/AsyncProcess.js +41 -68
- package/dist/context/AsyncProcess.js.map +1 -0
- package/dist/context/ContextAsyncControl.d.ts +39 -0
- package/dist/context/ContextAsyncControl.js +51 -72
- package/dist/context/ContextAsyncControl.js.map +1 -0
- package/dist/context/CustomBrowserRouter.d.ts +19 -0
- package/dist/context/CustomBrowserRouter.js +30 -44
- package/dist/context/CustomBrowserRouter.js.map +1 -0
- package/dist/context/OneUIProvider.d.ts +209 -0
- package/dist/context/OneUIProvider.js +108 -102
- package/dist/context/OneUIProvider.js.map +1 -0
- package/dist/hooks/logs/useDependencyChangeDetection.d.ts +1 -0
- package/dist/hooks/logs/useDependencyChangeDetection.js +16 -17
- package/dist/hooks/logs/useDependencyChangeDetection.js.map +1 -0
- package/dist/hooks/logs/useIsMounting.d.ts +1 -0
- package/dist/hooks/logs/useIsMounting.js +7 -10
- package/dist/hooks/logs/useIsMounting.js.map +1 -0
- package/dist/hooks/persistence/useLocalStorage.d.ts +2 -0
- package/dist/hooks/persistence/useLocalStorage.js +40 -41
- package/dist/hooks/persistence/useLocalStorage.js.map +1 -0
- package/dist/hooks/shims/ObjectWatchShim.d.ts +1 -0
- package/dist/hooks/shims/ObjectWatchShim.js +46 -47
- package/dist/hooks/shims/ObjectWatchShim.js.map +1 -0
- package/dist/hooks/ui/useAdaptiveImage.d.ts +7 -0
- package/dist/hooks/ui/useAdaptiveImage.js +34 -29
- package/dist/hooks/ui/useAdaptiveImage.js.map +1 -0
- package/dist/hooks/ui/useAlternating.d.ts +4 -0
- package/dist/hooks/ui/useAlternating.js +18 -18
- package/dist/hooks/ui/useAlternating.js.map +1 -0
- package/dist/hooks/ui/useBreakpoint.d.ts +5 -0
- package/dist/hooks/ui/useBreakpoint.js +18 -19
- package/dist/hooks/ui/useBreakpoint.js.map +1 -0
- package/dist/hooks/ui/useCustomScrollbar.d.ts +8 -0
- package/dist/hooks/ui/useCustomScrollbar.js +21 -26
- package/dist/hooks/ui/useCustomScrollbar.js.map +1 -0
- package/dist/hooks/ui/useEffectIf.d.ts +2 -0
- package/dist/hooks/ui/useEffectIf.js +9 -11
- package/dist/hooks/ui/useEffectIf.js.map +1 -0
- package/dist/hooks/ui/useMouseHover.d.ts +11 -0
- package/dist/hooks/ui/useMouseHover.js +19 -25
- package/dist/hooks/ui/useMouseHover.js.map +1 -0
- package/dist/hooks/ui/usePaginationControls.d.ts +14 -0
- package/dist/hooks/ui/usePaginationControls.js +136 -129
- package/dist/hooks/ui/usePaginationControls.js.map +1 -0
- package/dist/hooks/ui/useSnapToViewport.d.ts +5 -0
- package/dist/hooks/ui/useSnapToViewport.js +19 -20
- package/dist/hooks/ui/useSnapToViewport.js.map +1 -0
- package/dist/hooks/ui/useTilt.d.ts +46 -0
- package/dist/hooks/ui/useTilt.js +129 -145
- package/dist/hooks/ui/useTilt.js.map +1 -0
- package/dist/hooks/ui/useZoomable.d.ts +6 -0
- package/dist/hooks/ui/useZoomable.js +116 -123
- package/dist/hooks/ui/useZoomable.js.map +1 -0
- package/dist/hooks/useAsyncControl.d.ts +32 -0
- package/dist/hooks/useAsyncControl.js +52 -67
- package/dist/hooks/useAsyncControl.js.map +1 -0
- package/dist/hooks/useContainedRepositioning.d.ts +15 -0
- package/dist/hooks/useContainedRepositioning.js +71 -75
- package/dist/hooks/useContainedRepositioning.js.map +1 -0
- package/dist/hooks/useCustomHistory.d.ts +14 -0
- package/dist/hooks/useCustomHistory.js +12 -21
- package/dist/hooks/useCustomHistory.js.map +1 -0
- package/dist/hooks/useElementFit.d.ts +18 -0
- package/dist/hooks/useElementFit.js +48 -43
- package/dist/hooks/useElementFit.js.map +1 -0
- package/dist/hooks/useFirestoreWatch.d.ts +12 -0
- package/dist/hooks/useFirestoreWatch.js +41 -41
- package/dist/hooks/useFirestoreWatch.js.map +1 -0
- package/dist/hooks/useFreeze.d.ts +5 -0
- package/dist/hooks/useFreeze.js +8 -10
- package/dist/hooks/useFreeze.js.map +1 -0
- package/dist/hooks/useHero.d.ts +68 -0
- package/dist/hooks/useHero.js +271 -249
- package/dist/hooks/useHero.js.map +1 -0
- package/dist/hooks/useIntersection.d.ts +8 -0
- package/dist/hooks/useIntersection.js +27 -32
- package/dist/hooks/useIntersection.js.map +1 -0
- package/dist/hooks/useMergeRefs.d.ts +9 -0
- package/dist/hooks/useMergeRefs.js +24 -27
- package/dist/hooks/useMergeRefs.js.map +1 -0
- package/dist/hooks/useObserve.d.ts +6 -0
- package/dist/hooks/useObserve.js +14 -17
- package/dist/hooks/useObserve.js.map +1 -0
- package/dist/hooks/usePagination.d.ts +57 -0
- package/dist/hooks/usePagination.js +164 -147
- package/dist/hooks/usePagination.js.map +1 -0
- package/dist/hooks/usePooledOperation.d.ts +19 -0
- package/dist/hooks/usePooledOperation.js +57 -41
- package/dist/hooks/usePooledOperation.js.map +1 -0
- package/dist/hooks/usePooling.d.ts +22 -0
- package/dist/hooks/usePooling.js +49 -46
- package/dist/hooks/usePooling.js.map +1 -0
- package/dist/hooks/useRebound.d.ts +13 -0
- package/dist/hooks/useRebound.js +19 -23
- package/dist/hooks/useRebound.js.map +1 -0
- package/dist/hooks/useShortIntl.d.ts +21 -0
- package/dist/hooks/useShortIntl.js +50 -72
- package/dist/hooks/useShortIntl.js.map +1 -0
- package/dist/hooks/utility/useAsyncMemo.d.ts +13 -0
- package/dist/hooks/utility/useAsyncMemo.js +42 -36
- package/dist/hooks/utility/useAsyncMemo.js.map +1 -0
- package/dist/hooks/utility/useDepChange.d.ts +1 -0
- package/dist/hooks/utility/useDepChange.js +12 -14
- package/dist/hooks/utility/useDepChange.js.map +1 -0
- package/dist/hooks/utility/useEvents.d.ts +9 -0
- package/dist/hooks/utility/useEvents.js +21 -26
- package/dist/hooks/utility/useEvents.js.map +1 -0
- package/dist/hooks/utility/useImmediate.d.ts +4 -0
- package/dist/hooks/utility/useImmediate.js +5 -8
- package/dist/hooks/utility/useImmediate.js.map +1 -0
- package/dist/hooks/utility/useManualInit.d.ts +4 -0
- package/dist/hooks/utility/useManualInit.js +17 -19
- package/dist/hooks/utility/useManualInit.js.map +1 -0
- package/dist/hooks/utility/useModule.d.ts +4 -0
- package/dist/hooks/utility/useModule.js +9 -12
- package/dist/hooks/utility/useModule.js.map +1 -0
- package/dist/hooks/utility/useQuery.d.ts +7 -0
- package/dist/hooks/utility/useQuery.js +7 -13
- package/dist/hooks/utility/useQuery.js.map +1 -0
- package/dist/hooks/utility/useUniqueEffect.d.ts +1 -0
- package/dist/hooks/utility/useUniqueEffect.js +17 -17
- package/dist/hooks/utility/useUniqueEffect.js.map +1 -0
- package/dist/index.d.ts +223 -0
- package/dist/index.js +349 -2147
- package/dist/index.js.map +1 -0
- package/dist/index.preprocess.d.ts +1 -0
- package/dist/index.preprocess.js +72 -35
- package/dist/index.preprocess.js.map +1 -0
- package/dist/models/DebugLogger.d.ts +4 -0
- package/dist/models/DebugLogger.js +5 -8
- package/dist/models/DebugLogger.js.map +1 -0
- package/dist/models/GenericContract.d.ts +100 -0
- package/dist/models/GenericContract.js +13 -42
- package/dist/models/GenericContract.js.map +1 -0
- package/dist/models/ImageScales.d.ts +7 -0
- package/dist/models/ImageScales.js +12 -0
- package/dist/models/ImageScales.js.map +1 -0
- package/dist/models/Orbs.d.ts +44 -0
- package/dist/models/Orbs.js +47 -53
- package/dist/models/Orbs.js.map +1 -0
- package/dist/storybookUtils/index.d.ts +5 -0
- package/dist/storybookUtils/index.js +39 -40
- package/dist/storybookUtils/index.js.map +1 -0
- package/dist/type-utils.d.ts +59 -0
- package/dist/type-utils.js +2 -5
- package/dist/type-utils.js.map +1 -0
- package/dist/types.d.ts +79 -0
- package/dist/types.js +2 -5
- package/dist/types.js.map +1 -0
- package/dist/utils/blockchain.d.ts +8 -0
- package/dist/utils/blockchain.js +54 -35
- package/dist/utils/blockchain.js.map +1 -0
- package/dist/utils/e2e.d.ts +19 -0
- package/dist/utils/e2e.js +11 -21
- package/dist/utils/e2e.js.map +1 -0
- package/dist/utils/flatten.d.ts +5 -0
- package/dist/utils/flatten.js +12 -15
- package/dist/utils/flatten.js.map +1 -0
- package/dist/utils/formatters.d.ts +21 -0
- package/dist/utils/formatters.js +43 -48
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/html.utils.d.ts +2 -0
- package/dist/utils/html.utils.js +6 -12
- package/dist/utils/html.utils.js.map +1 -0
- package/dist/utils/ownEvent.d.ts +4 -0
- package/dist/utils/ownEvent.js +7 -9
- package/dist/utils/ownEvent.js.map +1 -0
- package/dist/utils/test.d.ts +6 -0
- package/dist/utils/test.js +11 -13
- package/dist/utils/test.js.map +1 -0
- package/dist-ts/components/AdaptiveDialog/AdaptiveDialog.js +3 -1
- package/dist-ts/components/AdaptiveDialog/AdaptiveDialog.js.map +1 -1
- package/dist-ts/components/AdaptiveDialog/AdaptiveDialog.module.scss +17 -3
- package/dist-ts/components/Form/FormField/Extensions/DateField/DateField.js +2 -2
- package/dist-ts/components/Form/FormField/Extensions/DateField/DateField.js.map +1 -1
- package/dist-ts/components/Form/FormField/FormField.js +5 -5
- package/dist-ts/components/Form/FormField/FormField.js.map +1 -1
- package/dist-ts/context/OneUIProvider.d.ts +6 -0
- package/dist-ts/context/OneUIProvider.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,439 +1,427 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
function
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
OrderableListReorderMode["TWO_DIMENSIONS"] = "hv";
|
|
36
|
-
return OrderableListReorderMode;
|
|
37
|
-
}({});
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.useOrderableEvents = exports.useOrderableListAnchor = exports.OrderableListReorderMode = void 0;
|
|
18
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
+
const throttle_1 = __importDefault(require("lodash/throttle"));
|
|
20
|
+
const react_1 = require("react");
|
|
21
|
+
const UncontrolledTransition_1 = __importDefault(require("../UncontrolledTransition"));
|
|
22
|
+
const Transition_module_scss_1 = __importDefault(require("../Transition/Transition.module.scss"));
|
|
23
|
+
const useHero_1 = __importDefault(require("../../hooks/useHero"));
|
|
24
|
+
const AnimatedEntrance_1 = __importDefault(require("../AnimatedEntrance"));
|
|
25
|
+
const Transition_1 = require("../Transition");
|
|
26
|
+
const OrderableList_module_scss_1 = __importDefault(require("./OrderableList.module.scss"));
|
|
27
|
+
const useEvents_1 = __importDefault(require("../../hooks/utility/useEvents"));
|
|
28
|
+
const ownEvent_1 = __importDefault(require("../../utils/ownEvent"));
|
|
29
|
+
const OrderableListContext = (0, react_1.createContext)(null);
|
|
30
|
+
var OrderableListReorderMode;
|
|
31
|
+
(function (OrderableListReorderMode) {
|
|
32
|
+
OrderableListReorderMode["VERTICAL"] = "v";
|
|
33
|
+
OrderableListReorderMode["TWO_DIMENSIONS"] = "hv";
|
|
34
|
+
})(OrderableListReorderMode || (exports.OrderableListReorderMode = OrderableListReorderMode = {}));
|
|
38
35
|
function cleanKeys(keys) {
|
|
39
|
-
|
|
36
|
+
return keys.map((a) => a.split(";")[0]);
|
|
40
37
|
}
|
|
41
|
-
|
|
42
38
|
/**
|
|
43
39
|
* This component displays a list of items that can be reordered by dragging them with your mouse or touch.
|
|
44
40
|
* It supports simple vertical dragging and more advanced 2D reordering, with smooth animations
|
|
45
41
|
* when items move around.
|
|
46
42
|
*/
|
|
47
|
-
function OrderableList(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const orderId = (0, _react.useMemo)(() => "key-" + cleanOrder.join(""), [cleanOrder]);
|
|
77
|
-
function rootEl() {
|
|
78
|
-
if (mode === OrderableListReorderMode.TWO_DIMENSIONS) return rootRef.current.lastElementChild.lastElementChild;
|
|
79
|
-
return rootRef.current;
|
|
80
|
-
}
|
|
81
|
-
const findParentElement = target => {
|
|
82
|
-
let parent = target;
|
|
83
|
-
while (parent.parentElement !== rootEl()) {
|
|
84
|
-
if (parent.parentElement === null) break;
|
|
85
|
-
parent = parent.parentElement;
|
|
43
|
+
function OrderableList(_a) {
|
|
44
|
+
var { children, className = "", mode = OrderableListReorderMode.VERTICAL, shrinkToOnOrder, reorderingClassName, cloneClassName } = _a, props = __rest(_a, ["children", "className", "mode", "shrinkToOnOrder", "reorderingClassName", "cloneClassName"]);
|
|
45
|
+
const availableKeys = children.map((a) => a.key);
|
|
46
|
+
const availableKeysDep = availableKeys.join(",");
|
|
47
|
+
const initializeOrder = (0, react_1.useCallback)(() => {
|
|
48
|
+
const missingOrderKeys = "keyOrder" in props && props.keyOrder
|
|
49
|
+
? availableKeys.filter((a) => !props.keyOrder.includes(a))
|
|
50
|
+
: [];
|
|
51
|
+
return (("keyOrder" in props && props.keyOrder
|
|
52
|
+
? [...props.keyOrder, ...missingOrderKeys]
|
|
53
|
+
: undefined) || availableKeys);
|
|
54
|
+
}, [availableKeysDep, props.keyOrder]);
|
|
55
|
+
const { current: anchorsList } = (0, react_1.useRef)([]);
|
|
56
|
+
const eventEmitter = (0, useEvents_1.default)();
|
|
57
|
+
const currentClone = (0, react_1.useRef)(null);
|
|
58
|
+
const currentWorkingKey = (0, react_1.useRef)(undefined);
|
|
59
|
+
const rootRef = (0, react_1.useRef)(null);
|
|
60
|
+
const [_order, setOrder] = (0, react_1.useState)(initializeOrder);
|
|
61
|
+
(0, react_1.useEffect)(() => setOrder(initializeOrder()), [initializeOrder]);
|
|
62
|
+
const order = (0, react_1.useMemo)(() => {
|
|
63
|
+
return ("currentOrder" in props ? props.currentOrder || _order : _order).filter((o) => o.includes(";") || availableKeys.includes(o));
|
|
64
|
+
}, [props.currentOrder, _order, availableKeysDep]);
|
|
65
|
+
const cleanOrder = (0, react_1.useMemo)(() => order.map((a) => a.split(";")[0]), [order]);
|
|
66
|
+
const orderId = (0, react_1.useMemo)(() => "key-" + cleanOrder.join(""), [cleanOrder]);
|
|
67
|
+
function rootEl() {
|
|
68
|
+
if (mode === OrderableListReorderMode.TWO_DIMENSIONS)
|
|
69
|
+
return rootRef.current.lastElementChild
|
|
70
|
+
.lastElementChild;
|
|
71
|
+
return rootRef.current;
|
|
86
72
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
73
|
+
const findParentElement = (target) => {
|
|
74
|
+
let parent = target;
|
|
75
|
+
while (parent.parentElement !== rootEl()) {
|
|
76
|
+
if (parent.parentElement === null)
|
|
77
|
+
break;
|
|
78
|
+
parent = parent.parentElement;
|
|
79
|
+
}
|
|
80
|
+
if (process.env.NODE_ENV === "development" && parent === null)
|
|
81
|
+
throw new Error("It seems like we could not find a relation between this element and the root list. Are you using portals maybe?");
|
|
82
|
+
return parent;
|
|
83
|
+
};
|
|
84
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
85
|
+
if (shrinkToOnOrder)
|
|
86
|
+
rootEl().style.setProperty("--shrink-to", `${shrinkToOnOrder}px`);
|
|
87
|
+
}, [shrinkToOnOrder]);
|
|
88
|
+
const calculateReordering = (0, react_1.useMemo)(() => {
|
|
89
|
+
return (0, throttle_1.default)((e, els, currentOrder) => {
|
|
90
|
+
if (els.length > currentOrder.length || !currentWorkingKey.current)
|
|
91
|
+
return;
|
|
92
|
+
const parent = findParentElement(e.target);
|
|
93
|
+
const indexOfKeyInCleanOrder = els.indexOf(parent);
|
|
94
|
+
const keyOfTheOverElement = currentOrder[indexOfKeyInCleanOrder];
|
|
95
|
+
const isDraggingOwnElement = currentWorkingKey.current === keyOfTheOverElement;
|
|
96
|
+
if (indexOfKeyInCleanOrder === -1 || keyOfTheOverElement === undefined)
|
|
97
|
+
return;
|
|
98
|
+
if (!isDraggingOwnElement) {
|
|
99
|
+
const { isAfter, isBefore } = (() => {
|
|
100
|
+
if (mode === OrderableListReorderMode.TWO_DIMENSIONS) {
|
|
101
|
+
const distanceFromLeft = e.offsetX;
|
|
102
|
+
const widthOfEl = parent.clientWidth;
|
|
103
|
+
const offset = widthOfEl * 0.25;
|
|
104
|
+
const isAfter = distanceFromLeft > widthOfEl - offset;
|
|
105
|
+
const isBefore = distanceFromLeft < offset;
|
|
106
|
+
return { isAfter, isBefore };
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const distanceFromTop = e.offsetY;
|
|
110
|
+
const heightOfEl = parent.clientHeight;
|
|
111
|
+
const offset = heightOfEl * 0.25;
|
|
112
|
+
const isAfter = distanceFromTop > heightOfEl - offset;
|
|
113
|
+
const isBefore = distanceFromTop < offset;
|
|
114
|
+
return { isAfter, isBefore };
|
|
115
|
+
}
|
|
116
|
+
})();
|
|
117
|
+
const checkIfCanMove = (keyOfOverElement) => {
|
|
118
|
+
return (keyOfOverElement === undefined ||
|
|
119
|
+
keyOfOverElement !== currentWorkingKey.current);
|
|
120
|
+
};
|
|
121
|
+
const indexOfTheNewElement = indexOfKeyInCleanOrder + (isAfter ? 1 : -1);
|
|
122
|
+
const shouldTriggerReordering = (isAfter || isBefore) &&
|
|
123
|
+
checkIfCanMove(currentOrder[indexOfTheNewElement]);
|
|
124
|
+
if (shouldTriggerReordering) {
|
|
125
|
+
setOrder((p) => {
|
|
126
|
+
const previousIndex = currentOrder.indexOf(currentWorkingKey.current);
|
|
127
|
+
const indexOfKeyInProvidedOrder = cleanKeys(p).indexOf(keyOfTheOverElement);
|
|
128
|
+
let indexOfTheNewElement = indexOfKeyInProvidedOrder + (isBefore ? -1 : 0);
|
|
129
|
+
if (previousIndex > indexOfTheNewElement)
|
|
130
|
+
indexOfTheNewElement++;
|
|
131
|
+
const orderWithoutCurrent = p.filter((a) => {
|
|
132
|
+
if (a.startsWith(`${currentWorkingKey.current};`))
|
|
133
|
+
return false;
|
|
134
|
+
return a !== currentWorkingKey.current;
|
|
135
|
+
});
|
|
136
|
+
orderWithoutCurrent.splice(indexOfTheNewElement, 0, `${currentWorkingKey.current};${Date.now()}`);
|
|
137
|
+
return orderWithoutCurrent;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}, 1000 / 60);
|
|
142
|
+
}, []);
|
|
143
|
+
(0, react_1.useEffect)(() => {
|
|
144
|
+
function registerListeners() {
|
|
145
|
+
const els = Array.from(rootEl().children);
|
|
146
|
+
const calculateReorderingCall = (e) => {
|
|
147
|
+
const els = Array.from(rootEl().children);
|
|
148
|
+
calculateReordering(e, els, cleanOrder);
|
|
115
149
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const isBefore = distanceFromTop < offset;
|
|
122
|
-
return {
|
|
123
|
-
isAfter,
|
|
124
|
-
isBefore
|
|
150
|
+
for (let el of els)
|
|
151
|
+
el.addEventListener("mousemove", calculateReorderingCall);
|
|
152
|
+
return () => {
|
|
153
|
+
for (let el of els)
|
|
154
|
+
el.removeEventListener("mousemove", calculateReorderingCall);
|
|
125
155
|
};
|
|
126
|
-
}
|
|
127
|
-
})();
|
|
128
|
-
const checkIfCanMove = keyOfOverElement => {
|
|
129
|
-
return keyOfOverElement === undefined || keyOfOverElement !== currentWorkingKey.current;
|
|
130
|
-
};
|
|
131
|
-
const indexOfTheNewElement = indexOfKeyInCleanOrder + (isAfter ? 1 : -1);
|
|
132
|
-
const shouldTriggerReordering = (isAfter || isBefore) && checkIfCanMove(currentOrder[indexOfTheNewElement]);
|
|
133
|
-
if (shouldTriggerReordering) {
|
|
134
|
-
setOrder(p => {
|
|
135
|
-
const previousIndex = currentOrder.indexOf(currentWorkingKey.current);
|
|
136
|
-
const indexOfKeyInProvidedOrder = cleanKeys(p).indexOf(keyOfTheOverElement);
|
|
137
|
-
let indexOfTheNewElement = indexOfKeyInProvidedOrder + (isBefore ? -1 : 0);
|
|
138
|
-
if (previousIndex > indexOfTheNewElement) indexOfTheNewElement++;
|
|
139
|
-
const orderWithoutCurrent = p.filter(a => {
|
|
140
|
-
if (a.startsWith("".concat(currentWorkingKey.current, ";"))) return false;
|
|
141
|
-
return a !== currentWorkingKey.current;
|
|
142
|
-
});
|
|
143
|
-
orderWithoutCurrent.splice(indexOfTheNewElement, 0, "".concat(currentWorkingKey.current, ";").concat(Date.now()));
|
|
144
|
-
return orderWithoutCurrent;
|
|
145
|
-
});
|
|
146
156
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}, [cleanOrder]);
|
|
175
|
-
(0, _react.useEffect)(() => {
|
|
176
|
-
if ("onChangeKeyOrder" in props) props.onChangeKeyOrder(cleanKeys(_order));
|
|
177
|
-
}, [_order]);
|
|
178
|
-
const cleanOrderRef = (0, _react.useRef)(cleanOrder);
|
|
179
|
-
(0, _react.useEffect)(() => {
|
|
180
|
-
cleanOrderRef.current = cleanOrder;
|
|
181
|
-
}, [cleanOrder]);
|
|
182
|
-
const onAnchorClick = (0, _react.useCallback)(_ref2 => {
|
|
183
|
-
let {
|
|
184
|
-
target: anchor
|
|
185
|
-
} = _ref2;
|
|
186
|
-
let offset;
|
|
187
|
-
const orderableListItemForAnchor = findParentElement(anchor);
|
|
188
|
-
const box = orderableListItemForAnchor.getBoundingClientRect();
|
|
189
|
-
const els = Array.from(rootEl().children);
|
|
190
|
-
const elIndex = els.indexOf(orderableListItemForAnchor);
|
|
191
|
-
const clone = orderableListItemForAnchor.cloneNode(true);
|
|
192
|
-
currentClone.current = clone;
|
|
193
|
-
if (process.env.NODE_ENV === "development") clone.setAttribute("data-testid", "orderable-list-clone");
|
|
194
|
-
clone.setAttribute("data-orderableid", "orderable-list-clone");
|
|
195
|
-
clone.style.width = "".concat(box.width, "px");
|
|
196
|
-
clone.style.height = "".concat(box.height, "px");
|
|
197
|
-
clone.style.top = "".concat(box.top, "px");
|
|
198
|
-
clone.style.left = "".concat(box.left, "px");
|
|
199
|
-
clone.classList.add(_OrderableListModule.default.clone);
|
|
200
|
-
if (shrinkToOnOrder) clone.style.maxHeight = "".concat(box.height, "px");
|
|
201
|
-
setTimeout(() => {
|
|
202
|
-
if (cloneClassName) clone.classList.add(cloneClassName);
|
|
203
|
-
if (shrinkToOnOrder) clone.style.maxHeight = "".concat(shrinkToOnOrder, "px");
|
|
204
|
-
}, 0);
|
|
205
|
-
orderableListItemForAnchor.classList.add(_OrderableListModule.default.currentOrdering);
|
|
206
|
-
orderableListItemForAnchor.classList.remove(_OrderableListModule.default.visible);
|
|
207
|
-
const movementControl = e => {
|
|
208
|
-
const {
|
|
209
|
-
x: x1,
|
|
210
|
-
y: y1
|
|
211
|
-
} = "touches" in e ? {
|
|
212
|
-
x: e.touches[0].pageX,
|
|
213
|
-
y: e.touches[0].pageY
|
|
214
|
-
} : e;
|
|
215
|
-
if (!offset) offset = [x1 - box.left, y1 - box.top];
|
|
216
|
-
const [offsetX, offsetY] = offset;
|
|
217
|
-
clone.style.top = "".concat(y1 - offsetY, "px");
|
|
218
|
-
clone.style.left = "".concat(x1 - offsetX, "px");
|
|
219
|
-
};
|
|
220
|
-
document.body.appendChild(clone);
|
|
221
|
-
const deleteClone = () => {
|
|
222
|
-
window.removeEventListener("mousemove", movementControl);
|
|
223
|
-
window.removeEventListener("touchmove", movementControl);
|
|
224
|
-
window.removeEventListener("touchend", deleteClone);
|
|
225
|
-
window.removeEventListener("mouseup", deleteClone);
|
|
226
|
-
orderableListItemForAnchor.style.visibility = "initial";
|
|
227
|
-
currentWorkingKey.current = undefined;
|
|
228
|
-
window.document.body.classList.remove(_OrderableListModule.default.unselectable);
|
|
229
|
-
{
|
|
157
|
+
if (mode === OrderableListReorderMode.VERTICAL) {
|
|
158
|
+
return registerListeners();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
let unsubscribe;
|
|
162
|
+
let timeout = setTimeout(() => {
|
|
163
|
+
unsubscribe = registerListeners();
|
|
164
|
+
}, 250);
|
|
165
|
+
return () => {
|
|
166
|
+
clearTimeout(timeout);
|
|
167
|
+
if (unsubscribe)
|
|
168
|
+
unsubscribe();
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}, [cleanOrder]);
|
|
172
|
+
(0, react_1.useEffect)(() => {
|
|
173
|
+
if ("onChangeKeyOrder" in props)
|
|
174
|
+
props.onChangeKeyOrder(cleanKeys(_order));
|
|
175
|
+
}, [_order]);
|
|
176
|
+
const cleanOrderRef = (0, react_1.useRef)(cleanOrder);
|
|
177
|
+
(0, react_1.useEffect)(() => {
|
|
178
|
+
cleanOrderRef.current = cleanOrder;
|
|
179
|
+
}, [cleanOrder]);
|
|
180
|
+
const onAnchorClick = (0, react_1.useCallback)(({ target: anchor }) => {
|
|
181
|
+
let offset;
|
|
182
|
+
const orderableListItemForAnchor = findParentElement(anchor);
|
|
183
|
+
const box = orderableListItemForAnchor.getBoundingClientRect();
|
|
230
184
|
const els = Array.from(rootEl().children);
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
185
|
+
const elIndex = els.indexOf(orderableListItemForAnchor);
|
|
186
|
+
const clone = orderableListItemForAnchor.cloneNode(true);
|
|
187
|
+
currentClone.current = clone;
|
|
188
|
+
if (process.env.NODE_ENV === "development")
|
|
189
|
+
clone.setAttribute("data-testid", "orderable-list-clone");
|
|
190
|
+
clone.setAttribute("data-orderableid", "orderable-list-clone");
|
|
191
|
+
clone.style.width = `${box.width}px`;
|
|
192
|
+
clone.style.height = `${box.height}px`;
|
|
193
|
+
clone.style.top = `${box.top}px`;
|
|
194
|
+
clone.style.left = `${box.left}px`;
|
|
195
|
+
clone.classList.add(OrderableList_module_scss_1.default.clone);
|
|
196
|
+
if (shrinkToOnOrder)
|
|
197
|
+
clone.style.maxHeight = `${box.height}px`;
|
|
198
|
+
setTimeout(() => {
|
|
199
|
+
if (cloneClassName)
|
|
200
|
+
clone.classList.add(cloneClassName);
|
|
201
|
+
if (shrinkToOnOrder)
|
|
202
|
+
clone.style.maxHeight = `${shrinkToOnOrder}px`;
|
|
203
|
+
}, 0);
|
|
204
|
+
orderableListItemForAnchor.classList.add(OrderableList_module_scss_1.default.currentOrdering);
|
|
205
|
+
orderableListItemForAnchor.classList.remove(OrderableList_module_scss_1.default.visible);
|
|
206
|
+
const movementControl = (e) => {
|
|
207
|
+
const { x: x1, y: y1 } = "touches" in e ? { x: e.touches[0].pageX, y: e.touches[0].pageY } : e;
|
|
208
|
+
if (!offset)
|
|
209
|
+
offset = [x1 - box.left, y1 - box.top];
|
|
210
|
+
const [offsetX, offsetY] = offset;
|
|
211
|
+
clone.style.top = `${y1 - offsetY}px`;
|
|
212
|
+
clone.style.left = `${x1 - offsetX}px`;
|
|
213
|
+
};
|
|
214
|
+
document.body.appendChild(clone);
|
|
215
|
+
const deleteClone = () => {
|
|
216
|
+
window.removeEventListener("mousemove", movementControl);
|
|
217
|
+
window.removeEventListener("touchmove", movementControl);
|
|
218
|
+
window.removeEventListener("touchend", deleteClone);
|
|
219
|
+
window.removeEventListener("mouseup", deleteClone);
|
|
220
|
+
orderableListItemForAnchor.style.visibility = "initial";
|
|
221
|
+
currentWorkingKey.current = undefined;
|
|
222
|
+
window.document.body.classList.remove(OrderableList_module_scss_1.default.unselectable);
|
|
223
|
+
{
|
|
224
|
+
const els = Array.from(rootEl().children);
|
|
225
|
+
const elInvisible = els.find((a) => !a.classList.contains(OrderableList_module_scss_1.default.visible) &&
|
|
226
|
+
a.style.maxHeight !== "0px");
|
|
227
|
+
if (shrinkToOnOrder) {
|
|
228
|
+
const child = elInvisible.lastElementChild;
|
|
229
|
+
child.style.maxHeight = `${child.scrollHeight}px`;
|
|
230
|
+
child.classList.add(OrderableList_module_scss_1.default.transitionHeight);
|
|
231
|
+
const onEnd = (0, ownEvent_1.default)(() => {
|
|
232
|
+
child.removeEventListener("transitionend", onEnd);
|
|
233
|
+
child.style.maxHeight = `initial`;
|
|
234
|
+
child.classList.remove(OrderableList_module_scss_1.default.transitionHeight);
|
|
235
|
+
});
|
|
236
|
+
child.addEventListener("transitionend", onEnd);
|
|
237
|
+
}
|
|
238
|
+
const box = elInvisible.getBoundingClientRect();
|
|
239
|
+
function cleanUp() {
|
|
240
|
+
if (shrinkToOnOrder) {
|
|
241
|
+
rootEl().style.removeProperty("padding-top");
|
|
242
|
+
rootEl().style.removeProperty("min-height");
|
|
243
|
+
}
|
|
244
|
+
eventEmitter.dispatcher("order-stop");
|
|
245
|
+
rootEl().classList.remove(OrderableList_module_scss_1.default.ordering);
|
|
246
|
+
if (reorderingClassName)
|
|
247
|
+
rootEl().classList.remove(reorderingClassName);
|
|
248
|
+
for (let el of els)
|
|
249
|
+
el.classList.remove(OrderableList_module_scss_1.default.visible);
|
|
250
|
+
clone.remove();
|
|
251
|
+
currentClone.current = null;
|
|
252
|
+
for (let el of Array.from(elInvisible.children))
|
|
253
|
+
el.style.height = "";
|
|
254
|
+
}
|
|
255
|
+
if (clone.style.top.startsWith(Math.floor(box.top).toString()) &&
|
|
256
|
+
clone.style.left.startsWith(Math.floor(box.left).toString())) {
|
|
257
|
+
cleanUp();
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
clone.style.top = `${box.top}px`;
|
|
261
|
+
clone.style.left = `${box.left}px`;
|
|
262
|
+
clone.style.transition = `top 500ms linear, left 500ms linear`;
|
|
263
|
+
clone.addEventListener("transitionend", () => {
|
|
264
|
+
cleanUp();
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
for (let el of els) {
|
|
270
|
+
el.classList.add(OrderableList_module_scss_1.default.visible);
|
|
242
271
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (reorderingClassName) rootEl().classList.remove(reorderingClassName);
|
|
252
|
-
for (let el of els) el.classList.remove(_OrderableListModule.default.visible);
|
|
253
|
-
clone.remove();
|
|
254
|
-
currentClone.current = null;
|
|
255
|
-
for (let el of Array.from(elInvisible.children)) el.style.height = "";
|
|
272
|
+
if (shrinkToOnOrder) {
|
|
273
|
+
for (let el of els)
|
|
274
|
+
el.style.maxHeight = `${el.scrollHeight}px`;
|
|
275
|
+
const targetHeight = elIndex * shrinkToOnOrder;
|
|
276
|
+
const currentHeight = orderableListItemForAnchor.offsetTop - els[0].offsetTop;
|
|
277
|
+
const paddingTop = currentHeight - targetHeight;
|
|
278
|
+
rootEl().style.paddingTop = `${paddingTop}px`;
|
|
279
|
+
rootEl().style.minHeight = `${rootEl().clientHeight}px`;
|
|
256
280
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
281
|
+
orderableListItemForAnchor.style.visibility = "hidden";
|
|
282
|
+
orderableListItemForAnchor.classList.remove(OrderableList_module_scss_1.default.visible);
|
|
283
|
+
rootEl().classList.add(OrderableList_module_scss_1.default.ordering);
|
|
284
|
+
if (reorderingClassName)
|
|
285
|
+
rootEl().classList.add(reorderingClassName);
|
|
286
|
+
currentWorkingKey.current = cleanOrderRef.current[elIndex];
|
|
287
|
+
eventEmitter.dispatcher("order-start");
|
|
288
|
+
window.document.body.classList.add(OrderableList_module_scss_1.default.unselectable);
|
|
289
|
+
window.addEventListener("mouseup", deleteClone);
|
|
290
|
+
window.addEventListener("mousemove", movementControl);
|
|
291
|
+
window.addEventListener("touchend", deleteClone);
|
|
292
|
+
window.addEventListener("touchmove", movementControl);
|
|
293
|
+
}, []);
|
|
294
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
295
|
+
if (currentClone.current) {
|
|
296
|
+
const els = Array.from(rootEl().children);
|
|
297
|
+
const elInvisible = els.find((a) => !a.classList.contains(OrderableList_module_scss_1.default.visible) && a.style.maxHeight !== "0px");
|
|
298
|
+
elInvisible.children[0].style.height = `${currentClone.current.clientHeight}px`;
|
|
299
|
+
setTimeout(() => {
|
|
300
|
+
elInvisible.children[1].style.height = `${currentClone.current.clientHeight}px`;
|
|
301
|
+
}, 150);
|
|
266
302
|
}
|
|
267
|
-
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
303
|
+
}, [cleanOrder]);
|
|
304
|
+
const toSpread = Object.assign({}, props);
|
|
305
|
+
delete toSpread.keyOrder;
|
|
306
|
+
delete toSpread.onChangeKeyOrder;
|
|
307
|
+
const childrenToRender = [...children]
|
|
308
|
+
.filter((a) => cleanOrder.includes(a.key))
|
|
309
|
+
.sort((a, b) => cleanOrder.indexOf(a.key) -
|
|
310
|
+
cleanOrder.indexOf(b.key))
|
|
311
|
+
.map((a, i) => (Object.assign(Object.assign({}, a), { key: order[i] })));
|
|
312
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
313
|
+
rootEl().addEventListener("touchstart", (e) => {
|
|
314
|
+
const relatedAnchor = anchorsList.find((anchor) => anchor.contains(e.target));
|
|
315
|
+
if (relatedAnchor) {
|
|
316
|
+
e.preventDefault();
|
|
317
|
+
onAnchorClick({
|
|
318
|
+
target: relatedAnchor,
|
|
319
|
+
});
|
|
320
|
+
const moveCb = (0, throttle_1.default)((e) => {
|
|
321
|
+
const touch = e.touches[0];
|
|
322
|
+
const [x, y] = [touch.clientX, touch.clientY];
|
|
323
|
+
const els = Array.from(rootEl().children);
|
|
324
|
+
const currentElementIdx = els.findIndex((c, i) => {
|
|
325
|
+
const rect = c === null || c === void 0 ? void 0 : c.getBoundingClientRect();
|
|
326
|
+
if (!rect)
|
|
327
|
+
return false;
|
|
328
|
+
return rect.top < y && rect.top + rect.height > y;
|
|
329
|
+
});
|
|
330
|
+
if (currentElementIdx !== -1) {
|
|
331
|
+
const el = els[currentElementIdx];
|
|
332
|
+
const rect = el.getBoundingClientRect();
|
|
333
|
+
calculateReordering({
|
|
334
|
+
target: el,
|
|
335
|
+
offsetY: y - rect.top,
|
|
336
|
+
}, els, cleanOrderRef.current);
|
|
337
|
+
}
|
|
338
|
+
}, 500);
|
|
339
|
+
const t = e.target;
|
|
340
|
+
const touchMoveCb = (e) => {
|
|
341
|
+
e.stopPropagation();
|
|
342
|
+
window.dispatchEvent(new TouchEvent(e.type, e));
|
|
343
|
+
moveCb(e);
|
|
344
|
+
};
|
|
345
|
+
const removeCb = (e) => {
|
|
346
|
+
t.removeEventListener("touchmove", touchMoveCb);
|
|
347
|
+
t.removeEventListener("touchend", removeCb);
|
|
348
|
+
window.dispatchEvent(new TouchEvent(e.type, e));
|
|
349
|
+
};
|
|
350
|
+
t.addEventListener("touchmove", touchMoveCb);
|
|
351
|
+
t.addEventListener("touchend", removeCb);
|
|
352
|
+
}
|
|
315
353
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
t.removeEventListener("touchend", removeCb);
|
|
343
|
-
window.dispatchEvent(new TouchEvent(e.type, e));
|
|
344
|
-
};
|
|
345
|
-
t.addEventListener("touchmove", touchMoveCb);
|
|
346
|
-
t.addEventListener("touchend", removeCb);
|
|
347
|
-
}
|
|
348
|
-
});
|
|
349
|
-
}, []);
|
|
350
|
-
const e = (0, _react.useMemo)(() => ({
|
|
351
|
-
bindAnchor: el => {
|
|
352
|
-
el.addEventListener("mousedown", onAnchorClick);
|
|
353
|
-
anchorsList.push(el);
|
|
354
|
-
},
|
|
355
|
-
unbindAnchor: el => {
|
|
356
|
-
el.removeEventListener("mousedown", onAnchorClick);
|
|
357
|
-
anchorsList.splice(anchorsList.indexOf(el), 1);
|
|
358
|
-
},
|
|
359
|
-
on: eventEmitter.subscriber
|
|
360
|
-
}), []);
|
|
361
|
-
return /*#__PURE__*/_react.default.createElement(OrderableListContext.Provider, {
|
|
362
|
-
value: e
|
|
363
|
-
}, /*#__PURE__*/_react.default.createElement("div", _extends({
|
|
364
|
-
ref: rootRef,
|
|
365
|
-
className: "".concat(_OrderableListModule.default.root, " ").concat(className, " ").concat(shrinkToOnOrder ? _OrderableListModule.default.shrinkable : "")
|
|
366
|
-
}, toSpread), mode === OrderableListReorderMode.VERTICAL ? /*#__PURE__*/_react.default.createElement(_AnimatedEntrance.default, null, childrenToRender) : /*#__PURE__*/_react.default.createElement(_UncontrolledTransition.default, {
|
|
367
|
-
className: _OrderableListModule.default.transition,
|
|
368
|
-
transitionType: _Transition.TransitionAnimationTypes.CUSTOM,
|
|
369
|
-
config: {
|
|
370
|
-
backward: {
|
|
371
|
-
elementEntering: "",
|
|
372
|
-
elementExiting: ""
|
|
373
|
-
},
|
|
374
|
-
forward: {
|
|
375
|
-
elementEntering: _OrderableListModule.default.stubEntering,
|
|
376
|
-
elementExiting: _TransitionModule.default.fadeOut
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
contentClassName: "".concat(className)
|
|
380
|
-
}, /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
381
|
-
key: orderId
|
|
382
|
-
}, [...children].filter(a => cleanOrder.includes(a.key)).sort((a, b) => cleanOrder.indexOf(a.key) - cleanOrder.indexOf(b.key)).map((a, i) => /*#__PURE__*/_react.default.createElement(HeroWrapper, {
|
|
383
|
-
key: i,
|
|
384
|
-
id: a.key
|
|
385
|
-
}, a))))));
|
|
354
|
+
}, []);
|
|
355
|
+
const e = (0, react_1.useMemo)(() => ({
|
|
356
|
+
bindAnchor: (el) => {
|
|
357
|
+
el.addEventListener("mousedown", onAnchorClick);
|
|
358
|
+
anchorsList.push(el);
|
|
359
|
+
},
|
|
360
|
+
unbindAnchor: (el) => {
|
|
361
|
+
el.removeEventListener("mousedown", onAnchorClick);
|
|
362
|
+
anchorsList.splice(anchorsList.indexOf(el), 1);
|
|
363
|
+
},
|
|
364
|
+
on: eventEmitter.subscriber,
|
|
365
|
+
}), []);
|
|
366
|
+
return ((0, jsx_runtime_1.jsx)(OrderableListContext.Provider, { value: e, children: (0, jsx_runtime_1.jsx)("div", Object.assign({ ref: rootRef, className: `${OrderableList_module_scss_1.default.root} ${className} ${shrinkToOnOrder ? OrderableList_module_scss_1.default.shrinkable : ""}` }, toSpread, { children: mode === OrderableListReorderMode.VERTICAL ? ((0, jsx_runtime_1.jsx)(AnimatedEntrance_1.default, { children: childrenToRender })) : ((0, jsx_runtime_1.jsx)(UncontrolledTransition_1.default, { className: OrderableList_module_scss_1.default.transition, transitionType: Transition_1.TransitionAnimationTypes.CUSTOM, config: {
|
|
367
|
+
backward: {
|
|
368
|
+
elementEntering: "",
|
|
369
|
+
elementExiting: "",
|
|
370
|
+
},
|
|
371
|
+
forward: {
|
|
372
|
+
elementEntering: OrderableList_module_scss_1.default.stubEntering,
|
|
373
|
+
elementExiting: Transition_module_scss_1.default.fadeOut,
|
|
374
|
+
},
|
|
375
|
+
}, contentClassName: `${className}`, children: (0, jsx_runtime_1.jsx)(react_1.Fragment, { children: [...children]
|
|
376
|
+
.filter((a) => cleanOrder.includes(a.key))
|
|
377
|
+
.sort((a, b) => cleanOrder.indexOf(a.key) -
|
|
378
|
+
cleanOrder.indexOf(b.key))
|
|
379
|
+
.map((a, i) => ((0, jsx_runtime_1.jsx)(HeroWrapper, { id: a.key, children: a }, i))) }, orderId) })) })) }));
|
|
386
380
|
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
406
|
-
ref: heroRef
|
|
407
|
-
}, children);
|
|
381
|
+
exports.default = OrderableList;
|
|
382
|
+
function HeroWrapper({ children, id }) {
|
|
383
|
+
const { heroRef } = (0, useHero_1.default)(id, undefined, {
|
|
384
|
+
onHeroStart: (_c, _o, t) => {
|
|
385
|
+
t.querySelectorAll("img").forEach((img) => (img.style.visibility = "hidden"));
|
|
386
|
+
},
|
|
387
|
+
onHeroCloned(clone) {
|
|
388
|
+
// if (!clone.classList.contains(Styles.visible)) clone.style.opacity = "0";
|
|
389
|
+
},
|
|
390
|
+
onHeroEnd: () => {
|
|
391
|
+
if (heroRef.current)
|
|
392
|
+
heroRef.current
|
|
393
|
+
.querySelectorAll("img")
|
|
394
|
+
.forEach((img) => (img.style.visibility = ""));
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
return (0, jsx_runtime_1.jsx)("div", { ref: heroRef, children: children });
|
|
408
398
|
}
|
|
409
399
|
function useOrderableListAnchor() {
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
return
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
anchorRef: ctx ? anchorRef : undefined
|
|
423
|
-
};
|
|
400
|
+
const anchorRef = (0, react_1.useRef)(null);
|
|
401
|
+
const ctx = (0, react_1.useContext)(OrderableListContext);
|
|
402
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
403
|
+
if (!ctx)
|
|
404
|
+
return;
|
|
405
|
+
const { bindAnchor, unbindAnchor } = ctx;
|
|
406
|
+
bindAnchor(anchorRef.current);
|
|
407
|
+
return () => unbindAnchor(anchorRef.current);
|
|
408
|
+
}, []);
|
|
409
|
+
return {
|
|
410
|
+
anchorRef: ctx ? anchorRef : undefined,
|
|
411
|
+
};
|
|
424
412
|
}
|
|
413
|
+
exports.useOrderableListAnchor = useOrderableListAnchor;
|
|
425
414
|
function useOrderableEvents(events) {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
};
|
|
437
|
-
}, [events]);
|
|
415
|
+
const { on } = (0, react_1.useContext)(OrderableListContext);
|
|
416
|
+
(0, react_1.useEffect)(() => {
|
|
417
|
+
const unsubscribers = [];
|
|
418
|
+
for (let eventName in events) {
|
|
419
|
+
unsubscribers.push(on(eventName, events[eventName]));
|
|
420
|
+
}
|
|
421
|
+
return () => {
|
|
422
|
+
unsubscribers.forEach((u) => u());
|
|
423
|
+
};
|
|
424
|
+
}, [events]);
|
|
438
425
|
}
|
|
439
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1VuY29udHJvbGxlZFRyYW5zaXRpb24iLCJfVHJhbnNpdGlvbk1vZHVsZSIsIl91c2VIZXJvIiwiX0FuaW1hdGVkRW50cmFuY2UiLCJfVHJhbnNpdGlvbiIsIl9PcmRlcmFibGVMaXN0TW9kdWxlIiwiX3VzZUV2ZW50cyIsIl9vd25FdmVudCIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiYXBwbHkiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsIlR5cGVFcnJvciIsIk51bWJlciIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic291cmNlS2V5cyIsIk9yZGVyYWJsZUxpc3RDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsIk9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZSIsImV4cG9ydHMiLCJjbGVhbktleXMiLCJtYXAiLCJhIiwic3BsaXQiLCJPcmRlcmFibGVMaXN0IiwiX3JlZiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwibW9kZSIsIlZFUlRJQ0FMIiwic2hyaW5rVG9Pbk9yZGVyIiwicmVvcmRlcmluZ0NsYXNzTmFtZSIsImNsb25lQ2xhc3NOYW1lIiwicHJvcHMiLCJhdmFpbGFibGVLZXlzIiwiYXZhaWxhYmxlS2V5c0RlcCIsImpvaW4iLCJpbml0aWFsaXplT3JkZXIiLCJ1c2VDYWxsYmFjayIsIm1pc3NpbmdPcmRlcktleXMiLCJrZXlPcmRlciIsImluY2x1ZGVzIiwiY3VycmVudCIsImFuY2hvcnNMaXN0IiwidXNlUmVmIiwiZXZlbnRFbWl0dGVyIiwidXNlRXZlbnRzIiwiY3VycmVudENsb25lIiwiY3VycmVudFdvcmtpbmdLZXkiLCJyb290UmVmIiwiX29yZGVyIiwic2V0T3JkZXIiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIm9yZGVyIiwidXNlTWVtbyIsImN1cnJlbnRPcmRlciIsIm8iLCJjbGVhbk9yZGVyIiwib3JkZXJJZCIsInJvb3RFbCIsIlRXT19ESU1FTlNJT05TIiwibGFzdEVsZW1lbnRDaGlsZCIsImZpbmRQYXJlbnRFbGVtZW50IiwicGFyZW50IiwicGFyZW50RWxlbWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkVycm9yIiwidXNlTGF5b3V0RWZmZWN0Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsImNvbmNhdCIsImNhbGN1bGF0ZVJlb3JkZXJpbmciLCJ0aHJvdHRsZSIsImUiLCJlbHMiLCJpbmRleE9mS2V5SW5DbGVhbk9yZGVyIiwia2V5T2ZUaGVPdmVyRWxlbWVudCIsImlzRHJhZ2dpbmdPd25FbGVtZW50IiwiaXNBZnRlciIsImlzQmVmb3JlIiwiZGlzdGFuY2VGcm9tTGVmdCIsIm9mZnNldFgiLCJ3aWR0aE9mRWwiLCJjbGllbnRXaWR0aCIsIm9mZnNldCIsImRpc3RhbmNlRnJvbVRvcCIsIm9mZnNldFkiLCJoZWlnaHRPZkVsIiwiY2xpZW50SGVpZ2h0IiwiY2hlY2tJZkNhbk1vdmUiLCJrZXlPZk92ZXJFbGVtZW50IiwiaW5kZXhPZlRoZU5ld0VsZW1lbnQiLCJzaG91bGRUcmlnZ2VyUmVvcmRlcmluZyIsInAiLCJwcmV2aW91c0luZGV4IiwiaW5kZXhPZktleUluUHJvdmlkZWRPcmRlciIsIm9yZGVyV2l0aG91dEN1cnJlbnQiLCJzdGFydHNXaXRoIiwic3BsaWNlIiwiRGF0ZSIsIm5vdyIsInJlZ2lzdGVyTGlzdGVuZXJzIiwiQXJyYXkiLCJmcm9tIiwiY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwiLCJlbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5zdWJzY3JpYmUiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIm9uQ2hhbmdlS2V5T3JkZXIiLCJjbGVhbk9yZGVyUmVmIiwib25BbmNob3JDbGljayIsIl9yZWYyIiwiYW5jaG9yIiwib3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IiLCJib3giLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJlbEluZGV4IiwiY2xvbmUiLCJjbG9uZU5vZGUiLCJzZXRBdHRyaWJ1dGUiLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJTdHlsZXMiLCJtYXhIZWlnaHQiLCJjdXJyZW50T3JkZXJpbmciLCJyZW1vdmUiLCJ2aXNpYmxlIiwibW92ZW1lbnRDb250cm9sIiwieCIsIngxIiwieSIsInkxIiwidG91Y2hlcyIsInBhZ2VYIiwicGFnZVkiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImRlbGV0ZUNsb25lIiwid2luZG93IiwidmlzaWJpbGl0eSIsInVuc2VsZWN0YWJsZSIsImVsSW52aXNpYmxlIiwiZmluZCIsImNvbnRhaW5zIiwiY2hpbGQiLCJzY3JvbGxIZWlnaHQiLCJ0cmFuc2l0aW9uSGVpZ2h0Iiwib25FbmQiLCJvd25FdmVudCIsImNsZWFuVXAiLCJyZW1vdmVQcm9wZXJ0eSIsImRpc3BhdGNoZXIiLCJvcmRlcmluZyIsIk1hdGgiLCJmbG9vciIsInRvU3RyaW5nIiwidHJhbnNpdGlvbiIsInRhcmdldEhlaWdodCIsImN1cnJlbnRIZWlnaHQiLCJvZmZzZXRUb3AiLCJwYWRkaW5nVG9wIiwibWluSGVpZ2h0IiwidG9TcHJlYWQiLCJjaGlsZHJlblRvUmVuZGVyIiwic29ydCIsImIiLCJyZWxhdGVkQW5jaG9yIiwicHJldmVudERlZmF1bHQiLCJtb3ZlQ2IiLCJ0b3VjaCIsImNsaWVudFgiLCJjbGllbnRZIiwiY3VycmVudEVsZW1lbnRJZHgiLCJmaW5kSW5kZXgiLCJjIiwicmVjdCIsInQiLCJ0b3VjaE1vdmVDYiIsInN0b3BQcm9wYWdhdGlvbiIsImRpc3BhdGNoRXZlbnQiLCJUb3VjaEV2ZW50IiwidHlwZSIsInJlbW92ZUNiIiwiYmluZEFuY2hvciIsInVuYmluZEFuY2hvciIsIm9uIiwic3Vic2NyaWJlciIsImNyZWF0ZUVsZW1lbnQiLCJQcm92aWRlciIsInJlZiIsInJvb3QiLCJzaHJpbmthYmxlIiwidHJhbnNpdGlvblR5cGUiLCJUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMiLCJDVVNUT00iLCJjb25maWciLCJiYWNrd2FyZCIsImVsZW1lbnRFbnRlcmluZyIsImVsZW1lbnRFeGl0aW5nIiwiZm9yd2FyZCIsInN0dWJFbnRlcmluZyIsIlRyYW5zaXRpb25TdHlsZXMiLCJmYWRlT3V0IiwiY29udGVudENsYXNzTmFtZSIsIkZyYWdtZW50IiwiSGVyb1dyYXBwZXIiLCJpZCIsIl9yZWYzIiwiaGVyb1JlZiIsInVzZUhlcm8iLCJvbkhlcm9TdGFydCIsIl9jIiwiX28iLCJxdWVyeVNlbGVjdG9yQWxsIiwiaW1nIiwib25IZXJvQ2xvbmVkIiwib25IZXJvRW5kIiwidXNlT3JkZXJhYmxlTGlzdEFuY2hvciIsImFuY2hvclJlZiIsImN0eCIsInVzZUNvbnRleHQiLCJ1c2VPcmRlcmFibGVFdmVudHMiLCJldmVudHMiLCJ1bnN1YnNjcmliZXJzIiwiZXZlbnROYW1lIiwidSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL09yZGVyYWJsZUxpc3QvT3JkZXJhYmxlTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRocm90dGxlIGZyb20gXCJsb2Rhc2gvdGhyb3R0bGVcIjtcbmltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICBEZXRhaWxlZEhUTUxQcm9wcyxcbiAgRnJhZ21lbnQsXG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgUmVhY3RFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFVuY29udHJvbGxlZFRyYW5zaXRpb24gZnJvbSBcIi4uL1VuY29udHJvbGxlZFRyYW5zaXRpb25cIjtcbmltcG9ydCBUcmFuc2l0aW9uU3R5bGVzIGZyb20gXCIuLi9UcmFuc2l0aW9uL1RyYW5zaXRpb24ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB1c2VIZXJvIGZyb20gXCIuLi8uLi9ob29rcy91c2VIZXJvXCI7XG5pbXBvcnQgQW5pbWF0ZWRFbnRyYW5jZSBmcm9tIFwiLi4vQW5pbWF0ZWRFbnRyYW5jZVwiO1xuaW1wb3J0IHsgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzIH0gZnJvbSBcIi4uL1RyYW5zaXRpb25cIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vT3JkZXJhYmxlTGlzdC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHVzZUV2ZW50cyBmcm9tIFwiLi4vLi4vaG9va3MvdXRpbGl0eS91c2VFdmVudHNcIjtcbmltcG9ydCBvd25FdmVudCBmcm9tIFwiLi4vLi4vdXRpbHMvb3duRXZlbnRcIjtcblxudHlwZSBFdmVudHMgPSBcIm9yZGVyLXN0b3BcIiB8IFwib3JkZXItc3RhcnRcIjtcblxuY29uc3QgT3JkZXJhYmxlTGlzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0PHtcbiAgYmluZEFuY2hvcjogKGJpbmRFbGVtZW50OiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcbiAgdW5iaW5kQW5jaG9yOiAoYmluZEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50KSA9PiB2b2lkO1xuICBvbjogKGV2ZW50TmFtZTogRXZlbnRzLCBjYjogKCkgPT4gdm9pZCkgPT4gKCkgPT4gdm9pZDtcbn0+KG51bGwgYXMgYW55KTtcblxuZXhwb3J0IGVudW0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlIHtcbiAgVkVSVElDQUwgPSBcInZcIixcbiAgVFdPX0RJTUVOU0lPTlMgPSBcImh2XCIsXG59XG5cbmZ1bmN0aW9uIGNsZWFuS2V5cyhrZXlzOiBzdHJpbmdbXSkge1xuICByZXR1cm4ga2V5cy5tYXAoKGEpID0+IGEuc3BsaXQoXCI7XCIpWzBdKTtcbn1cblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBkaXNwbGF5cyBhIGxpc3Qgb2YgaXRlbXMgdGhhdCBjYW4gYmUgcmVvcmRlcmVkIGJ5IGRyYWdnaW5nIHRoZW0gd2l0aCB5b3VyIG1vdXNlIG9yIHRvdWNoLlxuICogSXQgc3VwcG9ydHMgc2ltcGxlIHZlcnRpY2FsIGRyYWdnaW5nIGFuZCBtb3JlIGFkdmFuY2VkIDJEIHJlb3JkZXJpbmcsIHdpdGggc21vb3RoIGFuaW1hdGlvbnNcbiAqIHdoZW4gaXRlbXMgbW92ZSBhcm91bmQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9yZGVyYWJsZUxpc3Qoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lID0gXCJcIixcbiAgbW9kZSA9IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5WRVJUSUNBTCxcbiAgc2hyaW5rVG9Pbk9yZGVyLFxuICByZW9yZGVyaW5nQ2xhc3NOYW1lLFxuICBjbG9uZUNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudFtdO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG1vZGU/OiBPcmRlcmFibGVMaXN0UmVvcmRlck1vZGU7XG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgbWFrZXMgdGhlIGVsZW1lbnRzIHNocmluayB0byB0aGlzIHZhbHVlIGluIHB4IHdoZW4gb3JkZXJpbmcgZWxlbWVudHNcbiAgICovXG4gIHNocmlua1RvT25PcmRlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogQSBjbGFzcyB0byBhcHBseSB3aGVuIHJlb3JkZXJpbmdcbiAgICovXG4gIHJlb3JkZXJpbmdDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGNsb25lIGVsXG4gICAqL1xuICBjbG9uZUNsYXNzTmFtZT86IHN0cmluZztcbn0gJiAoXG4gIHwge1xuICAgICAga2V5T3JkZXI/OiBzdHJpbmdbXTtcbiAgICAgIG9uQ2hhbmdlS2V5T3JkZXI6IChuZXdPcmRlcjogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGN1cnJlbnRPcmRlcj86IHN0cmluZ1tdO1xuICAgIH1cbikgJlxuICBEZXRhaWxlZEhUTUxQcm9wczxIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIEhUTUxEaXZFbGVtZW50Pikge1xuICBjb25zdCBhdmFpbGFibGVLZXlzID0gY2hpbGRyZW4ubWFwKChhKSA9PiBhLmtleSBhcyBzdHJpbmcpO1xuICBjb25zdCBhdmFpbGFibGVLZXlzRGVwID0gYXZhaWxhYmxlS2V5cy5qb2luKFwiLFwiKTtcbiAgY29uc3QgaW5pdGlhbGl6ZU9yZGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG1pc3NpbmdPcmRlcktleXMgPVxuICAgICAgXCJrZXlPcmRlclwiIGluIHByb3BzICYmIHByb3BzLmtleU9yZGVyXG4gICAgICAgID8gYXZhaWxhYmxlS2V5cy5maWx0ZXIoKGEpID0+ICFwcm9wcy5rZXlPcmRlciEuaW5jbHVkZXMoYSkpXG4gICAgICAgIDogW107XG5cbiAgICByZXR1cm4gKFxuICAgICAgKFwia2V5T3JkZXJcIiBpbiBwcm9wcyAmJiBwcm9wcy5rZXlPcmRlclxuICAgICAgICA/IFsuLi5wcm9wcy5rZXlPcmRlciwgLi4ubWlzc2luZ09yZGVyS2V5c11cbiAgICAgICAgOiB1bmRlZmluZWQpIHx8IGF2YWlsYWJsZUtleXNcbiAgICApO1xuICB9LCBbYXZhaWxhYmxlS2V5c0RlcCwgKHByb3BzIGFzIGFueSkua2V5T3JkZXJdKTtcbiAgY29uc3QgeyBjdXJyZW50OiBhbmNob3JzTGlzdCB9ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50W10+KFtdKTtcbiAgY29uc3QgZXZlbnRFbWl0dGVyID0gdXNlRXZlbnRzPEV2ZW50cywgeyBbayBpbiBFdmVudHNdOiBbXSB9PigpO1xuICBjb25zdCBjdXJyZW50Q2xvbmUgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY3VycmVudFdvcmtpbmdLZXkgPSB1c2VSZWY8c3RyaW5nPih1bmRlZmluZWQpO1xuICBjb25zdCByb290UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsIGFzIGFueSk7XG4gIGNvbnN0IFtfb3JkZXIsIHNldE9yZGVyXSA9IHVzZVN0YXRlKGluaXRpYWxpemVPcmRlcik7XG4gIHVzZUVmZmVjdCgoKSA9PiBzZXRPcmRlcihpbml0aWFsaXplT3JkZXIoKSksIFtpbml0aWFsaXplT3JkZXJdKTtcblxuICBjb25zdCBvcmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBcImN1cnJlbnRPcmRlclwiIGluIHByb3BzID8gcHJvcHMuY3VycmVudE9yZGVyIHx8IF9vcmRlciA6IF9vcmRlclxuICAgICkuZmlsdGVyKChvKSA9PiBvLmluY2x1ZGVzKFwiO1wiKSB8fCBhdmFpbGFibGVLZXlzLmluY2x1ZGVzKG8pKTtcbiAgfSwgWyhwcm9wcyBhcyBhbnkpLmN1cnJlbnRPcmRlciwgX29yZGVyLCBhdmFpbGFibGVLZXlzRGVwXSk7XG4gIGNvbnN0IGNsZWFuT3JkZXIgPSB1c2VNZW1vKCgpID0+IG9yZGVyLm1hcCgoYSkgPT4gYS5zcGxpdChcIjtcIilbMF0pLCBbb3JkZXJdKTtcbiAgY29uc3Qgb3JkZXJJZCA9IHVzZU1lbW8oKCkgPT4gXCJrZXktXCIgKyBjbGVhbk9yZGVyLmpvaW4oXCJcIiksIFtjbGVhbk9yZGVyXSk7XG4gIGZ1bmN0aW9uIHJvb3RFbCgpIHtcbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlRXT19ESU1FTlNJT05TKVxuICAgICAgcmV0dXJuIHJvb3RSZWYuY3VycmVudCEubGFzdEVsZW1lbnRDaGlsZCFcbiAgICAgICAgLmxhc3RFbGVtZW50Q2hpbGQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHJldHVybiByb290UmVmLmN1cnJlbnQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICB9XG5cbiAgY29uc3QgZmluZFBhcmVudEVsZW1lbnQgPSAodGFyZ2V0OiBIVE1MRGl2RWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxEaXZFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQucGFyZW50RWxlbWVudCAhPT0gcm9vdEVsKCkpIHtcbiAgICAgIGlmIChwYXJlbnQucGFyZW50RWxlbWVudCA9PT0gbnVsbCkgYnJlYWs7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCBhcyBhbnk7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcmVudCA9PT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJJdCBzZWVtcyBsaWtlIHdlIGNvdWxkIG5vdCBmaW5kIGEgcmVsYXRpb24gYmV0d2VlbiB0aGlzIGVsZW1lbnQgYW5kIHRoZSByb290IGxpc3QuIEFyZSB5b3UgdXNpbmcgcG9ydGFscyBtYXliZT9cIlxuICAgICAgKTtcbiAgICByZXR1cm4gcGFyZW50O1xuICB9O1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNocmlua1RvT25PcmRlcilcbiAgICAgIHJvb3RFbCgpLnN0eWxlLnNldFByb3BlcnR5KFwiLS1zaHJpbmstdG9cIiwgYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YCk7XG4gIH0sIFtzaHJpbmtUb09uT3JkZXJdKTtcblxuICBjb25zdCBjYWxjdWxhdGVSZW9yZGVyaW5nID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHRocm90dGxlKChlOiBhbnksIGVsczogSFRNTERpdkVsZW1lbnRbXSwgY3VycmVudE9yZGVyOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKGVscy5sZW5ndGggPiBjdXJyZW50T3JkZXIubGVuZ3RoIHx8ICFjdXJyZW50V29ya2luZ0tleS5jdXJyZW50KVxuICAgICAgICByZXR1cm47XG4gICAgICBjb25zdCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlLnRhcmdldCk7XG4gICAgICBjb25zdCBpbmRleE9mS2V5SW5DbGVhbk9yZGVyID0gZWxzLmluZGV4T2YocGFyZW50KTtcbiAgICAgIGNvbnN0IGtleU9mVGhlT3ZlckVsZW1lbnQgPSBjdXJyZW50T3JkZXJbaW5kZXhPZktleUluQ2xlYW5PcmRlcl07XG4gICAgICBjb25zdCBpc0RyYWdnaW5nT3duRWxlbWVudCA9XG4gICAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPT09IGtleU9mVGhlT3ZlckVsZW1lbnQ7XG4gICAgICBpZiAoaW5kZXhPZktleUluQ2xlYW5PcmRlciA9PT0gLTEgfHwga2V5T2ZUaGVPdmVyRWxlbWVudCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoIWlzRHJhZ2dpbmdPd25FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgaXNBZnRlciwgaXNCZWZvcmUgfSA9ICgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1vZGUgPT09IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5UV09fRElNRU5TSU9OUykge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tTGVmdCA9IGUub2Zmc2V0WDtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoT2ZFbCA9IHBhcmVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHdpZHRoT2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tTGVmdCA+IHdpZHRoT2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tTGVmdCA8IG9mZnNldDtcbiAgICAgICAgICAgIHJldHVybiB7IGlzQWZ0ZXIsIGlzQmVmb3JlIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbVRvcCA9IGUub2Zmc2V0WTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE9mRWwgPSBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gaGVpZ2h0T2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tVG9wID4gaGVpZ2h0T2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tVG9wIDwgb2Zmc2V0O1xuICAgICAgICAgICAgcmV0dXJuIHsgaXNBZnRlciwgaXNCZWZvcmUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tJZkNhbk1vdmUgPSAoa2V5T2ZPdmVyRWxlbWVudD86IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlPZk92ZXJFbGVtZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGtleU9mT3ZlckVsZW1lbnQgIT09IGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgaW5kZXhPZktleUluQ2xlYW5PcmRlciArIChpc0FmdGVyID8gMSA6IC0xKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcgPVxuICAgICAgICAgIChpc0FmdGVyIHx8IGlzQmVmb3JlKSAmJlxuICAgICAgICAgIGNoZWNrSWZDYW5Nb3ZlKGN1cnJlbnRPcmRlcltpbmRleE9mVGhlTmV3RWxlbWVudF0pO1xuICAgICAgICBpZiAoc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcpIHtcbiAgICAgICAgICBzZXRPcmRlcigocCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGN1cnJlbnRPcmRlci5pbmRleE9mKFxuICAgICAgICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50IVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgPVxuICAgICAgICAgICAgICBjbGVhbktleXMocCkuaW5kZXhPZihrZXlPZlRoZU92ZXJFbGVtZW50KTtcbiAgICAgICAgICAgIGxldCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgICAgIGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgKyAoaXNCZWZvcmUgPyAtMSA6IDApO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggPiBpbmRleE9mVGhlTmV3RWxlbWVudCkgaW5kZXhPZlRoZU5ld0VsZW1lbnQrKztcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyV2l0aG91dEN1cnJlbnQgPSBwLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYS5zdGFydHNXaXRoKGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9O2ApKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBhICE9PSBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvcmRlcldpdGhvdXRDdXJyZW50LnNwbGljZShcbiAgICAgICAgICAgICAgaW5kZXhPZlRoZU5ld0VsZW1lbnQsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9OyR7RGF0ZS5ub3coKX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG9yZGVyV2l0aG91dEN1cnJlbnQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDAwIC8gNjApO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiByZWdpc3Rlckxpc3RlbmVycygpIHtcbiAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgY29uc3QgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgICBjYWxjdWxhdGVSZW9yZGVyaW5nKGUsIGVscywgY2xlYW5PcmRlcik7XG4gICAgICB9O1xuICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGNhbGN1bGF0ZVJlb3JkZXJpbmdDYWxsKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMKSB7XG4gICAgICByZXR1cm4gcmVnaXN0ZXJMaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xuICAgICAgbGV0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdW5zdWJzY3JpYmUgPSByZWdpc3Rlckxpc3RlbmVycygpO1xuICAgICAgfSwgMjUwKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB1bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjbGVhbk9yZGVyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXCJvbkNoYW5nZUtleU9yZGVyXCIgaW4gcHJvcHMpIHByb3BzLm9uQ2hhbmdlS2V5T3JkZXIoY2xlYW5LZXlzKF9vcmRlcikpO1xuICB9LCBbX29yZGVyXSk7XG5cbiAgY29uc3QgY2xlYW5PcmRlclJlZiA9IHVzZVJlZihjbGVhbk9yZGVyKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjbGVhbk9yZGVyUmVmLmN1cnJlbnQgPSBjbGVhbk9yZGVyO1xuICB9LCBbY2xlYW5PcmRlcl0pO1xuICBjb25zdCBvbkFuY2hvckNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0OiBhbmNob3IgfTogUGljazxNb3VzZUV2ZW50LCBcInRhcmdldFwiPikgPT4ge1xuICAgICAgbGV0IG9mZnNldDogW3g6IG51bWJlciwgeTogbnVtYmVyXTtcbiAgICAgIGNvbnN0IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yID0gZmluZFBhcmVudEVsZW1lbnQoXG4gICAgICAgIGFuY2hvciBhcyBIVE1MRGl2RWxlbWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGJveCA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEluZGV4ID0gZWxzLmluZGV4T2Yob3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IpO1xuXG4gICAgICBjb25zdCBjbG9uZSA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50ID0gY2xvbmU7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIilcbiAgICAgICAgY2xvbmUuc2V0QXR0cmlidXRlKFwiZGF0YS10ZXN0aWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShcImRhdGEtb3JkZXJhYmxlaWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7Ym94LndpZHRofXB4YDtcbiAgICAgIGNsb25lLnN0eWxlLmhlaWdodCA9IGAke2JveC5oZWlnaHR9cHhgO1xuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7Ym94LnRvcH1weGA7XG4gICAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7Ym94LmxlZnR9cHhgO1xuICAgICAgY2xvbmUuY2xhc3NMaXN0LmFkZChTdHlsZXMuY2xvbmUpO1xuICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Ym94LmhlaWdodH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGNsb25lQ2xhc3NOYW1lKSBjbG9uZS5jbGFzc0xpc3QuYWRkKGNsb25lQ2xhc3NOYW1lKTtcbiAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YDtcbiAgICAgIH0sIDApO1xuXG4gICAgICBvcmRlcmFibGVMaXN0SXRlbUZvckFuY2hvci5jbGFzc0xpc3QuYWRkKFN0eWxlcy5jdXJyZW50T3JkZXJpbmcpO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG5cbiAgICAgIGNvbnN0IG1vdmVtZW50Q29udHJvbCA9IChlOiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHg6IHgxLCB5OiB5MSB9ID1cbiAgICAgICAgICBcInRvdWNoZXNcIiBpbiBlID8geyB4OiBlLnRvdWNoZXNbMF0ucGFnZVgsIHk6IGUudG91Y2hlc1swXS5wYWdlWSB9IDogZTtcbiAgICAgICAgaWYgKCFvZmZzZXQpIG9mZnNldCA9IFt4MSAtIGJveC5sZWZ0LCB5MSAtIGJveC50b3BdO1xuXG4gICAgICAgIGNvbnN0IFtvZmZzZXRYLCBvZmZzZXRZXSA9IG9mZnNldDtcbiAgICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7eTEgLSBvZmZzZXRZfXB4YDtcbiAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke3gxIC0gb2Zmc2V0WH1weGA7XG4gICAgICB9O1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgIGNvbnN0IGRlbGV0ZUNsb25lID0gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iuc3R5bGUudmlzaWJpbGl0eSA9IFwiaW5pdGlhbFwiO1xuICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy51bnNlbGVjdGFibGUpO1xuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgZWxJbnZpc2libGUgPSBlbHMuZmluZChcbiAgICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmXG4gICAgICAgICAgICAgIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICAgICAgKSE7XG4gICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBlbEludmlzaWJsZS5sYXN0RWxlbWVudENoaWxkIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Y2hpbGQuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGNoaWxkLmNsYXNzTGlzdC5hZGQoU3R5bGVzLnRyYW5zaXRpb25IZWlnaHQpO1xuICAgICAgICAgICAgY29uc3Qgb25FbmQgPSBvd25FdmVudCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIG9uRW5kKTtcbiAgICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYGluaXRpYWxgO1xuICAgICAgICAgICAgICBjaGlsZC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy50cmFuc2l0aW9uSGVpZ2h0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2hpbGQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgb25FbmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBib3ggPSBlbEludmlzaWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBmdW5jdGlvbiBjbGVhblVwKCkge1xuICAgICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIpO1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1pbi1oZWlnaHRcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50RW1pdHRlci5kaXNwYXRjaGVyKFwib3JkZXItc3RvcFwiKTtcbiAgICAgICAgICAgIHJvb3RFbCgpLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLm9yZGVyaW5nKTtcbiAgICAgICAgICAgIGlmIChyZW9yZGVyaW5nQ2xhc3NOYW1lKVxuICAgICAgICAgICAgICByb290RWwoKS5jbGFzc0xpc3QucmVtb3ZlKHJlb3JkZXJpbmdDbGFzc05hbWUpO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKSBlbC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy52aXNpYmxlKTtcbiAgICAgICAgICAgIGNsb25lLnJlbW92ZSgpO1xuICAgICAgICAgICAgY3VycmVudENsb25lLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgQXJyYXkuZnJvbShlbEludmlzaWJsZS5jaGlsZHJlbikgYXMgSFRNTERpdkVsZW1lbnRbXSlcbiAgICAgICAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xvbmUuc3R5bGUudG9wLnN0YXJ0c1dpdGgoTWF0aC5mbG9vcihib3gudG9wKS50b1N0cmluZygpKSAmJlxuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdC5zdGFydHNXaXRoKE1hdGguZmxvb3IoYm94LmxlZnQpLnRvU3RyaW5nKCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRvcCA9IGAke2JveC50b3B9cHhgO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke2JveC5sZWZ0fXB4YDtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRyYW5zaXRpb24gPSBgdG9wIDUwMG1zIGxpbmVhciwgbGVmdCA1MDBtcyBsaW5lYXJgO1xuICAgICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBmb3IgKGxldCBlbCBvZiBlbHMpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChTdHlsZXMudmlzaWJsZSk7XG4gICAgICB9XG4gICAgICBpZiAoc2hyaW5rVG9Pbk9yZGVyKSB7XG4gICAgICAgIGZvciAobGV0IGVsIG9mIGVscykgZWwuc3R5bGUubWF4SGVpZ2h0ID0gYCR7ZWwuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgY29uc3QgdGFyZ2V0SGVpZ2h0ID0gZWxJbmRleCAqIHNocmlua1RvT25PcmRlcjtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9XG4gICAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iub2Zmc2V0VG9wIC0gZWxzWzBdLm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZ1RvcCA9IGN1cnJlbnRIZWlnaHQgLSB0YXJnZXRIZWlnaHQ7XG4gICAgICAgIHJvb3RFbCgpLnN0eWxlLnBhZGRpbmdUb3AgPSBgJHtwYWRkaW5nVG9wfXB4YDtcbiAgICAgICAgcm9vdEVsKCkuc3R5bGUubWluSGVpZ2h0ID0gYCR7cm9vdEVsKCkuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgIH1cbiAgICAgIG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG4gICAgICByb290RWwoKS5jbGFzc0xpc3QuYWRkKFN0eWxlcy5vcmRlcmluZyk7XG4gICAgICBpZiAocmVvcmRlcmluZ0NsYXNzTmFtZSkgcm9vdEVsKCkuY2xhc3NMaXN0LmFkZChyZW9yZGVyaW5nQ2xhc3NOYW1lKTtcbiAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPSBjbGVhbk9yZGVyUmVmLmN1cnJlbnRbZWxJbmRleF07XG4gICAgICBldmVudEVtaXR0ZXIuZGlzcGF0Y2hlcihcIm9yZGVyLXN0YXJ0XCIpO1xuICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChTdHlsZXMudW5zZWxlY3RhYmxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXJyZW50Q2xvbmUuY3VycmVudCkge1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEludmlzaWJsZSA9IGVscy5maW5kKFxuICAgICAgICAoYSkgPT5cbiAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICApITtcbiAgICAgIChlbEludmlzaWJsZS5jaGlsZHJlblswXSBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gYCR7XG4gICAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50IS5jbGllbnRIZWlnaHRcbiAgICAgIH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgKGVsSW52aXNpYmxlLmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5oZWlnaHQgPSBgJHtcbiAgICAgICAgICBjdXJyZW50Q2xvbmUuY3VycmVudCEuY2xpZW50SGVpZ2h0XG4gICAgICAgIH1weGA7XG4gICAgICB9LCAxNTApO1xuICAgIH1cbiAgfSwgW2NsZWFuT3JkZXJdKTtcblxuICBjb25zdCB0b1NwcmVhZCA9IHsgLi4ucHJvcHMgfSBhcyBhbnk7XG4gIGRlbGV0ZSB0b1NwcmVhZC5rZXlPcmRlcjtcbiAgZGVsZXRlIHRvU3ByZWFkLm9uQ2hhbmdlS2V5T3JkZXI7XG5cbiAgY29uc3QgY2hpbGRyZW5Ub1JlbmRlciA9IFsuLi5jaGlsZHJlbl1cbiAgICAuZmlsdGVyKChhKSA9PiBjbGVhbk9yZGVyLmluY2x1ZGVzKGEua2V5IGFzIHN0cmluZykpXG4gICAgLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGEua2V5IGFzIHN0cmluZykgLVxuICAgICAgICBjbGVhbk9yZGVyLmluZGV4T2YoYi5rZXkgYXMgc3RyaW5nKVxuICAgIClcbiAgICAubWFwKChhOiBSZWFjdEVsZW1lbnQsIGkpID0+ICh7XG4gICAgICAuLi5hLFxuICAgICAga2V5OiBvcmRlcltpXSxcbiAgICB9KSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICByb290RWwoKSEuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgKGUpID0+IHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRBbmNob3IgPSBhbmNob3JzTGlzdC5maW5kKChhbmNob3IpID0+XG4gICAgICAgIGFuY2hvci5jb250YWlucyhlLnRhcmdldCBhcyBhbnkpXG4gICAgICApO1xuICAgICAgaWYgKHJlbGF0ZWRBbmNob3IpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbkFuY2hvckNsaWNrKHtcbiAgICAgICAgICB0YXJnZXQ6IHJlbGF0ZWRBbmNob3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG1vdmVDYiA9IHRocm90dGxlKChlOiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdG91Y2ggPSBlLnRvdWNoZXNbMF07XG4gICAgICAgICAgY29uc3QgW3gsIHldID0gW3RvdWNoLmNsaWVudFgsIHRvdWNoLmNsaWVudFldO1xuICAgICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJZHggPSBlbHMuZmluZEluZGV4KChjLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gYz8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBpZiAoIXJlY3QpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiByZWN0LnRvcCA8IHkgJiYgcmVjdC50b3AgKyByZWN0LmhlaWdodCA+IHk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBlbHNbY3VycmVudEVsZW1lbnRJZHhdO1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY2FsY3VsYXRlUmVvcmRlcmluZyhcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRhcmdldDogZWwsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogeSAtIHJlY3QudG9wLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlbHMsXG4gICAgICAgICAgICAgIGNsZWFuT3JkZXJSZWYuY3VycmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIGNvbnN0IHQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFRvdWNoRXZlbnQoZS50eXBlLCBlIGFzIGFueSkpO1xuICAgICAgICAgIG1vdmVDYihlKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVtb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaE1vdmVDYik7XG4gICAgICAgICAgdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBUb3VjaEV2ZW50KGUudHlwZSwgZSBhcyBhbnkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRvdWNoTW92ZUNiKTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGJpbmRBbmNob3I6IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBvbkFuY2hvckNsaWNrKTtcbiAgICAgICAgYW5jaG9yc0xpc3QucHVzaChlbCk7XG4gICAgICB9LFxuICAgICAgdW5iaW5kQW5jaG9yOiAoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgb25BbmNob3JDbGljayk7XG4gICAgICAgIGFuY2hvcnNMaXN0LnNwbGljZShhbmNob3JzTGlzdC5pbmRleE9mKGVsKSwgMSk7XG4gICAgICB9LFxuICAgICAgb246IGV2ZW50RW1pdHRlci5zdWJzY3JpYmVyLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8T3JkZXJhYmxlTGlzdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2V9PlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3Jvb3RSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnJvb3R9ICR7Y2xhc3NOYW1lfSAke1xuICAgICAgICAgIHNocmlua1RvT25PcmRlciA/IFN0eWxlcy5zaHJpbmthYmxlIDogXCJcIlxuICAgICAgICB9YH1cbiAgICAgICAgey4uLnRvU3ByZWFkfVxuICAgICAgPlxuICAgICAgICB7bW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMID8gKFxuICAgICAgICAgIDxBbmltYXRlZEVudHJhbmNlPntjaGlsZHJlblRvUmVuZGVyfTwvQW5pbWF0ZWRFbnRyYW5jZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VW5jb250cm9sbGVkVHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtTdHlsZXMudHJhbnNpdGlvbn1cbiAgICAgICAgICAgIHRyYW5zaXRpb25UeXBlPXtUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NfVxuICAgICAgICAgICAgY29uZmlnPXt7XG4gICAgICAgICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBcIlwiLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBcIlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuc3R1YkVudGVyaW5nLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBUcmFuc2l0aW9uU3R5bGVzLmZhZGVPdXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29udGVudENsYXNzTmFtZT17YCR7Y2xhc3NOYW1lfWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17b3JkZXJJZH0+XG4gICAgICAgICAgICAgIHtbLi4uY2hpbGRyZW5dXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4gY2xlYW5PcmRlci5pbmNsdWRlcyhhLmtleSBhcyBzdHJpbmcpKVxuICAgICAgICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuT3JkZXIuaW5kZXhPZihhLmtleSBhcyBzdHJpbmcpIC1cbiAgICAgICAgICAgICAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGIua2V5IGFzIHN0cmluZylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm1hcCgoYSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPEhlcm9XcmFwcGVyIGtleT17aX0gaWQ9e2Eua2V5IGFzIHN0cmluZ30+XG4gICAgICAgICAgICAgICAgICAgIHthfVxuICAgICAgICAgICAgICAgICAgPC9IZXJvV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgPC9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9PcmRlcmFibGVMaXN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gSGVyb1dyYXBwZXIoeyBjaGlsZHJlbiwgaWQgfTogUHJvcHNXaXRoQ2hpbGRyZW48eyBpZDogc3RyaW5nIH0+KSB7XG4gIGNvbnN0IHsgaGVyb1JlZiB9ID0gdXNlSGVybyhpZCwgdW5kZWZpbmVkLCB7XG4gICAgb25IZXJvU3RhcnQ6IChfYywgX28sIHQpID0+IHtcbiAgICAgIHQucXVlcnlTZWxlY3RvckFsbChcImltZ1wiKS5mb3JFYWNoKFxuICAgICAgICAoaW1nKSA9PiAoaW1nLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiKVxuICAgICAgKTtcbiAgICB9LFxuICAgIG9uSGVyb0Nsb25lZChjbG9uZSkge1xuICAgICAgLy8gaWYgKCFjbG9uZS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpKSBjbG9uZS5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgfSxcbiAgICBvbkhlcm9FbmQ6ICgpID0+IHtcbiAgICAgIGlmIChoZXJvUmVmLmN1cnJlbnQpXG4gICAgICAgIGhlcm9SZWYuY3VycmVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nXCIpXG4gICAgICAgICAgLmZvckVhY2goKGltZykgPT4gKGltZy5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIikpO1xuICAgIH0sXG4gIH0pO1xuICByZXR1cm4gPGRpdiByZWY9e2hlcm9SZWZ9PntjaGlsZHJlbn08L2Rpdj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPcmRlcmFibGVMaXN0QW5jaG9yKCkge1xuICBjb25zdCBhbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChPcmRlcmFibGVMaXN0Q29udGV4dCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjdHgpIHJldHVybjtcbiAgICBjb25zdCB7IGJpbmRBbmNob3IsIHVuYmluZEFuY2hvciB9ID0gY3R4O1xuICAgIGJpbmRBbmNob3IoYW5jaG9yUmVmLmN1cnJlbnQhKTtcbiAgICByZXR1cm4gKCkgPT4gdW5iaW5kQW5jaG9yKGFuY2hvclJlZi5jdXJyZW50ISk7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIHtcbiAgICBhbmNob3JSZWY6IGN0eCA/IGFuY2hvclJlZiA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9yZGVyYWJsZUV2ZW50cyhcbiAgZXZlbnRzOiB7XG4gICAgW2sgaW4gRXZlbnRzXTogKCkgPT4gdm9pZDtcbiAgfVxuKSB7XG4gIGNvbnN0IHsgb24gfSA9IHVzZUNvbnRleHQoT3JkZXJhYmxlTGlzdENvbnRleHQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgZXZlbnROYW1lIGluIGV2ZW50cykge1xuICAgICAgdW5zdWJzY3JpYmVycy5wdXNoKG9uKGV2ZW50TmFtZSBhcyBFdmVudHMsIGV2ZW50c1tldmVudE5hbWUgYXMgRXZlbnRzXSkpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdW5zdWJzY3JpYmVycy5mb3JFYWNoKCh1KSA9PiB1KCkpO1xuICAgIH07XG4gIH0sIFtldmVudHNdKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBZUEsSUFBQUcsdUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFNBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUE0QyxNQUFBVyxTQUFBO0FBQUEsU0FBQUMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVgsd0JBQUFlLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdB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
|
|
426
|
+
exports.useOrderableEvents = useOrderableEvents;
|
|
427
|
+
//# sourceMappingURL=OrderableList.js.map
|