@amboss/design-system 1.20.4 → 1.21.1

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 (44) hide show
  1. package/build/cjs/build-tokens/visualConfig.js +11 -0
  2. package/build/cjs/src/components/Popover/Popover.js +8 -3
  3. package/build/cjs/src/components/Sheet/Sheet.js +315 -0
  4. package/build/cjs/src/components/Toggletip/BasePopover.js +43 -8
  5. package/build/cjs/src/components/Tooltip/BaseTooltip.js +1 -1
  6. package/build/cjs/src/components/Tooltip/TooltipContent.js +41 -22
  7. package/build/cjs/src/components/UserHighlightTooltip/UserHighlightTooltip.js +1 -1
  8. package/build/cjs/src/index.js +2 -0
  9. package/build/cjs/src/shared/FocusTrapWrapper.js +41 -0
  10. package/build/cjs/src/shared/useDragDown.js +84 -0
  11. package/build/esm/build-tokens/_colors.json +9 -0
  12. package/build/esm/build-tokens/_sizes.json +1 -1
  13. package/build/esm/build-tokens/visualConfig.d.ts +8 -0
  14. package/build/esm/build-tokens/visualConfig.js +11 -0
  15. package/build/esm/build-tokens/visualConfig.js.map +1 -1
  16. package/build/esm/src/components/Popover/Popover.d.ts +2 -3
  17. package/build/esm/src/components/Popover/Popover.js +8 -3
  18. package/build/esm/src/components/Popover/Popover.js.map +1 -1
  19. package/build/esm/src/components/Sheet/Sheet.d.ts +15 -0
  20. package/build/esm/src/components/Sheet/Sheet.js +308 -0
  21. package/build/esm/src/components/Sheet/Sheet.js.map +1 -0
  22. package/build/esm/src/components/Toggletip/BasePopover.d.ts +5 -5
  23. package/build/esm/src/components/Toggletip/BasePopover.js +43 -7
  24. package/build/esm/src/components/Toggletip/BasePopover.js.map +1 -1
  25. package/build/esm/src/components/Toggletip/Toggletip.d.ts +1 -1
  26. package/build/esm/src/components/Toggletip/Toggletip.js.map +1 -1
  27. package/build/esm/src/components/Tooltip/BaseTooltip.js +1 -1
  28. package/build/esm/src/components/Tooltip/BaseTooltip.js.map +1 -1
  29. package/build/esm/src/components/Tooltip/TooltipContent.js +42 -23
  30. package/build/esm/src/components/Tooltip/TooltipContent.js.map +1 -1
  31. package/build/esm/src/components/UserHighlightTooltip/UserHighlightTooltip.js +1 -1
  32. package/build/esm/src/components/UserHighlightTooltip/UserHighlightTooltip.js.map +1 -1
  33. package/build/esm/src/index.d.ts +1 -0
  34. package/build/esm/src/index.js +1 -0
  35. package/build/esm/src/index.js.map +1 -1
  36. package/build/esm/src/shared/FocusTrapWrapper.d.ts +10 -0
  37. package/build/esm/src/shared/FocusTrapWrapper.js +35 -0
  38. package/build/esm/src/shared/FocusTrapWrapper.js.map +1 -0
  39. package/build/esm/src/shared/useDragDown.d.ts +13 -0
  40. package/build/esm/src/shared/useDragDown.js +83 -0
  41. package/build/esm/src/shared/useDragDown.js.map +1 -0
  42. package/build/scss/_theming.scss +2 -0
  43. package/build/scss/_variables.scss +1 -0
  44. package/package.json +1 -1
@@ -178,6 +178,11 @@ const variables = {
178
178
  "bold": 700,
179
179
  "black": 900,
180
180
  "inherit": "inherit"
181
+ },
182
+ "zIndex": {
183
+ "dropdown": 1,
184
+ "tooltip": 2,
185
+ "modal": 3
181
186
  }
182
187
  };
