@onepercentio/one-ui 1.3.3 → 1.3.4

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.
Files changed (310) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/img/svg/checkbox.svg +3 -0
  3. package/dist/assets/styles/index.scss +2 -0
  4. package/dist/assets/styles/mixins.scss +15 -0
  5. package/dist/assets/styles/variables.scss +49 -0
  6. package/dist/components/AdaptiveButton/AdaptiveButton.js +32 -0
  7. package/dist/components/AdaptiveButton/AdaptiveButton.module.scss +7 -0
  8. package/dist/components/AdaptiveButton/index.js +27 -0
  9. package/dist/components/AdaptiveContainer/AdaptiveContainer.js +152 -0
  10. package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +53 -0
  11. package/dist/components/AdaptiveContainer/index.js +27 -0
  12. package/dist/components/AdaptiveDialog/AdaptiveDialog.js +81 -0
  13. package/dist/components/AdaptiveDialog/AdaptiveDialog.module.scss +145 -0
  14. package/dist/components/AdaptiveDialog/index.js +27 -0
  15. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +77 -0
  16. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +49 -0
  17. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
  18. package/dist/components/AdaptiveSidebar/index.js +27 -0
  19. package/dist/components/AnchoredTooltip/AnchoredTooltip.js +168 -0
  20. package/dist/components/AnchoredTooltip/AnchoredTooltip.module.scss +64 -0
  21. package/dist/components/AnchoredTooltip/index.js +27 -0
  22. package/dist/components/AnimatedEntrance/AnimatedEntrance.js +166 -0
  23. package/dist/components/AnimatedEntrance/AnimatedEntrance.module.scss +108 -0
  24. package/dist/components/AnimatedEntrance/index.js +27 -0
  25. package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js +95 -0
  26. package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.module.scss +22 -0
  27. package/dist/components/AsyncTriggerContainer/index.js +27 -0
  28. package/dist/components/AsyncWrapper/AsyncWrapper.js +42 -0
  29. package/dist/components/AsyncWrapper/index.js +27 -0
  30. package/dist/components/Avatar/Avatar.js +40 -0
  31. package/dist/components/Avatar/Avatar.module.scss +22 -0
  32. package/dist/components/Avatar/index.js +27 -0
  33. package/dist/components/BucketFill/BucketFill.js +56 -0
  34. package/dist/components/BucketFill/BucketFill.module.scss +36 -0
  35. package/dist/components/BucketFill/index.js +27 -0
  36. package/dist/components/Button/Button.js +39 -0
  37. package/dist/components/Button/Button.module.scss +45 -0
  38. package/dist/components/Button/index.js +27 -0
  39. package/dist/components/Card/Card.js +22 -0
  40. package/dist/components/Card/Card.module.scss +12 -0
  41. package/dist/components/Card/index.js +27 -0
  42. package/dist/components/Chart/Chart.js +27 -0
  43. package/dist/components/Chart/Chart.logic.js +14 -0
  44. package/dist/components/Chart/Chart.module.scss +58 -0
  45. package/dist/components/Chart/Chart.types.js +6 -0
  46. package/dist/components/Chart/Chart.view.js +184 -0
  47. package/dist/components/Chart/index.js +27 -0
  48. package/dist/components/CheckBox/CheckBox.js +52 -0
  49. package/dist/components/CheckBox/CheckBox.module.scss +36 -0
  50. package/dist/components/CheckBox/index.js +27 -0
  51. package/dist/components/CodeInput/CodeInput.js +84 -0
  52. package/dist/components/CodeInput/CodeInput.module.scss +5 -0
  53. package/dist/components/CodeInput/index.js +27 -0
  54. package/dist/components/Collapsable/Collapsable.js +186 -0
  55. package/dist/components/Collapsable/Collapsable.module.scss +42 -0
  56. package/dist/components/Collapsable/index.js +27 -0
  57. package/dist/components/Countdown/Countdown.js +83 -0
  58. package/dist/components/Countdown/index.js +27 -0
  59. package/dist/components/CurrencyInput/CurrencyInput.hook.js +28 -0
  60. package/dist/components/CurrencyInput/CurrencyInput.js +54 -0
  61. package/dist/components/CurrencyInput/index.js +27 -0
  62. package/dist/components/Divider/Divider.js +21 -0
  63. package/dist/components/Divider/Divider.module.scss +7 -0
  64. package/dist/components/Divider/index.js +27 -0
  65. package/dist/components/EmailInput/EmailInput.js +48 -0
  66. package/dist/components/EmailInput/EmailInput.module.scss +0 -0
  67. package/dist/components/EmailInput/index.js +27 -0
  68. package/dist/components/FadeIn/FadeIn.js +64 -0
  69. package/dist/components/FadeIn/FadeIn.module.scss +9 -0
  70. package/dist/components/FadeIn/index.js +27 -0
  71. package/dist/components/FileInput/FileInput.js +53 -0
  72. package/dist/components/FileInput/FileInput.module.scss +6 -0
  73. package/dist/components/FileInput/View/BigFactory/BigFactory.js +54 -0
  74. package/dist/components/FileInput/View/BigFactory/BigFactory.module.scss +20 -0
  75. package/dist/components/FileInput/View/BigFactory/index.js +27 -0
  76. package/dist/components/FileInput/View/Compact/Compact.js +120 -0
  77. package/dist/components/FileInput/View/Compact/Compact.module.scss +68 -0
  78. package/dist/components/FileInput/View/Compact/index.js +27 -0
  79. package/dist/components/FileInput/View/View.types.js +6 -0
  80. package/dist/components/FileInput/index.js +27 -0
  81. package/dist/components/FlowController/FlowController.js +66 -0
  82. package/dist/components/FlowController/FlowController.module.scss +47 -0
  83. package/dist/components/FlowController/index.js +27 -0
  84. package/dist/components/Form/Form.hook.js +234 -0
  85. package/dist/components/Form/Form.js +115 -0
  86. package/dist/components/Form/Form.module.scss +0 -0
  87. package/dist/components/Form/Form.types.js +40 -0
  88. package/dist/components/Form/FormField/Extensions/DateField/DateField.js +75 -0
  89. package/dist/components/Form/FormField/Extensions/DateField/DateField.module.scss +0 -0
  90. package/dist/components/Form/FormField/Extensions/DateField/index.js +27 -0
  91. package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +91 -0
  92. package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
  93. package/dist/components/Form/FormField/Extensions/PhoneField/index.js +27 -0
  94. package/dist/components/Form/FormField/FormField.js +296 -0
  95. package/dist/components/Form/FormField/FormField.types.js +12 -0
  96. package/dist/components/Form/FormField/index.js +27 -0
  97. package/dist/components/Form/index.js +27 -0
  98. package/dist/components/Freeze/Freeze.js +18 -0
  99. package/dist/components/Freeze/index.js +27 -0
  100. package/dist/components/HSForms/HSForms.js +55 -0
  101. package/dist/components/HSForms/index.js +27 -0
  102. package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +25 -0
  103. package/dist/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +44 -0
  104. package/dist/components/HeaderCloseBtn/index.js +27 -0
  105. package/dist/components/InfinityScroll/InfinityScroll.js +128 -0
  106. package/dist/components/InfinityScroll/InfinityScroll.module.scss +30 -0
  107. package/dist/components/InfinityScroll/index.js +27 -0
  108. package/dist/components/Input/Input.js +110 -0
  109. package/dist/components/Input/Input.module.scss +31 -0
  110. package/dist/components/Input/index.js +27 -0
  111. package/dist/components/InstantCounter/InstantCounter.js +55 -0
  112. package/dist/components/InstantCounter/index.js +27 -0
  113. package/dist/components/LavaLamp/LavaLamp.data.js +89 -0
  114. package/dist/components/LavaLamp/LavaLamp.js +125 -0
  115. package/dist/components/LavaLamp/LavaLamp.module.scss +26 -0
  116. package/dist/components/LavaLamp/index.js +27 -0
  117. package/dist/components/LavaLamp/v2/LavaLamp.js +154 -0
  118. package/dist/components/LavaLamp/v2/LavaLamp.module.scss +23 -0
  119. package/dist/components/LinkToId/LinkToId.js +45 -0
  120. package/dist/components/LinkToId/LinkToId.module.scss +4 -0
  121. package/dist/components/LinkToId/index.js +27 -0
  122. package/dist/components/Loader/Loader.js +27 -0
  123. package/dist/components/Loader/Loader.module.scss +40 -0
  124. package/dist/components/Loader/index.js +27 -0
  125. package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +36 -0
  126. package/dist/components/LoaderDotsIndicator/index.js +27 -0
  127. package/dist/components/LoopableVideo/LoopableVideo.js +41 -0
  128. package/dist/components/LoopableVideo/index.js +27 -0
  129. package/dist/components/MainGrid/MainGrid.js +55 -0
  130. package/dist/components/MainGrid/MainGrid.module.scss +28 -0
  131. package/dist/components/MainGrid/index.js +27 -0
  132. package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +32 -0
  133. package/dist/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +220 -0
  134. package/dist/components/MutableHamburgerButton/index.js +27 -0
  135. package/dist/components/Notification/Notification.js +24 -0
  136. package/dist/components/Notification/Notification.module.scss +25 -0
  137. package/dist/components/Notification/index.js +27 -0
  138. package/dist/components/NumberInput/NumberInput.js +50 -0
  139. package/dist/components/NumberInput/index.js +27 -0
  140. package/dist/components/OrderableList/OrderableList.js +439 -0
  141. package/dist/components/OrderableList/OrderableList.module.scss +98 -0
  142. package/dist/components/OrderableList/index.js +27 -0
  143. package/dist/components/PaginationIndicator/PaginationIndicator.js +261 -0
  144. package/dist/components/PaginationIndicator/index.js +27 -0
  145. package/dist/components/Parallax/Parallax.js +169 -0
  146. package/dist/components/Parallax/Parallax.module.scss +28 -0
  147. package/dist/components/Parallax/index.js +27 -0
  148. package/dist/components/Parallax/math/helpers.js +134 -0
  149. package/dist/components/PasswordInput/PasswordInput.js +97 -0
  150. package/dist/components/PasswordInput/PasswordInput.module.scss +17 -0
  151. package/dist/components/PasswordInput/index.js +27 -0
  152. package/dist/components/PingPongText/PingPongText.js +76 -0
  153. package/dist/components/PingPongText/PingPongText.module.scss +4 -0
  154. package/dist/components/PingPongText/index.js +27 -0
  155. package/dist/components/PixelatedScan/PixelatedScan.js +139 -0
  156. package/dist/components/PixelatedScan/PixelatedScan.module.scss +86 -0
  157. package/dist/components/PixelatedScan/index.js +27 -0
  158. package/dist/components/Portal/Portal.js +62 -0
  159. package/dist/components/Portal/Portal.module.scss +3 -0
  160. package/dist/components/Portal/index.js +27 -0
  161. package/dist/components/ProgressBar/ProgressBar.js +113 -0
  162. package/dist/components/ProgressBar/ProgressBar.module.scss +44 -0
  163. package/dist/components/ProgressBar/index.js +27 -0
  164. package/dist/components/ProgressTexts/ProgressTexts.js +52 -0
  165. package/dist/components/ProgressTexts/ProgressTexts.module.scss +37 -0
  166. package/dist/components/ProgressTexts/index.js +27 -0
  167. package/dist/components/Radio/Radio.js +53 -0
  168. package/dist/components/Radio/Radio.module.scss +20 -0
  169. package/dist/components/Radio/index.js +27 -0
  170. package/dist/components/Radio/variants/Checkmark/Checkmark.js +20 -0
  171. package/dist/components/Radio/variants/Checkmark/Checkmark.module.scss +24 -0
  172. package/dist/components/Radio/variants/Checkmark/index.js +27 -0
  173. package/dist/components/Radio/variants/Generic/Generic.js +22 -0
  174. package/dist/components/Radio/variants/Generic/Generic.module.scss +38 -0
  175. package/dist/components/Radio/variants/Generic/index.js +27 -0
  176. package/dist/components/SectionContainer/SectionContainer.js +49 -0
  177. package/dist/components/SectionContainer/SectionContainer.module.scss +30 -0
  178. package/dist/components/SectionContainer/index.js +27 -0
  179. package/dist/components/Select/Select.js +138 -0
  180. package/dist/components/Select/Select.module.scss +60 -0
  181. package/dist/components/Select/index.js +27 -0
  182. package/dist/components/Skeleton/Skeleton.js +30 -0
  183. package/dist/components/Skeleton/Skeleton.module.scss +21 -0
  184. package/dist/components/Skeleton/index.js +27 -0
  185. package/dist/components/Slider/Slider.js +70 -0
  186. package/dist/components/Slider/Slider.module.scss +7 -0
  187. package/dist/components/Slider/index.js +27 -0
  188. package/dist/components/Spacing/Spacing.js +34 -0
  189. package/dist/components/Spacing/Spacing.module.scss +13 -0
  190. package/dist/components/Spacing/index.js +27 -0
  191. package/dist/components/StaticScroller/StaticScroller.js +72 -0
  192. package/dist/components/StaticScroller/StaticScroller.module.scss +14 -0
  193. package/dist/components/StaticScroller/index.js +27 -0
  194. package/dist/components/Switch/Switch.js +47 -0
  195. package/dist/components/Switch/Switch.module.scss +46 -0
  196. package/dist/components/Switch/index.js +27 -0
  197. package/dist/components/Table/Table.js +115 -0
  198. package/dist/components/Table/Table.module.scss +74 -0
  199. package/dist/components/Table/index.js +27 -0
  200. package/dist/components/Tabs/Tabs.js +67 -0
  201. package/dist/components/Tabs/Tabs.module.scss +40 -0
  202. package/dist/components/Tabs/index.js +27 -0
  203. package/dist/components/Text/Text.js +44 -0
  204. package/dist/components/Text/Text.module.scss +13 -0
  205. package/dist/components/Text/index.js +27 -0
  206. package/dist/components/Transition/MasksFactory/DiagonalReveal.js +49 -0
  207. package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +78 -0
  208. package/dist/components/Transition/MasksFactory/PhysicsSquares.js +96 -0
  209. package/dist/components/Transition/MasksFactory/SquareToBalls.js +67 -0
  210. package/dist/components/Transition/MasksFactory/utils.js +30 -0
  211. package/dist/components/Transition/Transition.js +323 -0
  212. package/dist/components/Transition/Transition.module.scss +211 -0
  213. package/dist/components/Transition/index.js +27 -0
  214. package/dist/components/UncontrolledTransition/UncontrolledTransition.ai.md +9 -0
  215. package/dist/components/UncontrolledTransition/UncontrolledTransition.js +110 -0
  216. package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +32 -0
  217. package/dist/components/UncontrolledTransition/index.js +27 -0
  218. package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +115 -0
  219. package/dist/components/WalletConnectionWrapper/index.js +27 -0
  220. package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +59 -0
  221. package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +5 -0
  222. package/dist/components/utilitary/ScrollAndFocusLock/index.js +27 -0
  223. package/dist/context/AsyncProcess.js +74 -0
  224. package/dist/context/ContextAsyncControl.js +92 -0
  225. package/dist/context/CustomBrowserRouter.js +50 -0
  226. package/dist/context/OneUIProvider.js +129 -0
  227. package/dist/hooks/logs/useDependencyChangeDetection.js +20 -0
  228. package/dist/hooks/logs/useIsMounting.js +13 -0
  229. package/dist/hooks/persistence/useLocalStorage.js +48 -0
  230. package/dist/hooks/shims/ObjectWatchShim.js +54 -0
  231. package/dist/hooks/ui/useAdaptiveImage.js +36 -0
  232. package/dist/hooks/ui/useAlternating.js +24 -0
  233. package/dist/hooks/ui/useBreakpoint.js +26 -0
  234. package/dist/hooks/ui/useCustomScrollbar.js +28 -0
  235. package/dist/hooks/ui/useCustomScrollbar.module.scss +20 -0
  236. package/dist/hooks/ui/useEffectIf.js +14 -0
  237. package/dist/hooks/ui/useMouseHover.js +32 -0
  238. package/dist/hooks/ui/usePaginationControls.js +136 -0
  239. package/dist/hooks/ui/usePaginationControls.module.scss +16 -0
  240. package/dist/hooks/ui/useSnapToViewport.js +26 -0
  241. package/dist/hooks/ui/useSnapToViewport.module.scss +6 -0
  242. package/dist/hooks/ui/useTilt.js +161 -0
  243. package/dist/hooks/ui/useZoomable.js +135 -0
  244. package/dist/hooks/ui/useZoomable.module.scss +34 -0
  245. package/dist/hooks/useAsyncControl.ai.md +25 -0
  246. package/dist/hooks/useAsyncControl.js +79 -0
  247. package/dist/hooks/useContainedRepositioning.js +83 -0
  248. package/dist/hooks/useCustomHistory.js +24 -0
  249. package/dist/hooks/useElementFit.js +54 -0
  250. package/dist/hooks/useFirestoreWatch.js +45 -0
  251. package/dist/hooks/useFreeze.js +17 -0
  252. package/dist/hooks/useHero.js +273 -0
  253. package/dist/hooks/useHero.module.scss +41 -0
  254. package/dist/hooks/useIntersection.js +39 -0
  255. package/dist/hooks/useMergeRefs.js +36 -0
  256. package/dist/hooks/useObserve.js +25 -0
  257. package/dist/hooks/usePagination.js +163 -0
  258. package/dist/hooks/usePooledOperation.js +52 -0
  259. package/dist/hooks/usePooling.js +52 -0
  260. package/dist/hooks/useRebound.js +32 -0
  261. package/dist/hooks/useShortIntl.ai.md +5 -0
  262. package/dist/hooks/useShortIntl.js +82 -0
  263. package/dist/hooks/utility/useAsyncMemo.js +45 -0
  264. package/dist/hooks/utility/useDepChange.js +17 -0
  265. package/dist/hooks/utility/useEvents.js +33 -0
  266. package/dist/hooks/utility/useImmediate.js +14 -0
  267. package/dist/hooks/utility/useManualInit.js +25 -0
  268. package/dist/hooks/utility/useModule.js +18 -0
  269. package/dist/hooks/utility/useQuery.js +20 -0
  270. package/dist/hooks/utility/useUniqueEffect.js +20 -0
  271. package/dist/index.js +2149 -0
  272. package/dist/index.preprocess.js +42 -0
  273. package/dist/models/DebugLogger.js +16 -0
  274. package/dist/models/GenericContract.js +51 -0
  275. package/dist/models/Orbs.js +67 -0
  276. package/dist/reac-app-env.d.js +2 -0
  277. package/dist/storybook/assets/video/txt-reversed.mp4 +0 -0
  278. package/dist/storybookUtils/index.js +44 -0
  279. package/dist/type-utils.js +6 -0
  280. package/dist/types.js +6 -0
  281. package/dist/utility.d.js +2 -0
  282. package/dist/utils/blockchain.js +46 -0
  283. package/dist/utils/e2e.js +33 -0
  284. package/dist/utils/flatten.js +19 -0
  285. package/dist/utils/formatters.js +63 -0
  286. package/dist/utils/html.utils.js +15 -0
  287. package/dist/utils/ownEvent.js +16 -0
  288. package/dist/utils/test.js +19 -0
  289. package/dist-ts/components/AnchoredTooltip/AnchoredTooltip.module.scss +13 -10
  290. package/dist-ts/components/CheckBox/CheckBox.d.ts +3 -1
  291. package/dist-ts/components/CheckBox/CheckBox.js +7 -4
  292. package/dist-ts/components/CheckBox/CheckBox.js.map +1 -1
  293. package/dist-ts/components/CheckBox/CheckBox.module.scss +5 -0
  294. package/dist-ts/components/Input/Input.js +1 -1
  295. package/dist-ts/components/Input/Input.js.map +1 -1
  296. package/dist-ts/context/OneUIProvider.d.ts +3 -1
  297. package/dist-ts/context/OneUIProvider.js.map +1 -1
  298. package/dist-ts/hooks/ui/useAdaptiveImage.d.ts +1 -1
  299. package/dist-ts/hooks/ui/useAdaptiveImage.js +1 -1
  300. package/dist-ts/hooks/ui/useAdaptiveImage.js.map +1 -1
  301. package/dist-ts/hooks/ui/useMouseHover.d.ts +2 -3
  302. package/dist-ts/hooks/ui/useMouseHover.js +6 -8
  303. package/dist-ts/hooks/ui/useMouseHover.js.map +1 -1
  304. package/dist-ts/index.d.ts +1 -0
  305. package/dist-ts/index.js +1 -0
  306. package/dist-ts/index.js.map +1 -1
  307. package/dist-ts/models/ImageScales.d.ts +7 -0
  308. package/dist-ts/models/ImageScales.js +9 -0
  309. package/dist-ts/models/ImageScales.js.map +1 -0
  310. package/package.json +1 -1
