@amboss/design-system 1.20.1 → 1.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/src/components/Popover/Popover.js +1 -2
- package/build/cjs/src/components/Toggletip/BasePopover.js +5 -2
- package/build/cjs/src/components/Toggletip/Toggletip.js +1 -2
- package/build/cjs/src/components/Tooltip/TooltipContent.js +42 -59
- package/build/cjs/src/components/Tooltip/utils.js +12 -4
- package/build/esm/src/components/Popover/Popover.d.ts +1 -1
- package/build/esm/src/components/Popover/Popover.js +1 -2
- package/build/esm/src/components/Popover/Popover.js.map +1 -1
- package/build/esm/src/components/Toggletip/BasePopover.d.ts +4 -3
- package/build/esm/src/components/Toggletip/BasePopover.js +5 -2
- package/build/esm/src/components/Toggletip/BasePopover.js.map +1 -1
- package/build/esm/src/components/Toggletip/Toggletip.d.ts +1 -1
- package/build/esm/src/components/Toggletip/Toggletip.js +1 -2
- package/build/esm/src/components/Toggletip/Toggletip.js.map +1 -1
- package/build/esm/src/components/Tooltip/TooltipContent.d.ts +1 -3
- package/build/esm/src/components/Tooltip/TooltipContent.js +42 -59
- package/build/esm/src/components/Tooltip/TooltipContent.js.map +1 -1
- package/build/esm/src/components/Tooltip/utils.js +12 -4
- package/build/esm/src/components/Tooltip/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -35,7 +35,8 @@ function BasePopover(_ref2) {
|
|
|
35
35
|
hasInvertedSubTheme,
|
|
36
36
|
defaultVerticalPlacement,
|
|
37
37
|
onVisibilityChange,
|
|
38
|
-
|
|
38
|
+
disableInitialFocus = false,
|
|
39
|
+
disableReturnFocusToTrigger = false,
|
|
39
40
|
...restContentProps
|
|
40
41
|
} = _ref2;
|
|
41
42
|
const tooltipId = React.useMemo(() => `DS${name}_${Math.floor(Date.now() * Math.random())}`, [name]);
|
|
@@ -119,7 +120,9 @@ function BasePopover(_ref2) {
|
|
|
119
120
|
onDeactivate: () => {
|
|
120
121
|
toggleVisibility(false);
|
|
121
122
|
},
|
|
122
|
-
preventScroll
|
|
123
|
+
preventScroll: true,
|
|
124
|
+
initialFocus: () => !disableInitialFocus,
|
|
125
|
+
returnFocusOnDeactivate: !disableReturnFocusToTrigger
|
|
123
126
|
}
|
|
124
127
|
}, /*#__PURE__*/React__default.default.createElement(FocusTrapContent, null, content));
|
|
125
128
|
const tooltipElm = /*#__PURE__*/React__default.default.createElement(TooltipContent.TooltipContent, _extends__default.default({}, restContentProps, {
|
|
@@ -11,8 +11,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
11
11
|
|
|
12
12
|
function Toggletip(props) {
|
|
13
13
|
return /*#__PURE__*/React__default.default.createElement(BasePopover.BasePopover, _extends__default.default({
|
|
14
|
-
name: "Toggletip"
|
|
15
|
-
defaultVerticalPlacement: "top"
|
|
14
|
+
name: "Toggletip"
|
|
16
15
|
}, props));
|
|
17
16
|
}
|
|
18
17
|
|
|
@@ -65,7 +65,7 @@ const StyledContainer = /*#__PURE__*/_styled__default.default("div", process.env
|
|
|
65
65
|
transform: "translate(-50%)"
|
|
66
66
|
})
|
|
67
67
|
};
|
|
68
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IEJvcmRlclJhZGl1cyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgLyogUGxhY2VtZW50ICovXG4gIHBsYWNlbWVudD86XG4gICAgfCBcImF1dG9cIlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJib3R0b21cIlxuICAgIHwgXCJ0b3AtbGVmdFwiXG4gICAgfCBcInRvcC1yaWdodFwiXG4gICAgfCBcImJvdHRvbS1sZWZ0XCJcbiAgICB8IFwiYm90dG9tLXJpZ2h0XCI7XG4gIC8qIEN1c3RvbSBwb3J0YWwgY29udGFpbmVyIHRvIHJlbmRlciB0b29sdGlwIGludG8gKi9cbiAgcG9ydGFsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIGRhdGFFMmVUZXN0SWQ/OiBzdHJpbmc7XG4gIGRhdGFEU0lkOiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRvb2x0aXBJZD86IHN0cmluZztcbiAgXCJhcmlhLWhpZGRlblwiPzogYm9vbGVhbjtcbiAgcm9sZT86IHN0cmluZztcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIC8vIENvbnRlbnQgcGFkZGluZ1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIGhhc0ludmVydGVkU3ViVGhlbWU/OiBib29sZWFuO1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcj86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblRvb2x0aXBQb2ludGVyTGVhdmU/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgaGlkZUFycm93PzogYm9vbGVhbjtcbiAgYm9yZGVyUmFkaXVzPzogQm9yZGVyUmFkaXVzO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcImhhc0ludmVydGVkU3ViVGhlbWVcIlxuPiAmIHtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICAgIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHQsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4OiB6SW5kaWNlcy50b29sdGlwLnZhbHVlLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcImluaXRpYWxcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgYm9yZGVyUmFkaXVzID0gXCJ4c1wiLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgZGVib3VuY2VUaW1lb3V0SWQgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGRlYm91bmNlVGltZW91dElkLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIGNvbnN0IGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCkge1xuICAgICAgZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCA9IHNldFRpbWVvdXQoY2FsY3VsYXRlU3R5bGUsIDIwMCk7XG4gICAgfVxuICB9LCBbY2FsY3VsYXRlU3R5bGVdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXRJZC5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIGxldCBwb3J0YWwgPSBudWxsO1xuXG4gIGNvbnN0IE91dGVyV3JhcHBlciA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0RWxlbWVudCB9KSA9PlxuICAgICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPntjaGlsZHJlbn08L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD57Y2hpbGRyZW59PC8+XG4gICAgICAgICksXG4gICAgW2hhc0ludmVydGVkU3ViVGhlbWVdXG4gICk7XG5cbiAgaWYgKGlzVmlzaWJsZSkge1xuICAgIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgICA8T3V0ZXJXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICAgICAgfX1cbiAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9e2JvcmRlclJhZGl1c30+XG4gICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgICAgICA8U3R5bGVkQXJyb3dcbiAgICAgICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICA8L091dGVyV3JhcHBlcj5cbiAgICApO1xuXG4gICAgcG9ydGFsID0gY3JlYXRlUG9ydGFsKHRvb2x0aXBFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBwb3J0YWw7XG59XG4iXX0= */");
|
|
68
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
69
69
|
const StyledArrow = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
|
|
70
70
|
target: "e1k814k40"
|
|
71
71
|
} : {
|
|
@@ -104,7 +104,7 @@ const StyledArrow = /*#__PURE__*/_styled__default.default("div", process.env.NOD
|
|
|
104
104
|
right: `${offset}px`
|
|
105
105
|
})
|
|
106
106
|
};
|
|
107
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IEJvcmRlclJhZGl1cyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgLyogUGxhY2VtZW50ICovXG4gIHBsYWNlbWVudD86XG4gICAgfCBcImF1dG9cIlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJib3R0b21cIlxuICAgIHwgXCJ0b3AtbGVmdFwiXG4gICAgfCBcInRvcC1yaWdodFwiXG4gICAgfCBcImJvdHRvbS1sZWZ0XCJcbiAgICB8IFwiYm90dG9tLXJpZ2h0XCI7XG4gIC8qIEN1c3RvbSBwb3J0YWwgY29udGFpbmVyIHRvIHJlbmRlciB0b29sdGlwIGludG8gKi9cbiAgcG9ydGFsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIGRhdGFFMmVUZXN0SWQ/OiBzdHJpbmc7XG4gIGRhdGFEU0lkOiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRvb2x0aXBJZD86IHN0cmluZztcbiAgXCJhcmlhLWhpZGRlblwiPzogYm9vbGVhbjtcbiAgcm9sZT86IHN0cmluZztcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIC8vIENvbnRlbnQgcGFkZGluZ1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIGhhc0ludmVydGVkU3ViVGhlbWU/OiBib29sZWFuO1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcj86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblRvb2x0aXBQb2ludGVyTGVhdmU/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgaGlkZUFycm93PzogYm9vbGVhbjtcbiAgYm9yZGVyUmFkaXVzPzogQm9yZGVyUmFkaXVzO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcImhhc0ludmVydGVkU3ViVGhlbWVcIlxuPiAmIHtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICAgIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHQsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4OiB6SW5kaWNlcy50b29sdGlwLnZhbHVlLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcImluaXRpYWxcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgYm9yZGVyUmFkaXVzID0gXCJ4c1wiLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgZGVib3VuY2VUaW1lb3V0SWQgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGRlYm91bmNlVGltZW91dElkLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIGNvbnN0IGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCkge1xuICAgICAgZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCA9IHNldFRpbWVvdXQoY2FsY3VsYXRlU3R5bGUsIDIwMCk7XG4gICAgfVxuICB9LCBbY2FsY3VsYXRlU3R5bGVdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXRJZC5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIGxldCBwb3J0YWwgPSBudWxsO1xuXG4gIGNvbnN0IE91dGVyV3JhcHBlciA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0RWxlbWVudCB9KSA9PlxuICAgICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPntjaGlsZHJlbn08L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD57Y2hpbGRyZW59PC8+XG4gICAgICAgICksXG4gICAgW2hhc0ludmVydGVkU3ViVGhlbWVdXG4gICk7XG5cbiAgaWYgKGlzVmlzaWJsZSkge1xuICAgIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgICA8T3V0ZXJXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICAgICAgfX1cbiAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9e2JvcmRlclJhZGl1c30+XG4gICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgICAgICA8U3R5bGVkQXJyb3dcbiAgICAgICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICA8L091dGVyV3JhcHBlcj5cbiAgICApO1xuXG4gICAgcG9ydGFsID0gY3JlYXRlUG9ydGFsKHRvb2x0aXBFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBwb3J0YWw7XG59XG4iXX0= */");
|
|
107
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
108
108
|
const initialStyle = {
|
|
109
109
|
top: 0,
|
|
110
110
|
left: 0,
|
|
@@ -145,14 +145,12 @@ function TooltipContent(_ref3) {
|
|
|
145
145
|
defaultVerticalPlacement,
|
|
146
146
|
onTooltipPointerEnter,
|
|
147
147
|
onTooltipPointerLeave,
|
|
148
|
-
hideArrow = false
|
|
149
|
-
borderRadius = "xs"
|
|
148
|
+
hideArrow = false
|
|
150
149
|
} = _ref3;
|
|
151
150
|
const [style, setStyle] = React.useState(initialStyle);
|
|
152
151
|
const tooltipRef = React.useRef(null);
|
|
153
152
|
const document = useDocument.useDocument();
|
|
154
153
|
const window = useWindow.useWindow();
|
|
155
|
-
const debounceTimeoutId = React.useRef(null);
|
|
156
154
|
const arrowSize = React.useMemo(() => {
|
|
157
155
|
if (hideArrow) {
|
|
158
156
|
return 0;
|
|
@@ -163,14 +161,8 @@ function TooltipContent(_ref3) {
|
|
|
163
161
|
if (triggerRef.current && tooltipRef.current) {
|
|
164
162
|
// calculate tooltip style
|
|
165
163
|
setStyle(utils.getTooltipStyle(placement, defaultVerticalPlacement, triggerRef, tooltipRef, document, window, arrowSize));
|
|
166
|
-
debounceTimeoutId.current = null;
|
|
167
164
|
}
|
|
168
165
|
}, [triggerRef, tooltipRef, document, window, placement, arrowSize, defaultVerticalPlacement]);
|
|
169
|
-
const debouncedCalculateStyle = React.useCallback(() => {
|
|
170
|
-
if (!debounceTimeoutId.current) {
|
|
171
|
-
debounceTimeoutId.current = setTimeout(calculateStyle, 200);
|
|
172
|
-
}
|
|
173
|
-
}, [calculateStyle]);
|
|
174
166
|
|
|
175
167
|
// This layout effect to re-render with updated position after determining content width
|
|
176
168
|
React.useLayoutEffect(() => {
|
|
@@ -191,8 +183,8 @@ function TooltipContent(_ref3) {
|
|
|
191
183
|
threshold: 0.9
|
|
192
184
|
});
|
|
193
185
|
observer.observe(tooltipRef.current);
|
|
194
|
-
window.addEventListener("resize",
|
|
195
|
-
window.addEventListener("scroll",
|
|
186
|
+
window.addEventListener("resize", calculateStyle);
|
|
187
|
+
window.addEventListener("scroll", calculateStyle, true); // use capture here to detect scroll on any parent
|
|
196
188
|
} else if (!isVisible) {
|
|
197
189
|
// log time when tooltip closes
|
|
198
190
|
lastTooltipHideTimestamp = Date.now();
|
|
@@ -201,53 +193,44 @@ function TooltipContent(_ref3) {
|
|
|
201
193
|
if (observer) {
|
|
202
194
|
observer.disconnect();
|
|
203
195
|
}
|
|
204
|
-
window.removeEventListener("resize",
|
|
205
|
-
window.removeEventListener("scroll",
|
|
206
|
-
clearTimeout(debounceTimeoutId.current);
|
|
196
|
+
window.removeEventListener("resize", calculateStyle);
|
|
197
|
+
window.removeEventListener("scroll", calculateStyle);
|
|
207
198
|
};
|
|
208
|
-
}, [isVisible, calculateStyle,
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
"data-e2e-test-id": `${dataE2eTestId}_arrow`,
|
|
244
|
-
horizontalPlacement: style.horizontalPlacement,
|
|
245
|
-
verticalPlacement: style.verticalPlacement,
|
|
246
|
-
size: arrowSize
|
|
247
|
-
})));
|
|
248
|
-
portal = /*#__PURE__*/ReactDOM.createPortal(tooltipElm, portalContainer || document.body);
|
|
249
|
-
}
|
|
250
|
-
return portal;
|
|
199
|
+
}, [isVisible, calculateStyle, window, tooltipRef]);
|
|
200
|
+
if (!isVisible) return null;
|
|
201
|
+
const tooltipElm = /*#__PURE__*/React__default.default.createElement(StyledContainer, {
|
|
202
|
+
"data-e2e-test-id": dataE2eTestId,
|
|
203
|
+
"data-ds-id": dataDSId,
|
|
204
|
+
style: {
|
|
205
|
+
top: style.top,
|
|
206
|
+
left: style.left,
|
|
207
|
+
animationDuration: getAnimationDuration()
|
|
208
|
+
},
|
|
209
|
+
ref: tooltipRef,
|
|
210
|
+
id: tooltipId,
|
|
211
|
+
role: role,
|
|
212
|
+
"aria-hidden": ariaHidden,
|
|
213
|
+
hasInvertedSubTheme: hasInvertedSubTheme,
|
|
214
|
+
tabIndex: tabIndex,
|
|
215
|
+
horizontalPlacement: style.horizontalPlacement,
|
|
216
|
+
verticalPlacement: style.verticalPlacement,
|
|
217
|
+
maxWidth: maxWidth,
|
|
218
|
+
contentPadding: contentPadding,
|
|
219
|
+
onPointerEnter: onTooltipPointerEnter,
|
|
220
|
+
onPointerLeave: onTooltipPointerLeave
|
|
221
|
+
}, hasInvertedSubTheme ? content : /*#__PURE__*/React__default.default.createElement(Container.Container, {
|
|
222
|
+
elevation: 3,
|
|
223
|
+
borderRadius: "s"
|
|
224
|
+
}, content), !hideArrow && /*#__PURE__*/React__default.default.createElement(StyledArrow, {
|
|
225
|
+
"data-e2e-test-id": `${dataE2eTestId}_arrow`,
|
|
226
|
+
horizontalPlacement: style.horizontalPlacement,
|
|
227
|
+
verticalPlacement: style.verticalPlacement,
|
|
228
|
+
size: arrowSize
|
|
229
|
+
}));
|
|
230
|
+
const wrapperElm = hasInvertedSubTheme ? /*#__PURE__*/React__default.default.createElement(SubThemeProvider.SubThemeProvider, {
|
|
231
|
+
name: "inverted"
|
|
232
|
+
}, tooltipElm) : tooltipElm;
|
|
233
|
+
return /*#__PURE__*/ReactDOM.createPortal(wrapperElm, portalContainer || document.body);
|
|
251
234
|
}
|
|
252
235
|
|
|
253
236
|
exports.TooltipContent = TooltipContent;
|
|
@@ -42,10 +42,18 @@ function getTooltipStyle(placement) {
|
|
|
42
42
|
}
|
|
43
43
|
default:
|
|
44
44
|
// If there is no space for the default vertical position of the trigger place it on the opposite side
|
|
45
|
-
if (verticalPlacement === "top"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
if (verticalPlacement === "top") {
|
|
46
|
+
if (triggerRect.top < tooltipRect.height) {
|
|
47
|
+
verticalPlacement = "bottom";
|
|
48
|
+
}
|
|
49
|
+
} else if (verticalPlacement === "bottom") {
|
|
50
|
+
// Check if there is no space at the bottom
|
|
51
|
+
if (triggerRect.bottom + tooltipRect.height > viewportHeight) {
|
|
52
|
+
// Check if there is space at the top
|
|
53
|
+
if (triggerRect.top > tooltipRect.height) {
|
|
54
|
+
verticalPlacement = "top";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
49
57
|
}
|
|
50
58
|
|
|
51
59
|
// Check if we have space on the left for half of the tooltip width
|
|
@@ -2,5 +2,5 @@ import React from "react";
|
|
|
2
2
|
import { BasePopoverProps } from "../Toggletip/BasePopover";
|
|
3
3
|
import { TooltipContentProps } from "../Tooltip/TooltipContent";
|
|
4
4
|
import { TooltipConditionalProps } from "../Tooltip/types";
|
|
5
|
-
export type PopoverProps = Omit<BasePopoverProps, "contentPadding"> & TooltipConditionalProps & Pick<TooltipContentProps, "hideArrow">;
|
|
5
|
+
export type PopoverProps = Omit<BasePopoverProps, "contentPadding" | "name" | "defaultVerticalPlacement"> & TooltipConditionalProps & Pick<TooltipContentProps, "hideArrow">;
|
|
6
6
|
export declare function Popover(props: PopoverProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"../Toggletip/BasePopover\";\nimport { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type PopoverProps = Omit
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"../Toggletip/BasePopover\";\nimport { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type PopoverProps = Omit<\n BasePopoverProps,\n \"contentPadding\" | \"name\" | \"defaultVerticalPlacement\"\n> &\n TooltipConditionalProps &\n Pick<TooltipContentProps, \"hideArrow\">;\n\nexport function Popover(props: PopoverProps): React.ReactElement {\n return (\n <BasePopover\n name=\"Popover\"\n maxWidth={400}\n defaultVerticalPlacement=\"bottom\"\n hasInvertedSubTheme={false}\n {...props} // eslint-disable-line react/jsx-props-no-spreading\n />\n );\n}\n"],"names":["Popover","props","React","createElement","BasePopover","_extends","name","maxWidth","defaultVerticalPlacement","hasInvertedSubTheme"],"mappings":";;;;AAaO,SAASA,OAAOA,CAACC,KAAmB,EAAsB;AAC/D,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAACC,WAAW,EAAAC,QAAA,CAAA;AACVC,IAAAA,IAAI,EAAC,SAAS;AACdC,IAAAA,QAAQ,EAAE,GAAI;AACdC,IAAAA,wBAAwB,EAAC,QAAQ;AACjCC,IAAAA,mBAAmB,EAAE,KAAA;GACjBR,EAAAA,KAAK,CACV,CAAC,CAAA;AAEN;;;;"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import React, { ReactElement } from "react";
|
|
2
2
|
import type { TooltipContentProps } from "../Tooltip/TooltipContent";
|
|
3
3
|
import { TooltipConditionalProps } from "../Tooltip/types";
|
|
4
|
-
type BaseProps = Pick<TooltipContentProps, "placement" | "portalContainer" | "maxWidth" | "contentPadding" | "hideArrow" | "
|
|
4
|
+
type BaseProps = Pick<TooltipContentProps, "placement" | "portalContainer" | "maxWidth" | "contentPadding" | "hideArrow" | "hasInvertedSubTheme"> & {
|
|
5
5
|
name?: string;
|
|
6
6
|
content: ReactElement;
|
|
7
7
|
"data-e2e-test-id"?: string;
|
|
8
8
|
isVisible?: boolean;
|
|
9
9
|
onVisibilityChange?: (isVisible: boolean) => void;
|
|
10
10
|
dismissOnOutsideClick?: boolean;
|
|
11
|
-
|
|
11
|
+
disableInitialFocus?: boolean;
|
|
12
|
+
disableReturnFocusToTrigger?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type BasePopoverProps = BaseProps;
|
|
14
15
|
type BasePopoverInternalProps = BaseProps & TooltipConditionalProps & Pick<TooltipContentProps, "defaultVerticalPlacement">;
|
|
15
|
-
export declare function BasePopover({ placement, content, children, contentPadding, maxWidth, externalTriggerRef, portalContainer, name, isVisible: isPopoverVisible, dismissOnOutsideClick, "data-e2e-test-id": dataE2eTestId, hasInvertedSubTheme, defaultVerticalPlacement, onVisibilityChange,
|
|
16
|
+
export declare function BasePopover({ placement, content, children, contentPadding, maxWidth, externalTriggerRef, portalContainer, name, isVisible: isPopoverVisible, dismissOnOutsideClick, "data-e2e-test-id": dataE2eTestId, hasInvertedSubTheme, defaultVerticalPlacement, onVisibilityChange, disableInitialFocus, disableReturnFocusToTrigger, ...restContentProps }: BasePopoverInternalProps): React.ReactElement;
|
|
16
17
|
export {};
|
|
@@ -27,7 +27,8 @@ function BasePopover(_ref2) {
|
|
|
27
27
|
hasInvertedSubTheme,
|
|
28
28
|
defaultVerticalPlacement,
|
|
29
29
|
onVisibilityChange,
|
|
30
|
-
|
|
30
|
+
disableInitialFocus = false,
|
|
31
|
+
disableReturnFocusToTrigger = false,
|
|
31
32
|
...restContentProps
|
|
32
33
|
} = _ref2;
|
|
33
34
|
const tooltipId = useMemo(() => `DS${name}_${Math.floor(Date.now() * Math.random())}`, [name]);
|
|
@@ -111,7 +112,9 @@ function BasePopover(_ref2) {
|
|
|
111
112
|
onDeactivate: () => {
|
|
112
113
|
toggleVisibility(false);
|
|
113
114
|
},
|
|
114
|
-
preventScroll
|
|
115
|
+
preventScroll: true,
|
|
116
|
+
initialFocus: () => !disableInitialFocus,
|
|
117
|
+
returnFocusOnDeactivate: !disableReturnFocusToTrigger
|
|
115
118
|
}
|
|
116
119
|
}, /*#__PURE__*/React.createElement(FocusTrapContent, null, content));
|
|
117
120
|
const tooltipElm = /*#__PURE__*/React.createElement(TooltipContent, _extends({}, restContentProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePopover.js","sources":["../../../../../src/components/Toggletip/BasePopover.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n ReactElement,\n PropsWithChildren,\n} from \"react\";\nimport FocusTrap from \"focus-trap-react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\ntype BaseProps = Pick<\n TooltipContentProps,\n | \"placement\"\n | \"portalContainer\"\n | \"maxWidth\"\n | \"contentPadding\"\n | \"hideArrow\"\n | \"borderRadius\"\n | \"hasInvertedSubTheme\"\n> & {\n name?: string;\n // Popover content\n content: ReactElement;\n \"data-e2e-test-id\"?: string;\n // Programmatically toggle Popover visibility with this prop\n isVisible?: boolean;\n /* Called when tooltip appears and disappears */\n onVisibilityChange?: (isVisible: boolean) => void;\n /* Controls whether BasePopover closes on outside click */\n dismissOnOutsideClick?: boolean;\n preventScroll?: boolean;\n};\n\nexport type BasePopoverProps = BaseProps;\n\ntype BasePopoverInternalProps = BaseProps &\n TooltipConditionalProps &\n Pick<TooltipContentProps, \"defaultVerticalPlacement\">;\n\nconst FocusTrapContent = React.forwardRef<\n HTMLDivElement,\n PropsWithChildren<unknown>\n>(({ children }, ref) => <div ref={ref}>{children}</div>);\n\nexport function BasePopover({\n placement = \"auto\",\n content,\n children,\n contentPadding = \"m\",\n maxWidth,\n externalTriggerRef,\n portalContainer,\n name = \"Popover\",\n isVisible: isPopoverVisible,\n dismissOnOutsideClick = true,\n \"data-e2e-test-id\": dataE2eTestId,\n hasInvertedSubTheme,\n defaultVerticalPlacement,\n onVisibilityChange,\n preventScroll = false,\n ...restContentProps\n}: BasePopoverInternalProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DS${name}_${Math.floor(Date.now() * Math.random())}`,\n [name]\n );\n const [isVisible, setVisible] = useState(isPopoverVisible);\n const internalTriggerRef = useRef(null);\n const triggerRef = externalTriggerRef || internalTriggerRef;\n const isOutsideClickOnTrigger = useRef(false);\n\n const toggleVisibility = useCallback(\n (status: boolean) => {\n setVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status);\n }\n },\n [onVisibilityChange]\n );\n\n // 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.\n const handleTriggerClick = useCallback(() => {\n if (!isOutsideClickOnTrigger.current) {\n toggleVisibility(!isVisible);\n } else {\n // reset this value so that Popover can open in next click\n isOutsideClickOnTrigger.current = false;\n }\n }, [toggleVisibility, isVisible]);\n\n const handleClickOutsideDeactivates = useCallback(\n (evt) => {\n if (triggerRef.current.contains(evt.target)) {\n isOutsideClickOnTrigger.current = true;\n }\n return true;\n },\n [triggerRef, isOutsideClickOnTrigger]\n );\n\n useEffect(() => {\n toggleVisibility(isPopoverVisible);\n }, [isPopoverVisible, toggleVisibility]);\n\n useEffect(() => {\n let trigger: HTMLElement;\n\n if (externalTriggerRef?.current && !children) {\n trigger = externalTriggerRef.current;\n\n trigger.setAttribute(\"tabindex\", \"0\");\n trigger.addEventListener(\"click\", handleTriggerClick);\n }\n\n return () => {\n if (trigger) {\n trigger.removeEventListener(\"click\", handleTriggerClick);\n }\n };\n }, [externalTriggerRef, children, handleTriggerClick]);\n\n useEffect(() => {\n if (externalTriggerRef?.current && !children) {\n const trigger = externalTriggerRef.current;\n\n if (isVisible) {\n trigger.setAttribute(\"aria-expanded\", true);\n trigger.setAttribute(\"aria-controls\", tooltipId);\n } else {\n trigger.removeAttribute(\"aria-expanded\");\n trigger.removeAttribute(\"aria-controls\");\n }\n }\n }, [externalTriggerRef, children, tooltipId, isVisible]);\n\n const triggerElm = children\n ? React.cloneElement(children, {\n ref: triggerRef,\n ...(isVisible && {\n \"aria-expanded\": true,\n \"aria-controls\": tooltipId,\n }),\n tabIndex: 0,\n onClick: (evt: React.MouseEvent) => {\n handleTriggerClick();\n if (children.props.onClick) {\n children.props.onClick(evt);\n }\n },\n })\n : null;\n\n const contentElm = (\n <FocusTrap\n focusTrapOptions={{\n clickOutsideDeactivates:\n dismissOnOutsideClick && handleClickOutsideDeactivates, // de-active focus trap on outside click\n allowOutsideClick: true,\n escapeDeactivates: true, // de-activate focus trap on escape key\n fallbackFocus: `#${tooltipId}`, // set focus to tooltip content container if it has no focusable element\n onDeactivate: () => {\n toggleVisibility(false);\n },\n preventScroll,\n }}\n >\n <FocusTrapContent>{content}</FocusTrapContent>\n </FocusTrap>\n );\n\n const tooltipElm = (\n <TooltipContent\n {...restContentProps} // eslint-disable-line react/jsx-props-no-spreading\n defaultVerticalPlacement={defaultVerticalPlacement}\n dataDSId={name}\n content={contentElm}\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n hasInvertedSubTheme={hasInvertedSubTheme}\n isVisible={isVisible}\n tooltipId={tooltipId}\n tabIndex={-1}\n triggerRef={triggerRef}\n />\n );\n return (\n <>\n {triggerElm}\n {tooltipElm}\n </>\n );\n}\n"],"names":["FocusTrapContent","React","forwardRef","_ref","ref","children","createElement","BasePopover","_ref2","placement","content","contentPadding","maxWidth","externalTriggerRef","portalContainer","name","isVisible","isPopoverVisible","dismissOnOutsideClick","dataE2eTestId","hasInvertedSubTheme","defaultVerticalPlacement","onVisibilityChange","preventScroll","restContentProps","tooltipId","useMemo","Math","floor","Date","now","random","setVisible","useState","internalTriggerRef","useRef","triggerRef","isOutsideClickOnTrigger","toggleVisibility","useCallback","status","handleTriggerClick","current","handleClickOutsideDeactivates","evt","contains","target","useEffect","trigger","setAttribute","addEventListener","removeEventListener","removeAttribute","triggerElm","cloneElement","tabIndex","onClick","props","contentElm","FocusTrap","focusTrapOptions","clickOutsideDeactivates","allowOutsideClick","escapeDeactivates","fallbackFocus","onDeactivate","tooltipElm","TooltipContent","_extends","dataDSId","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BasePopover.js","sources":["../../../../../src/components/Toggletip/BasePopover.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n ReactElement,\n PropsWithChildren,\n} from \"react\";\nimport FocusTrap from \"focus-trap-react\";\nimport type { TooltipContentProps } from \"../Tooltip/TooltipContent\";\nimport { TooltipContent } from \"../Tooltip/TooltipContent\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\ntype BaseProps = Pick<\n TooltipContentProps,\n | \"placement\"\n | \"portalContainer\"\n | \"maxWidth\"\n | \"contentPadding\"\n | \"hideArrow\"\n | \"hasInvertedSubTheme\"\n> & {\n name?: string;\n // Popover content\n content: ReactElement;\n \"data-e2e-test-id\"?: string;\n // Programmatically toggle Popover visibility with this prop\n isVisible?: boolean;\n /* Called when tooltip appears and disappears */\n onVisibilityChange?: (isVisible: boolean) => void;\n /* Controls whether BasePopover closes on outside click */\n dismissOnOutsideClick?: boolean;\n disableInitialFocus?: boolean;\n disableReturnFocusToTrigger?: boolean;\n};\n\nexport type BasePopoverProps = BaseProps;\n\ntype BasePopoverInternalProps = BaseProps &\n TooltipConditionalProps &\n Pick<TooltipContentProps, \"defaultVerticalPlacement\">;\n\nconst FocusTrapContent = React.forwardRef<\n HTMLDivElement,\n PropsWithChildren<unknown>\n>(({ children }, ref) => <div ref={ref}>{children}</div>);\n\nexport function BasePopover({\n placement = \"auto\",\n content,\n children,\n contentPadding = \"m\",\n maxWidth,\n externalTriggerRef,\n portalContainer,\n name = \"Popover\",\n isVisible: isPopoverVisible,\n dismissOnOutsideClick = true,\n \"data-e2e-test-id\": dataE2eTestId,\n hasInvertedSubTheme,\n defaultVerticalPlacement,\n onVisibilityChange,\n disableInitialFocus = false,\n disableReturnFocusToTrigger = false,\n ...restContentProps\n}: BasePopoverInternalProps): React.ReactElement {\n const tooltipId = useMemo(\n () => `DS${name}_${Math.floor(Date.now() * Math.random())}`,\n [name]\n );\n const [isVisible, setVisible] = useState(isPopoverVisible);\n const internalTriggerRef = useRef(null);\n const triggerRef = externalTriggerRef || internalTriggerRef;\n const isOutsideClickOnTrigger = useRef(false);\n\n const toggleVisibility = useCallback(\n (status: boolean) => {\n setVisible(status);\n\n if (onVisibilityChange) {\n onVisibilityChange(status);\n }\n },\n [onVisibilityChange]\n );\n\n // 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.\n const handleTriggerClick = useCallback(() => {\n if (!isOutsideClickOnTrigger.current) {\n toggleVisibility(!isVisible);\n } else {\n // reset this value so that Popover can open in next click\n isOutsideClickOnTrigger.current = false;\n }\n }, [toggleVisibility, isVisible]);\n\n const handleClickOutsideDeactivates = useCallback(\n (evt) => {\n if (triggerRef.current.contains(evt.target)) {\n isOutsideClickOnTrigger.current = true;\n }\n return true;\n },\n [triggerRef, isOutsideClickOnTrigger]\n );\n\n useEffect(() => {\n toggleVisibility(isPopoverVisible);\n }, [isPopoverVisible, toggleVisibility]);\n\n useEffect(() => {\n let trigger: HTMLElement;\n\n if (externalTriggerRef?.current && !children) {\n trigger = externalTriggerRef.current;\n\n trigger.setAttribute(\"tabindex\", \"0\");\n trigger.addEventListener(\"click\", handleTriggerClick);\n }\n\n return () => {\n if (trigger) {\n trigger.removeEventListener(\"click\", handleTriggerClick);\n }\n };\n }, [externalTriggerRef, children, handleTriggerClick]);\n\n useEffect(() => {\n if (externalTriggerRef?.current && !children) {\n const trigger = externalTriggerRef.current;\n\n if (isVisible) {\n trigger.setAttribute(\"aria-expanded\", true);\n trigger.setAttribute(\"aria-controls\", tooltipId);\n } else {\n trigger.removeAttribute(\"aria-expanded\");\n trigger.removeAttribute(\"aria-controls\");\n }\n }\n }, [externalTriggerRef, children, tooltipId, isVisible]);\n\n const triggerElm = children\n ? React.cloneElement(children, {\n ref: triggerRef,\n ...(isVisible && {\n \"aria-expanded\": true,\n \"aria-controls\": tooltipId,\n }),\n tabIndex: 0,\n onClick: (evt: React.MouseEvent) => {\n handleTriggerClick();\n if (children.props.onClick) {\n children.props.onClick(evt);\n }\n },\n })\n : null;\n\n const contentElm = (\n <FocusTrap\n focusTrapOptions={{\n clickOutsideDeactivates:\n dismissOnOutsideClick && handleClickOutsideDeactivates, // de-active focus trap on outside click\n allowOutsideClick: true,\n escapeDeactivates: true, // de-activate focus trap on escape key\n fallbackFocus: `#${tooltipId}`, // set focus to tooltip content container if it has no focusable element\n onDeactivate: () => {\n toggleVisibility(false);\n },\n preventScroll: true,\n initialFocus: () => !disableInitialFocus,\n returnFocusOnDeactivate: !disableReturnFocusToTrigger,\n }}\n >\n <FocusTrapContent>{content}</FocusTrapContent>\n </FocusTrap>\n );\n\n const tooltipElm = (\n <TooltipContent\n {...restContentProps} // eslint-disable-line react/jsx-props-no-spreading\n defaultVerticalPlacement={defaultVerticalPlacement}\n dataDSId={name}\n content={contentElm}\n contentPadding={contentPadding}\n maxWidth={maxWidth}\n placement={placement}\n portalContainer={portalContainer}\n dataE2eTestId={dataE2eTestId}\n hasInvertedSubTheme={hasInvertedSubTheme}\n isVisible={isVisible}\n tooltipId={tooltipId}\n tabIndex={-1}\n triggerRef={triggerRef}\n />\n );\n return (\n <>\n {triggerElm}\n {tooltipElm}\n </>\n );\n}\n"],"names":["FocusTrapContent","React","forwardRef","_ref","ref","children","createElement","BasePopover","_ref2","placement","content","contentPadding","maxWidth","externalTriggerRef","portalContainer","name","isVisible","isPopoverVisible","dismissOnOutsideClick","dataE2eTestId","hasInvertedSubTheme","defaultVerticalPlacement","onVisibilityChange","disableInitialFocus","disableReturnFocusToTrigger","restContentProps","tooltipId","useMemo","Math","floor","Date","now","random","setVisible","useState","internalTriggerRef","useRef","triggerRef","isOutsideClickOnTrigger","toggleVisibility","useCallback","status","handleTriggerClick","current","handleClickOutsideDeactivates","evt","contains","target","useEffect","trigger","setAttribute","addEventListener","removeEventListener","removeAttribute","triggerElm","cloneElement","tabIndex","onClick","props","contentElm","FocusTrap","focusTrapOptions","clickOutsideDeactivates","allowOutsideClick","escapeDeactivates","fallbackFocus","onDeactivate","preventScroll","initialFocus","returnFocusOnDeactivate","tooltipElm","TooltipContent","_extends","dataDSId","Fragment"],"mappings":";;;;;AA2CA,MAAMA,gBAAgB,gBAAGC,KAAK,CAACC,UAAU,CAGvC,CAAAC,IAAA,EAAeC,GAAG,KAAA;EAAA,IAAjB;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAF,IAAA,CAAA;EAAA,oBAAUF,KAAA,CAAAK,aAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EAAEC,QAAc,CAAC,CAAA;AAAA,CAAC,CAAA,CAAA;AAElD,SAASE,WAAWA,CAAAC,KAAA,EAkBsB;EAAA,IAlBrB;AAC1BC,IAAAA,SAAS,GAAG,MAAM;IAClBC,OAAO;IACPL,QAAQ;AACRM,IAAAA,cAAc,GAAG,GAAG;IACpBC,QAAQ;IACRC,kBAAkB;IAClBC,eAAe;AACfC,IAAAA,IAAI,GAAG,SAAS;AAChBC,IAAAA,SAAS,EAAEC,gBAAgB;AAC3BC,IAAAA,qBAAqB,GAAG,IAAI;AAC5B,IAAA,kBAAkB,EAAEC,aAAa;IACjCC,mBAAmB;IACnBC,wBAAwB;IACxBC,kBAAkB;AAClBC,IAAAA,mBAAmB,GAAG,KAAK;AAC3BC,IAAAA,2BAA2B,GAAG,KAAK;IACnC,GAAGC,gBAAAA;AACqB,GAAC,GAAAjB,KAAA,CAAA;AACzB,EAAA,MAAMkB,SAAS,GAAGC,OAAO,CACvB,MAAO,CAAA,EAAA,EAAIZ,IAAK,CAAA,CAAA,EAAGa,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,EAAE,GAAGH,IAAI,CAACI,MAAM,EAAE,CAAE,CAAC,CAAA,EAC3D,CAACjB,IAAI,CACP,CAAC,CAAA;EACD,MAAM,CAACC,SAAS,EAAEiB,UAAU,CAAC,GAAGC,QAAQ,CAACjB,gBAAgB,CAAC,CAAA;AAC1D,EAAA,MAAMkB,kBAAkB,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AACvC,EAAA,MAAMC,UAAU,GAAGxB,kBAAkB,IAAIsB,kBAAkB,CAAA;AAC3D,EAAA,MAAMG,uBAAuB,GAAGF,MAAM,CAAC,KAAK,CAAC,CAAA;AAE7C,EAAA,MAAMG,gBAAgB,GAAGC,WAAW,CACjCC,MAAe,IAAK;IACnBR,UAAU,CAACQ,MAAM,CAAC,CAAA;AAElB,IAAA,IAAInB,kBAAkB,EAAE;MACtBA,kBAAkB,CAACmB,MAAM,CAAC,CAAA;AAC5B,KAAA;AACF,GAAC,EACD,CAACnB,kBAAkB,CACrB,CAAC,CAAA;;AAED;AACA,EAAA,MAAMoB,kBAAkB,GAAGF,WAAW,CAAC,MAAM;AAC3C,IAAA,IAAI,CAACF,uBAAuB,CAACK,OAAO,EAAE;MACpCJ,gBAAgB,CAAC,CAACvB,SAAS,CAAC,CAAA;AAC9B,KAAC,MAAM;AACL;MACAsB,uBAAuB,CAACK,OAAO,GAAG,KAAK,CAAA;AACzC,KAAA;AACF,GAAC,EAAE,CAACJ,gBAAgB,EAAEvB,SAAS,CAAC,CAAC,CAAA;AAEjC,EAAA,MAAM4B,6BAA6B,GAAGJ,WAAW,CAC9CK,GAAG,IAAK;IACP,IAAIR,UAAU,CAACM,OAAO,CAACG,QAAQ,CAACD,GAAG,CAACE,MAAM,CAAC,EAAE;MAC3CT,uBAAuB,CAACK,OAAO,GAAG,IAAI,CAAA;AACxC,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,EACD,CAACN,UAAU,EAAEC,uBAAuB,CACtC,CAAC,CAAA;AAEDU,EAAAA,SAAS,CAAC,MAAM;IACdT,gBAAgB,CAACtB,gBAAgB,CAAC,CAAA;AACpC,GAAC,EAAE,CAACA,gBAAgB,EAAEsB,gBAAgB,CAAC,CAAC,CAAA;AAExCS,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIC,OAAoB,CAAA;AAExB,IAAA,IAAIpC,kBAAkB,EAAE8B,OAAO,IAAI,CAACtC,QAAQ,EAAE;MAC5C4C,OAAO,GAAGpC,kBAAkB,CAAC8B,OAAO,CAAA;AAEpCM,MAAAA,OAAO,CAACC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AACrCD,MAAAA,OAAO,CAACE,gBAAgB,CAAC,OAAO,EAAET,kBAAkB,CAAC,CAAA;AACvD,KAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAIO,OAAO,EAAE;AACXA,QAAAA,OAAO,CAACG,mBAAmB,CAAC,OAAO,EAAEV,kBAAkB,CAAC,CAAA;AAC1D,OAAA;KACD,CAAA;GACF,EAAE,CAAC7B,kBAAkB,EAAER,QAAQ,EAAEqC,kBAAkB,CAAC,CAAC,CAAA;AAEtDM,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAInC,kBAAkB,EAAE8B,OAAO,IAAI,CAACtC,QAAQ,EAAE;AAC5C,MAAA,MAAM4C,OAAO,GAAGpC,kBAAkB,CAAC8B,OAAO,CAAA;AAE1C,MAAA,IAAI3B,SAAS,EAAE;AACbiC,QAAAA,OAAO,CAACC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;AAC3CD,QAAAA,OAAO,CAACC,YAAY,CAAC,eAAe,EAAExB,SAAS,CAAC,CAAA;AAClD,OAAC,MAAM;AACLuB,QAAAA,OAAO,CAACI,eAAe,CAAC,eAAe,CAAC,CAAA;AACxCJ,QAAAA,OAAO,CAACI,eAAe,CAAC,eAAe,CAAC,CAAA;AAC1C,OAAA;AACF,KAAA;GACD,EAAE,CAACxC,kBAAkB,EAAER,QAAQ,EAAEqB,SAAS,EAAEV,SAAS,CAAC,CAAC,CAAA;EAExD,MAAMsC,UAAU,GAAGjD,QAAQ,gBACvBJ,KAAK,CAACsD,YAAY,CAAClD,QAAQ,EAAE;AAC3BD,IAAAA,GAAG,EAAEiC,UAAU;AACf,IAAA,IAAIrB,SAAS,IAAI;AACf,MAAA,eAAe,EAAE,IAAI;AACrB,MAAA,eAAe,EAAEU,SAAAA;AACnB,KAAC,CAAC;AACF8B,IAAAA,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAGZ,GAAqB,IAAK;AAClCH,MAAAA,kBAAkB,EAAE,CAAA;AACpB,MAAA,IAAIrC,QAAQ,CAACqD,KAAK,CAACD,OAAO,EAAE;AAC1BpD,QAAAA,QAAQ,CAACqD,KAAK,CAACD,OAAO,CAACZ,GAAG,CAAC,CAAA;AAC7B,OAAA;AACF,KAAA;GACD,CAAC,GACF,IAAI,CAAA;AAER,EAAA,MAAMc,UAAU,gBACd1D,KAAA,CAAAK,aAAA,CAACsD,SAAS,EAAA;AACRC,IAAAA,gBAAgB,EAAE;MAChBC,uBAAuB,EACrB5C,qBAAqB,IAAI0B,6BAA6B;AAAE;AAC1DmB,MAAAA,iBAAiB,EAAE,IAAI;AACvBC,MAAAA,iBAAiB,EAAE,IAAI;AAAE;MACzBC,aAAa,EAAG,CAAGvC,CAAAA,EAAAA,SAAU,CAAC,CAAA;AAAE;MAChCwC,YAAY,EAAEA,MAAM;QAClB3B,gBAAgB,CAAC,KAAK,CAAC,CAAA;OACxB;AACD4B,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,YAAY,EAAEA,MAAM,CAAC7C,mBAAmB;AACxC8C,MAAAA,uBAAuB,EAAE,CAAC7C,2BAAAA;AAC5B,KAAA;GAEAvB,eAAAA,KAAA,CAAAK,aAAA,CAACN,gBAAgB,EAAEU,IAAAA,EAAAA,OAA0B,CACpC,CACZ,CAAA;EAED,MAAM4D,UAAU,gBACdrE,KAAA,CAAAK,aAAA,CAACiE,cAAc,EAAAC,QAAA,CAAA,EAAA,EACT/C,gBAAgB,EAAA;AAAE;AACtBJ,IAAAA,wBAAwB,EAAEA,wBAAyB;AACnDoD,IAAAA,QAAQ,EAAE1D,IAAK;AACfL,IAAAA,OAAO,EAAEiD,UAAW;AACpBhD,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,QAAQ,EAAEA,QAAS;AACnBH,IAAAA,SAAS,EAAEA,SAAU;AACrBK,IAAAA,eAAe,EAAEA,eAAgB;AACjCK,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCJ,IAAAA,SAAS,EAAEA,SAAU;AACrBU,IAAAA,SAAS,EAAEA,SAAU;IACrB8B,QAAQ,EAAE,CAAC,CAAE;AACbnB,IAAAA,UAAU,EAAEA,UAAAA;AAAW,GAAA,CACxB,CACF,CAAA;EACD,oBACEpC,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAyE,QAAA,EACGpB,IAAAA,EAAAA,UAAU,EACVgB,UACD,CAAC,CAAA;AAEP;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { BasePopoverProps } from "./BasePopover";
|
|
3
3
|
import { TooltipConditionalProps } from "../Tooltip/types";
|
|
4
|
-
export type ToggletipProps = BasePopoverProps & TooltipConditionalProps;
|
|
4
|
+
export type ToggletipProps = Omit<BasePopoverProps, "name" | "defaultVerticalPlacement"> & TooltipConditionalProps;
|
|
5
5
|
export declare function Toggletip(props: ToggletipProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggletip.js","sources":["../../../../../src/components/Toggletip/Toggletip.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"./BasePopover\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type ToggletipProps = BasePopoverProps
|
|
1
|
+
{"version":3,"file":"Toggletip.js","sources":["../../../../../src/components/Toggletip/Toggletip.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { BasePopover, BasePopoverProps } from \"./BasePopover\";\nimport { TooltipConditionalProps } from \"../Tooltip/types\";\n\nexport type ToggletipProps = Omit<\n BasePopoverProps,\n \"name\" | \"defaultVerticalPlacement\"\n> &\n TooltipConditionalProps;\n\nexport function Toggletip(props: ToggletipProps): React.ReactElement {\n return (\n <BasePopover\n name=\"Toggletip\"\n {...props} // eslint-disable-line react/jsx-props-no-spreading\n />\n );\n}\n"],"names":["Toggletip","props","React","createElement","BasePopover","_extends","name"],"mappings":";;;;AAWO,SAASA,SAASA,CAACC,KAAqB,EAAsB;AACnE,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAACC,WAAW,EAAAC,QAAA,CAAA;AACVC,IAAAA,IAAI,EAAC,WAAA;GACDL,EAAAA,KAAK,CACV,CAAC,CAAA;AAEN;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { MutableRefObject, ReactElement } from "react";
|
|
2
|
-
import { BorderRadius } from "../../types";
|
|
3
2
|
export type TooltipContentProps = {
|
|
4
3
|
content: ReactElement;
|
|
5
4
|
triggerRef: MutableRefObject<any>;
|
|
@@ -19,7 +18,6 @@ export type TooltipContentProps = {
|
|
|
19
18
|
onTooltipPointerEnter?: React.PointerEventHandler<HTMLDivElement>;
|
|
20
19
|
onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;
|
|
21
20
|
hideArrow?: boolean;
|
|
22
|
-
borderRadius?: BorderRadius;
|
|
23
21
|
};
|
|
24
22
|
export type TooltipStyle = {
|
|
25
23
|
top: number;
|
|
@@ -28,4 +26,4 @@ export type TooltipStyle = {
|
|
|
28
26
|
verticalPlacement: "top" | "bottom";
|
|
29
27
|
};
|
|
30
28
|
/** This component is used to display the overlay for both Toggletip and Tooltip components */
|
|
31
|
-
export declare function TooltipContent({ placement, content, tooltipId, triggerRef, portalContainer, dataE2eTestId, dataDSId, isVisible, "aria-hidden": ariaHidden, role, tabIndex, contentPadding, maxWidth, hasInvertedSubTheme, defaultVerticalPlacement, onTooltipPointerEnter, onTooltipPointerLeave, hideArrow,
|
|
29
|
+
export declare function TooltipContent({ placement, content, tooltipId, triggerRef, portalContainer, dataE2eTestId, dataDSId, isVisible, "aria-hidden": ariaHidden, role, tabIndex, contentPadding, maxWidth, hasInvertedSubTheme, defaultVerticalPlacement, onTooltipPointerEnter, onTooltipPointerLeave, hideArrow, }: TooltipContentProps): React.ReactElement;
|
|
@@ -58,7 +58,7 @@ const StyledContainer = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "pr
|
|
|
58
58
|
transform: "translate(-50%)"
|
|
59
59
|
})
|
|
60
60
|
};
|
|
61
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IEJvcmRlclJhZGl1cyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgLyogUGxhY2VtZW50ICovXG4gIHBsYWNlbWVudD86XG4gICAgfCBcImF1dG9cIlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJib3R0b21cIlxuICAgIHwgXCJ0b3AtbGVmdFwiXG4gICAgfCBcInRvcC1yaWdodFwiXG4gICAgfCBcImJvdHRvbS1sZWZ0XCJcbiAgICB8IFwiYm90dG9tLXJpZ2h0XCI7XG4gIC8qIEN1c3RvbSBwb3J0YWwgY29udGFpbmVyIHRvIHJlbmRlciB0b29sdGlwIGludG8gKi9cbiAgcG9ydGFsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIGRhdGFFMmVUZXN0SWQ/OiBzdHJpbmc7XG4gIGRhdGFEU0lkOiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRvb2x0aXBJZD86IHN0cmluZztcbiAgXCJhcmlhLWhpZGRlblwiPzogYm9vbGVhbjtcbiAgcm9sZT86IHN0cmluZztcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIC8vIENvbnRlbnQgcGFkZGluZ1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIGhhc0ludmVydGVkU3ViVGhlbWU/OiBib29sZWFuO1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcj86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblRvb2x0aXBQb2ludGVyTGVhdmU/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgaGlkZUFycm93PzogYm9vbGVhbjtcbiAgYm9yZGVyUmFkaXVzPzogQm9yZGVyUmFkaXVzO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcImhhc0ludmVydGVkU3ViVGhlbWVcIlxuPiAmIHtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICAgIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHQsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4OiB6SW5kaWNlcy50b29sdGlwLnZhbHVlLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcImluaXRpYWxcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgYm9yZGVyUmFkaXVzID0gXCJ4c1wiLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgZGVib3VuY2VUaW1lb3V0SWQgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGRlYm91bmNlVGltZW91dElkLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIGNvbnN0IGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCkge1xuICAgICAgZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCA9IHNldFRpbWVvdXQoY2FsY3VsYXRlU3R5bGUsIDIwMCk7XG4gICAgfVxuICB9LCBbY2FsY3VsYXRlU3R5bGVdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXRJZC5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIGxldCBwb3J0YWwgPSBudWxsO1xuXG4gIGNvbnN0IE91dGVyV3JhcHBlciA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0RWxlbWVudCB9KSA9PlxuICAgICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPntjaGlsZHJlbn08L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD57Y2hpbGRyZW59PC8+XG4gICAgICAgICksXG4gICAgW2hhc0ludmVydGVkU3ViVGhlbWVdXG4gICk7XG5cbiAgaWYgKGlzVmlzaWJsZSkge1xuICAgIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgICA8T3V0ZXJXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICAgICAgfX1cbiAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9e2JvcmRlclJhZGl1c30+XG4gICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgICAgICA8U3R5bGVkQXJyb3dcbiAgICAgICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICA8L091dGVyV3JhcHBlcj5cbiAgICApO1xuXG4gICAgcG9ydGFsID0gY3JlYXRlUG9ydGFsKHRvb2x0aXBFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBwb3J0YWw7XG59XG4iXX0= */");
|
|
61
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RXdCIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
62
62
|
const StyledArrow = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
|
|
63
63
|
target: "e1k814k40"
|
|
64
64
|
} : {
|
|
@@ -97,7 +97,7 @@ const StyledArrow = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "produc
|
|
|
97
97
|
right: `${offset}px`
|
|
98
98
|
})
|
|
99
99
|
};
|
|
100
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcbmltcG9ydCB7IEJvcmRlclJhZGl1cyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgLyogUGxhY2VtZW50ICovXG4gIHBsYWNlbWVudD86XG4gICAgfCBcImF1dG9cIlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJib3R0b21cIlxuICAgIHwgXCJ0b3AtbGVmdFwiXG4gICAgfCBcInRvcC1yaWdodFwiXG4gICAgfCBcImJvdHRvbS1sZWZ0XCJcbiAgICB8IFwiYm90dG9tLXJpZ2h0XCI7XG4gIC8qIEN1c3RvbSBwb3J0YWwgY29udGFpbmVyIHRvIHJlbmRlciB0b29sdGlwIGludG8gKi9cbiAgcG9ydGFsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIGRhdGFFMmVUZXN0SWQ/OiBzdHJpbmc7XG4gIGRhdGFEU0lkOiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRvb2x0aXBJZD86IHN0cmluZztcbiAgXCJhcmlhLWhpZGRlblwiPzogYm9vbGVhbjtcbiAgcm9sZT86IHN0cmluZztcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIC8vIENvbnRlbnQgcGFkZGluZ1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIGhhc0ludmVydGVkU3ViVGhlbWU/OiBib29sZWFuO1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcj86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblRvb2x0aXBQb2ludGVyTGVhdmU/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgaGlkZUFycm93PzogYm9vbGVhbjtcbiAgYm9yZGVyUmFkaXVzPzogQm9yZGVyUmFkaXVzO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcImhhc0ludmVydGVkU3ViVGhlbWVcIlxuPiAmIHtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICAgIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHQsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4OiB6SW5kaWNlcy50b29sdGlwLnZhbHVlLFxuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcImluaXRpYWxcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICAuLi4oaGFzSW52ZXJ0ZWRTdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0ge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7IHRoZW1lLCB2ZXJ0aWNhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFBsYWNlbWVudCwgc2l6ZSA9IEFSUk9XX1NJWkUgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBib3JkZXJMZWZ0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcbiAgICAgIGJvcmRlclJpZ2h0OiBgJHtzaXplfXB4IHNvbGlkIHRyYW5zcGFyZW50YCxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgdG9wOiBcIjEwMCVcIixcbiAgICAgICAgYm9yZGVyVG9wOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcImJvdHRvbVwiICYmIHtcbiAgICAgICAgdG9wOiBgLSR7c2l6ZX1weGAsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYCR7c2l6ZX1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdH1gLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImxlZnRcIiAmJiB7XG4gICAgICAgIHJpZ2h0OiBgJHtvZmZzZXR9cHhgLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgaW5pdGlhbFN0eWxlOiBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogMCxcbiAgbGVmdDogMCxcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIsXG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwiY2VudGVyXCIsXG59O1xuXG5sZXQgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gMDtcblxuLyogRGlzYWJsZSBhbmltYXRpb24gaWYgdGltZSBiZXR3ZWVuIGxhc3QgY2xvc2UgYW5kIG5ldyBvcGVuIGlzIGxlc3MgdGhhbiA1MDBtcyArIFNIT1dfSElERV9ERUxBWSAqL1xuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSB7XG4gIGxldCBhbmltYXRpb25EdXJhdGlvbiA9IGAke0FOSU1BVElPTl9EVVJBVElPTn1tc2A7XG5cbiAgaWYgKGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCkge1xuICAgIGNvbnN0IHRpbWVTaW5jZUxhc3RUb29sdGlwID0gRGF0ZS5ub3coKSAtIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcDtcblxuICAgIGlmICh0aW1lU2luY2VMYXN0VG9vbHRpcCA8IDUwMCArIFNIT1dfSElERV9ERUxBWSkge1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjBtc1wiO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XG59XG5cbi8qKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIG92ZXJsYXkgZm9yIGJvdGggVG9nZ2xldGlwIGFuZCBUb29sdGlwIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBUb29sdGlwQ29udGVudCh7XG4gIHBsYWNlbWVudCA9IFwiYXV0b1wiLFxuICBjb250ZW50LFxuICB0b29sdGlwSWQsXG4gIHRyaWdnZXJSZWYsXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgZGF0YUUyZVRlc3RJZCxcbiAgZGF0YURTSWQsXG4gIGlzVmlzaWJsZSxcbiAgXCJhcmlhLWhpZGRlblwiOiBhcmlhSGlkZGVuLFxuICByb2xlLFxuICB0YWJJbmRleCxcbiAgY29udGVudFBhZGRpbmcsXG4gIG1heFdpZHRoID0gTUFYX0NPTlRFTlRfV0lEVEgsXG4gIGhhc0ludmVydGVkU3ViVGhlbWUgPSB0cnVlLFxuICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgYm9yZGVyUmFkaXVzID0gXCJ4c1wiLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgZGVib3VuY2VUaW1lb3V0SWQgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBoYXNJbnZlcnRlZFN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbaGFzSW52ZXJ0ZWRTdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGRlYm91bmNlVGltZW91dElkLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIGNvbnN0IGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCkge1xuICAgICAgZGVib3VuY2VUaW1lb3V0SWQuY3VycmVudCA9IHNldFRpbWVvdXQoY2FsY3VsYXRlU3R5bGUsIDIwMCk7XG4gICAgfVxuICB9LCBbY2FsY3VsYXRlU3R5bGVdKTtcblxuICAvLyBUaGlzIGxheW91dCBlZmZlY3QgdG8gcmUtcmVuZGVyIHdpdGggdXBkYXRlZCBwb3NpdGlvbiBhZnRlciBkZXRlcm1pbmluZyBjb250ZW50IHdpZHRoXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCBjb250ZW50UGFkZGluZywgY29udGVudF0pO1xuXG4gIC8vIFJlLXBvc2l0aW9uIHRvb2x0aXAgaWYgaXQgbW92ZXMgb3V0IG9mIHRoZSB2aWV3cG9ydCBieSAxMCUgYW5kIG9uIHdpbmRvdyByZXNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudFxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuOSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHRydWUpOyAvLyB1c2UgY2FwdHVyZSBoZXJlIHRvIGRldGVjdCBzY3JvbGwgb24gYW55IHBhcmVudFxuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGRlYm91bmNlZENhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXRJZC5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgZGVib3VuY2VkQ2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIGxldCBwb3J0YWwgPSBudWxsO1xuXG4gIGNvbnN0IE91dGVyV3JhcHBlciA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0RWxlbWVudCB9KSA9PlxuICAgICAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID8gKFxuICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9XCJpbnZlcnRlZFwiPntjaGlsZHJlbn08L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD57Y2hpbGRyZW59PC8+XG4gICAgICAgICksXG4gICAgW2hhc0ludmVydGVkU3ViVGhlbWVdXG4gICk7XG5cbiAgaWYgKGlzVmlzaWJsZSkge1xuICAgIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgICA8T3V0ZXJXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICAgICAgfX1cbiAgICAgICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9e2JvcmRlclJhZGl1c30+XG4gICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgICAgICA8U3R5bGVkQXJyb3dcbiAgICAgICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICA8L091dGVyV3JhcHBlcj5cbiAgICApO1xuXG4gICAgcG9ydGFsID0gY3JlYXRlUG9ydGFsKHRvb2x0aXBFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG4gIHJldHVybiBwb3J0YWw7XG59XG4iXX0= */");
|
|
100
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRvb2x0aXBDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SW9CIiwiZmlsZSI6IlRvb2x0aXBDb250ZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZURvY3VtZW50XCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB6SW5kaWNlcyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQtdG9rZW5zL196aW5kZXguanNvblwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lci9Db250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudDogUmVhY3RFbGVtZW50O1xuICB0cmlnZ2VyUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGFueT47XG4gIC8qIFBsYWNlbWVudCAqL1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICAvKiBDdXN0b20gcG9ydGFsIGNvbnRhaW5lciB0byByZW5kZXIgdG9vbHRpcCBpbnRvICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICAvLyBDb250ZW50IHBhZGRpbmdcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBoYXNJbnZlcnRlZFN1YlRoZW1lPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUb29sdGlwU3R5bGUgPSB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWxQbGFjZW1lbnQ6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFwiY29udGVudFBhZGRpbmdcIiB8IFwibWF4V2lkdGhcIiB8IFwiaGFzSW52ZXJ0ZWRTdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBtYXhXaWR0aCxcbiAgICBjb250ZW50UGFkZGluZyxcbiAgICBoYXNJbnZlcnRlZFN1YlRoZW1lID0gdHJ1ZSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkRpc3RhbmNlID1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiXG4gICAgICAgID8gYCR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YFxuICAgICAgICA6IGAtJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGtleWZyYW1lcyh7XG4gICAgICB0bzoge1xuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIlxuICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgIDogYHRyYW5zbGF0ZVkoJHthbmltYXRpb25EaXN0YW5jZX0pYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHMsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IHpJbmRpY2VzLnRvb2x0aXAudmFsdWUsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwiaW5pdGlhbFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIC4uLihoYXNJbnZlcnRlZFN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHsgdGhlbWUsIHZlcnRpY2FsUGxhY2VtZW50LCBob3Jpem9udGFsUGxhY2VtZW50LCBzaXplID0gQVJST1dfU0laRSB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGJvcmRlckxlZnQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuICAgICAgYm9yZGVyUmlnaHQ6IGAke3NpemV9cHggc29saWQgdHJhbnNwYXJlbnRgLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgJiYge1xuICAgICAgICB0b3A6IFwiMTAwJVwiLFxuICAgICAgICBib3JkZXJUb3A6IGAke3NpemV9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICB0b3A6IGAtJHtzaXplfXB4YCxcbiAgICAgICAgYm9yZGVyQm90dG9tOiBgJHtzaXplfXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICAgIGxlZnQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldH1weGAsXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgaGFzSW52ZXJ0ZWRTdWJUaGVtZSA9IHRydWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIGhpZGVBcnJvdyA9IGZhbHNlLFxufTogVG9vbHRpcENvbnRlbnRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtzdHlsZSwgc2V0U3R5bGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0eWxlKTtcbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0ludmVydGVkU3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtoYXNJbnZlcnRlZFN1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50XSk7XG5cbiAgLy8gUmUtcG9zaXRpb24gdG9vbHRpcCBpZiBpdCBtb3ZlcyBvdXQgb2YgdGhlIHZpZXdwb3J0IGJ5IDEwJSBhbmQgb24gd2luZG93IHJlc2l6ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdG9vbHRpcFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRocmVzaG9sZDogMC45LFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRvb2x0aXBSZWYuY3VycmVudCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxjdWxhdGVTdHlsZSwgdHJ1ZSk7IC8vIHVzZSBjYXB0dXJlIGhlcmUgdG8gZGV0ZWN0IHNjcm9sbCBvbiBhbnkgcGFyZW50XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIGhhc0ludmVydGVkU3ViVGhlbWU9e2hhc0ludmVydGVkU3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2hhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgICAgIGNvbnRlbnRcbiAgICAgICkgOiAoXG4gICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXszfSBib3JkZXJSYWRpdXM9XCJzXCI+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgICAgIHNpemU9e2Fycm93U2l6ZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG5cbiAgY29uc3Qgd3JhcHBlckVsbSA9IGhhc0ludmVydGVkU3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cImludmVydGVkXCI+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKHdyYXBwZXJFbG0sIHBvcnRhbENvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5KTtcbn1cbiJdfQ== */");
|
|
101
101
|
const initialStyle = {
|
|
102
102
|
top: 0,
|
|
103
103
|
left: 0,
|
|
@@ -138,14 +138,12 @@ function TooltipContent(_ref3) {
|
|
|
138
138
|
defaultVerticalPlacement,
|
|
139
139
|
onTooltipPointerEnter,
|
|
140
140
|
onTooltipPointerLeave,
|
|
141
|
-
hideArrow = false
|
|
142
|
-
borderRadius = "xs"
|
|
141
|
+
hideArrow = false
|
|
143
142
|
} = _ref3;
|
|
144
143
|
const [style, setStyle] = useState(initialStyle);
|
|
145
144
|
const tooltipRef = useRef(null);
|
|
146
145
|
const document = useDocument();
|
|
147
146
|
const window = useWindow();
|
|
148
|
-
const debounceTimeoutId = useRef(null);
|
|
149
147
|
const arrowSize = useMemo(() => {
|
|
150
148
|
if (hideArrow) {
|
|
151
149
|
return 0;
|
|
@@ -156,14 +154,8 @@ function TooltipContent(_ref3) {
|
|
|
156
154
|
if (triggerRef.current && tooltipRef.current) {
|
|
157
155
|
// calculate tooltip style
|
|
158
156
|
setStyle(getTooltipStyle(placement, defaultVerticalPlacement, triggerRef, tooltipRef, document, window, arrowSize));
|
|
159
|
-
debounceTimeoutId.current = null;
|
|
160
157
|
}
|
|
161
158
|
}, [triggerRef, tooltipRef, document, window, placement, arrowSize, defaultVerticalPlacement]);
|
|
162
|
-
const debouncedCalculateStyle = useCallback(() => {
|
|
163
|
-
if (!debounceTimeoutId.current) {
|
|
164
|
-
debounceTimeoutId.current = setTimeout(calculateStyle, 200);
|
|
165
|
-
}
|
|
166
|
-
}, [calculateStyle]);
|
|
167
159
|
|
|
168
160
|
// This layout effect to re-render with updated position after determining content width
|
|
169
161
|
useLayoutEffect(() => {
|
|
@@ -184,8 +176,8 @@ function TooltipContent(_ref3) {
|
|
|
184
176
|
threshold: 0.9
|
|
185
177
|
});
|
|
186
178
|
observer.observe(tooltipRef.current);
|
|
187
|
-
window.addEventListener("resize",
|
|
188
|
-
window.addEventListener("scroll",
|
|
179
|
+
window.addEventListener("resize", calculateStyle);
|
|
180
|
+
window.addEventListener("scroll", calculateStyle, true); // use capture here to detect scroll on any parent
|
|
189
181
|
} else if (!isVisible) {
|
|
190
182
|
// log time when tooltip closes
|
|
191
183
|
lastTooltipHideTimestamp = Date.now();
|
|
@@ -194,53 +186,44 @@ function TooltipContent(_ref3) {
|
|
|
194
186
|
if (observer) {
|
|
195
187
|
observer.disconnect();
|
|
196
188
|
}
|
|
197
|
-
window.removeEventListener("resize",
|
|
198
|
-
window.removeEventListener("scroll",
|
|
199
|
-
clearTimeout(debounceTimeoutId.current);
|
|
189
|
+
window.removeEventListener("resize", calculateStyle);
|
|
190
|
+
window.removeEventListener("scroll", calculateStyle);
|
|
200
191
|
};
|
|
201
|
-
}, [isVisible, calculateStyle,
|
|
202
|
-
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
"data-e2e-test-id": `${dataE2eTestId}_arrow`,
|
|
237
|
-
horizontalPlacement: style.horizontalPlacement,
|
|
238
|
-
verticalPlacement: style.verticalPlacement,
|
|
239
|
-
size: arrowSize
|
|
240
|
-
})));
|
|
241
|
-
portal = /*#__PURE__*/createPortal(tooltipElm, portalContainer || document.body);
|
|
242
|
-
}
|
|
243
|
-
return portal;
|
|
192
|
+
}, [isVisible, calculateStyle, window, tooltipRef]);
|
|
193
|
+
if (!isVisible) return null;
|
|
194
|
+
const tooltipElm = /*#__PURE__*/React.createElement(StyledContainer, {
|
|
195
|
+
"data-e2e-test-id": dataE2eTestId,
|
|
196
|
+
"data-ds-id": dataDSId,
|
|
197
|
+
style: {
|
|
198
|
+
top: style.top,
|
|
199
|
+
left: style.left,
|
|
200
|
+
animationDuration: getAnimationDuration()
|
|
201
|
+
},
|
|
202
|
+
ref: tooltipRef,
|
|
203
|
+
id: tooltipId,
|
|
204
|
+
role: role,
|
|
205
|
+
"aria-hidden": ariaHidden,
|
|
206
|
+
hasInvertedSubTheme: hasInvertedSubTheme,
|
|
207
|
+
tabIndex: tabIndex,
|
|
208
|
+
horizontalPlacement: style.horizontalPlacement,
|
|
209
|
+
verticalPlacement: style.verticalPlacement,
|
|
210
|
+
maxWidth: maxWidth,
|
|
211
|
+
contentPadding: contentPadding,
|
|
212
|
+
onPointerEnter: onTooltipPointerEnter,
|
|
213
|
+
onPointerLeave: onTooltipPointerLeave
|
|
214
|
+
}, hasInvertedSubTheme ? content : /*#__PURE__*/React.createElement(Container, {
|
|
215
|
+
elevation: 3,
|
|
216
|
+
borderRadius: "s"
|
|
217
|
+
}, content), !hideArrow && /*#__PURE__*/React.createElement(StyledArrow, {
|
|
218
|
+
"data-e2e-test-id": `${dataE2eTestId}_arrow`,
|
|
219
|
+
horizontalPlacement: style.horizontalPlacement,
|
|
220
|
+
verticalPlacement: style.verticalPlacement,
|
|
221
|
+
size: arrowSize
|
|
222
|
+
}));
|
|
223
|
+
const wrapperElm = hasInvertedSubTheme ? /*#__PURE__*/React.createElement(SubThemeProvider, {
|
|
224
|
+
name: "inverted"
|
|
225
|
+
}, tooltipElm) : tooltipElm;
|
|
226
|
+
return /*#__PURE__*/createPortal(wrapperElm, portalContainer || document.body);
|
|
244
227
|
}
|
|
245
228
|
|
|
246
229
|
export { TooltipContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n ReactElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\nimport { createPortal } from \"react-dom\";\nimport { useDocument } from \"../../shared/useDocument\";\nimport { useWindow } from \"../../shared/useWindow\";\nimport { SubThemeProvider } from \"../SubThemeProvider/SubThemeProvider\";\nimport zIndices from \"../../../build-tokens/_zindex.json\";\n\nimport {\n ANIMATION_DISTANCE,\n ARROW_SIZE,\n ARROW_SIZE_BIG,\n getArrowOffset,\n getTooltipStyle,\n} from \"./utils\";\nimport { Container } from \"../Container/Container\";\nimport { BorderRadius } from \"../../types\";\n\nexport type TooltipContentProps = {\n content: ReactElement;\n triggerRef: MutableRefObject<any>;\n /* Placement */\n placement?:\n | \"auto\"\n | \"top\"\n | \"bottom\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\";\n /* Custom portal container to render tooltip into */\n portalContainer?: HTMLElement;\n dataE2eTestId?: string;\n dataDSId: string;\n isVisible?: boolean;\n tooltipId?: string;\n \"aria-hidden\"?: boolean;\n role?: string;\n tabIndex?: number;\n // Content padding\n contentPadding?: \"s\" | \"m\";\n hasInvertedSubTheme?: boolean;\n maxWidth?: number;\n defaultVerticalPlacement?: TooltipStyle[\"verticalPlacement\"];\n onTooltipPointerEnter?: React.PointerEventHandler<HTMLDivElement>;\n onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;\n hideArrow?: boolean;\n borderRadius?: BorderRadius;\n};\n\nexport type TooltipStyle = {\n top: number;\n left: number;\n horizontalPlacement: \"left\" | \"right\" | \"center\";\n verticalPlacement: \"top\" | \"bottom\";\n};\n\ntype StyledContainerProps = Pick<\n TooltipContentProps,\n \"contentPadding\" | \"maxWidth\" | \"hasInvertedSubTheme\"\n> & {\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n};\n\nconst ANIMATION_DURATION = 200;\nconst SHOW_HIDE_DELAY = 200;\nconst MAX_CONTENT_WIDTH = 224;\n\nconst StyledContainer = styled.div<StyledContainerProps>(\n ({\n theme,\n horizontalPlacement,\n verticalPlacement,\n maxWidth,\n contentPadding,\n hasInvertedSubTheme = true,\n }) => {\n const animationDistance =\n verticalPlacement === \"top\"\n ? `${ANIMATION_DISTANCE}px`\n : `-${ANIMATION_DISTANCE}px`;\n const animation = keyframes({\n to: {\n opacity: 1,\n transform:\n horizontalPlacement === \"center\"\n ? `translate(-50%, ${animationDistance})`\n : `translateY(${animationDistance})`,\n },\n });\n\n const contentPaddingMap = {\n s: theme.variables.size.spacing.xxs,\n m: theme.variables.size.spacing.s,\n };\n\n const invertedSubThemeStyles = {\n padding: `${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,\n ...(contentPadding && {\n padding: contentPaddingMap[contentPadding],\n }),\n borderRadius: theme.variables.size.borderRadius.xs,\n backgroundColor: theme.values.color.background.primary.default,\n };\n\n return {\n position: \"absolute\",\n zIndex: zIndices.tooltip.value,\n opacity: 0,\n animation: `${ANIMATION_DURATION}ms ease-out forwards ${animation}`,\n maxWidth,\n width: \"initial\",\n boxSizing: \"border-box\",\n ...(hasInvertedSubTheme && invertedSubThemeStyles),\n ...(horizontalPlacement === \"center\" && {\n transform: \"translate(-50%)\",\n }),\n };\n }\n);\n\ntype StyledArrowProps = {\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n size?: 0 | typeof ARROW_SIZE | typeof ARROW_SIZE_BIG;\n};\n\nconst StyledArrow = styled.div<StyledArrowProps>(\n ({ theme, verticalPlacement, horizontalPlacement, size = ARROW_SIZE }) => {\n const offset = getArrowOffset(size);\n return {\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${size}px solid transparent`,\n borderRight: `${size}px solid transparent`,\n\n ...(verticalPlacement === \"top\" && {\n top: \"100%\",\n borderTop: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(verticalPlacement === \"bottom\" && {\n top: `-${size}px`,\n borderBottom: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(horizontalPlacement === \"center\" && {\n left: \"50%\",\n transform: \"translate(-50%)\",\n }),\n\n ...(horizontalPlacement === \"right\" && {\n left: `${offset}px`,\n }),\n\n ...(horizontalPlacement === \"left\" && {\n right: `${offset}px`,\n }),\n };\n }\n);\n\nconst initialStyle: TooltipStyle = {\n top: 0,\n left: 0,\n verticalPlacement: \"top\",\n horizontalPlacement: \"center\",\n};\n\nlet lastTooltipHideTimestamp = 0;\n\n/* Disable animation if time between last close and new open is less than 500ms + SHOW_HIDE_DELAY */\nfunction getAnimationDuration() {\n let animationDuration = `${ANIMATION_DURATION}ms`;\n\n if (lastTooltipHideTimestamp) {\n const timeSinceLastTooltip = Date.now() - lastTooltipHideTimestamp;\n\n if (timeSinceLastTooltip < 500 + SHOW_HIDE_DELAY) {\n animationDuration = \"0ms\";\n }\n }\n return animationDuration;\n}\n\n/** This component is used to display the overlay for both Toggletip and Tooltip components */\nexport function TooltipContent({\n placement = \"auto\",\n content,\n tooltipId,\n triggerRef,\n portalContainer,\n dataE2eTestId,\n dataDSId,\n isVisible,\n \"aria-hidden\": ariaHidden,\n role,\n tabIndex,\n contentPadding,\n maxWidth = MAX_CONTENT_WIDTH,\n hasInvertedSubTheme = true,\n defaultVerticalPlacement,\n onTooltipPointerEnter,\n onTooltipPointerLeave,\n hideArrow = false,\n borderRadius = \"xs\",\n}: TooltipContentProps): React.ReactElement {\n const [style, setStyle] = useState(initialStyle);\n const tooltipRef = useRef(null);\n const document = useDocument();\n const window = useWindow();\n const debounceTimeoutId = useRef(null);\n\n const arrowSize = useMemo(() => {\n if (hideArrow) {\n return 0;\n }\n return hasInvertedSubTheme ? ARROW_SIZE : ARROW_SIZE_BIG;\n }, [hasInvertedSubTheme, hideArrow]);\n\n const calculateStyle = useCallback(() => {\n if (triggerRef.current && tooltipRef.current) {\n // calculate tooltip style\n setStyle(\n getTooltipStyle(\n placement,\n defaultVerticalPlacement,\n triggerRef,\n tooltipRef,\n document,\n window,\n arrowSize\n )\n );\n debounceTimeoutId.current = null;\n }\n }, [\n triggerRef,\n tooltipRef,\n document,\n window,\n placement,\n arrowSize,\n defaultVerticalPlacement,\n ]);\n\n const debouncedCalculateStyle = useCallback(() => {\n if (!debounceTimeoutId.current) {\n debounceTimeoutId.current = setTimeout(calculateStyle, 200);\n }\n }, [calculateStyle]);\n\n // This layout effect to re-render with updated position after determining content width\n useLayoutEffect(() => {\n if (isVisible) {\n calculateStyle();\n }\n }, [isVisible, calculateStyle, contentPadding, content]);\n\n // Re-position tooltip if it moves out of the viewport by 10% and on window resize\n useEffect(() => {\n let observer: IntersectionObserver;\n\n if (\n typeof IntersectionObserver !== \"undefined\" &&\n isVisible &&\n tooltipRef.current\n ) {\n observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(() => {\n calculateStyle();\n });\n },\n {\n threshold: 0.9,\n }\n );\n\n observer.observe(tooltipRef.current);\n window.addEventListener(\"resize\", debouncedCalculateStyle);\n window.addEventListener(\"scroll\", debouncedCalculateStyle, true); // use capture here to detect scroll on any parent\n } else if (!isVisible) {\n // log time when tooltip closes\n lastTooltipHideTimestamp = Date.now();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n window.removeEventListener(\"resize\", debouncedCalculateStyle);\n window.removeEventListener(\"scroll\", debouncedCalculateStyle);\n clearTimeout(debounceTimeoutId.current);\n };\n }, [isVisible, calculateStyle, debouncedCalculateStyle, window, tooltipRef]);\n\n let portal = null;\n\n const OuterWrapper = useMemo(\n () =>\n ({ children }: { children: ReactElement }) =>\n hasInvertedSubTheme ? (\n <SubThemeProvider name=\"inverted\">{children}</SubThemeProvider>\n ) : (\n <>{children}</>\n ),\n [hasInvertedSubTheme]\n );\n\n if (isVisible) {\n const tooltipElm = (\n <OuterWrapper>\n <StyledContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDSId}\n style={{\n top: style.top,\n left: style.left,\n animationDuration: getAnimationDuration(),\n }}\n ref={tooltipRef}\n id={tooltipId}\n role={role}\n aria-hidden={ariaHidden}\n hasInvertedSubTheme={hasInvertedSubTheme}\n tabIndex={tabIndex}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n maxWidth={maxWidth}\n contentPadding={contentPadding}\n onPointerEnter={onTooltipPointerEnter}\n onPointerLeave={onTooltipPointerLeave}\n >\n {hasInvertedSubTheme ? (\n content\n ) : (\n <Container elevation={3} borderRadius={borderRadius}>\n {content}\n </Container>\n )}\n {!hideArrow && (\n <StyledArrow\n data-e2e-test-id={`${dataE2eTestId}_arrow`}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n size={arrowSize}\n />\n )}\n </StyledContainer>\n </OuterWrapper>\n );\n\n portal = createPortal(tooltipElm, portalContainer || document.body);\n }\n\n return portal;\n}\n"],"names":["ANIMATION_DURATION","SHOW_HIDE_DELAY","MAX_CONTENT_WIDTH","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","horizontalPlacement","verticalPlacement","maxWidth","contentPadding","hasInvertedSubTheme","animationDistance","ANIMATION_DISTANCE","animation","keyframes","to","opacity","transform","contentPaddingMap","s","variables","size","spacing","xxs","m","invertedSubThemeStyles","padding","xs","borderRadius","backgroundColor","values","color","background","primary","default","position","zIndex","zIndices","tooltip","value","width","boxSizing","StyledArrow","_ref2","ARROW_SIZE","offset","getArrowOffset","height","borderLeft","borderRight","top","borderTop","borderBottom","left","right","initialStyle","lastTooltipHideTimestamp","getAnimationDuration","animationDuration","timeSinceLastTooltip","Date","now","TooltipContent","_ref3","placement","content","tooltipId","triggerRef","portalContainer","dataE2eTestId","dataDSId","isVisible","ariaHidden","role","tabIndex","defaultVerticalPlacement","onTooltipPointerEnter","onTooltipPointerLeave","hideArrow","style","setStyle","useState","tooltipRef","useRef","document","useDocument","window","useWindow","debounceTimeoutId","arrowSize","useMemo","ARROW_SIZE_BIG","calculateStyle","useCallback","current","getTooltipStyle","debouncedCalculateStyle","setTimeout","useLayoutEffect","useEffect","observer","IntersectionObserver","entries","forEach","threshold","observe","addEventListener","disconnect","removeEventListener","clearTimeout","portal","OuterWrapper","_ref4","children","React","createElement","SubThemeProvider","name","Fragment","tooltipElm","ref","id","onPointerEnter","onPointerLeave","Container","elevation","createPortal","body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n ReactElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\nimport { createPortal } from \"react-dom\";\nimport { useDocument } from \"../../shared/useDocument\";\nimport { useWindow } from \"../../shared/useWindow\";\nimport { SubThemeProvider } from \"../SubThemeProvider/SubThemeProvider\";\nimport zIndices from \"../../../build-tokens/_zindex.json\";\n\nimport {\n ANIMATION_DISTANCE,\n ARROW_SIZE,\n ARROW_SIZE_BIG,\n getArrowOffset,\n getTooltipStyle,\n} from \"./utils\";\nimport { Container } from \"../Container/Container\";\n\nexport type TooltipContentProps = {\n content: ReactElement;\n triggerRef: MutableRefObject<any>;\n /* Placement */\n placement?:\n | \"auto\"\n | \"top\"\n | \"bottom\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\";\n /* Custom portal container to render tooltip into */\n portalContainer?: HTMLElement;\n dataE2eTestId?: string;\n dataDSId: string;\n isVisible?: boolean;\n tooltipId?: string;\n \"aria-hidden\"?: boolean;\n role?: string;\n tabIndex?: number;\n // Content padding\n contentPadding?: \"s\" | \"m\";\n hasInvertedSubTheme?: boolean;\n maxWidth?: number;\n defaultVerticalPlacement?: TooltipStyle[\"verticalPlacement\"];\n onTooltipPointerEnter?: React.PointerEventHandler<HTMLDivElement>;\n onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;\n hideArrow?: boolean;\n};\n\nexport type TooltipStyle = {\n top: number;\n left: number;\n horizontalPlacement: \"left\" | \"right\" | \"center\";\n verticalPlacement: \"top\" | \"bottom\";\n};\n\ntype StyledContainerProps = Pick<\n TooltipContentProps,\n \"contentPadding\" | \"maxWidth\" | \"hasInvertedSubTheme\"\n> & {\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n};\n\nconst ANIMATION_DURATION = 200;\nconst SHOW_HIDE_DELAY = 200;\nconst MAX_CONTENT_WIDTH = 224;\n\nconst StyledContainer = styled.div<StyledContainerProps>(\n ({\n theme,\n horizontalPlacement,\n verticalPlacement,\n maxWidth,\n contentPadding,\n hasInvertedSubTheme = true,\n }) => {\n const animationDistance =\n verticalPlacement === \"top\"\n ? `${ANIMATION_DISTANCE}px`\n : `-${ANIMATION_DISTANCE}px`;\n const animation = keyframes({\n to: {\n opacity: 1,\n transform:\n horizontalPlacement === \"center\"\n ? `translate(-50%, ${animationDistance})`\n : `translateY(${animationDistance})`,\n },\n });\n\n const contentPaddingMap = {\n s: theme.variables.size.spacing.xxs,\n m: theme.variables.size.spacing.s,\n };\n\n const invertedSubThemeStyles = {\n padding: `${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,\n ...(contentPadding && {\n padding: contentPaddingMap[contentPadding],\n }),\n borderRadius: theme.variables.size.borderRadius.xs,\n backgroundColor: theme.values.color.background.primary.default,\n };\n\n return {\n position: \"absolute\",\n zIndex: zIndices.tooltip.value,\n opacity: 0,\n animation: `${ANIMATION_DURATION}ms ease-out forwards ${animation}`,\n maxWidth,\n width: \"initial\",\n boxSizing: \"border-box\",\n ...(hasInvertedSubTheme && invertedSubThemeStyles),\n ...(horizontalPlacement === \"center\" && {\n transform: \"translate(-50%)\",\n }),\n };\n }\n);\n\ntype StyledArrowProps = {\n verticalPlacement: TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement: TooltipStyle[\"horizontalPlacement\"];\n size?: 0 | typeof ARROW_SIZE | typeof ARROW_SIZE_BIG;\n};\n\nconst StyledArrow = styled.div<StyledArrowProps>(\n ({ theme, verticalPlacement, horizontalPlacement, size = ARROW_SIZE }) => {\n const offset = getArrowOffset(size);\n return {\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${size}px solid transparent`,\n borderRight: `${size}px solid transparent`,\n\n ...(verticalPlacement === \"top\" && {\n top: \"100%\",\n borderTop: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(verticalPlacement === \"bottom\" && {\n top: `-${size}px`,\n borderBottom: `${size}px solid ${theme.values.color.background.primary.default}`,\n }),\n\n ...(horizontalPlacement === \"center\" && {\n left: \"50%\",\n transform: \"translate(-50%)\",\n }),\n\n ...(horizontalPlacement === \"right\" && {\n left: `${offset}px`,\n }),\n\n ...(horizontalPlacement === \"left\" && {\n right: `${offset}px`,\n }),\n };\n }\n);\n\nconst initialStyle: TooltipStyle = {\n top: 0,\n left: 0,\n verticalPlacement: \"top\",\n horizontalPlacement: \"center\",\n};\n\nlet lastTooltipHideTimestamp = 0;\n\n/* Disable animation if time between last close and new open is less than 500ms + SHOW_HIDE_DELAY */\nfunction getAnimationDuration() {\n let animationDuration = `${ANIMATION_DURATION}ms`;\n\n if (lastTooltipHideTimestamp) {\n const timeSinceLastTooltip = Date.now() - lastTooltipHideTimestamp;\n\n if (timeSinceLastTooltip < 500 + SHOW_HIDE_DELAY) {\n animationDuration = \"0ms\";\n }\n }\n return animationDuration;\n}\n\n/** This component is used to display the overlay for both Toggletip and Tooltip components */\nexport function TooltipContent({\n placement = \"auto\",\n content,\n tooltipId,\n triggerRef,\n portalContainer,\n dataE2eTestId,\n dataDSId,\n isVisible,\n \"aria-hidden\": ariaHidden,\n role,\n tabIndex,\n contentPadding,\n maxWidth = MAX_CONTENT_WIDTH,\n hasInvertedSubTheme = true,\n defaultVerticalPlacement,\n onTooltipPointerEnter,\n onTooltipPointerLeave,\n hideArrow = false,\n}: TooltipContentProps): React.ReactElement {\n const [style, setStyle] = useState(initialStyle);\n const tooltipRef = useRef(null);\n const document = useDocument();\n const window = useWindow();\n\n const arrowSize = useMemo(() => {\n if (hideArrow) {\n return 0;\n }\n return hasInvertedSubTheme ? ARROW_SIZE : ARROW_SIZE_BIG;\n }, [hasInvertedSubTheme, hideArrow]);\n\n const calculateStyle = useCallback(() => {\n if (triggerRef.current && tooltipRef.current) {\n // calculate tooltip style\n setStyle(\n getTooltipStyle(\n placement,\n defaultVerticalPlacement,\n triggerRef,\n tooltipRef,\n document,\n window,\n arrowSize\n )\n );\n }\n }, [\n triggerRef,\n tooltipRef,\n document,\n window,\n placement,\n arrowSize,\n defaultVerticalPlacement,\n ]);\n\n // This layout effect to re-render with updated position after determining content width\n useLayoutEffect(() => {\n if (isVisible) {\n calculateStyle();\n }\n }, [isVisible, calculateStyle, contentPadding, content]);\n\n // Re-position tooltip if it moves out of the viewport by 10% and on window resize\n useEffect(() => {\n let observer: IntersectionObserver;\n\n if (\n typeof IntersectionObserver !== \"undefined\" &&\n isVisible &&\n tooltipRef.current\n ) {\n observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(() => {\n calculateStyle();\n });\n },\n {\n threshold: 0.9,\n }\n );\n\n observer.observe(tooltipRef.current);\n window.addEventListener(\"resize\", calculateStyle);\n window.addEventListener(\"scroll\", calculateStyle, true); // use capture here to detect scroll on any parent\n } else if (!isVisible) {\n // log time when tooltip closes\n lastTooltipHideTimestamp = Date.now();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n window.removeEventListener(\"resize\", calculateStyle);\n window.removeEventListener(\"scroll\", calculateStyle);\n };\n }, [isVisible, calculateStyle, window, tooltipRef]);\n\n if (!isVisible) return null;\n\n const tooltipElm = (\n <StyledContainer\n data-e2e-test-id={dataE2eTestId}\n data-ds-id={dataDSId}\n style={{\n top: style.top,\n left: style.left,\n animationDuration: getAnimationDuration(),\n }}\n ref={tooltipRef}\n id={tooltipId}\n role={role}\n aria-hidden={ariaHidden}\n hasInvertedSubTheme={hasInvertedSubTheme}\n tabIndex={tabIndex}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n maxWidth={maxWidth}\n contentPadding={contentPadding}\n onPointerEnter={onTooltipPointerEnter}\n onPointerLeave={onTooltipPointerLeave}\n >\n {hasInvertedSubTheme ? (\n content\n ) : (\n <Container elevation={3} borderRadius=\"s\">\n {content}\n </Container>\n )}\n {!hideArrow && (\n <StyledArrow\n data-e2e-test-id={`${dataE2eTestId}_arrow`}\n horizontalPlacement={style.horizontalPlacement}\n verticalPlacement={style.verticalPlacement}\n size={arrowSize}\n />\n )}\n </StyledContainer>\n );\n\n const wrapperElm = hasInvertedSubTheme ? (\n <SubThemeProvider name=\"inverted\">{tooltipElm}</SubThemeProvider>\n ) : (\n tooltipElm\n );\n\n return createPortal(wrapperElm, portalContainer || document.body);\n}\n"],"names":["ANIMATION_DURATION","SHOW_HIDE_DELAY","MAX_CONTENT_WIDTH","StyledContainer","_styled","process","env","NODE_ENV","target","label","_ref","theme","horizontalPlacement","verticalPlacement","maxWidth","contentPadding","hasInvertedSubTheme","animationDistance","ANIMATION_DISTANCE","animation","keyframes","to","opacity","transform","contentPaddingMap","s","variables","size","spacing","xxs","m","invertedSubThemeStyles","padding","xs","borderRadius","backgroundColor","values","color","background","primary","default","position","zIndex","zIndices","tooltip","value","width","boxSizing","StyledArrow","_ref2","ARROW_SIZE","offset","getArrowOffset","height","borderLeft","borderRight","top","borderTop","borderBottom","left","right","initialStyle","lastTooltipHideTimestamp","getAnimationDuration","animationDuration","timeSinceLastTooltip","Date","now","TooltipContent","_ref3","placement","content","tooltipId","triggerRef","portalContainer","dataE2eTestId","dataDSId","isVisible","ariaHidden","role","tabIndex","defaultVerticalPlacement","onTooltipPointerEnter","onTooltipPointerLeave","hideArrow","style","setStyle","useState","tooltipRef","useRef","document","useDocument","window","useWindow","arrowSize","useMemo","ARROW_SIZE_BIG","calculateStyle","useCallback","current","getTooltipStyle","useLayoutEffect","useEffect","observer","IntersectionObserver","entries","forEach","threshold","observe","addEventListener","disconnect","removeEventListener","tooltipElm","React","createElement","ref","id","onPointerEnter","onPointerLeave","Container","elevation","wrapperElm","SubThemeProvider","name","createPortal","body"],"mappings":"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"}
|
|
@@ -40,10 +40,18 @@ function getTooltipStyle(placement) {
|
|
|
40
40
|
}
|
|
41
41
|
default:
|
|
42
42
|
// If there is no space for the default vertical position of the trigger place it on the opposite side
|
|
43
|
-
if (verticalPlacement === "top"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
if (verticalPlacement === "top") {
|
|
44
|
+
if (triggerRect.top < tooltipRect.height) {
|
|
45
|
+
verticalPlacement = "bottom";
|
|
46
|
+
}
|
|
47
|
+
} else if (verticalPlacement === "bottom") {
|
|
48
|
+
// Check if there is no space at the bottom
|
|
49
|
+
if (triggerRect.bottom + tooltipRect.height > viewportHeight) {
|
|
50
|
+
// Check if there is space at the top
|
|
51
|
+
if (triggerRect.top > tooltipRect.height) {
|
|
52
|
+
verticalPlacement = "top";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
// Check if we have space on the left for half of the tooltip width
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/components/Tooltip/utils.ts"],"sourcesContent":["import { RefObject } from \"react\";\nimport type { TooltipProps } from \"./Tooltip\";\nimport type { TooltipStyle } from \"./TooltipContent\";\n\nexport const DISTANCE_FROM_TRIGGER = 4;\nexport const ANIMATION_DISTANCE = 8;\nexport const ARROW_SIZE = 6;\nexport const ARROW_SIZE_BIG = 8;\n\nexport const getArrowOffset = (size: number): number => size * 2;\n/**\n * Get tooltip position and width\n */\nexport function getTooltipStyle(\n placement: TooltipProps[\"placement\"],\n defaultVerticalPlacement: TooltipStyle[\"verticalPlacement\"] = \"top\",\n triggerRef: RefObject<any>,\n tooltipRef: RefObject<any>,\n document: Document,\n window: Window,\n arrowSize: number\n): TooltipStyle {\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n let top = 0;\n let left = 0;\n let verticalPlacement: TooltipStyle[\"verticalPlacement\"] =\n defaultVerticalPlacement;\n let horizontalPlacement: TooltipStyle[\"horizontalPlacement\"] = \"center\";\n\n const arrowOffset = getArrowOffset(arrowSize);\n const tooltipMargin = arrowSize + ANIMATION_DISTANCE + DISTANCE_FROM_TRIGGER;\n\n switch (placement) {\n case \"top\":\n case \"bottom\":\n verticalPlacement = placement;\n break;\n case \"top-left\":\n case \"top-right\":\n case \"bottom-left\":\n case \"bottom-right\": {\n const placements = placement.split(\"-\");\n\n verticalPlacement = placements[0] as TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement =\n placements[1] as TooltipStyle[\"horizontalPlacement\"];\n break;\n }\n default:\n // If there is no space for the default vertical position of the trigger place it on the opposite side\n if (verticalPlacement === \"top\"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/components/Tooltip/utils.ts"],"sourcesContent":["import { RefObject } from \"react\";\nimport type { TooltipProps } from \"./Tooltip\";\nimport type { TooltipStyle } from \"./TooltipContent\";\n\nexport const DISTANCE_FROM_TRIGGER = 4;\nexport const ANIMATION_DISTANCE = 8;\nexport const ARROW_SIZE = 6;\nexport const ARROW_SIZE_BIG = 8;\n\nexport const getArrowOffset = (size: number): number => size * 2;\n/**\n * Get tooltip position and width\n */\nexport function getTooltipStyle(\n placement: TooltipProps[\"placement\"],\n defaultVerticalPlacement: TooltipStyle[\"verticalPlacement\"] = \"top\",\n triggerRef: RefObject<any>,\n tooltipRef: RefObject<any>,\n document: Document,\n window: Window,\n arrowSize: number\n): TooltipStyle {\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n let top = 0;\n let left = 0;\n let verticalPlacement: TooltipStyle[\"verticalPlacement\"] =\n defaultVerticalPlacement;\n let horizontalPlacement: TooltipStyle[\"horizontalPlacement\"] = \"center\";\n\n const arrowOffset = getArrowOffset(arrowSize);\n const tooltipMargin = arrowSize + ANIMATION_DISTANCE + DISTANCE_FROM_TRIGGER;\n\n switch (placement) {\n case \"top\":\n case \"bottom\":\n verticalPlacement = placement;\n break;\n case \"top-left\":\n case \"top-right\":\n case \"bottom-left\":\n case \"bottom-right\": {\n const placements = placement.split(\"-\");\n\n verticalPlacement = placements[0] as TooltipStyle[\"verticalPlacement\"];\n horizontalPlacement =\n placements[1] as TooltipStyle[\"horizontalPlacement\"];\n break;\n }\n default:\n // If there is no space for the default vertical position of the trigger place it on the opposite side\n if (verticalPlacement === \"top\") {\n if (triggerRect.top < tooltipRect.height) {\n verticalPlacement = \"bottom\";\n }\n } else if (verticalPlacement === \"bottom\") {\n // Check if there is no space at the bottom\n if (triggerRect.bottom + tooltipRect.height > viewportHeight) {\n // Check if there is space at the top\n if (triggerRect.top > tooltipRect.height) {\n verticalPlacement = \"top\";\n }\n }\n }\n\n // Check if we have space on the left for half of the tooltip width\n if (triggerRect.left >= tooltipRect.width / 2) {\n // Check if we have space on the right for half of the tooltip width\n if (\n triggerRect.left + triggerRect.width / 2 + tooltipRect.width / 2 >\n viewportWidth\n ) {\n // no space on the right\n horizontalPlacement = \"left\";\n }\n } else {\n // We don't have space on the left\n horizontalPlacement = \"right\";\n }\n }\n\n if (verticalPlacement === \"top\") {\n top = triggerRect.top - tooltipRect.height - tooltipMargin;\n } else {\n top = triggerRect.bottom + tooltipMargin;\n }\n\n switch (horizontalPlacement) {\n case \"left\":\n left =\n triggerRect.left +\n triggerRect.width / 2 -\n tooltipRect.width +\n arrowOffset +\n arrowSize;\n break;\n case \"right\":\n left = triggerRect.left + triggerRect.width / 2 - arrowOffset - arrowSize;\n break;\n default:\n left = triggerRect.left + triggerRect.width / 2;\n }\n\n return {\n top: top + window.scrollY,\n left: left + window.scrollX,\n horizontalPlacement,\n verticalPlacement,\n };\n}\n"],"names":["DISTANCE_FROM_TRIGGER","ANIMATION_DISTANCE","ARROW_SIZE","ARROW_SIZE_BIG","getArrowOffset","size","getTooltipStyle","placement","defaultVerticalPlacement","arguments","length","undefined","triggerRef","tooltipRef","document","window","arrowSize","triggerRect","current","getBoundingClientRect","tooltipRect","viewportWidth","documentElement","clientWidth","viewportHeight","clientHeight","top","left","verticalPlacement","horizontalPlacement","arrowOffset","tooltipMargin","placements","split","height","bottom","width","scrollY","scrollX"],"mappings":"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"}
|