183
188
  const ambossVisualConfiguration = {
@@ -202,6 +207,9 @@ const ambossVisualConfiguration = {
202
207
  "active": "#233d3d",
203
208
  "disabled": "rgba(40, 129, 107, 0.3)"
204
209
  },
210
+ "elevated": {
211
+ "default": "#24282d"
212
+ },
205
213
  "onAccent": {
206
214
  "default": "#ffffff",
207
215
  "hover": "#ffffff",
@@ -822,6 +830,9 @@ const ambossVisualConfiguration = {
822
830
  "active": "#0a5c45",
823
831
  "disabled": "rgba(15, 169, 128, 0.3)"
824
832
  },
833
+ "elevated": {
834
+ "default": "#ffffff"
835
+ },
825
836
  "onAccent": {
826
837
  "default": "#ffffff",
827
838
  "hover": "#ffffff",
@@ -9,13 +9,18 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var _extends__default = /*#__PURE__*/_interopDefault(_extends);
10
10
  var React__default = /*#__PURE__*/_interopDefault(React);
11
11
 
12
- function Popover(props) {
12
+ function Popover(_ref) {
13
+ let {
14
+ renderAsSheetOnMobile = true,
15
+ ...rest
16
+ } = _ref;
13
17
  return /*#__PURE__*/React__default.default.createElement(BasePopover.BasePopover, _extends__default.default({
14
18
  name: "Popover",
15
19
  maxWidth: 400,
16
20
  defaultVerticalPlacement: "bottom",
17
- hasInvertedSubTheme: false
18
- }, props));
21
+ hasInvertedSubTheme: false,
22
+ renderAsSheetOnMobile: renderAsSheetOnMobile
23
+ }, rest));
19
24
  }
20
25
 
21
26
  exports.Popover = Popover;
@@ -0,0 +1,315 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var _styled = require('@emotion/styled/base');
5
+ var React = require('react');
6
+ var ReactDOM = require('react-dom');
7
+ var react = require('@emotion/react');
8
+ var FocusTrapWrapper = require('../../shared/FocusTrapWrapper.js');
9
+ var Container = require('../Container/Container.js');
10
+ var useDragDown = require('../../shared/useDragDown.js');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var _extends__default = /*#__PURE__*/_interopDefault(_extends);
15
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
16
+ var React__default = /*#__PURE__*/_interopDefault(React);
17
+
18
+ // Duration of slidein animation of sheet container
19
+ const ANIMATION_DURATION_ENTRY = 300;
20
+ // Duration of slideout animation of sheet container
21
+ const ANIMATION_DURATION_EXIT = 200; // duration
22
+ // Duration of fade in/out animation of content container
23
+ const ANIMATION_DURATION_CONTENT = 50;
24
+ // Max height of sheet content relative to viewport height
25
+ const MAX_HEIGHT_PERCENT = 80;
26
+ // Min drag distance to close sheet
27
+ const MIN_DRAG_DISTANCE = 150;
28
+ const fadeOut = react.keyframes({
29
+ from: {
30
+ opacity: 1
31
+ },
32
+ to: {
33
+ opacity: 0
34
+ }
35
+ });
36
+ const fadeIn = react.keyframes({
37
+ from: {
38
+ opacity: 0
39
+ },
40
+ to: {
41
+ opacity: 1
42
+ }
43
+ });
44
+ const StyledContainer = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
45
+ target: "e1olca0n3"
46
+ } : {
47
+ target: "e1olca0n3",
48
+ label: "StyledContainer"
49
+ })(_ref => {
50
+ let {
51
+ theme,
52
+ containerHeight,
53
+ isClosing,
54
+ dragOffset = 0,
55
+ prevContainerHeight
56
+ } = _ref;
57
+ let animation;
58
+ if (containerHeight) {
59
+ const slideOut = react.keyframes({
60
+ from: {
61
+ transform: `translateY(${dragOffset}px)`
62
+ },
63
+ to: {
64
+ transform: `translateY(${containerHeight}px)`
65
+ }
66
+ });
67
+ const slideIn = react.keyframes({
68
+ from: {
69
+ transform: `translateY(${containerHeight - prevContainerHeight}px)`
70
+ },
71
+ to: {
72
+ transform: `translateY(0px)`
73
+ }
74
+ });
75
+ if (isClosing) {
76
+ animation = `${ANIMATION_DURATION_EXIT}ms ease-out forwards ${slideOut}`;
77
+ } else {
78
+ // set entry animation only for the first time after sheet is visible
79
+ animation = `${ANIMATION_DURATION_ENTRY}ms ease-out forwards ${slideIn}`;
80
+ }
81
+ }
82
+ return {
83
+ position: "fixed",
84
+ left: 0,
85
+ bottom: 0,
86
+ width: "100vw",
87
+ transformOrigin: "bottom",
88
+ animation,
89
+ boxSizing: "border-box",
90
+ zIndex: theme.variables.zIndex.modal,
91
+ // Remove bottom border radius of DS Container
92
+ "> div": {
93
+ borderBottomLeftRadius: 0,
94
+ borderBottomRightRadius: 0
95
+ }
96
+ };
97
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RXdCIiwiZmlsZSI6IlNoZWV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIEdsb2JhbCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IHVzZURyYWdEb3duIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEcmFnRG93blwiO1xuXG5leHBvcnQgdHlwZSBTaGVldFByb3BzID0ge1xuICAvKiBJZCB0byBhc3NvY2lhdGUgd2l0aCBhIHRyaWdnZXIgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBjb250ZW50cyAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgc2hlZXQgaW50byAqL1xuICBwb3J0YWxDb250YWluZXI/OiBIVE1MRWxlbWVudDtcbiAgLyogdXNlZCB0byBzaG93IC8gaGlkZSBzaGVldCAqL1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiBDYWxsZWQgd2hlbiBzaGVldCBuZWVkcyB0byBjbG9zZSwgb24gZXNjYXBlLCBvdXRzaWRlIGNsaWNrLCBzd2lwZSBkb3duLCBldGMuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qIENhbGxlZCB3aGVuIHNoZWV0IGlzIHJlbW92ZWQgZnJvbSBET00gYWZ0ZXIgZXhpdCBhbmltYXRpb24uICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIC8qIENvbnRyb2xzIHdoZXRoZXIgU2hlZXQgY2xvc2VzIG9uIG91dHNpZGUgY2xpY2sgKi9cbiAgZGlzbWlzc09uT3V0c2lkZUNsaWNrPzogYm9vbGVhbjtcbiAgLyogT3B0aW9uIGZvciBmb2N1cy10cmFwLCBjb250cm9scyB3aGV0aGVyIHRoZSBmaXJzdCBmb2N1YWJsZSBpdGVtIHJlY2lldmVzIGZvY3VzICovXG4gIGRpc2FibGVJbml0aWFsRm9jdXM/OiBib29sZWFuO1xuICAvKiBPcHRpb24gZm9yIGZvY3VzLXRyYXAsIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHRyaWdnZXIgc2hvdWxkIHJlY2VpdmUgYmFjayB0aGUgZm9jdXMgb24gcG9wb3ZlciBjbG9zZSAqL1xuICBkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXI/OiBib29sZWFuO1xufTtcblxuLy8gRHVyYXRpb24gb2Ygc2xpZGVpbiBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRU5UUlkgPSAzMDA7XG4vLyBEdXJhdGlvbiBvZiBzbGlkZW91dCBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRVhJVCA9IDIwMDsgLy8gZHVyYXRpb25cbi8vIER1cmF0aW9uIG9mIGZhZGUgaW4vb3V0IGFuaW1hdGlvbiBvZiBjb250ZW50IGNvbnRhaW5lclxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlQgPSA1MDtcbi8vIE1heCBoZWlnaHQgb2Ygc2hlZXQgY29udGVudCByZWxhdGl2ZSB0byB2aWV3cG9ydCBoZWlnaHRcbmNvbnN0IE1BWF9IRUlHSFRfUEVSQ0VOVCA9IDgwO1xuLy8gTWluIGRyYWcgZGlzdGFuY2UgdG8gY2xvc2Ugc2hlZXRcbmNvbnN0IE1JTl9EUkFHX0RJU1RBTkNFID0gMTUwO1xuXG5jb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDEsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbn0pO1xuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDAsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbn0pO1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGFydGlhbDxQaWNrPFNoZWV0UHJvcHMsIFwiaXNWaXNpYmxlXCI+PiAmIHtcbiAgY29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xuICBkcmFnT2Zmc2V0PzogbnVtYmVyO1xuICBwcmV2Q29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgY29udGFpbmVySGVpZ2h0LFxuICAgIGlzQ2xvc2luZyxcbiAgICBkcmFnT2Zmc2V0ID0gMCxcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LFxuICB9KSA9PiB7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZHJhZ09mZnNldH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0IC0gcHJldkNvbnRhaW5lckhlaWdodH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMHB4KWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgICBhbmltYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT05fRVhJVH1tcyBlYXNlLW91dCBmb3J3YXJkcyAke3NsaWRlT3V0fWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZXQgZW50cnkgYW5pbWF0aW9uIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIHNoZWV0IGlzIHZpc2libGVcbiAgICAgICAgYW5pbWF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7c2xpZGVJbn1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgbGVmdDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIHdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46IFwiYm90dG9tXCIsXG4gICAgICBhbmltYXRpb24sXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuXG4gICAgICAvLyBSZW1vdmUgYm90dG9tIGJvcmRlciByYWRpdXMgb2YgRFMgQ29udGFpbmVyXG4gICAgICBcIj4gZGl2XCI6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzID0ge1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ2xvc2luZyB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gaXNDbG9zaW5nXG4gICAgICA/IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7ZmFkZU91dH1gXG4gICAgICA6IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0ICR7XG4gICAgICAgICAgQU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZIC0gQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlRcbiAgICAgICAgfW1zIGZvcndhcmRzICR7ZmFkZUlufWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcmZsb3c6IFwiYXV0b1wiLFxuICAgICAgbWF4SGVpZ2h0OiBgJHtNQVhfSEVJR0hUX1BFUkNFTlR9dmhgLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIG92ZXJzY3JvbGxCZWhhdmlvcjogXCJub25lXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uLFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkSGFuZGxlQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPzogYm9vbGVhbjtcbn07XG5jb25zdCBTdHlsZWRIYW5kbGVDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZEhhbmRsZUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkIH0pID0+ICh7XG4gICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gMGAsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuXG4gICAgLi4uKGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkICYmIHtcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvbi5hLFxuICAgIH0pLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkSGFuZGxlID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogXCI4MHB4XCIsXG4gIGhlaWdodDogXCI0cHhcIixcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmRpdmlkZXIuc2Vjb25kYXJ5LFxufSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hlZXQoe1xuICBpZCxcbiAgY2hpbGRyZW4sXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgb25Vbm1vdW50LFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRpc21pc3NPbk91dHNpZGVDbGljayA9IHRydWUsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMsXG4gIGRpc2FibGVSZXR1cm5Gb2N1c1RvVHJpZ2dlcixcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBTaGVldFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW2lzQ2xvc2luZywgc2V0Q2xvc2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjb250YWluZXJIZWlnaHQsIHNldENvbnRhaW5lckhlaWdodF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2lzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLCBzZXRDb250ZW50Q29udGFpbmVyU2Nyb2xsZWRdID1cbiAgICB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldlZpc2libGVTdGF0ZSA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHByZXZDb250YWluZXJIZWlnaHQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGRyYWdPZmZzZXQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGlzRHJhZ1N0YXJ0ZWQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyUmVjdC5oZWlnaHQpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2hpbGRyZW5dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFN0YXJ0IGNsb3Npbmcgc2hlZXQgaWYgcHJldmlvdXNseSBvcGVuZWRcbiAgICBpZiAoIWlzVmlzaWJsZSAmJiBwcmV2VmlzaWJsZVN0YXRlLmN1cnJlbnQpIHtcbiAgICAgIHNldENsb3NpbmcodHJ1ZSk7XG4gICAgfVxuICAgIHByZXZWaXNpYmxlU3RhdGUuY3VycmVudCA9IGlzVmlzaWJsZTtcbiAgfSwgW2lzVmlzaWJsZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBpc0Nsb3NpbmcpIHtcbiAgICAgIC8vIFNvbWV0aW1lcywgcGFyZW50IGNvbXBvbmVudCBjYW4gcmUtb3BlbiBzaGVldCB3aGlsZSBpdCBpcyBzdGlsbCBjbG9zaW5nLiBUbyBwcmV2ZW50IHRoaXMsIHdlIGNhbGwgb25DbG9zZSBhZ2FpblxuICAgICAgb25DbG9zZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgaXNDbG9zaW5nLCBvbkNsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnQgPSBjb250YWluZXJIZWlnaHQ7XG4gIH0sIFtjb250YWluZXJIZWlnaHRdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBhbmltYXRpb24sIG90aGVyd2lzZSB0cmFuc2Zvcm0gZG9lc24ndCB3b3JrXG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9IFwibm9uZVwiO1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2l0aW9uID0gXCJ0cmFuc2Zvcm0gMC4xcyBlYXNlXCI7XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IFwidHJhbnNsYXRlWSgwcHgpXCI7XG4gICAgICAgIGRyYWdPZmZzZXQuY3VycmVudCA9IDA7XG4gICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnID0gdXNlQ2FsbGJhY2soXG4gICAgKF8sIG9mZnNldEZyb21TdGFydCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyQ3VycmVudEhlaWdodCA9XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCAmJlxuICAgICAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPT09IDAgJiZcbiAgICAgICAgICBvZmZzZXRGcm9tU3RhcnQgPCBjb250YWluZXJDdXJyZW50SGVpZ2h0XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7b2Zmc2V0RnJvbVN0YXJ0fXB4KWA7XG4gICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gb2Zmc2V0RnJvbVN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChfLCBvZmZzZXRGcm9tU3RhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckN1cnJlbnRIZWlnaHQgPVxuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAvLyBDbG9zZSBzaGVldCBvbmx5IHdoZW4gZHJhZyBkaXN0YW5jZSBpcyBhIHF1YXJ0ZXIgb2YgY29udGFpbmVyIGhlaWdodFxuICAgICAgY29uc3QgbWluRHJhZ0Rpc3RhbmNlID1cbiAgICAgICAgY29udGFpbmVyQ3VycmVudEhlaWdodCA8IE1JTl9EUkFHX0RJU1RBTkNFICogMlxuICAgICAgICAgID8gY29udGFpbmVyQ3VycmVudEhlaWdodCAvIDRcbiAgICAgICAgICA6IE1JTl9EUkFHX0RJU1RBTkNFO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaXNEcmFnU3RhcnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgb2Zmc2V0RnJvbVN0YXJ0ID49IG1pbkRyYWdEaXN0YW5jZSAmJlxuICAgICAgICAgICAgY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9PT0gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIG9uQ2xvc2VdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0NhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCkge1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWZdKTtcblxuICB1c2VEcmFnRG93bih7XG4gICAgcmVmOiBjb250YWluZXJSZWYsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUgJiYgIWlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBoYW5kbGVEcmFnU3RhcnQsXG4gICAgb25EcmFnOiBoYW5kbGVEcmFnLFxuICAgIG9uRHJhZ0VuZDogaGFuZGxlRHJhZ0VuZCxcbiAgICBvbkRyYWdDYW5jZWw6IGhhbmRsZURyYWdDYW5jZWwsXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUV4aXRBbmltYXRpb25FbmQgPSAoKSA9PiB7XG4gICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgc2V0Q2xvc2luZyhmYWxzZSk7XG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoMCk7XG4gICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuXG4gICAgICBpZiAob25Vbm1vdW50KSB7XG4gICAgICAgIG9uVW5tb3VudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb250ZW50Q29udGFpbmVyU2Nyb2xsID0gKCkgPT4ge1xuICAgIHNldENvbnRlbnRDb250YWluZXJTY3JvbGxlZChcbiAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudCAmJiBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzaG93U2hlZXQgPSAoaXNWaXNpYmxlIHx8IGlzQ2xvc2luZykgJiYgIShpc1Zpc2libGUgJiYgaXNDbG9zaW5nKTtcblxuICBpZiAoIXNob3dTaGVldCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzID0ge1xuICAgIGh0bWw6IHtcbiAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yOiBcIm5vbmVcIixcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlkUHJvcCA9IGlkXG4gICAgPyB7XG4gICAgICAgIGlkLFxuICAgICAgfVxuICAgIDoge307XG5cbiAgY29uc3Qgc2hlZXRFbG0gPSAoXG4gICAgPD5cbiAgICAgIDxHbG9iYWwgc3R5bGVzPXtnbG9iYWxTdHlsZXN9IC8+XG4gICAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IGRpc21pc3NPbk91dHNpZGVDbGljayxcbiAgICAgICAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGluaXRpYWxGb2N1czogKCkgPT4gIWRpc2FibGVJbml0aWFsRm9jdXMsXG4gICAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU6ICFkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXIsXG4gICAgICAgICAgZmFsbGJhY2tGb2N1czogYFtkYXRhLWRzLWlkPVwiU2hlZXRcIl1gLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgey4uLmlkUHJvcH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiU2hlZXRcIlxuICAgICAgICAgIGlzVmlzaWJsZT17aXNWaXNpYmxlfVxuICAgICAgICAgIGNvbnRhaW5lckhlaWdodD17Y29udGFpbmVySGVpZ2h0fVxuICAgICAgICAgIGlzQ2xvc2luZz17aXNDbG9zaW5nfVxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIGRyYWdPZmZzZXQ9e2RyYWdPZmZzZXQuY3VycmVudH1cbiAgICAgICAgICBwcmV2Q29udGFpbmVySGVpZ2h0PXtwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnR9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e2hhbmRsZUV4aXRBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8U3R5bGVkSGFuZGxlQ29udGFpbmVyXG4gICAgICAgICAgICAgIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPXtpc0NvbnRlbnRDb250YWluZXJTY3JvbGxlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEhhbmRsZSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRIYW5kbGVDb250YWluZXI+XG4gICAgICAgICAgICA8U3R5bGVkQ29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgICBpc0Nsb3Npbmc9e2lzQ2xvc2luZ31cbiAgICAgICAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBvblNjcm9sbD17aGFuZGxlQ29udGVudENvbnRhaW5lclNjcm9sbH1cbiAgICAgICAgICAgICAgb25BbmltYXRpb25FbmQ9eyhldnQpID0+IGV2dC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgICA8Lz5cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHNoZWV0RWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
98
+ const StyledContentContainer = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
99
+ target: "e1olca0n2"
100
+ } : {
101
+ target: "e1olca0n2",
102
+ label: "StyledContentContainer"
103
+ })(_ref2 => {
104
+ let {
105
+ theme,
106
+ isClosing
107
+ } = _ref2;
108
+ const animation = isClosing ? `${ANIMATION_DURATION_CONTENT}ms ease-out forwards ${fadeOut}` : `${ANIMATION_DURATION_CONTENT}ms ease-out ${ANIMATION_DURATION_ENTRY - ANIMATION_DURATION_CONTENT}ms forwards ${fadeIn}`;
109
+ return {
110
+ overflow: "auto",
111
+ maxHeight: `${MAX_HEIGHT_PERCENT}vh`,
112
+ boxSizing: "border-box",
113
+ overscrollBehavior: "none",
114
+ backgroundColor: theme.values.color.background.elevated.default,
115
+ opacity: 0,
116
+ animation
117
+ };
118
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpSStCIiwiZmlsZSI6IlNoZWV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIEdsb2JhbCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IHVzZURyYWdEb3duIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEcmFnRG93blwiO1xuXG5leHBvcnQgdHlwZSBTaGVldFByb3BzID0ge1xuICAvKiBJZCB0byBhc3NvY2lhdGUgd2l0aCBhIHRyaWdnZXIgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBjb250ZW50cyAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgc2hlZXQgaW50byAqL1xuICBwb3J0YWxDb250YWluZXI/OiBIVE1MRWxlbWVudDtcbiAgLyogdXNlZCB0byBzaG93IC8gaGlkZSBzaGVldCAqL1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiBDYWxsZWQgd2hlbiBzaGVldCBuZWVkcyB0byBjbG9zZSwgb24gZXNjYXBlLCBvdXRzaWRlIGNsaWNrLCBzd2lwZSBkb3duLCBldGMuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qIENhbGxlZCB3aGVuIHNoZWV0IGlzIHJlbW92ZWQgZnJvbSBET00gYWZ0ZXIgZXhpdCBhbmltYXRpb24uICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIC8qIENvbnRyb2xzIHdoZXRoZXIgU2hlZXQgY2xvc2VzIG9uIG91dHNpZGUgY2xpY2sgKi9cbiAgZGlzbWlzc09uT3V0c2lkZUNsaWNrPzogYm9vbGVhbjtcbiAgLyogT3B0aW9uIGZvciBmb2N1cy10cmFwLCBjb250cm9scyB3aGV0aGVyIHRoZSBmaXJzdCBmb2N1YWJsZSBpdGVtIHJlY2lldmVzIGZvY3VzICovXG4gIGRpc2FibGVJbml0aWFsRm9jdXM/OiBib29sZWFuO1xuICAvKiBPcHRpb24gZm9yIGZvY3VzLXRyYXAsIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHRyaWdnZXIgc2hvdWxkIHJlY2VpdmUgYmFjayB0aGUgZm9jdXMgb24gcG9wb3ZlciBjbG9zZSAqL1xuICBkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXI/OiBib29sZWFuO1xufTtcblxuLy8gRHVyYXRpb24gb2Ygc2xpZGVpbiBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRU5UUlkgPSAzMDA7XG4vLyBEdXJhdGlvbiBvZiBzbGlkZW91dCBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRVhJVCA9IDIwMDsgLy8gZHVyYXRpb25cbi8vIER1cmF0aW9uIG9mIGZhZGUgaW4vb3V0IGFuaW1hdGlvbiBvZiBjb250ZW50IGNvbnRhaW5lclxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlQgPSA1MDtcbi8vIE1heCBoZWlnaHQgb2Ygc2hlZXQgY29udGVudCByZWxhdGl2ZSB0byB2aWV3cG9ydCBoZWlnaHRcbmNvbnN0IE1BWF9IRUlHSFRfUEVSQ0VOVCA9IDgwO1xuLy8gTWluIGRyYWcgZGlzdGFuY2UgdG8gY2xvc2Ugc2hlZXRcbmNvbnN0IE1JTl9EUkFHX0RJU1RBTkNFID0gMTUwO1xuXG5jb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDEsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbn0pO1xuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDAsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbn0pO1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGFydGlhbDxQaWNrPFNoZWV0UHJvcHMsIFwiaXNWaXNpYmxlXCI+PiAmIHtcbiAgY29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xuICBkcmFnT2Zmc2V0PzogbnVtYmVyO1xuICBwcmV2Q29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgY29udGFpbmVySGVpZ2h0LFxuICAgIGlzQ2xvc2luZyxcbiAgICBkcmFnT2Zmc2V0ID0gMCxcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LFxuICB9KSA9PiB7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZHJhZ09mZnNldH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0IC0gcHJldkNvbnRhaW5lckhlaWdodH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMHB4KWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgICBhbmltYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT05fRVhJVH1tcyBlYXNlLW91dCBmb3J3YXJkcyAke3NsaWRlT3V0fWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZXQgZW50cnkgYW5pbWF0aW9uIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIHNoZWV0IGlzIHZpc2libGVcbiAgICAgICAgYW5pbWF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7c2xpZGVJbn1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgbGVmdDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIHdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46IFwiYm90dG9tXCIsXG4gICAgICBhbmltYXRpb24sXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuXG4gICAgICAvLyBSZW1vdmUgYm90dG9tIGJvcmRlciByYWRpdXMgb2YgRFMgQ29udGFpbmVyXG4gICAgICBcIj4gZGl2XCI6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzID0ge1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ2xvc2luZyB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gaXNDbG9zaW5nXG4gICAgICA/IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7ZmFkZU91dH1gXG4gICAgICA6IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0ICR7XG4gICAgICAgICAgQU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZIC0gQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlRcbiAgICAgICAgfW1zIGZvcndhcmRzICR7ZmFkZUlufWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcmZsb3c6IFwiYXV0b1wiLFxuICAgICAgbWF4SGVpZ2h0OiBgJHtNQVhfSEVJR0hUX1BFUkNFTlR9dmhgLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIG92ZXJzY3JvbGxCZWhhdmlvcjogXCJub25lXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uLFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkSGFuZGxlQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPzogYm9vbGVhbjtcbn07XG5jb25zdCBTdHlsZWRIYW5kbGVDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZEhhbmRsZUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkIH0pID0+ICh7XG4gICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gMGAsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuXG4gICAgLi4uKGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkICYmIHtcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvbi5hLFxuICAgIH0pLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkSGFuZGxlID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogXCI4MHB4XCIsXG4gIGhlaWdodDogXCI0cHhcIixcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmRpdmlkZXIuc2Vjb25kYXJ5LFxufSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hlZXQoe1xuICBpZCxcbiAgY2hpbGRyZW4sXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgb25Vbm1vdW50LFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRpc21pc3NPbk91dHNpZGVDbGljayA9IHRydWUsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMsXG4gIGRpc2FibGVSZXR1cm5Gb2N1c1RvVHJpZ2dlcixcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBTaGVldFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW2lzQ2xvc2luZywgc2V0Q2xvc2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjb250YWluZXJIZWlnaHQsIHNldENvbnRhaW5lckhlaWdodF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2lzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLCBzZXRDb250ZW50Q29udGFpbmVyU2Nyb2xsZWRdID1cbiAgICB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldlZpc2libGVTdGF0ZSA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHByZXZDb250YWluZXJIZWlnaHQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGRyYWdPZmZzZXQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGlzRHJhZ1N0YXJ0ZWQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyUmVjdC5oZWlnaHQpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2hpbGRyZW5dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFN0YXJ0IGNsb3Npbmcgc2hlZXQgaWYgcHJldmlvdXNseSBvcGVuZWRcbiAgICBpZiAoIWlzVmlzaWJsZSAmJiBwcmV2VmlzaWJsZVN0YXRlLmN1cnJlbnQpIHtcbiAgICAgIHNldENsb3NpbmcodHJ1ZSk7XG4gICAgfVxuICAgIHByZXZWaXNpYmxlU3RhdGUuY3VycmVudCA9IGlzVmlzaWJsZTtcbiAgfSwgW2lzVmlzaWJsZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBpc0Nsb3NpbmcpIHtcbiAgICAgIC8vIFNvbWV0aW1lcywgcGFyZW50IGNvbXBvbmVudCBjYW4gcmUtb3BlbiBzaGVldCB3aGlsZSBpdCBpcyBzdGlsbCBjbG9zaW5nLiBUbyBwcmV2ZW50IHRoaXMsIHdlIGNhbGwgb25DbG9zZSBhZ2FpblxuICAgICAgb25DbG9zZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgaXNDbG9zaW5nLCBvbkNsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnQgPSBjb250YWluZXJIZWlnaHQ7XG4gIH0sIFtjb250YWluZXJIZWlnaHRdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBhbmltYXRpb24sIG90aGVyd2lzZSB0cmFuc2Zvcm0gZG9lc24ndCB3b3JrXG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9IFwibm9uZVwiO1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2l0aW9uID0gXCJ0cmFuc2Zvcm0gMC4xcyBlYXNlXCI7XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IFwidHJhbnNsYXRlWSgwcHgpXCI7XG4gICAgICAgIGRyYWdPZmZzZXQuY3VycmVudCA9IDA7XG4gICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnID0gdXNlQ2FsbGJhY2soXG4gICAgKF8sIG9mZnNldEZyb21TdGFydCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyQ3VycmVudEhlaWdodCA9XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCAmJlxuICAgICAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPT09IDAgJiZcbiAgICAgICAgICBvZmZzZXRGcm9tU3RhcnQgPCBjb250YWluZXJDdXJyZW50SGVpZ2h0XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7b2Zmc2V0RnJvbVN0YXJ0fXB4KWA7XG4gICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gb2Zmc2V0RnJvbVN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChfLCBvZmZzZXRGcm9tU3RhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckN1cnJlbnRIZWlnaHQgPVxuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAvLyBDbG9zZSBzaGVldCBvbmx5IHdoZW4gZHJhZyBkaXN0YW5jZSBpcyBhIHF1YXJ0ZXIgb2YgY29udGFpbmVyIGhlaWdodFxuICAgICAgY29uc3QgbWluRHJhZ0Rpc3RhbmNlID1cbiAgICAgICAgY29udGFpbmVyQ3VycmVudEhlaWdodCA8IE1JTl9EUkFHX0RJU1RBTkNFICogMlxuICAgICAgICAgID8gY29udGFpbmVyQ3VycmVudEhlaWdodCAvIDRcbiAgICAgICAgICA6IE1JTl9EUkFHX0RJU1RBTkNFO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaXNEcmFnU3RhcnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgb2Zmc2V0RnJvbVN0YXJ0ID49IG1pbkRyYWdEaXN0YW5jZSAmJlxuICAgICAgICAgICAgY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9PT0gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIG9uQ2xvc2VdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0NhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCkge1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWZdKTtcblxuICB1c2VEcmFnRG93bih7XG4gICAgcmVmOiBjb250YWluZXJSZWYsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUgJiYgIWlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBoYW5kbGVEcmFnU3RhcnQsXG4gICAgb25EcmFnOiBoYW5kbGVEcmFnLFxuICAgIG9uRHJhZ0VuZDogaGFuZGxlRHJhZ0VuZCxcbiAgICBvbkRyYWdDYW5jZWw6IGhhbmRsZURyYWdDYW5jZWwsXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUV4aXRBbmltYXRpb25FbmQgPSAoKSA9PiB7XG4gICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgc2V0Q2xvc2luZyhmYWxzZSk7XG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoMCk7XG4gICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuXG4gICAgICBpZiAob25Vbm1vdW50KSB7XG4gICAgICAgIG9uVW5tb3VudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb250ZW50Q29udGFpbmVyU2Nyb2xsID0gKCkgPT4ge1xuICAgIHNldENvbnRlbnRDb250YWluZXJTY3JvbGxlZChcbiAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudCAmJiBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzaG93U2hlZXQgPSAoaXNWaXNpYmxlIHx8IGlzQ2xvc2luZykgJiYgIShpc1Zpc2libGUgJiYgaXNDbG9zaW5nKTtcblxuICBpZiAoIXNob3dTaGVldCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzID0ge1xuICAgIGh0bWw6IHtcbiAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yOiBcIm5vbmVcIixcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlkUHJvcCA9IGlkXG4gICAgPyB7XG4gICAgICAgIGlkLFxuICAgICAgfVxuICAgIDoge307XG5cbiAgY29uc3Qgc2hlZXRFbG0gPSAoXG4gICAgPD5cbiAgICAgIDxHbG9iYWwgc3R5bGVzPXtnbG9iYWxTdHlsZXN9IC8+XG4gICAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IGRpc21pc3NPbk91dHNpZGVDbGljayxcbiAgICAgICAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGluaXRpYWxGb2N1czogKCkgPT4gIWRpc2FibGVJbml0aWFsRm9jdXMsXG4gICAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU6ICFkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXIsXG4gICAgICAgICAgZmFsbGJhY2tGb2N1czogYFtkYXRhLWRzLWlkPVwiU2hlZXRcIl1gLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgey4uLmlkUHJvcH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiU2hlZXRcIlxuICAgICAgICAgIGlzVmlzaWJsZT17aXNWaXNpYmxlfVxuICAgICAgICAgIGNvbnRhaW5lckhlaWdodD17Y29udGFpbmVySGVpZ2h0fVxuICAgICAgICAgIGlzQ2xvc2luZz17aXNDbG9zaW5nfVxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIGRyYWdPZmZzZXQ9e2RyYWdPZmZzZXQuY3VycmVudH1cbiAgICAgICAgICBwcmV2Q29udGFpbmVySGVpZ2h0PXtwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnR9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e2hhbmRsZUV4aXRBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8U3R5bGVkSGFuZGxlQ29udGFpbmVyXG4gICAgICAgICAgICAgIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPXtpc0NvbnRlbnRDb250YWluZXJTY3JvbGxlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEhhbmRsZSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRIYW5kbGVDb250YWluZXI+XG4gICAgICAgICAgICA8U3R5bGVkQ29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgICBpc0Nsb3Npbmc9e2lzQ2xvc2luZ31cbiAgICAgICAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBvblNjcm9sbD17aGFuZGxlQ29udGVudENvbnRhaW5lclNjcm9sbH1cbiAgICAgICAgICAgICAgb25BbmltYXRpb25FbmQ9eyhldnQpID0+IGV2dC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgICA8Lz5cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHNoZWV0RWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
119
+ const StyledHandleContainer = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
120
+ target: "e1olca0n1"
121
+ } : {
122
+ target: "e1olca0n1",
123
+ label: "StyledHandleContainer"
124
+ })(_ref3 => {
125
+ let {
126
+ theme,
127
+ isContentContainerScrolled
128
+ } = _ref3;
129
+ return {
130
+ padding: `${theme.variables.size.spacing.xs} 0`,
131
+ display: "flex",
132
+ justifyContent: "center",
133
+ backgroundColor: theme.values.color.background.elevated.default,
134
+ ...(isContentContainerScrolled && {
135
+ boxShadow: theme.values.elevation.a
136
+ })
137
+ };
138
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SjhCIiwiZmlsZSI6IlNoZWV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIEdsb2JhbCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IHVzZURyYWdEb3duIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEcmFnRG93blwiO1xuXG5leHBvcnQgdHlwZSBTaGVldFByb3BzID0ge1xuICAvKiBJZCB0byBhc3NvY2lhdGUgd2l0aCBhIHRyaWdnZXIgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBjb250ZW50cyAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgc2hlZXQgaW50byAqL1xuICBwb3J0YWxDb250YWluZXI/OiBIVE1MRWxlbWVudDtcbiAgLyogdXNlZCB0byBzaG93IC8gaGlkZSBzaGVldCAqL1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiBDYWxsZWQgd2hlbiBzaGVldCBuZWVkcyB0byBjbG9zZSwgb24gZXNjYXBlLCBvdXRzaWRlIGNsaWNrLCBzd2lwZSBkb3duLCBldGMuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qIENhbGxlZCB3aGVuIHNoZWV0IGlzIHJlbW92ZWQgZnJvbSBET00gYWZ0ZXIgZXhpdCBhbmltYXRpb24uICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIC8qIENvbnRyb2xzIHdoZXRoZXIgU2hlZXQgY2xvc2VzIG9uIG91dHNpZGUgY2xpY2sgKi9cbiAgZGlzbWlzc09uT3V0c2lkZUNsaWNrPzogYm9vbGVhbjtcbiAgLyogT3B0aW9uIGZvciBmb2N1cy10cmFwLCBjb250cm9scyB3aGV0aGVyIHRoZSBmaXJzdCBmb2N1YWJsZSBpdGVtIHJlY2lldmVzIGZvY3VzICovXG4gIGRpc2FibGVJbml0aWFsRm9jdXM/OiBib29sZWFuO1xuICAvKiBPcHRpb24gZm9yIGZvY3VzLXRyYXAsIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHRyaWdnZXIgc2hvdWxkIHJlY2VpdmUgYmFjayB0aGUgZm9jdXMgb24gcG9wb3ZlciBjbG9zZSAqL1xuICBkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXI/OiBib29sZWFuO1xufTtcblxuLy8gRHVyYXRpb24gb2Ygc2xpZGVpbiBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRU5UUlkgPSAzMDA7XG4vLyBEdXJhdGlvbiBvZiBzbGlkZW91dCBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRVhJVCA9IDIwMDsgLy8gZHVyYXRpb25cbi8vIER1cmF0aW9uIG9mIGZhZGUgaW4vb3V0IGFuaW1hdGlvbiBvZiBjb250ZW50IGNvbnRhaW5lclxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlQgPSA1MDtcbi8vIE1heCBoZWlnaHQgb2Ygc2hlZXQgY29udGVudCByZWxhdGl2ZSB0byB2aWV3cG9ydCBoZWlnaHRcbmNvbnN0IE1BWF9IRUlHSFRfUEVSQ0VOVCA9IDgwO1xuLy8gTWluIGRyYWcgZGlzdGFuY2UgdG8gY2xvc2Ugc2hlZXRcbmNvbnN0IE1JTl9EUkFHX0RJU1RBTkNFID0gMTUwO1xuXG5jb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDEsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbn0pO1xuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDAsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbn0pO1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGFydGlhbDxQaWNrPFNoZWV0UHJvcHMsIFwiaXNWaXNpYmxlXCI+PiAmIHtcbiAgY29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xuICBkcmFnT2Zmc2V0PzogbnVtYmVyO1xuICBwcmV2Q29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgY29udGFpbmVySGVpZ2h0LFxuICAgIGlzQ2xvc2luZyxcbiAgICBkcmFnT2Zmc2V0ID0gMCxcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LFxuICB9KSA9PiB7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZHJhZ09mZnNldH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0IC0gcHJldkNvbnRhaW5lckhlaWdodH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMHB4KWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgICBhbmltYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT05fRVhJVH1tcyBlYXNlLW91dCBmb3J3YXJkcyAke3NsaWRlT3V0fWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZXQgZW50cnkgYW5pbWF0aW9uIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIHNoZWV0IGlzIHZpc2libGVcbiAgICAgICAgYW5pbWF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7c2xpZGVJbn1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgbGVmdDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIHdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46IFwiYm90dG9tXCIsXG4gICAgICBhbmltYXRpb24sXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuXG4gICAgICAvLyBSZW1vdmUgYm90dG9tIGJvcmRlciByYWRpdXMgb2YgRFMgQ29udGFpbmVyXG4gICAgICBcIj4gZGl2XCI6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzID0ge1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ2xvc2luZyB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gaXNDbG9zaW5nXG4gICAgICA/IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7ZmFkZU91dH1gXG4gICAgICA6IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0ICR7XG4gICAgICAgICAgQU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZIC0gQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlRcbiAgICAgICAgfW1zIGZvcndhcmRzICR7ZmFkZUlufWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcmZsb3c6IFwiYXV0b1wiLFxuICAgICAgbWF4SGVpZ2h0OiBgJHtNQVhfSEVJR0hUX1BFUkNFTlR9dmhgLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIG92ZXJzY3JvbGxCZWhhdmlvcjogXCJub25lXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uLFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkSGFuZGxlQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPzogYm9vbGVhbjtcbn07XG5jb25zdCBTdHlsZWRIYW5kbGVDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZEhhbmRsZUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkIH0pID0+ICh7XG4gICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gMGAsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuXG4gICAgLi4uKGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkICYmIHtcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvbi5hLFxuICAgIH0pLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkSGFuZGxlID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogXCI4MHB4XCIsXG4gIGhlaWdodDogXCI0cHhcIixcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmRpdmlkZXIuc2Vjb25kYXJ5LFxufSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hlZXQoe1xuICBpZCxcbiAgY2hpbGRyZW4sXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgb25Vbm1vdW50LFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRpc21pc3NPbk91dHNpZGVDbGljayA9IHRydWUsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMsXG4gIGRpc2FibGVSZXR1cm5Gb2N1c1RvVHJpZ2dlcixcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBTaGVldFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW2lzQ2xvc2luZywgc2V0Q2xvc2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjb250YWluZXJIZWlnaHQsIHNldENvbnRhaW5lckhlaWdodF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2lzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLCBzZXRDb250ZW50Q29udGFpbmVyU2Nyb2xsZWRdID1cbiAgICB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldlZpc2libGVTdGF0ZSA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHByZXZDb250YWluZXJIZWlnaHQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGRyYWdPZmZzZXQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGlzRHJhZ1N0YXJ0ZWQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyUmVjdC5oZWlnaHQpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2hpbGRyZW5dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFN0YXJ0IGNsb3Npbmcgc2hlZXQgaWYgcHJldmlvdXNseSBvcGVuZWRcbiAgICBpZiAoIWlzVmlzaWJsZSAmJiBwcmV2VmlzaWJsZVN0YXRlLmN1cnJlbnQpIHtcbiAgICAgIHNldENsb3NpbmcodHJ1ZSk7XG4gICAgfVxuICAgIHByZXZWaXNpYmxlU3RhdGUuY3VycmVudCA9IGlzVmlzaWJsZTtcbiAgfSwgW2lzVmlzaWJsZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBpc0Nsb3NpbmcpIHtcbiAgICAgIC8vIFNvbWV0aW1lcywgcGFyZW50IGNvbXBvbmVudCBjYW4gcmUtb3BlbiBzaGVldCB3aGlsZSBpdCBpcyBzdGlsbCBjbG9zaW5nLiBUbyBwcmV2ZW50IHRoaXMsIHdlIGNhbGwgb25DbG9zZSBhZ2FpblxuICAgICAgb25DbG9zZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgaXNDbG9zaW5nLCBvbkNsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnQgPSBjb250YWluZXJIZWlnaHQ7XG4gIH0sIFtjb250YWluZXJIZWlnaHRdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBhbmltYXRpb24sIG90aGVyd2lzZSB0cmFuc2Zvcm0gZG9lc24ndCB3b3JrXG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9IFwibm9uZVwiO1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2l0aW9uID0gXCJ0cmFuc2Zvcm0gMC4xcyBlYXNlXCI7XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IFwidHJhbnNsYXRlWSgwcHgpXCI7XG4gICAgICAgIGRyYWdPZmZzZXQuY3VycmVudCA9IDA7XG4gICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnID0gdXNlQ2FsbGJhY2soXG4gICAgKF8sIG9mZnNldEZyb21TdGFydCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyQ3VycmVudEhlaWdodCA9XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCAmJlxuICAgICAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPT09IDAgJiZcbiAgICAgICAgICBvZmZzZXRGcm9tU3RhcnQgPCBjb250YWluZXJDdXJyZW50SGVpZ2h0XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7b2Zmc2V0RnJvbVN0YXJ0fXB4KWA7XG4gICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gb2Zmc2V0RnJvbVN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChfLCBvZmZzZXRGcm9tU3RhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckN1cnJlbnRIZWlnaHQgPVxuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAvLyBDbG9zZSBzaGVldCBvbmx5IHdoZW4gZHJhZyBkaXN0YW5jZSBpcyBhIHF1YXJ0ZXIgb2YgY29udGFpbmVyIGhlaWdodFxuICAgICAgY29uc3QgbWluRHJhZ0Rpc3RhbmNlID1cbiAgICAgICAgY29udGFpbmVyQ3VycmVudEhlaWdodCA8IE1JTl9EUkFHX0RJU1RBTkNFICogMlxuICAgICAgICAgID8gY29udGFpbmVyQ3VycmVudEhlaWdodCAvIDRcbiAgICAgICAgICA6IE1JTl9EUkFHX0RJU1RBTkNFO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaXNEcmFnU3RhcnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgb2Zmc2V0RnJvbVN0YXJ0ID49IG1pbkRyYWdEaXN0YW5jZSAmJlxuICAgICAgICAgICAgY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9PT0gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIG9uQ2xvc2VdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0NhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCkge1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWZdKTtcblxuICB1c2VEcmFnRG93bih7XG4gICAgcmVmOiBjb250YWluZXJSZWYsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUgJiYgIWlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBoYW5kbGVEcmFnU3RhcnQsXG4gICAgb25EcmFnOiBoYW5kbGVEcmFnLFxuICAgIG9uRHJhZ0VuZDogaGFuZGxlRHJhZ0VuZCxcbiAgICBvbkRyYWdDYW5jZWw6IGhhbmRsZURyYWdDYW5jZWwsXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUV4aXRBbmltYXRpb25FbmQgPSAoKSA9PiB7XG4gICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgc2V0Q2xvc2luZyhmYWxzZSk7XG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoMCk7XG4gICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuXG4gICAgICBpZiAob25Vbm1vdW50KSB7XG4gICAgICAgIG9uVW5tb3VudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb250ZW50Q29udGFpbmVyU2Nyb2xsID0gKCkgPT4ge1xuICAgIHNldENvbnRlbnRDb250YWluZXJTY3JvbGxlZChcbiAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudCAmJiBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzaG93U2hlZXQgPSAoaXNWaXNpYmxlIHx8IGlzQ2xvc2luZykgJiYgIShpc1Zpc2libGUgJiYgaXNDbG9zaW5nKTtcblxuICBpZiAoIXNob3dTaGVldCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzID0ge1xuICAgIGh0bWw6IHtcbiAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yOiBcIm5vbmVcIixcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlkUHJvcCA9IGlkXG4gICAgPyB7XG4gICAgICAgIGlkLFxuICAgICAgfVxuICAgIDoge307XG5cbiAgY29uc3Qgc2hlZXRFbG0gPSAoXG4gICAgPD5cbiAgICAgIDxHbG9iYWwgc3R5bGVzPXtnbG9iYWxTdHlsZXN9IC8+XG4gICAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IGRpc21pc3NPbk91dHNpZGVDbGljayxcbiAgICAgICAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGluaXRpYWxGb2N1czogKCkgPT4gIWRpc2FibGVJbml0aWFsRm9jdXMsXG4gICAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU6ICFkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXIsXG4gICAgICAgICAgZmFsbGJhY2tGb2N1czogYFtkYXRhLWRzLWlkPVwiU2hlZXRcIl1gLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgey4uLmlkUHJvcH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiU2hlZXRcIlxuICAgICAgICAgIGlzVmlzaWJsZT17aXNWaXNpYmxlfVxuICAgICAgICAgIGNvbnRhaW5lckhlaWdodD17Y29udGFpbmVySGVpZ2h0fVxuICAgICAgICAgIGlzQ2xvc2luZz17aXNDbG9zaW5nfVxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIGRyYWdPZmZzZXQ9e2RyYWdPZmZzZXQuY3VycmVudH1cbiAgICAgICAgICBwcmV2Q29udGFpbmVySGVpZ2h0PXtwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnR9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e2hhbmRsZUV4aXRBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8U3R5bGVkSGFuZGxlQ29udGFpbmVyXG4gICAgICAgICAgICAgIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPXtpc0NvbnRlbnRDb250YWluZXJTY3JvbGxlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEhhbmRsZSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRIYW5kbGVDb250YWluZXI+XG4gICAgICAgICAgICA8U3R5bGVkQ29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgICBpc0Nsb3Npbmc9e2lzQ2xvc2luZ31cbiAgICAgICAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBvblNjcm9sbD17aGFuZGxlQ29udGVudENvbnRhaW5lclNjcm9sbH1cbiAgICAgICAgICAgICAgb25BbmltYXRpb25FbmQ9eyhldnQpID0+IGV2dC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgICA8Lz5cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHNoZWV0RWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
139
+ const StyledHandle = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
140
+ target: "e1olca0n0"
141
+ } : {
142
+ target: "e1olca0n0",
143
+ label: "StyledHandle"
144
+ })(_ref4 => {
145
+ let {
146
+ theme
147
+ } = _ref4;
148
+ return {
149
+ width: "80px",
150
+ height: "4px",
151
+ borderRadius: theme.variables.size.borderRadius.xs,
152
+ backgroundColor: theme.values.color.divider.secondary
153
+ };
154
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxS3FCIiwiZmlsZSI6IlNoZWV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBrZXlmcmFtZXMsIEdsb2JhbCB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IHVzZURyYWdEb3duIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEcmFnRG93blwiO1xuXG5leHBvcnQgdHlwZSBTaGVldFByb3BzID0ge1xuICAvKiBJZCB0byBhc3NvY2lhdGUgd2l0aCBhIHRyaWdnZXIgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBjb250ZW50cyAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgc2hlZXQgaW50byAqL1xuICBwb3J0YWxDb250YWluZXI/OiBIVE1MRWxlbWVudDtcbiAgLyogdXNlZCB0byBzaG93IC8gaGlkZSBzaGVldCAqL1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiBDYWxsZWQgd2hlbiBzaGVldCBuZWVkcyB0byBjbG9zZSwgb24gZXNjYXBlLCBvdXRzaWRlIGNsaWNrLCBzd2lwZSBkb3duLCBldGMuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qIENhbGxlZCB3aGVuIHNoZWV0IGlzIHJlbW92ZWQgZnJvbSBET00gYWZ0ZXIgZXhpdCBhbmltYXRpb24uICovXG4gIG9uVW5tb3VudD86ICgpID0+IHZvaWQ7XG4gIC8qIENvbnRyb2xzIHdoZXRoZXIgU2hlZXQgY2xvc2VzIG9uIG91dHNpZGUgY2xpY2sgKi9cbiAgZGlzbWlzc09uT3V0c2lkZUNsaWNrPzogYm9vbGVhbjtcbiAgLyogT3B0aW9uIGZvciBmb2N1cy10cmFwLCBjb250cm9scyB3aGV0aGVyIHRoZSBmaXJzdCBmb2N1YWJsZSBpdGVtIHJlY2lldmVzIGZvY3VzICovXG4gIGRpc2FibGVJbml0aWFsRm9jdXM/OiBib29sZWFuO1xuICAvKiBPcHRpb24gZm9yIGZvY3VzLXRyYXAsIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHRyaWdnZXIgc2hvdWxkIHJlY2VpdmUgYmFjayB0aGUgZm9jdXMgb24gcG9wb3ZlciBjbG9zZSAqL1xuICBkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXI/OiBib29sZWFuO1xufTtcblxuLy8gRHVyYXRpb24gb2Ygc2xpZGVpbiBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRU5UUlkgPSAzMDA7XG4vLyBEdXJhdGlvbiBvZiBzbGlkZW91dCBhbmltYXRpb24gb2Ygc2hlZXQgY29udGFpbmVyXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT05fRVhJVCA9IDIwMDsgLy8gZHVyYXRpb25cbi8vIER1cmF0aW9uIG9mIGZhZGUgaW4vb3V0IGFuaW1hdGlvbiBvZiBjb250ZW50IGNvbnRhaW5lclxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlQgPSA1MDtcbi8vIE1heCBoZWlnaHQgb2Ygc2hlZXQgY29udGVudCByZWxhdGl2ZSB0byB2aWV3cG9ydCBoZWlnaHRcbmNvbnN0IE1BWF9IRUlHSFRfUEVSQ0VOVCA9IDgwO1xuLy8gTWluIGRyYWcgZGlzdGFuY2UgdG8gY2xvc2Ugc2hlZXRcbmNvbnN0IE1JTl9EUkFHX0RJU1RBTkNFID0gMTUwO1xuXG5jb25zdCBmYWRlT3V0ID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDEsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbn0pO1xuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzKHtcbiAgZnJvbToge1xuICAgIG9wYWNpdHk6IDAsXG4gIH0sXG4gIHRvOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbn0pO1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGFydGlhbDxQaWNrPFNoZWV0UHJvcHMsIFwiaXNWaXNpYmxlXCI+PiAmIHtcbiAgY29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xuICBkcmFnT2Zmc2V0PzogbnVtYmVyO1xuICBwcmV2Q29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgY29udGFpbmVySGVpZ2h0LFxuICAgIGlzQ2xvc2luZyxcbiAgICBkcmFnT2Zmc2V0ID0gMCxcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LFxuICB9KSA9PiB7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICBjb25zdCBzbGlkZU91dCA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZHJhZ09mZnNldH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2xpZGVJbiA9IGtleWZyYW1lcyh7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0IC0gcHJldkNvbnRhaW5lckhlaWdodH1weClgLFxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMHB4KWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgICBhbmltYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT05fRVhJVH1tcyBlYXNlLW91dCBmb3J3YXJkcyAke3NsaWRlT3V0fWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZXQgZW50cnkgYW5pbWF0aW9uIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIHNoZWV0IGlzIHZpc2libGVcbiAgICAgICAgYW5pbWF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7c2xpZGVJbn1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgbGVmdDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIHdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46IFwiYm90dG9tXCIsXG4gICAgICBhbmltYXRpb24sXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgekluZGV4OiB0aGVtZS52YXJpYWJsZXMuekluZGV4Lm1vZGFsLFxuXG4gICAgICAvLyBSZW1vdmUgYm90dG9tIGJvcmRlciByYWRpdXMgb2YgRFMgQ29udGFpbmVyXG4gICAgICBcIj4gZGl2XCI6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzID0ge1xuICBpc0Nsb3Npbmc/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudENvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ2xvc2luZyB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gaXNDbG9zaW5nXG4gICAgICA/IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7ZmFkZU91dH1gXG4gICAgICA6IGAke0FOSU1BVElPTl9EVVJBVElPTl9DT05URU5UfW1zIGVhc2Utb3V0ICR7XG4gICAgICAgICAgQU5JTUFUSU9OX0RVUkFUSU9OX0VOVFJZIC0gQU5JTUFUSU9OX0RVUkFUSU9OX0NPTlRFTlRcbiAgICAgICAgfW1zIGZvcndhcmRzICR7ZmFkZUlufWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcmZsb3c6IFwiYXV0b1wiLFxuICAgICAgbWF4SGVpZ2h0OiBgJHtNQVhfSEVJR0hUX1BFUkNFTlR9dmhgLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIG92ZXJzY3JvbGxCZWhhdmlvcjogXCJub25lXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uLFxuICAgIH07XG4gIH1cbik7XG5cbnR5cGUgU3R5bGVkSGFuZGxlQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPzogYm9vbGVhbjtcbn07XG5jb25zdCBTdHlsZWRIYW5kbGVDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZEhhbmRsZUNvbnRhaW5lclByb3BzPihcbiAgKHsgdGhlbWUsIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkIH0pID0+ICh7XG4gICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gMGAsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuXG4gICAgLi4uKGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkICYmIHtcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvbi5hLFxuICAgIH0pLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkSGFuZGxlID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICB3aWR0aDogXCI4MHB4XCIsXG4gIGhlaWdodDogXCI0cHhcIixcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmRpdmlkZXIuc2Vjb25kYXJ5LFxufSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gU2hlZXQoe1xuICBpZCxcbiAgY2hpbGRyZW4sXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgb25Vbm1vdW50LFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRpc21pc3NPbk91dHNpZGVDbGljayA9IHRydWUsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMsXG4gIGRpc2FibGVSZXR1cm5Gb2N1c1RvVHJpZ2dlcixcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBTaGVldFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW2lzQ2xvc2luZywgc2V0Q2xvc2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjb250YWluZXJIZWlnaHQsIHNldENvbnRhaW5lckhlaWdodF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2lzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLCBzZXRDb250ZW50Q29udGFpbmVyU2Nyb2xsZWRdID1cbiAgICB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcHJldlZpc2libGVTdGF0ZSA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHByZXZDb250YWluZXJIZWlnaHQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGRyYWdPZmZzZXQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGlzRHJhZ1N0YXJ0ZWQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyUmVjdC5oZWlnaHQpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2hpbGRyZW5dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFN0YXJ0IGNsb3Npbmcgc2hlZXQgaWYgcHJldmlvdXNseSBvcGVuZWRcbiAgICBpZiAoIWlzVmlzaWJsZSAmJiBwcmV2VmlzaWJsZVN0YXRlLmN1cnJlbnQpIHtcbiAgICAgIHNldENsb3NpbmcodHJ1ZSk7XG4gICAgfVxuICAgIHByZXZWaXNpYmxlU3RhdGUuY3VycmVudCA9IGlzVmlzaWJsZTtcbiAgfSwgW2lzVmlzaWJsZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiBpc0Nsb3NpbmcpIHtcbiAgICAgIC8vIFNvbWV0aW1lcywgcGFyZW50IGNvbXBvbmVudCBjYW4gcmUtb3BlbiBzaGVldCB3aGlsZSBpdCBpcyBzdGlsbCBjbG9zaW5nLiBUbyBwcmV2ZW50IHRoaXMsIHdlIGNhbGwgb25DbG9zZSBhZ2FpblxuICAgICAgb25DbG9zZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgaXNDbG9zaW5nLCBvbkNsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnQgPSBjb250YWluZXJIZWlnaHQ7XG4gIH0sIFtjb250YWluZXJIZWlnaHRdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBhbmltYXRpb24sIG90aGVyd2lzZSB0cmFuc2Zvcm0gZG9lc24ndCB3b3JrXG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9IFwibm9uZVwiO1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2l0aW9uID0gXCJ0cmFuc2Zvcm0gMC4xcyBlYXNlXCI7XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IFwidHJhbnNsYXRlWSgwcHgpXCI7XG4gICAgICAgIGRyYWdPZmZzZXQuY3VycmVudCA9IDA7XG4gICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdKTtcblxuICBjb25zdCBoYW5kbGVEcmFnID0gdXNlQ2FsbGJhY2soXG4gICAgKF8sIG9mZnNldEZyb21TdGFydCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyQ3VycmVudEhlaWdodCA9XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCAmJlxuICAgICAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPT09IDAgJiZcbiAgICAgICAgICBvZmZzZXRGcm9tU3RhcnQgPCBjb250YWluZXJDdXJyZW50SGVpZ2h0XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7b2Zmc2V0RnJvbVN0YXJ0fXB4KWA7XG4gICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gb2Zmc2V0RnJvbVN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIGNvbnRlbnRDb250YWluZXJSZWZdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChfLCBvZmZzZXRGcm9tU3RhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckN1cnJlbnRIZWlnaHQgPVxuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAvLyBDbG9zZSBzaGVldCBvbmx5IHdoZW4gZHJhZyBkaXN0YW5jZSBpcyBhIHF1YXJ0ZXIgb2YgY29udGFpbmVyIGhlaWdodFxuICAgICAgY29uc3QgbWluRHJhZ0Rpc3RhbmNlID1cbiAgICAgICAgY29udGFpbmVyQ3VycmVudEhlaWdodCA8IE1JTl9EUkFHX0RJU1RBTkNFICogMlxuICAgICAgICAgID8gY29udGFpbmVyQ3VycmVudEhlaWdodCAvIDRcbiAgICAgICAgICA6IE1JTl9EUkFHX0RJU1RBTkNFO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoaXNEcmFnU3RhcnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgb2Zmc2V0RnJvbVN0YXJ0ID49IG1pbkRyYWdEaXN0YW5jZSAmJlxuICAgICAgICAgICAgY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9PT0gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICAgICAgZHJhZ09mZnNldC5jdXJyZW50ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtjb250YWluZXJSZWYsIG9uQ2xvc2VdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0NhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaWYgKGlzRHJhZ1N0YXJ0ZWQuY3VycmVudCkge1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSBcInRyYW5zbGF0ZVkoMHB4KVwiO1xuICAgICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgaXNEcmFnU3RhcnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSk7XG4gIH0sIFtjb250YWluZXJSZWZdKTtcblxuICB1c2VEcmFnRG93bih7XG4gICAgcmVmOiBjb250YWluZXJSZWYsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUgJiYgIWlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBoYW5kbGVEcmFnU3RhcnQsXG4gICAgb25EcmFnOiBoYW5kbGVEcmFnLFxuICAgIG9uRHJhZ0VuZDogaGFuZGxlRHJhZ0VuZCxcbiAgICBvbkRyYWdDYW5jZWw6IGhhbmRsZURyYWdDYW5jZWwsXG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZUV4aXRBbmltYXRpb25FbmQgPSAoKSA9PiB7XG4gICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgc2V0Q2xvc2luZyhmYWxzZSk7XG4gICAgICBzZXRDb250YWluZXJIZWlnaHQoMCk7XG4gICAgICBkcmFnT2Zmc2V0LmN1cnJlbnQgPSAwO1xuXG4gICAgICBpZiAob25Vbm1vdW50KSB7XG4gICAgICAgIG9uVW5tb3VudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb250ZW50Q29udGFpbmVyU2Nyb2xsID0gKCkgPT4ge1xuICAgIHNldENvbnRlbnRDb250YWluZXJTY3JvbGxlZChcbiAgICAgIGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudCAmJiBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzaG93U2hlZXQgPSAoaXNWaXNpYmxlIHx8IGlzQ2xvc2luZykgJiYgIShpc1Zpc2libGUgJiYgaXNDbG9zaW5nKTtcblxuICBpZiAoIXNob3dTaGVldCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzID0ge1xuICAgIGh0bWw6IHtcbiAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yOiBcIm5vbmVcIixcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlkUHJvcCA9IGlkXG4gICAgPyB7XG4gICAgICAgIGlkLFxuICAgICAgfVxuICAgIDoge307XG5cbiAgY29uc3Qgc2hlZXRFbG0gPSAoXG4gICAgPD5cbiAgICAgIDxHbG9iYWwgc3R5bGVzPXtnbG9iYWxTdHlsZXN9IC8+XG4gICAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IGRpc21pc3NPbk91dHNpZGVDbGljayxcbiAgICAgICAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICAgIGluaXRpYWxGb2N1czogKCkgPT4gIWRpc2FibGVJbml0aWFsRm9jdXMsXG4gICAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU6ICFkaXNhYmxlUmV0dXJuRm9jdXNUb1RyaWdnZXIsXG4gICAgICAgICAgZmFsbGJhY2tGb2N1czogYFtkYXRhLWRzLWlkPVwiU2hlZXRcIl1gLFxuICAgICAgICAgIG9uUG9zdERlYWN0aXZhdGU6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgey4uLmlkUHJvcH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiU2hlZXRcIlxuICAgICAgICAgIGlzVmlzaWJsZT17aXNWaXNpYmxlfVxuICAgICAgICAgIGNvbnRhaW5lckhlaWdodD17Y29udGFpbmVySGVpZ2h0fVxuICAgICAgICAgIGlzQ2xvc2luZz17aXNDbG9zaW5nfVxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIGRyYWdPZmZzZXQ9e2RyYWdPZmZzZXQuY3VycmVudH1cbiAgICAgICAgICBwcmV2Q29udGFpbmVySGVpZ2h0PXtwcmV2Q29udGFpbmVySGVpZ2h0LmN1cnJlbnR9XG4gICAgICAgICAgb25BbmltYXRpb25FbmQ9e2hhbmRsZUV4aXRBbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8U3R5bGVkSGFuZGxlQ29udGFpbmVyXG4gICAgICAgICAgICAgIGlzQ29udGVudENvbnRhaW5lclNjcm9sbGVkPXtpc0NvbnRlbnRDb250YWluZXJTY3JvbGxlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEhhbmRsZSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRIYW5kbGVDb250YWluZXI+XG4gICAgICAgICAgICA8U3R5bGVkQ29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgICBpc0Nsb3Npbmc9e2lzQ2xvc2luZ31cbiAgICAgICAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBvblNjcm9sbD17aGFuZGxlQ29udGVudENvbnRhaW5lclNjcm9sbH1cbiAgICAgICAgICAgICAgb25BbmltYXRpb25FbmQ9eyhldnQpID0+IGV2dC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgICA8Lz5cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHNoZWV0RWxtLCBwb3J0YWxDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSk7XG59XG4iXX0= */");
155
+ function Sheet(_ref5) {
156
+ let {
157
+ id,
158
+ children,
159
+ isVisible,
160
+ onClose,
161
+ onUnmount,
162
+ portalContainer,
163
+ dismissOnOutsideClick = true,
164
+ disableInitialFocus,
165
+ disableReturnFocusToTrigger,
166
+ "data-e2e-test-id": dataE2eTestId
167
+ } = _ref5;
168
+ const [isClosing, setClosing] = React.useState(false);
169
+ const [containerHeight, setContainerHeight] = React.useState(0);
170
+ const [isContentContainerScrolled, setContentContainerScrolled] = React.useState(false);
171
+ const containerRef = React.useRef(null);
172
+ const contentContainerRef = React.useRef(null);
173
+ const prevVisibleState = React.useRef(false);
174
+ const prevContainerHeight = React.useRef(0);
175
+ const dragOffset = React.useRef(0);
176
+ const isDragStarted = React.useRef(false);
177
+ React.useLayoutEffect(() => {
178
+ if (isVisible && containerRef.current) {
179
+ const containerRect = containerRef.current.getBoundingClientRect();
180
+ setContainerHeight(containerRect.height);
181
+ }
182
+ }, [isVisible, children]);
183
+ React.useEffect(() => {
184
+ // Start closing sheet if previously opened
185
+ if (!isVisible && prevVisibleState.current) {
186
+ setClosing(true);
187
+ }
188
+ prevVisibleState.current = isVisible;
189
+ }, [isVisible]);
190
+ React.useEffect(() => {
191
+ if (isVisible && isClosing) {
192
+ // Sometimes, parent component can re-open sheet while it is still closing. To prevent this, we call onClose again
193
+ onClose();
194
+ }
195
+ }, [isVisible, isClosing, onClose]);
196
+ React.useEffect(() => {
197
+ prevContainerHeight.current = containerHeight;
198
+ }, [containerHeight]);
199
+ const handleDragStart = React.useCallback(() => {
200
+ requestAnimationFrame(() => {
201
+ if (contentContainerRef.current.scrollTop === 0) {
202
+ // Remove existing animation, otherwise transform doesn't work
203
+ containerRef.current.style.animation = "none";
204
+ containerRef.current.style.transition = "transform 0.1s ease";
205
+ containerRef.current.style.transform = "translateY(0px)";
206
+ dragOffset.current = 0;
207
+ isDragStarted.current = true;
208
+ }
209
+ });
210
+ }, [containerRef, contentContainerRef]);
211
+ const handleDrag = React.useCallback((_, offsetFromStart) => {
212
+ const containerCurrentHeight = containerRef.current.getBoundingClientRect().height;
213
+ requestAnimationFrame(() => {
214
+ if (isDragStarted.current && contentContainerRef.current.scrollTop === 0 && offsetFromStart < containerCurrentHeight) {
215
+ containerRef.current.style.transform = `translateY(${offsetFromStart}px)`;
216
+ dragOffset.current = offsetFromStart;
217
+ }
218
+ });
219
+ }, [containerRef, contentContainerRef]);
220
+ const handleDragEnd = React.useCallback((_, offsetFromStart) => {
221
+ const containerCurrentHeight = containerRef.current.getBoundingClientRect().height;
222
+ // Close sheet only when drag distance is a quarter of container height
223
+ const minDragDistance = containerCurrentHeight < MIN_DRAG_DISTANCE * 2 ? containerCurrentHeight / 4 : MIN_DRAG_DISTANCE;
224
+ requestAnimationFrame(() => {
225
+ if (isDragStarted.current) {
226
+ if (offsetFromStart >= minDragDistance && contentContainerRef.current.scrollTop === 0) {
227
+ onClose();
228
+ } else {
229
+ containerRef.current.style.transform = "translateY(0px)";
230
+ dragOffset.current = 0;
231
+ }
232
+ }
233
+ isDragStarted.current = false;
234
+ });
235
+ }, [containerRef, onClose]);
236
+ const handleDragCancel = React.useCallback(() => {
237
+ requestAnimationFrame(() => {
238
+ if (isDragStarted.current) {
239
+ containerRef.current.style.transform = "translateY(0px)";
240
+ dragOffset.current = 0;
241
+ }
242
+ isDragStarted.current = false;
243
+ });
244
+ }, [containerRef]);
245
+ useDragDown.useDragDown({
246
+ ref: containerRef,
247
+ isVisible: isVisible && !isContentContainerScrolled,
248
+ onDragStart: handleDragStart,
249
+ onDrag: handleDrag,
250
+ onDragEnd: handleDragEnd,
251
+ onDragCancel: handleDragCancel
252
+ });
253
+ const handleExitAnimationEnd = () => {
254
+ if (isClosing) {
255
+ setClosing(false);
256
+ setContainerHeight(0);
257
+ dragOffset.current = 0;
258
+ if (onUnmount) {
259
+ onUnmount();
260
+ }
261
+ }
262
+ };
263
+ const handleContentContainerScroll = () => {
264
+ setContentContainerScrolled(contentContainerRef.current && contentContainerRef.current.scrollTop !== 0);
265
+ };
266
+ const showSheet = (isVisible || isClosing) && !(isVisible && isClosing);
267
+ if (!showSheet) return null;
268
+ const globalStyles = {
269
+ html: {
270
+ overflow: "hidden",
271
+ overscrollBehavior: "none"
272
+ }
273
+ };
274
+ const idProp = id ? {
275
+ id
276
+ } : {};
277
+ const sheetElm = /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement(react.Global, {
278
+ styles: globalStyles
279
+ }), /*#__PURE__*/React__default.default.createElement(FocusTrapWrapper.FocusTrapWrapper, {
280
+ focusTrapOptions: {
281
+ clickOutsideDeactivates: dismissOnOutsideClick,
282
+ escapeDeactivates: true,
283
+ preventScroll: true,
284
+ initialFocus: () => !disableInitialFocus,
285
+ returnFocusOnDeactivate: !disableReturnFocusToTrigger,
286
+ fallbackFocus: `[data-ds-id="Sheet"]`,
287
+ onPostDeactivate: () => {
288
+ onClose();
289
+ }
290
+ }
291
+ }, /*#__PURE__*/React__default.default.createElement(StyledContainer, _extends__default.default({}, idProp, {
292
+ // eslint-disable-line react/jsx-props-no-spreading
293
+ "data-e2e-test-id": dataE2eTestId,
294
+ "data-ds-id": "Sheet",
295
+ isVisible: isVisible,
296
+ containerHeight: containerHeight,
297
+ isClosing: isClosing,
298
+ ref: containerRef,
299
+ dragOffset: dragOffset.current,
300
+ prevContainerHeight: prevContainerHeight.current,
301
+ onAnimationEnd: handleExitAnimationEnd
302
+ }), /*#__PURE__*/React__default.default.createElement(Container.Container, {
303
+ elevation: 4
304
+ }, /*#__PURE__*/React__default.default.createElement(StyledHandleContainer, {
305
+ isContentContainerScrolled: isContentContainerScrolled
306
+ }, /*#__PURE__*/React__default.default.createElement(StyledHandle, null)), /*#__PURE__*/React__default.default.createElement(StyledContentContainer, {
307
+ isClosing: isClosing,
308
+ ref: contentContainerRef,
309
+ onScroll: handleContentContainerScroll,
310
+ onAnimationEnd: evt => evt.stopPropagation()
311
+ }, children)))));
312
+ return /*#__PURE__*/ReactDOM.createPortal(sheetElm, portalContainer || document.body);
313
+ }
314
+
315
+ exports.Sheet = Sheet;
@@ -2,14 +2,15 @@
2
2
 
3
3
  var _extends = require('@babel/runtime/helpers/extends');
4
4
  var React = require('react');
5
- var FocusTrap = require('focus-trap-react');
6
5
  var TooltipContent = require('../Tooltip/TooltipContent.js');
6
+ var Sheet = require('../Sheet/Sheet.js');
7
+ var FocusTrapWrapper = require('../../shared/FocusTrapWrapper.js');
8
+ var _breakpoints = require('../../../build-tokens/_breakpoints.json.js');
7
9
 
8
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
11
 
10
12
  var _extends__default = /*#__PURE__*/_interopDefault(_extends);
11
13
  var React__default = /*#__PURE__*/_interopDefault(React);
12
- var FocusTrap__default = /*#__PURE__*/_interopDefault(FocusTrap);
13
14
 
14
15
  const FocusTrapContent = /*#__PURE__*/React__default.default.forwardRef((_ref, ref) => {
15
16
  let {
@@ -19,6 +20,10 @@ const FocusTrapContent = /*#__PURE__*/React__default.default.forwardRef((_ref, r
19
20
  ref: ref
20
21
  }, children);
21
22
  });
23
+ const VisibilityChangeReason = {
24
+ triggerClick: "triggerClick",
25
+ outsideClick: "outsideClick"
26
+ };
22
27
  function BasePopover(_ref2) {
23
28
  let {
24
29
  placement = "auto",
@@ -37,24 +42,27 @@ function BasePopover(_ref2) {
37
42
  onVisibilityChange,
38
43
  disableInitialFocus = false,
39
44
  disableReturnFocusToTrigger = false,
45
+ renderAsSheetOnMobile = false,
40
46
  ...restContentProps
41
47
  } = _ref2;
42
48
  const tooltipId = React.useMemo(() => `DS${name}_${Math.floor(Date.now() * Math.random())}`, [name]);
43
49
  const [isVisible, setVisible] = React.useState(isPopoverVisible);
50
+ const [isMobileBreakPoint, setIsMobileBreakpoint] = React.useState(false);
44
51
  const internalTriggerRef = React.useRef(null);
45
52
  const triggerRef = externalTriggerRef || internalTriggerRef;
46
53
  const isOutsideClickOnTrigger = React.useRef(false);
47
- const toggleVisibility = React.useCallback(status => {
54
+ const isPrevMobileBreakPointRef = React.useRef(false);
55
+ const toggleVisibility = React.useCallback((status, reason) => {
48
56
  setVisible(status);
49
57
  if (onVisibilityChange) {
50
- onVisibilityChange(status);
58
+ onVisibilityChange(status, reason);
51
59
  }
52
60
  }, [onVisibilityChange]);
53
61
 
54
62
  // Outside click is also fired when the Popover is open and trigger is clicked. `isOutsideClickOnTrigger` saves this condition and we check for it so as to not toggle the Popover twice.
55
63
  const handleTriggerClick = React.useCallback(() => {
56
64
  if (!isOutsideClickOnTrigger.current) {
57
- toggleVisibility(!isVisible);
65
+ toggleVisibility(!isVisible, VisibilityChangeReason.triggerClick);
58
66
  } else {
59
67
  // reset this value so that Popover can open in next click
60
68
  isOutsideClickOnTrigger.current = false;
@@ -66,9 +74,21 @@ function BasePopover(_ref2) {
66
74
  }
67
75
  return true;
68
76
  }, [triggerRef, isOutsideClickOnTrigger]);
77
+ const handleSheetClose = React.useCallback(() => {
78
+ toggleVisibility(false, "sheetClose");
79
+ }, [toggleVisibility]);
69
80
  React.useEffect(() => {
70
81
  setVisible(isPopoverVisible);
71
82
  }, [isPopoverVisible]);
83
+ React.useEffect(() => {
84
+ // Check if this is a mobile breakpoint
85
+ if (renderAsSheetOnMobile) {
86
+ setIsMobileBreakpoint(window.innerWidth <= _breakpoints.default.medium.value);
87
+ }
88
+ }, [isVisible, renderAsSheetOnMobile]);
89
+ React.useEffect(() => {
90
+ isPrevMobileBreakPointRef.current = isMobileBreakPoint;
91
+ }, [isMobileBreakPoint]);
72
92
  React.useEffect(() => {
73
93
  let trigger;
74
94
  if (externalTriggerRef?.current && !children) {
@@ -108,7 +128,21 @@ function BasePopover(_ref2) {
108
128
  }
109
129
  }
110
130
  }) : null;
111
- const contentElm = /*#__PURE__*/React__default.default.createElement(FocusTrap__default.default, {
131
+ if (isMobileBreakPoint) {
132
+ // render as Sheet
133
+ const sheetElm = /*#__PURE__*/React__default.default.createElement(Sheet.Sheet, {
134
+ id: tooltipId,
135
+ isVisible: isVisible,
136
+ onClose: handleSheetClose,
137
+ dismissOnOutsideClick: dismissOnOutsideClick,
138
+ disableInitialFocus: disableInitialFocus,
139
+ disableReturnFocusToTrigger: disableReturnFocusToTrigger
140
+ }, content);
141
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, triggerElm, sheetElm);
142
+ }
143
+
144
+ // render as Popover
145
+ const contentElm = /*#__PURE__*/React__default.default.createElement(FocusTrapWrapper.FocusTrapWrapper, {
112
146
  focusTrapOptions: {
113
147
  clickOutsideDeactivates: dismissOnOutsideClick && handleClickOutsideDeactivates,
114
148
  // de-active focus trap on outside click
@@ -117,8 +151,9 @@ function BasePopover(_ref2) {
117
151
  // de-activate focus trap on escape key
118
152
  fallbackFocus: `#${tooltipId}`,
119
153
  // set focus to tooltip content container if it has no focusable element
120
- onDeactivate: () => {
121
- toggleVisibility(false);
154
+ onPostDeactivate: () => {
155
+ const reason = isOutsideClickOnTrigger.current ? VisibilityChangeReason.triggerClick : VisibilityChangeReason.outsideClick;
156
+ toggleVisibility(false, reason);
122
157
  },
123
158
  preventScroll: true,
124
159
  initialFocus: () => !disableInitialFocus,
@@ -15,7 +15,7 @@ function BaseTooltip(_ref) {
15
15
  children,
16
16
  externalTriggerRef,
17
17
  portalContainer,
18
- contentPadding = "m",
18
+ contentPadding,
19
19
  maxWidth,
20
20
  "data-e2e-test-id": dataE2eTestId,
21
21
  onVisibilityChange