@@ -0,0 +1,145 @@
1
+ @use "../../assets/styles/index.scss" as *;
2
+
3
+ .backdrop {
4
+ position: fixed;
5
+ top: 0px;
6
+ left: 0px;
7
+ right: 0px;
8
+ bottom: 0px;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ z-index: 1000;
13
+ transition: backdrop-filter $veryFast linear;
14
+ backdrop-filter: var(--adaptive-dialog-backdrop-backdrop, initial);
15
+ pointer-events: none;
16
+
17
+ @media screen and (orientation: "portrait") {
18
+ align-items: flex-end;
19
+ }
20
+ }
21
+ .backdrop,
22
+ .container {
23
+ animation-duration: $fast;
24
+ animation-fill-mode: forwards;
25
+ }
26
+
27
+ .open {
28
+ &.backdrop {
29
+ animation-name: backdropAppear;
30
+ }
31
+ .container {
32
+ animation-name: reveal;
33
+ }
34
+ @media screen and (orientation: "portrait") {
35
+ .container {
36
+ animation-timing-function: ease-in-out;
37
+ animation-name: slideUp;
38
+ transform: translateY(100%);
39
+ }
40
+ }
41
+ }
42
+
43
+ .close {
44
+ &.backdrop {
45
+ animation-name: backdropDismiss;
46
+ }
47
+
48
+ .container {
49
+ animation-name: dismiss;
50
+ }
51
+
52
+ @media screen and (orientation: "portrait") {
53
+ .container {
54
+ animation-name: slideDown;
55
+ }
56
+ }
57
+ }
58
+
59
+ .container {
60
+ > .closeBtn {
61
+ position: absolute;
62
+ right: 16px;
63
+ top: 16px;
64
+ background: none;
65
+ border: none;
66
+ width: auto;
67
+ height: auto;
68
+ padding: 0px !important;
69
+ }
70
+ position: relative;
71
+ max-width: 95vw;
72
+ background: $mainBackgroundColor;
73
+ backdrop-filter: var(--adaptive-dialog-backdrop, initial);
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ flex-direction: column;
78
+ max-height: 90% !important;
79
+ overscroll-behavior: contain;
80
+ @media screen and (orientation: "portrait") {
81
+ min-height: initial;
82
+ align-items: flex-start;
83
+ }
84
+ }
85
+
86
+ @keyframes backdropAppear {
87
+ 0% {
88
+ background-color: #0000;
89
+ }
90
+
91
+ 100% {
92
+ background-color: #0005;
93
+ }
94
+ }
95
+
96
+ @keyframes backdropDismiss {
97
+ 0% {
98
+ background-color: #0005;
99
+ }
100
+
101
+ 100% {
102
+ background-color: #0000;
103
+ }
104
+ }
105
+
106
+ @keyframes reveal {
107
+ 0% {
108
+ opacity: 0;
109
+ }
110
+ 100% {
111
+ opacity: 1;
112
+ }
113
+ }
114
+
115
+ @keyframes dismiss {
116
+ 0% {
117
+ opacity: 1;
118
+ }
119
+ 100% {
120
+ opacity: 0;
121
+ }
122
+ }
123
+
124
+ @keyframes slideUp {
125
+ 0% {
126
+ min-height: 0px;
127
+ transform: translateY(100%);
128
+ }
129
+
130
+ 100% {
131
+ min-height: 0px;
132
+ transform: translateY(0%);
133
+ }
134
+ }
135
+
136
+ @keyframes slideDown {
137
+ 0% {
138
+ transform: translateY(0%);
139
+ }
140
+
141
+ 100% {
142
+ min-height: 0px;
143
+ transform: translateY(100%);
144
+ }
145
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _AdaptiveDialog.default;
11
+ }
12
+ });
13
+ var _AdaptiveDialog = _interopRequireWildcard(require("./AdaptiveDialog"));
14
+ Object.keys(_AdaptiveDialog).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _AdaptiveDialog[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _AdaptiveDialog[key];
22
+ }
23
+ });
24
+ });
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWRhcHRpdmVEaWFsb2ciLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FkYXB0aXZlRGlhbG9nL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vQWRhcHRpdmVEaWFsb2dcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0FkYXB0aXZlRGlhbG9nXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLGVBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixlQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLGVBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUFpQyxTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactDom = require("react-dom");
9
+ var _MutableHamburgerButton = _interopRequireDefault(require("../MutableHamburgerButton"));
10
+ var _ScrollAndFocusLock = _interopRequireDefault(require("../utilitary/ScrollAndFocusLock"));
11
+ var _AdaptiveSidebarModule = _interopRequireDefault(require("./AdaptiveSidebar.module.scss"));
12
+ var _useBreakpoint = _interopRequireDefault(require("../../hooks/ui/useBreakpoint"));
13
+ var _OneUIProvider = require("../../context/OneUIProvider");
14
+ const _excluded = ["open", "children", "className", "breakInto", "visibilityControlComponent"];
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
+ const DefaultVisibilityControl = _ref => {
22
+ let {
23
+ open
24
+ } = _ref;
25
+ return /*#__PURE__*/_react.default.createElement(_MutableHamburgerButton.default, {
26
+ size: 48,
27
+ state: open ? "closed" : "default"
28
+ });
29
+ };
30
+ function _AdaptiveSidebar(_ref2, ref) {
31
+ let {
32
+ open: externalOpen,
33
+ children,
34
+ className = "",
35
+ breakInto = 640,
36
+ visibilityControlComponent: VisibilityControlComponent = DefaultVisibilityControl
37
+ } = _ref2,
38
+ props = _objectWithoutProperties(_ref2, _excluded);
39
+ const [open, setOpen] = (0, _react.useState)(false);
40
+ const containerRef = (0, _react.useRef)(null);
41
+ const _open = externalOpen === undefined ? open : externalOpen;
42
+ const isMobile = (0, _useBreakpoint.default)(breakInto);
43
+ const globalClassName = (0, _OneUIProvider.useOneUIConfig)("component.adaptiveSidebar.className");
44
+ const globalControlClassName = (0, _OneUIProvider.useOneUIConfig)("component.adaptiveSidebar.controlClassName");
45
+ (0, _react.useImperativeHandle)(ref, () => ({
46
+ dismiss: () => setOpen(false)
47
+ }), []);
48
+ (0, _react.useEffect)(() => {
49
+ if (process.env.NODE_ENV === "test") return;
50
+ containerRef.current.scrollTo({
51
+ left: 0,
52
+ behavior: "smooth",
53
+ top: 0
54
+ });
55
+ }, [_open]);
56
+ const externalControl = externalOpen !== undefined;
57
+ const content = /*#__PURE__*/_react.default.createElement("div", _extends({
58
+ ref: containerRef,
59
+ className: "".concat(isMobile ? _AdaptiveSidebarModule.default.mobile : _AdaptiveSidebarModule.default.desktop, " ").concat(_AdaptiveSidebarModule.default.container, " ").concat(!externalControl && DefaultVisibilityControl === VisibilityControlComponent ? _AdaptiveSidebarModule.default.defaultPadding : "", " ").concat(_open ? _AdaptiveSidebarModule.default.open : _AdaptiveSidebarModule.default.closed, " ").concat(className, " ").concat(globalClassName)
60
+ }, props), /*#__PURE__*/_react.default.createElement(_ScrollAndFocusLock.default, {
61
+ open: _open
62
+ }, children));
63
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isMobile ? /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, content, !externalControl && /*#__PURE__*/_react.default.createElement("div", {
64
+ className: "".concat(isMobile ? _AdaptiveSidebarModule.default.mobile : _AdaptiveSidebarModule.default.desktop, " ").concat(_AdaptiveSidebarModule.default.hamburger, " ").concat(globalControlClassName),
65
+ onClick: () => setOpen(a => !a)
66
+ }, /*#__PURE__*/_react.default.createElement(VisibilityControlComponent, {
67
+ open: _open
68
+ }))), document.body) : content);
69
+ }
70
+
71
+ /**
72
+ * A component that displays a sidebar panel. On mobile devices, it shows a floating button to open and close the panel.
73
+ * On desktop, the panel displays directly in the page.
74
+ **/
75
+ const AdaptiveSidebar = /*#__PURE__*/(0, _react.forwardRef)(_AdaptiveSidebar);
76
+ var _default = exports.default = AdaptiveSidebar;
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfTXV0YWJsZUhhbWJ1cmdlckJ1dHRvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfU2Nyb2xsQW5kRm9jdXNMb2NrIiwiX0FkYXB0aXZlU2lkZWJhck1vZHVsZSIsIl91c2VCcmVha3BvaW50IiwiX09uZVVJUHJvdmlkZXIiLCJfZXhjbHVkZWQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsIkRlZmF1bHRWaXNpYmlsaXR5Q29udHJvbCIsIl9yZWYiLCJvcGVuIiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJzdGF0ZSIsIl9BZGFwdGl2ZVNpZGViYXIiLCJfcmVmMiIsInJlZiIsImV4dGVybmFsT3BlbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnJlYWtJbnRvIiwidmlzaWJpbGl0eUNvbnRyb2xDb21wb25lbnQiLCJWaXNpYmlsaXR5Q29udHJvbENvbXBvbmVudCIsInByb3BzIiwic2V0T3BlbiIsInVzZVN0YXRlIiwiY29udGFpbmVyUmVmIiwidXNlUmVmIiwiX29wZW4iLCJ1bmRlZmluZWQiLCJpc01vYmlsZSIsInVzZUJyZWFrcG9pbnQiLCJnbG9iYWxDbGFzc05hbWUiLCJ1c2VPbmVVSUNvbmZpZyIsImdsb2JhbENvbnRyb2xDbGFzc05hbWUiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiZGlzbWlzcyIsInVzZUVmZmVjdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImN1cnJlbnQiLCJzY3JvbGxUbyIsImxlZnQiLCJiZWhhdmlvciIsInRvcCIsImV4dGVybmFsQ29udHJvbCIsImNvbnRlbnQiLCJjb25jYXQiLCJTdHlsZXMiLCJtb2JpbGUiLCJkZXNrdG9wIiwiY29udGFpbmVyIiwiZGVmYXVsdFBhZGRpbmciLCJjbG9zZWQiLCJGcmFnbWVudCIsImNyZWF0ZVBvcnRhbCIsImhhbWJ1cmdlciIsIm9uQ2xpY2siLCJhIiwiZG9jdW1lbnQiLCJib2R5IiwiQWRhcHRpdmVTaWRlYmFyIiwiZm9yd2FyZFJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FkYXB0aXZlU2lkZWJhci9BZGFwdGl2ZVNpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIFByb3BzV2l0aENoaWxkcmVuLFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IE11dGFibGVIYW1idXJnZXJCdXR0b24gZnJvbSBcIi4uL011dGFibGVIYW1idXJnZXJCdXR0b25cIjtcbmltcG9ydCBTY3JvbGxBbmRGb2N1c0xvY2sgZnJvbSBcIi4uL3V0aWxpdGFyeS9TY3JvbGxBbmRGb2N1c0xvY2tcIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vQWRhcHRpdmVTaWRlYmFyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdXNlQnJlYWtwb2ludCBmcm9tIFwiLi4vLi4vaG9va3MvdWkvdXNlQnJlYWtwb2ludFwiO1xuaW1wb3J0IHsgdXNlT25lVUlDb25maWcgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9PbmVVSVByb3ZpZGVyXCI7XG5cbmNvbnN0IERlZmF1bHRWaXNpYmlsaXR5Q29udHJvbCA9ICh7IG9wZW4gfTogeyBvcGVuOiBib29sZWFuIH0pID0+IChcbiAgPE11dGFibGVIYW1idXJnZXJCdXR0b24gc2l6ZT17NDh9IHN0YXRlPXtvcGVuID8gXCJjbG9zZWRcIiA6IFwiZGVmYXVsdFwifSAvPlxuKTtcblxudHlwZSBBZGFwdGl2ZVNpZGViYXJDb250cm9scyA9IHtcbiAgZGlzbWlzczogKCkgPT4gdm9pZDtcbn07XG5mdW5jdGlvbiBfQWRhcHRpdmVTaWRlYmFyKFxuICB7XG4gICAgb3BlbjogZXh0ZXJuYWxPcGVuLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSA9IFwiXCIsXG4gICAgYnJlYWtJbnRvID0gNjQwLFxuICAgIHZpc2liaWxpdHlDb250cm9sQ29tcG9uZW50OlxuICAgICAgVmlzaWJpbGl0eUNvbnRyb2xDb21wb25lbnQgPSBEZWZhdWx0VmlzaWJpbGl0eUNvbnRyb2wsXG4gICAgLi4ucHJvcHNcbiAgfTogUHJvcHNXaXRoQ2hpbGRyZW48XG4gICAge1xuICAgICAgLyoqIFRvIGNvbnRyb2wgQWRhcHRpdmVTaWRlYmFyIGV4dGVybmFsbHlcbiAgICAgICAqIChjcmVhdGVkIGZvciBmbG93cyB0aGF0IHJlcXVpcmVzIGZsb2F0aW5nIHZpZXdzIHdoZW4gb24gbW9iaWxlKVxuICAgICAgICoqL1xuICAgICAgb3Blbj86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBzY3JlZW4gd2lkdGggdG8gdHVybiBpbnRvIHJlc3BvbnNpdmUgbW9kZVxuICAgICAgICovXG4gICAgICBicmVha0ludG8/OiBudW1iZXI7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICB2aXNpYmlsaXR5Q29udHJvbENvbXBvbmVudD86IChwcm9wczoge1xuICAgICAgICBvcGVuOiBib29sZWFuO1xuICAgICAgfSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50O1xuICAgIH0gJiBPbWl0PFJlYWN0LkhUTUxQcm9wczxIVE1MRGl2RWxlbWVudD4sIFwicmVmXCI+XG4gID4sXG4gIHJlZjogRm9yd2FyZGVkUmVmPEFkYXB0aXZlU2lkZWJhckNvbnRyb2xzPlxuKSB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgX29wZW4gPSBleHRlcm5hbE9wZW4gPT09IHVuZGVmaW5lZCA/IG9wZW4gOiBleHRlcm5hbE9wZW47XG4gIGNvbnN0IGlzTW9iaWxlID0gdXNlQnJlYWtwb2ludChicmVha0ludG8pO1xuICBjb25zdCBnbG9iYWxDbGFzc05hbWUgPSB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5hZGFwdGl2ZVNpZGViYXIuY2xhc3NOYW1lXCIpO1xuICBjb25zdCBnbG9iYWxDb250cm9sQ2xhc3NOYW1lID0gdXNlT25lVUlDb25maWcoXG4gICAgXCJjb21wb25lbnQuYWRhcHRpdmVTaWRlYmFyLmNvbnRyb2xDbGFzc05hbWVcIlxuICApO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpID0+ICh7XG4gICAgICBkaXNtaXNzOiAoKSA9PiBzZXRPcGVuKGZhbHNlKSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInRlc3RcIikgcmV0dXJuO1xuICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zY3JvbGxUbyh7XG4gICAgICBsZWZ0OiAwLFxuICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgICB0b3A6IDAsXG4gICAgfSk7XG4gIH0sIFtfb3Blbl0pO1xuICBjb25zdCBleHRlcm5hbENvbnRyb2wgPSBleHRlcm5hbE9wZW4gIT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBjb250ZW50ID0gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtgJHtpc01vYmlsZSA/IFN0eWxlcy5tb2JpbGUgOiBTdHlsZXMuZGVza3RvcH0gJHtcbiAgICAgICAgU3R5bGVzLmNvbnRhaW5lclxuICAgICAgfSAke1xuICAgICAgICAhZXh0ZXJuYWxDb250cm9sICYmXG4gICAgICAgIERlZmF1bHRWaXNpYmlsaXR5Q29udHJvbCA9PT0gVmlzaWJpbGl0eUNvbnRyb2xDb21wb25lbnRcbiAgICAgICAgICA/IFN0eWxlcy5kZWZhdWx0UGFkZGluZ1xuICAgICAgICAgIDogXCJcIlxuICAgICAgfSAke19vcGVuID8gU3R5bGVzLm9wZW4gOiBTdHlsZXMuY2xvc2VkfSAke2NsYXNzTmFtZX0gJHtnbG9iYWxDbGFzc05hbWV9YH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8U2Nyb2xsQW5kRm9jdXNMb2NrIG9wZW49e19vcGVufT57Y2hpbGRyZW59PC9TY3JvbGxBbmRGb2N1c0xvY2s+XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2lzTW9iaWxlXG4gICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgICAgIHshZXh0ZXJuYWxDb250cm9sICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2lzTW9iaWxlID8gU3R5bGVzLm1vYmlsZSA6IFN0eWxlcy5kZXNrdG9wfSAke1xuICAgICAgICAgICAgICAgICAgICBTdHlsZXMuaGFtYnVyZ2VyXG4gICAgICAgICAgICAgICAgICB9ICR7Z2xvYmFsQ29udHJvbENsYXNzTmFtZX1gfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0T3BlbigoYSkgPT4gIWEpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxWaXNpYmlsaXR5Q29udHJvbENvbXBvbmVudCBvcGVuPXtfb3Blbn0gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPixcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIDogY29udGVudH1cbiAgICA8Lz5cbiAgKTtcbn1cblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGEgc2lkZWJhciBwYW5lbC4gT24gbW9iaWxlIGRldmljZXMsIGl0IHNob3dzIGEgZmxvYXRpbmcgYnV0dG9uIHRvIG9wZW4gYW5kIGNsb3NlIHRoZSBwYW5lbC5cbiAqIE9uIGRlc2t0b3AsIHRoZSBwYW5lbCBkaXNwbGF5cyBkaXJlY3RseSBpbiB0aGUgcGFnZS5cbiAqKi9cbmNvbnN0IEFkYXB0aXZlU2lkZWJhciA9IGZvcndhcmRSZWYoX0FkYXB0aXZlU2lkZWJhcik7XG5leHBvcnQgZGVmYXVsdCBBZGFwdGl2ZVNpZGViYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQVNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssc0JBQUEsR0FB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
@@ -0,0 +1,49 @@
1
+ @use "../../assets/styles/index.scss" as *;
2
+
3
+ $hamburgerSize: 48;
4
+ $hamburgerOffset: 24;
5
+
6
+ @value hamburgerSize #{$hamburgerSize};
7
+
8
+ .hamburger {
9
+ position: fixed;
10
+ top: #{$hamburgerOffset}px;
11
+ left: #{$hamburgerOffset}px;
12
+ }
13
+
14
+ .hamburger {
15
+ display: initial;
16
+ }
17
+
18
+ .hamburger,
19
+ .container {
20
+ z-index: 1000;
21
+ }
22
+
23
+ .container {
24
+ box-sizing: border-box;
25
+ height: 100%;
26
+ }
27
+ .hamburger.desktop {
28
+ display: none;
29
+ }
30
+
31
+ .container.mobile {
32
+ &.defaultPadding {
33
+ padding-top: #{$hamburgerSize + $hamburgerOffset * 2}px;
34
+ }
35
+ position: fixed;
36
+ width: 100%;
37
+ overflow: auto;
38
+ z-index: 1000;
39
+ left: 0;
40
+
41
+ &.open {
42
+ transition: transform $veryFast ease-out;
43
+ transform: translateX(-0%);
44
+ }
45
+ &.closed {
46
+ transition: transform $veryFast ease-in;
47
+ transform: translateX(-100%);
48
+ }
49
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AdaptiveSidebarSample;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _AdaptiveSidebar = _interopRequireDefault(require("./AdaptiveSidebar"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function AdaptiveSidebarSample() {
11
+ return /*#__PURE__*/_react.default.createElement(_AdaptiveSidebar.default, null, "Experiment with different resolutions to see how this container behaves");
12
+ }
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9BZGFwdGl2ZVNpZGViYXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkFkYXB0aXZlU2lkZWJhclNhbXBsZSIsImNyZWF0ZUVsZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9BZGFwdGl2ZVNpZGViYXIvQWRhcHRpdmVTaWRlYmFyLnNhbXBsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEFkYXB0aXZlU2lkZWJhciBmcm9tIFwiLi9BZGFwdGl2ZVNpZGViYXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQWRhcHRpdmVTaWRlYmFyU2FtcGxlKCkge1xuICByZXR1cm4gKFxuICAgIDxBZGFwdGl2ZVNpZGViYXI+XG4gICAgICBFeHBlcmltZW50IHdpdGggZGlmZmVyZW50IHJlc29sdXRpb25zIHRvIHNlZSBob3cgdGhpcyBjb250YWluZXIgYmVoYXZlc1xuICAgIDwvQWRhcHRpdmVTaWRlYmFyPlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQWdELFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRWpDLFNBQVNHLHFCQUFxQkEsQ0FBQSxFQUFHO0VBQzlDLG9CQUNFUCxNQUFBLENBQUFNLE9BQUEsQ0FBQUUsYUFBQSxDQUFDTCxnQkFBQSxDQUFBRyxPQUFlLFFBQUMseUVBRUEsQ0FBQztBQUV0QiJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _AdaptiveSidebar.default;
11
+ }
12
+ });
13
+ var _AdaptiveSidebar = _interopRequireWildcard(require("./AdaptiveSidebar"));
14
+ Object.keys(_AdaptiveSidebar).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _AdaptiveSidebar[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _AdaptiveSidebar[key];
22
+ }
23
+ });
24
+ });
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWRhcHRpdmVTaWRlYmFyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlc2MiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9BZGFwdGl2ZVNpZGViYXIvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9BZGFwdGl2ZVNpZGViYXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0FkYXB0aXZlU2lkZWJhclwiOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosZ0JBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixnQkFBQSxDQUFBTSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBZCxnQkFBQSxDQUFBTSxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQWtDLFNBQUFTLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFmLHdCQUFBbUIsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBVCxHQUFBLENBQUFNLEdBQUEsU0FBQUssTUFBQSxXQUFBQyxxQkFBQSxHQUFBdkIsTUFBQSxDQUFBUyxjQUFBLElBQUFULE1BQUEsQ0FBQXdCLHdCQUFBLFdBQUFyQixHQUFBLElBQUFjLEdBQUEsUUFBQWQsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBVyxHQUFBLEVBQUFkLEdBQUEsU0FBQXNCLElBQUEsR0FBQUYscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQXdCLHdCQUFBLENBQUFQLEdBQUEsRUFBQWQsR0FBQSxjQUFBc0IsSUFBQSxLQUFBQSxJQUFBLENBQUFkLEdBQUEsSUFBQWMsSUFBQSxDQUFBQyxHQUFBLEtBQUExQixNQUFBLENBQUFTLGNBQUEsQ0FBQWEsTUFBQSxFQUFBbkIsR0FBQSxFQUFBc0IsSUFBQSxZQUFBSCxNQUFBLENBQUFuQixHQUFBLElBQUFjLEdBQUEsQ0FBQWQsR0FBQSxTQUFBbUIsTUFBQSxDQUFBSCxPQUFBLEdBQUFGLEdBQUEsTUFBQUcsS0FBQSxJQUFBQSxLQUFBLENBQUFNLEdBQUEsQ0FBQVQsR0FBQSxFQUFBSyxNQUFBLFlBQUFBLE1BQUEifQ==
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.AnchoredTooltipAnchor = exports.AnchoredTooltipAlignment = void 0;
7
+ exports.updateTooltipPosition = updateTooltipPosition;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactDom = _interopRequireDefault(require("react-dom"));
10
+ var _OneUIProvider = require("../../context/OneUIProvider");
11
+ var _FadeIn = _interopRequireDefault(require("../FadeIn"));
12
+ var _AnchoredTooltipModule = _interopRequireDefault(require("./AnchoredTooltip.module.scss"));
13
+ const _excluded = ["containInViewport", "alignment"];
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
18
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
19
+ function getPositionOnViewport(element) {
20
+ return element.getBoundingClientRect();
21
+ }
22
+ let AnchoredTooltipAlignment = exports.AnchoredTooltipAlignment = /*#__PURE__*/function (AnchoredTooltipAlignment) {
23
+ AnchoredTooltipAlignment[AnchoredTooltipAlignment["LEFT"] = 0] = "LEFT";
24
+ AnchoredTooltipAlignment[AnchoredTooltipAlignment["CENTER"] = 1] = "CENTER";
25
+ AnchoredTooltipAlignment[AnchoredTooltipAlignment["RIGHT"] = 2] = "RIGHT";
26
+ return AnchoredTooltipAlignment;
27
+ }({});
28
+ let AnchoredTooltipAnchor = exports.AnchoredTooltipAnchor = /*#__PURE__*/function (AnchoredTooltipAnchor) {
29
+ AnchoredTooltipAnchor[AnchoredTooltipAnchor["TOP"] = 0] = "TOP";
30
+ AnchoredTooltipAnchor[AnchoredTooltipAnchor["BOTTOM"] = 1] = "BOTTOM";
31
+ return AnchoredTooltipAnchor;
32
+ }({});
33
+ function calculateTooltipFromAnchor(anchorRef, tooltipRef, containInViewport) {
34
+ let alignTo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : AnchoredTooltipAlignment.CENTER;
35
+ let anchorTo = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : AnchoredTooltipAnchor.TOP;
36
+ const anchorPosition = getPositionOnViewport(anchorRef);
37
+ const shouldAnchorToBottom = anchorTo === AnchoredTooltipAnchor.BOTTOM || tooltipRef.clientHeight > anchorPosition.top;
38
+ let top = anchorPosition.top - tooltipRef.clientHeight;
39
+
40
+ /**
41
+ * The terms mean:
42
+ * anchorPosition.left = The left to get to the left border of the anchor (visible element)
43
+ * anchorPosition.width = The width of the anchor (visible element)
44
+ * tooltipRef.clientWidth = The width of the content
45
+ */
46
+ let left = (() => {
47
+ switch (alignTo) {
48
+ case AnchoredTooltipAlignment.CENTER:
49
+ return anchorPosition.left + anchorPosition.width / 2 - tooltipRef.clientWidth / 2;
50
+ case AnchoredTooltipAlignment.LEFT:
51
+ return anchorPosition.left;
52
+ case AnchoredTooltipAlignment.RIGHT:
53
+ return anchorPosition.left + anchorPosition.width - tooltipRef.clientWidth;
54
+ }
55
+ })();
56
+ if (shouldAnchorToBottom) top += tooltipRef.clientHeight + anchorRef.clientHeight;
57
+ if (containInViewport && top < 0) top = 0;
58
+ const offset = top + tooltipRef.clientHeight - window.innerHeight;
59
+ if (containInViewport && offset > 0) {
60
+ top -= offset;
61
+ }
62
+ const offsetLeft = left + tooltipRef.clientWidth - window.innerWidth;
63
+ if (containInViewport && offsetLeft > 0) {
64
+ left -= offsetLeft;
65
+ }
66
+ if (containInViewport && left < 0) {
67
+ left = 0;
68
+ }
69
+ const maxLeftOffsetIndicator = tooltipRef.clientWidth / 2 - 60;
70
+ const tooltipCenter = tooltipRef.clientWidth / 2 + left;
71
+ const anchorPositionCenter = anchorPosition.left + anchorPosition.width / 2;
72
+ const offsetTooltip = anchorPositionCenter - tooltipCenter;
73
+ const minOffsetTooltip = -(tooltipRef.clientWidth / 2) + 60;
74
+ const offsetIndicatorLeft = offsetLeft > 0 ? offsetLeft > maxLeftOffsetIndicator ? maxLeftOffsetIndicator : offsetLeft : offsetTooltip < 0 ? offsetTooltip < minOffsetTooltip ? minOffsetTooltip : offsetTooltip : 0;
75
+ return {
76
+ offset,
77
+ offsetIndicatorLeft,
78
+ top,
79
+ left,
80
+ shouldAnchorToBottom
81
+ };
82
+ }
83
+ function updateTooltipPosition(tooltipRef, anchorRef) {
84
+ let limitToViewport = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
85
+ let alignment = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : AnchoredTooltipAlignment.CENTER;
86
+ let anchorTo = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : AnchoredTooltipAnchor.TOP;
87
+ const {
88
+ top,
89
+ left,
90
+ shouldAnchorToBottom,
91
+ offsetIndicatorLeft
92
+ } = calculateTooltipFromAnchor(anchorRef, tooltipRef, limitToViewport, alignment, anchorTo);
93
+ if (limitToViewport) {
94
+ const maxHeight = window.innerHeight - top;
95
+ tooltipRef.style.maxHeight = "".concat(maxHeight - 32, "px");
96
+ }
97
+ tooltipRef.style.top = "".concat(top, "px");
98
+ tooltipRef.style.left = "".concat(left, "px");
99
+ tooltipRef.style.setProperty("--anchor-indicator-offset-left", "".concat(offsetIndicatorLeft, "px"));
100
+ if (shouldAnchorToBottom) {
101
+ tooltipRef.classList.remove(_AnchoredTooltipModule.default.anchoredTop);
102
+ tooltipRef.classList.add(_AnchoredTooltipModule.default.anchoredBottom);
103
+ } else {
104
+ tooltipRef.classList.add(_AnchoredTooltipModule.default.anchoredTop);
105
+ tooltipRef.classList.remove(_AnchoredTooltipModule.default.anchoredBottom);
106
+ }
107
+ return {
108
+ shouldAnchorToBottom
109
+ };
110
+ }
111
+ function _AnchoredTooltip(_ref, ref) {
112
+ let {
113
+ containInViewport = true,
114
+ alignment
115
+ } = _ref,
116
+ props = _objectWithoutProperties(_ref, _excluded);
117
+ const {
118
+ open,
119
+ children,
120
+ anchorRef
121
+ } = props;
122
+ const tooltipRef = (0, _react.useRef)(null);
123
+ const className = (0, _OneUIProvider.useOneUIConfig)("component.tooltip.className");
124
+ const [realClosed, setRealClosed] = (0, _react.useState)(!open);
125
+ (0, _react.useEffect)(() => {
126
+ if (open) setRealClosed(false);
127
+ }, [open]);
128
+ (0, _react.useImperativeHandle)(ref, () => ({
129
+ updatePosition: () => {
130
+ updateTooltipPosition(tooltipRef.current, anchorRef.current, containInViewport, alignment);
131
+ }
132
+ }), [containInViewport]);
133
+ (0, _react.useEffect)(() => {
134
+ if (open && !realClosed) {
135
+ if (anchorRef.current && tooltipRef.current) updateTooltipPosition(tooltipRef.current, anchorRef.current, containInViewport, alignment);
136
+ const scrollHandler = () => {
137
+ if (anchorRef.current && tooltipRef.current) updateTooltipPosition(tooltipRef.current, anchorRef.current, containInViewport, alignment);
138
+ };
139
+ window.addEventListener("scroll", scrollHandler, {
140
+ passive: true
141
+ });
142
+ return () => {
143
+ window.removeEventListener("scroll", scrollHandler);
144
+ };
145
+ }
146
+ }, [open, anchorRef, realClosed]);
147
+ (0, _react.useLayoutEffect)(() => {
148
+ if (!tooltipRef.current) return;
149
+ if (open) tooltipRef.current.classList.add(_AnchoredTooltipModule.default.open);else tooltipRef.current.classList.remove(_AnchoredTooltipModule.default.open);
150
+ }, [open]);
151
+ return !realClosed || open ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_FadeIn.default, {
152
+ onClick: e => e.stopPropagation(),
153
+ ref: tooltipRef,
154
+ className: "".concat(_AnchoredTooltipModule.default.tooltipContainer, " ").concat(props.className || "", " ").concat(className),
155
+ style: props.style,
156
+ onHidden: () => setRealClosed(true)
157
+ }, open && !realClosed ? /*#__PURE__*/_react.default.createElement("div", null, children) : undefined), document.body)) : null;
158
+ }
159
+
160
+ /**
161
+ * This tooltip anchors itself to an element and handles positioning relative to the anchored element
162
+ *
163
+ * A simple popup that appears near another element, automatically positioning itself to stay visible
164
+ * on the screen and adjusting its location if the page is scrolled or resized.
165
+ */
166
+ const AnchoredTooltip = /*#__PURE__*/(0, _react.forwardRef)(_AnchoredTooltip);
167
+ var _default = exports.default = AnchoredTooltip;
168
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09uZVVJUHJvdmlkZXIiLCJfRmFkZUluIiwiX0FuY2hvcmVkVG9vbHRpcE1vZHVsZSIsIl9leGNsdWRlZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJzb3VyY2UiLCJleGNsdWRlZCIsInRhcmdldCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiaSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJsZW5ndGgiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsImdldFBvc2l0aW9uT25WaWV3cG9ydCIsImVsZW1lbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJBbmNob3JlZFRvb2x0aXBBbGlnbm1lbnQiLCJleHBvcnRzIiwiQW5jaG9yZWRUb29sdGlwQW5jaG9yIiwiY2FsY3VsYXRlVG9vbHRpcEZyb21BbmNob3IiLCJhbmNob3JSZWYiLCJ0b29sdGlwUmVmIiwiY29udGFpbkluVmlld3BvcnQiLCJhbGlnblRvIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiQ0VOVEVSIiwiYW5jaG9yVG8iLCJUT1AiLCJhbmNob3JQb3NpdGlvbiIsInNob3VsZEFuY2hvclRvQm90dG9tIiwiQk9UVE9NIiwiY2xpZW50SGVpZ2h0IiwidG9wIiwibGVmdCIsIndpZHRoIiwiY2xpZW50V2lkdGgiLCJMRUZUIiwiUklHSFQiLCJvZmZzZXQiLCJ3aW5kb3ciLCJpbm5lckhlaWdodCIsIm9mZnNldExlZnQiLCJpbm5lcldpZHRoIiwibWF4TGVmdE9mZnNldEluZGljYXRvciIsInRvb2x0aXBDZW50ZXIiLCJhbmNob3JQb3NpdGlvbkNlbnRlciIsIm9mZnNldFRvb2x0aXAiLCJtaW5PZmZzZXRUb29sdGlwIiwib2Zmc2V0SW5kaWNhdG9yTGVmdCIsInVwZGF0ZVRvb2x0aXBQb3NpdGlvbiIsImxpbWl0VG9WaWV3cG9ydCIsImFsaWdubWVudCIsIm1heEhlaWdodCIsInN0eWxlIiwiY29uY2F0Iiwic2V0UHJvcGVydHkiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJTdHlsZXMiLCJhbmNob3JlZFRvcCIsImFkZCIsImFuY2hvcmVkQm90dG9tIiwiX0FuY2hvcmVkVG9vbHRpcCIsIl9yZWYiLCJyZWYiLCJwcm9wcyIsIm9wZW4iLCJjaGlsZHJlbiIsInVzZVJlZiIsImNsYXNzTmFtZSIsInVzZU9uZVVJQ29uZmlnIiwicmVhbENsb3NlZCIsInNldFJlYWxDbG9zZWQiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1cGRhdGVQb3NpdGlvbiIsImN1cnJlbnQiLCJzY3JvbGxIYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXNlTGF5b3V0RWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiUmVhY3RET00iLCJjcmVhdGVQb3J0YWwiLCJvbkNsaWNrIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsInRvb2x0aXBDb250YWluZXIiLCJvbkhpZGRlbiIsImRvY3VtZW50IiwiYm9keSIsIkFuY2hvcmVkVG9vbHRpcCIsImZvcndhcmRSZWYiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FuY2hvcmVkVG9vbHRpcC9BbmNob3JlZFRvb2x0aXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxuICBSZWZPYmplY3QsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VPbmVVSUNvbmZpZyB9IGZyb20gXCIuLi8uLi9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcbmltcG9ydCBGYWRlSW4gZnJvbSBcIi4uL0ZhZGVJblwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9BbmNob3JlZFRvb2x0aXAubW9kdWxlLnNjc3NcIjtcblxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IEpTWC5FbGVtZW50O1xuICBhbmNob3JSZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+O1xuICBvcGVuOiBib29sZWFuO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHRvb2x0aXAgc2hvdWxkIGJlIGFsd2F5cyB2aXNpYmxlIG9uIHZpZXdwb3J0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNvbnRhaW5JblZpZXdwb3J0PzogYm9vbGVhbjtcblxuICBzdHlsZT86IGFueTtcbiAgYWxpZ25tZW50PzogQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50O1xufTtcblxuZnVuY3Rpb24gZ2V0UG9zaXRpb25PblZpZXdwb3J0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xufVxuXG5leHBvcnQgZW51bSBBbmNob3JlZFRvb2x0aXBBbGlnbm1lbnQge1xuICBMRUZULFxuICBDRU5URVIsXG4gIFJJR0hULFxufVxuXG5leHBvcnQgZW51bSBBbmNob3JlZFRvb2x0aXBBbmNob3Ige1xuICBUT1AsXG4gIEJPVFRPTSxcbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlVG9vbHRpcEZyb21BbmNob3IoXG4gIGFuY2hvclJlZjogSFRNTEVsZW1lbnQsXG4gIHRvb2x0aXBSZWY6IEhUTUxEaXZFbGVtZW50LFxuICBjb250YWluSW5WaWV3cG9ydDogYm9vbGVhbixcbiAgYWxpZ25UbzogQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50ID0gQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50LkNFTlRFUixcbiAgYW5jaG9yVG86IEFuY2hvcmVkVG9vbHRpcEFuY2hvciA9IEFuY2hvcmVkVG9vbHRpcEFuY2hvci5UT1Bcbikge1xuICBjb25zdCBhbmNob3JQb3NpdGlvbiA9IGdldFBvc2l0aW9uT25WaWV3cG9ydChhbmNob3JSZWYpO1xuXG4gIGNvbnN0IHNob3VsZEFuY2hvclRvQm90dG9tID1cbiAgICBhbmNob3JUbyA9PT0gQW5jaG9yZWRUb29sdGlwQW5jaG9yLkJPVFRPTSB8fFxuICAgIHRvb2x0aXBSZWYuY2xpZW50SGVpZ2h0ID4gYW5jaG9yUG9zaXRpb24udG9wO1xuXG4gIGxldCB0b3AgPSBhbmNob3JQb3NpdGlvbi50b3AgLSB0b29sdGlwUmVmLmNsaWVudEhlaWdodDtcblxuICAvKipcbiAgICogVGhlIHRlcm1zIG1lYW46XG4gICAqIGFuY2hvclBvc2l0aW9uLmxlZnQgICAgPSBUaGUgbGVmdCB0byBnZXQgdG8gdGhlIGxlZnQgYm9yZGVyIG9mIHRoZSBhbmNob3IgKHZpc2libGUgZWxlbWVudClcbiAgICogYW5jaG9yUG9zaXRpb24ud2lkdGggICA9IFRoZSB3aWR0aCBvZiB0aGUgYW5jaG9yICh2aXNpYmxlIGVsZW1lbnQpXG4gICAqIHRvb2x0aXBSZWYuY2xpZW50V2lkdGggPSBUaGUgd2lkdGggb2YgdGhlIGNvbnRlbnRcbiAgICovXG4gIGxldCBsZWZ0ID0gKCgpID0+IHtcbiAgICBzd2l0Y2ggKGFsaWduVG8pIHtcbiAgICAgIGNhc2UgQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50LkNFTlRFUjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBhbmNob3JQb3NpdGlvbi5sZWZ0ICtcbiAgICAgICAgICBhbmNob3JQb3NpdGlvbi53aWR0aCAvIDIgLVxuICAgICAgICAgIHRvb2x0aXBSZWYuY2xpZW50V2lkdGggLyAyXG4gICAgICAgICk7XG4gICAgICBjYXNlIEFuY2hvcmVkVG9vbHRpcEFsaWdubWVudC5MRUZUOlxuICAgICAgICByZXR1cm4gYW5jaG9yUG9zaXRpb24ubGVmdDtcbiAgICAgIGNhc2UgQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50LlJJR0hUOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGFuY2hvclBvc2l0aW9uLmxlZnQgKyBhbmNob3JQb3NpdGlvbi53aWR0aCAtIHRvb2x0aXBSZWYuY2xpZW50V2lkdGhcbiAgICAgICAgKTtcbiAgICB9XG4gIH0pKCk7XG5cbiAgaWYgKHNob3VsZEFuY2hvclRvQm90dG9tKVxuICAgIHRvcCArPSB0b29sdGlwUmVmLmNsaWVudEhlaWdodCArIGFuY2hvclJlZi5jbGllbnRIZWlnaHQ7XG5cbiAgaWYgKGNvbnRhaW5JblZpZXdwb3J0ICYmIHRvcCA8IDApIHRvcCA9IDA7XG4gIGNvbnN0IG9mZnNldCA9IHRvcCArIHRvb2x0aXBSZWYuY2xpZW50SGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0O1xuICBpZiAoY29udGFpbkluVmlld3BvcnQgJiYgb2Zmc2V0ID4gMCkge1xuICAgIHRvcCAtPSBvZmZzZXQ7XG4gIH1cbiAgY29uc3Qgb2Zmc2V0TGVmdCA9IGxlZnQgKyB0b29sdGlwUmVmLmNsaWVudFdpZHRoIC0gd2luZG93LmlubmVyV2lkdGg7XG4gIGlmIChjb250YWluSW5WaWV3cG9ydCAmJiBvZmZzZXRMZWZ0ID4gMCkge1xuICAgIGxlZnQgLT0gb2Zmc2V0TGVmdDtcbiAgfVxuICBpZiAoY29udGFpbkluVmlld3BvcnQgJiYgbGVmdCA8IDApIHtcbiAgICBsZWZ0ID0gMDtcbiAgfVxuXG4gIGNvbnN0IG1heExlZnRPZmZzZXRJbmRpY2F0b3IgPSB0b29sdGlwUmVmLmNsaWVudFdpZHRoIC8gMiAtIDYwO1xuICBjb25zdCB0b29sdGlwQ2VudGVyID0gdG9vbHRpcFJlZi5jbGllbnRXaWR0aCAvIDIgKyBsZWZ0O1xuICBjb25zdCBhbmNob3JQb3NpdGlvbkNlbnRlciA9IGFuY2hvclBvc2l0aW9uLmxlZnQgKyBhbmNob3JQb3NpdGlvbi53aWR0aCAvIDI7XG5cbiAgY29uc3Qgb2Zmc2V0VG9vbHRpcCA9IGFuY2hvclBvc2l0aW9uQ2VudGVyIC0gdG9vbHRpcENlbnRlcjtcbiAgY29uc3QgbWluT2Zmc2V0VG9vbHRpcCA9IC0odG9vbHRpcFJlZi5jbGllbnRXaWR0aCAvIDIpICsgNjA7XG5cbiAgY29uc3Qgb2Zmc2V0SW5kaWNhdG9yTGVmdCA9XG4gICAgb2Zmc2V0TGVmdCA+IDBcbiAgICAgID8gb2Zmc2V0TGVmdCA+IG1heExlZnRPZmZzZXRJbmRpY2F0b3JcbiAgICAgICAgPyBtYXhMZWZ0T2Zmc2V0SW5kaWNhdG9yXG4gICAgICAgIDogb2Zmc2V0TGVmdFxuICAgICAgOiBvZmZzZXRUb29sdGlwIDwgMFxuICAgICAgPyBvZmZzZXRUb29sdGlwIDwgbWluT2Zmc2V0VG9vbHRpcFxuICAgICAgICA/IG1pbk9mZnNldFRvb2x0aXBcbiAgICAgICAgOiBvZmZzZXRUb29sdGlwXG4gICAgICA6IDA7XG5cbiAgcmV0dXJuIHtcbiAgICBvZmZzZXQsXG4gICAgb2Zmc2V0SW5kaWNhdG9yTGVmdCxcbiAgICB0b3AsXG4gICAgbGVmdCxcbiAgICBzaG91bGRBbmNob3JUb0JvdHRvbSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvb2x0aXBQb3NpdGlvbihcbiAgdG9vbHRpcFJlZjogSFRNTERpdkVsZW1lbnQsXG4gIGFuY2hvclJlZjogSFRNTEVsZW1lbnQsXG4gIGxpbWl0VG9WaWV3cG9ydDogYm9vbGVhbiA9IHRydWUsXG4gIGFsaWdubWVudDogQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50ID0gQW5jaG9yZWRUb29sdGlwQWxpZ25tZW50LkNFTlRFUixcbiAgYW5jaG9yVG86IEFuY2hvcmVkVG9vbHRpcEFuY2hvciA9IEFuY2hvcmVkVG9vbHRpcEFuY2hvci5UT1Bcbikge1xuICBjb25zdCB7IHRvcCwgbGVmdCwgc2hvdWxkQW5jaG9yVG9Cb3R0b20sIG9mZnNldEluZGljYXRvckxlZnQgfSA9XG4gICAgY2FsY3VsYXRlVG9vbHRpcEZyb21BbmNob3IoXG4gICAgICBhbmNob3JSZWYsXG4gICAgICB0b29sdGlwUmVmLFxuICAgICAgbGltaXRUb1ZpZXdwb3J0LFxuICAgICAgYWxpZ25tZW50LFxuICAgICAgYW5jaG9yVG9cbiAgICApO1xuICBpZiAobGltaXRUb1ZpZXdwb3J0KSB7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gdG9wO1xuICAgIHRvb2x0aXBSZWYuc3R5bGUubWF4SGVpZ2h0ID0gYCR7bWF4SGVpZ2h0IC0gMzJ9cHhgO1xuICB9XG4gIHRvb2x0aXBSZWYuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgdG9vbHRpcFJlZi5zdHlsZS5sZWZ0ID0gYCR7bGVmdH1weGA7XG4gIHRvb2x0aXBSZWYuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgXCItLWFuY2hvci1pbmRpY2F0b3Itb2Zmc2V0LWxlZnRcIixcbiAgICBgJHtvZmZzZXRJbmRpY2F0b3JMZWZ0fXB4YFxuICApO1xuICBpZiAoc2hvdWxkQW5jaG9yVG9Cb3R0b20pIHtcbiAgICB0b29sdGlwUmVmLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLmFuY2hvcmVkVG9wKTtcbiAgICB0b29sdGlwUmVmLmNsYXNzTGlzdC5hZGQoU3R5bGVzLmFuY2hvcmVkQm90dG9tKTtcbiAgfSBlbHNlIHtcbiAgICB0b29sdGlwUmVmLmNsYXNzTGlzdC5hZGQoU3R5bGVzLmFuY2hvcmVkVG9wKTtcbiAgICB0b29sdGlwUmVmLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLmFuY2hvcmVkQm90dG9tKTtcbiAgfVxuXG4gIHJldHVybiB7IHNob3VsZEFuY2hvclRvQm90dG9tIH07XG59XG5mdW5jdGlvbiBfQW5jaG9yZWRUb29sdGlwKFxuICB7IGNvbnRhaW5JblZpZXdwb3J0ID0gdHJ1ZSwgYWxpZ25tZW50LCAuLi5wcm9wcyB9OiBQcm9wcyxcbiAgcmVmOiBGb3J3YXJkZWRSZWY8eyB1cGRhdGVQb3NpdGlvbjogKCkgPT4gdm9pZCB9IHwgbnVsbD5cbikge1xuICBjb25zdCB7IG9wZW4sIGNoaWxkcmVuLCBhbmNob3JSZWYgfSA9IHByb3BzO1xuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgY2xhc3NOYW1lID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQudG9vbHRpcC5jbGFzc05hbWVcIik7XG4gIGNvbnN0IFtyZWFsQ2xvc2VkLCBzZXRSZWFsQ2xvc2VkXSA9IHVzZVN0YXRlKCFvcGVuKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvcGVuKSBzZXRSZWFsQ2xvc2VkKGZhbHNlKTtcbiAgfSwgW29wZW5dKTtcblxuICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgIHJlZixcbiAgICAoKSA9PiAoe1xuICAgICAgdXBkYXRlUG9zaXRpb246ICgpID0+IHtcbiAgICAgICAgdXBkYXRlVG9vbHRpcFBvc2l0aW9uKFxuICAgICAgICAgIHRvb2x0aXBSZWYuY3VycmVudCEsXG4gICAgICAgICAgYW5jaG9yUmVmLmN1cnJlbnQhLFxuICAgICAgICAgIGNvbnRhaW5JblZpZXdwb3J0LFxuICAgICAgICAgIGFsaWdubWVudFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBbY29udGFpbkluVmlld3BvcnRdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3BlbiAmJiAhcmVhbENsb3NlZCkge1xuICAgICAgaWYgKGFuY2hvclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudClcbiAgICAgICAgdXBkYXRlVG9vbHRpcFBvc2l0aW9uKFxuICAgICAgICAgIHRvb2x0aXBSZWYuY3VycmVudCxcbiAgICAgICAgICBhbmNob3JSZWYuY3VycmVudCxcbiAgICAgICAgICBjb250YWluSW5WaWV3cG9ydCxcbiAgICAgICAgICBhbGlnbm1lbnRcbiAgICAgICAgKTtcbiAgICAgIGNvbnN0IHNjcm9sbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmIChhbmNob3JSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpXG4gICAgICAgICAgdXBkYXRlVG9vbHRpcFBvc2l0aW9uKFxuICAgICAgICAgICAgdG9vbHRpcFJlZi5jdXJyZW50LFxuICAgICAgICAgICAgYW5jaG9yUmVmLmN1cnJlbnQsXG4gICAgICAgICAgICBjb250YWluSW5WaWV3cG9ydCxcbiAgICAgICAgICAgIGFsaWdubWVudFxuICAgICAgICAgICk7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgc2Nyb2xsSGFuZGxlciwge1xuICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzY3JvbGxIYW5kbGVyKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbb3BlbiwgYW5jaG9yUmVmLCByZWFsQ2xvc2VkXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRvb2x0aXBSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIGlmIChvcGVuKSB0b29sdGlwUmVmLmN1cnJlbnQhLmNsYXNzTGlzdC5hZGQoU3R5bGVzLm9wZW4pO1xuICAgIGVsc2UgdG9vbHRpcFJlZi5jdXJyZW50IS5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy5vcGVuKTtcbiAgfSwgW29wZW5dKTtcblxuICByZXR1cm4gIXJlYWxDbG9zZWQgfHwgb3BlbiA/IChcbiAgICA8PlxuICAgICAge1JlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgPEZhZGVJblxuICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgICAgICBjbGFzc05hbWU9e2Ake1N0eWxlcy50b29sdGlwQ29udGFpbmVyfSAke1xuICAgICAgICAgICAgcHJvcHMuY2xhc3NOYW1lIHx8IFwiXCJcbiAgICAgICAgICB9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICAgICAgc3R5bGU9e3Byb3BzLnN0eWxlfVxuICAgICAgICAgIG9uSGlkZGVuPXsoKSA9PiBzZXRSZWFsQ2xvc2VkKHRydWUpfVxuICAgICAgICA+XG4gICAgICAgICAge29wZW4gJiYgIXJlYWxDbG9zZWQgPyA8ZGl2PntjaGlsZHJlbn08L2Rpdj4gOiB1bmRlZmluZWR9XG4gICAgICAgIDwvRmFkZUluPixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICAgKX1cbiAgICA8Lz5cbiAgKSA6IG51bGw7XG59XG5cbi8qKlxuICogVGhpcyB0b29sdGlwIGFuY2hvcnMgaXRzZWxmIHRvIGFuIGVsZW1lbnQgYW5kIGhhbmRsZXMgcG9zaXRpb25pbmcgcmVsYXRpdmUgdG8gdGhlIGFuY2hvcmVkIGVsZW1lbnRcbiAqIFxuICogQSBzaW1wbGUgcG9wdXAgdGhhdCBhcHBlYXJzIG5lYXIgYW5vdGhlciBlbGVtZW50LCBhdXRvbWF0aWNhbGx5IHBvc2l0aW9uaW5nIGl0c2VsZiB0byBzdGF5IHZpc2libGVcbiAqIG9uIHRoZSBzY3JlZW4gYW5kIGFkanVzdGluZyBpdHMgbG9jYXRpb24gaWYgdGhlIHBhZ2UgaXMgc2Nyb2xsZWQgb3IgcmVzaXplZC5cbiAqL1xuY29uc3QgQW5jaG9yZWRUb29sdGlwID0gZm9yd2FyZFJlZihfQW5jaG9yZWRUb29sdGlwKTtcbmV4cG9ydCBkZWZhdWx0IEFuY2hvcmVkVG9vbHRpcDsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFZQSxJQUFBQyxTQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxzQkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQW1ELE1BQUFNLFNBQUE7QUFBQSxTQUFBSix1QkFBQUssR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFaLHdCQUFBUSxHQUFBLEVBQUFJLFdBQUEsU0FBQUEsV0FBQSxJQUFBSixHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBUSxLQUFBLEdBQUFMLHdCQUFBLENBQUFDLFdBQUEsT0FBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQVQsR0FBQSxZQUFBUSxLQUFBLENBQUFFLEdBQUEsQ0FBQVYsR0FBQSxTQUFBVyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQWhCLEdBQUEsUUFBQWdCLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQW5CLEdBQUEsRUFBQWdCLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFmLEdBQUEsRUFBQWdCLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQWhCLEdBQUEsQ0FBQWdCLEdBQUEsU0FBQUwsTUFBQSxDQUFBVCxPQUFBLEdBQUFGLEdBQUEsTUFBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQXJCLEdBQUEsRUFBQVcsTUFBQSxZQUFBQSxNQUFBO0FBQUEsU0FBQVcseUJBQUFDLE1BQUEsRUFBQUMsUUFBQSxRQUFBRCxNQUFBLHlCQUFBRSxNQUFBLEdBQUFDLDZCQUFBLENBQUFILE1BQUEsRUFBQUMsUUFBQSxPQUFBUixHQUFBLEVBQUFXLENBQUEsTUFBQWQsTUFBQSxDQUFBZSxxQkFBQSxRQUFBQyxnQkFBQSxHQUFBaEIsTUFBQSxDQUFBZSxxQkFBQSxDQUFBTCxNQUFBLFFBQUFJLENBQUEsTUFBQUEsQ0FBQSxHQUFBRSxnQkFBQSxDQUFBQyxNQUFBLEVBQUFILENBQUEsTUFBQVgsR0FBQSxHQUFBYSxnQkFBQSxDQUFBRixDQUFBLE9BQUFILFFBQUEsQ0FBQU8sT0FBQSxDQUFBZixHQUFBLHVCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQWUsb0JBQUEsQ0FBQWIsSUFBQSxDQUFBSSxNQUFBLEVBQUFQLEdBQUEsYUFBQVMsTUFBQSxDQUFBVCxHQUFBLElBQUFPLE1BQUEsQ0FBQVAsR0FBQSxjQUFBUyxNQUFBO0FBQUEsU0FBQUMsOEJBQUFILE1BQUEsRUFBQUMsUUFBQSxRQUFBRCxNQUFBLHlCQUFBRSxNQUFBLFdBQUFRLFVBQUEsR0FBQXBCLE1BQUEsQ0FBQXFCLElBQUEsQ0FBQVgsTUFBQSxPQUFBUCxHQUFBLEVBQUFXLENBQUEsT0FBQUEsQ0FBQSxNQUFBQSxDQUFBLEdBQUFNLFVBQUEsQ0FBQUgsTUFBQSxFQUFBSCxDQUFBLE1BQUFYLEdBQUEsR0FBQWlCLFVBQUEsQ0FBQU4sQ0FBQSxPQUFBSCxRQUFBLENBQUFPLE9BQUEsQ0FBQWYsR0FBQSxrQkFBQVMsTUFBQSxDQUFBVCxHQUFBLElBQUFPLE1BQUEsQ0FBQVAsR0FBQSxZQUFBUyxNQUFBO0FBa0JuRCxTQUFTVSxxQkFBcUJBLENBQUNDLE9BQW9CLEVBQUU7RUFDbkQsT0FBT0EsT0FBTyxDQUFDQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3hDO0FBQUMsSUFFV0Msd0JBQXdCLEdBQUFDLE9BQUEsQ0FBQUQsd0JBQUEsMEJBQXhCQSx3QkFBd0I7RUFBeEJBLHdCQUF3QixDQUF4QkEsd0JBQXdCO0VBQXhCQSx3QkFBd0IsQ0FBeEJBLHdCQUF3QjtFQUF4QkEsd0JBQXdCLENBQXhCQSx3QkFBd0I7RUFBQSxPQUF4QkEsd0JBQXdCO0FBQUE7QUFBQSxJQU14QkUscUJBQXFCLEdBQUFELE9BQUEsQ0FBQUMscUJBQUEsMEJBQXJCQSxxQkFBcUI7RUFBckJBLHFCQUFxQixDQUFyQkEscUJBQXFCO0VBQXJCQSxxQkFBcUIsQ0FBckJBLHFCQUFxQjtFQUFBLE9BQXJCQSxxQkFBcUI7QUFBQTtBQUtqQyxTQUFTQywwQkFBMEJBLENBQ2pDQyxTQUFzQixFQUN0QkMsVUFBMEIsRUFDMUJDLGlCQUEwQixFQUcxQjtFQUFBLElBRkFDLE9BQWlDLEdBQUFDLFNBQUEsQ0FBQWhCLE1BQUEsUUFBQWdCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUdSLHdCQUF3QixDQUFDVSxNQUFNO0VBQUEsSUFDbkVDLFFBQStCLEdBQUFILFNBQUEsQ0FBQWhCLE1BQUEsUUFBQWdCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUdOLHFCQUFxQixDQUFDVSxHQUFHO0VBRTNELE1BQU1DLGNBQWMsR0FBR2hCLHFCQUFxQixDQUFDTyxTQUFTLENBQUM7RUFFdkQsTUFBTVUsb0JBQW9CLEdBQ3hCSCxRQUFRLEtBQUtULHFCQUFxQixDQUFDYSxNQUFNLElBQ3pDVixVQUFVLENBQUNXLFlBQVksR0FBR0gsY0FBYyxDQUFDSSxHQUFHO0VBRTlDLElBQUlBLEdBQUcsR0FBR0osY0FBYyxDQUFDSSxHQUFHLEdBQUdaLFVBQVUsQ0FBQ1csWUFBWTs7RUFFdEQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsSUFBSUUsSUFBSSxHQUFHLENBQUMsTUFBTTtJQUNoQixRQUFRWCxPQUFPO01BQ2IsS0FBS1Asd0JBQXdCLENBQUNVLE1BQU07UUFDbEMsT0FDRUcsY0FBYyxDQUFDSyxJQUFJLEdBQ25CTCxjQUFjLENBQUNNLEtBQUssR0FBRyxDQUFDLEdBQ3hCZCxVQUFVLENBQUNlLFdBQVcsR0FBRyxDQUFDO01BRTlCLEtBQUtwQix3QkFBd0IsQ0FBQ3FCLElBQUk7UUFDaEMsT0FBT1IsY0FBYyxDQUFDSyxJQUFJO01BQzVCLEtBQUtsQix3QkFBd0IsQ0FBQ3NCLEtBQUs7UUFDakMsT0FDRVQsY0FBYyxDQUFDSyxJQUFJLEdBQUdMLGNBQWMsQ0FBQ00sS0FBSyxHQUFHZCxVQUFVLENBQUNlLFdBQVc7SUFFekU7RUFDRixDQUFDLEVBQUUsQ0FBQztFQUVKLElBQUlOLG9CQUFvQixFQUN0QkcsR0FBRyxJQUFJWixVQUFVLENBQUNXLFlBQVksR0FBR1osU0FBUyxDQUFDWSxZQUFZO0VBRXpELElBQUlWLGlCQUFpQixJQUFJVyxHQUFHLEdBQUcsQ0FBQyxFQUFFQSxHQUFHLEdBQUcsQ0FBQztFQUN6QyxNQUFNTSxNQUFNLEdBQUdOLEdBQUcsR0FBR1osVUFBVSxDQUFDVyxZQUFZLEdBQUdRLE1BQU0sQ0FBQ0MsV0FBVztFQUNqRSxJQUFJbkIsaUJBQWlCLElBQUlpQixNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ25DTixHQUFHLElBQUlNLE1BQU07RUFDZjtFQUNBLE1BQU1HLFVBQVUsR0FBR1IsSUFBSSxHQUFHYixVQUFVLENBQUNlLFdBQVcsR0FBR0ksTUFBTSxDQUFDRyxVQUFVO0VBQ3BFLElBQUlyQixpQkFBaUIsSUFBSW9CLFVBQVUsR0FBRyxDQUFDLEVBQUU7SUFDdkNSLElBQUksSUFBSVEsVUFBVTtFQUNwQjtFQUNBLElBQUlwQixpQkFBaUIsSUFBSVksSUFBSSxHQUFHLENBQUMsRUFBRTtJQUNqQ0EsSUFBSSxHQUFHLENBQUM7RUFDVjtFQUVBLE1BQU1VLHNCQUFzQixHQUFHdkIsVUFBVSxDQUFDZSxXQUFXLEdBQUcsQ0FBQyxHQUFHLEVBQUU7RUFDOUQsTUFBTVMsYUFBYSxHQUFHeEIsVUFBVSxDQUFDZSxXQUFXLEdBQUcsQ0FBQyxHQUFHRixJQUFJO0VBQ3ZELE1BQU1ZLG9CQUFvQixHQUFHakIsY0FBYyxDQUFDSyxJQUFJLEdBQUdMLGNBQWMsQ0FBQ00sS0FBSyxHQUFHLENBQUM7RUFFM0UsTUFBTVksYUFBYSxHQUFHRCxvQkFBb0IsR0FBR0QsYUFBYTtFQUMxRCxNQUFNRyxnQkFBZ0IsR0FBRyxFQUFFM0IsVUFBVSxDQUFDZSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtFQUUzRCxNQUFNYSxtQkFBbUIsR0FDdkJQLFVBQVUsR0FBRyxDQUFDLEdBQ1ZBLFVBQVUsR0FBR0Usc0JBQXNCLEdBQ2pDQSxzQkFBc0IsR0FDdEJGLFVBQVUsR0FDWkssYUFBYSxHQUFHLENBQUMsR0FDakJBLGFBQWEsR0FBR0MsZ0JBQWdCLEdBQzlCQSxnQkFBZ0IsR0FDaEJELGFBQWEsR0FDZixDQUFDO0VBRVAsT0FBTztJQUNMUixNQUFNO0lBQ05VLG1CQUFtQjtJQUNuQmhCLEdBQUc7SUFDSEMsSUFBSTtJQUNKSjtFQUNGLENBQUM7QUFDSDtBQUVPLFNBQVNvQixxQkFBcUJBLENBQ25DN0IsVUFBMEIsRUFDMUJELFNBQXNCLEVBSXRCO0VBQUEsSUFIQStCLGVBQXdCLEdBQUEzQixTQUFBLENBQUFoQixNQUFBLFFBQUFnQixTQUFBLFFBQUFDLFNBQUEsR0FBQUQsU0FBQSxNQUFHLElBQUk7RUFBQSxJQUMvQjRCLFNBQW1DLEdBQUE1QixTQUFBLENBQUFoQixNQUFBLFFBQUFnQixTQUFBLFFBQUFDLFNBQUEsR0FBQUQsU0FBQSxNQUFHUix3QkFBd0IsQ0FBQ1UsTUFBTTtFQUFBLElBQ3JFQyxRQUErQixHQUFBSCxTQUFBLENBQUFoQixNQUFBLFFBQUFnQixTQUFBLFFBQUFDLFNBQUEsR0FBQUQsU0FBQSxNQUFHTixxQkFBcUIsQ0FBQ1UsR0FBRztFQUUzRCxNQUFNO0lBQUVLLEdBQUc7SUFBRUMsSUFBSTtJQUFFSixvQkFBb0I7SUFBRW1CO0VBQW9CLENBQUMsR0FDNUQ5QiwwQkFBMEIsQ0FDeEJDLFNBQVMsRUFDVEMsVUFBVSxFQUNWOEIsZUFBZSxFQUNmQyxTQUFTLEVBQ1R6QixRQUNGLENBQUM7RUFDSCxJQUFJd0IsZUFBZSxFQUFFO0lBQ25CLE1BQU1FLFNBQVMsR0FBR2IsTUFBTSxDQUFDQyxXQUFXLEdBQUdSLEdBQUc7SUFDMUNaLFVBQVUsQ0FBQ2lDLEtBQUssQ0FBQ0QsU0FBUyxNQUFBRSxNQUFBLENBQU1GLFNBQVMsR0FBRyxFQUFFLE9BQUk7RUFDcEQ7RUFDQWhDLFVBQVUsQ0FBQ2lDLEtBQUssQ0FBQ3JCLEdBQUcsTUFBQXNCLE1BQUEsQ0FBTXRCLEdBQUcsT0FBSTtFQUNqQ1osVUFBVSxDQUFDaUMsS0FBSyxDQUFDcEIsSUFBSSxNQUFBcUIsTUFBQSxDQUFNckIsSUFBSSxPQUFJO0VBQ25DYixVQUFVLENBQUNpQyxLQUFLLENBQUNFLFdBQVcsQ0FDMUIsZ0NBQWdDLEtBQUFELE1BQUEsQ0FDN0JOLG1CQUFtQixPQUN4QixDQUFDO0VBQ0QsSUFBSW5CLG9CQUFvQixFQUFFO0lBQ3hCVCxVQUFVLENBQUNvQyxTQUFTLENBQUNDLE1BQU0sQ0FBQ0MsOEJBQU0sQ0FBQ0MsV0FBVyxDQUFDO0lBQy9DdkMsVUFBVSxDQUFDb0MsU0FBUyxDQUFDSSxHQUFHLENBQUNGLDhCQUFNLENBQUNHLGNBQWMsQ0FBQztFQUNqRCxDQUFDLE1BQU07SUFDTHpDLFVBQVUsQ0FBQ29DLFNBQVMsQ0FBQ0ksR0FBRyxDQUFDRiw4QkFBTSxDQUFDQyxXQUFXLENBQUM7SUFDNUN2QyxVQUFVLENBQUNvQyxTQUFTLENBQUNDLE1BQU0sQ0FBQ0MsOEJBQU0sQ0FBQ0csY0FBYyxDQUFDO0VBQ3BEO0VBRUEsT0FBTztJQUFFaEM7RUFBcUIsQ0FBQztBQUNqQztBQUNBLFNBQVNpQyxnQkFBZ0JBLENBQUFDLElBQUEsRUFFdkJDLEdBQXdELEVBQ3hEO0VBQUEsSUFGQTtNQUFFM0MsaUJBQWlCLEdBQUcsSUFBSTtNQUFFOEI7SUFBMkIsQ0FBQyxHQUFBWSxJQUFBO0lBQWRFLEtBQUssR0FBQWxFLHdCQUFBLENBQUFnRSxJQUFBLEVBQUF2RixTQUFBO0VBRy9DLE1BQU07SUFBRTBGLElBQUk7SUFBRUMsUUFBUTtJQUFFaEQ7RUFBVSxDQUFDLEdBQUc4QyxLQUFLO0VBQzNDLE1BQU03QyxVQUFVLEdBQUcsSUFBQWdELGFBQU0sRUFBaUIsSUFBSSxDQUFDO0VBQy9DLE1BQU1DLFNBQVMsR0FBRyxJQUFBQyw2QkFBYyxFQUFDLDZCQUE2QixDQUFDO0VBQy9ELE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQUMsQ0FBQ1AsSUFBSSxDQUFDO0VBRW5ELElBQUFRLGdCQUFTLEVBQUMsTUFBTTtJQUNkLElBQUlSLElBQUksRUFBRU0sYUFBYSxDQUFDLEtBQUssQ0FBQztFQUNoQyxDQUFDLEVBQUUsQ0FBQ04sSUFBSSxDQUFDLENBQUM7RUFFVixJQUFBUywwQkFBbUIsRUFDakJYLEdBQUcsRUFDSCxPQUFPO0lBQ0xZLGNBQWMsRUFBRUEsQ0FBQSxLQUFNO01BQ3BCM0IscUJBQXFCLENBQ25CN0IsVUFBVSxDQUFDeUQsT0FBTyxFQUNsQjFELFNBQVMsQ0FBQzBELE9BQU8sRUFDakJ4RCxpQkFBaUIsRUFDakI4QixTQUNGLENBQUM7SUFDSDtFQUNGLENBQUMsQ0FBQyxFQUNGLENBQUM5QixpQkFBaUIsQ0FDcEIsQ0FBQztFQUVELElBQUFxRCxnQkFBUyxFQUFDLE1BQU07SUFDZCxJQUFJUixJQUFJLElBQUksQ0FBQ0ssVUFBVSxFQUFFO01BQ3ZCLElBQUlwRCxTQUFTLENBQUMwRCxPQUFPLElBQUl6RCxVQUFVLENBQUN5RCxPQUFPLEVBQ3pDNUIscUJBQXFCLENBQ25CN0IsVUFBVSxDQUFDeUQsT0FBTyxFQUNsQjFELFNBQVMsQ0FBQzBELE9BQU8sRUFDakJ4RCxpQkFBaUIsRUFDakI4QixTQUNGLENBQUM7TUFDSCxNQUFNMkIsYUFBYSxHQUFHQSxDQUFBLEtBQU07UUFDMUIsSUFBSTNELFNBQVMsQ0FBQzBELE9BQU8sSUFBSXpELFVBQVUsQ0FBQ3lELE9BQU8sRUFDekM1QixxQkFBcUIsQ0FDbkI3QixVQUFVLENBQUN5RCxPQUFPLEVBQ2xCMUQsU0FBUyxDQUFDMEQsT0FBTyxFQUNqQnhELGlCQUFpQixFQUNqQjhCLFNBQ0YsQ0FBQztNQUNMLENBQUM7TUFDRFosTUFBTSxDQUFDd0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFFRCxhQUFhLEVBQUU7UUFDL0NFLE9BQU8sRUFBRTtNQUNYLENBQUMsQ0FBQztNQUNGLE9BQU8sTUFBTTtRQUNYekMsTUFBTSxDQUFDMEMsbUJBQW1CLENBQUMsUUFBUSxFQUFFSCxhQUFhLENBQUM7TUFDckQsQ0FBQztJQUNIO0VBQ0YsQ0FBQyxFQUFFLENBQUNaLElBQUksRUFBRS9DLFNBQVMsRUFBRW9ELFVBQVUsQ0FBQyxDQUFDO0VBRWpDLElBQUFXLHNCQUFlLEVBQUMsTUFBTTtJQUNwQixJQUFJLENBQUM5RCxVQUFVLENBQUN5RCxPQUFPLEVBQUU7SUFDekIsSUFBSVgsSUFBSSxFQUFFOUMsVUFBVSxDQUFDeUQsT0FBTyxDQUFFckIsU0FBUyxDQUFDSSxHQUFHLENBQUNGLDhCQUFNLENBQUNRLElBQUksQ0FBQyxDQUFDLEtBQ3BEOUMsVUFBVSxDQUFDeUQsT0FBTyxDQUFFckIsU0FBUyxDQUFDQyxNQUFNLENBQUNDLDhCQUFNLENBQUNRLElBQUksQ0FBQztFQUN4RCxDQUFDLEVBQUUsQ0FBQ0EsSUFBSSxDQUFDLENBQUM7RUFFVixPQUFPLENBQUNLLFVBQVUsSUFBSUwsSUFBSSxnQkFDeEJsRyxNQUFBLENBQUFXLE9BQUEsQ0FBQXdHLGFBQUEsQ0FBQW5ILE1BQUEsQ0FBQVcsT0FBQSxDQUFBeUcsUUFBQSxxQkFDR0MsaUJBQVEsQ0FBQ0MsWUFBWSxlQUNwQnRILE1BQUEsQ0FBQVcsT0FBQSxDQUFBd0csYUFBQSxDQUFDN0csT0FBQSxDQUFBSyxPQUFNO0lBQ0w0RyxPQUFPLEVBQUdDLENBQUMsSUFBS0EsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBRTtJQUNwQ3pCLEdBQUcsRUFBRTVDLFVBQVc7SUFDaEJpRCxTQUFTLEtBQUFmLE1BQUEsQ0FBS0ksOEJBQU0sQ0FBQ2dDLGdCQUFnQixPQUFBcEMsTUFBQSxDQUNuQ1csS0FBSyxDQUFDSSxTQUFTLElBQUksRUFBRSxPQUFBZixNQUFBLENBQ25CZSxTQUFTLENBQUc7SUFDaEJoQixLQUFLLEVBQUVZLEtBQUssQ0FBQ1osS0FBTTtJQUNuQnNDLFFBQVEsRUFBRUEsQ0FBQSxLQUFNbkIsYUFBYSxDQUFDLElBQUk7RUFBRSxHQUVuQ04sSUFBSSxJQUFJLENBQUNLLFVBQVUsZ0JBQUd2RyxNQUFBLENBQUFXLE9BQUEsQ0FBQXdHLGFBQUEsY0FBTWhCLFFBQWMsQ0FBQyxHQUFHM0MsU0FDekMsQ0FBQyxFQUNUb0UsUUFBUSxDQUFDQyxJQUNYLENBQ0EsQ0FBQyxHQUNELElBQUk7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQyxlQUFlLGdCQUFHLElBQUFDLGlCQUFVLEVBQUNqQyxnQkFBZ0IsQ0FBQztBQUFDLElBQUFrQyxRQUFBLEdBQUFoRixPQUFBLENBQUFyQyxPQUFBLEdBQ3RDbUgsZUFBZSJ9