@amboss/design-system 3.13.1 → 3.13.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"TooltipContent",{enumerable:!0,get:function(){return TooltipContent}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_useDocument=require("../../shared/useDocument"),_useWindow=require("../../shared/useWindow"),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_Portal=require("../Portal/Portal"),_utils=require("./utils"),StyledContainer=(0,_styled.default)("div",{target:"e1duonp60",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden})=>{let animationDistance="top"===verticalPlacement?`${_utils.ANIMATION_DISTANCE}px`:`-${_utils.ANIMATION_DISTANCE}px`,animation=(0,_react1.keyframes)({to:{opacity:theme.variables.opacity.visible,transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:(0,_Portal.usePortalChildZIndex)(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHNldElzSGlkZGVuKCFlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICByb290OiBudWxsLCAvLyB2aWV3cG9ydFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0cmlnZ2VyUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFt0cmlnZ2VyUmVmLCBpc1Zpc2libGUsIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2NvbnRlbnR9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgc2l6ZT17YXJyb3dTaXplfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcblxuICBjb25zdCB3cmFwcGVyRWxtID0gc3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWV9Pnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9Pnt3cmFwcGVyRWxtfTwvUG9ydGFsPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRndCIn0= */"),StyledArrow=(0,_styled.default)("div",{target:"e1duonp61",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=_utils.ARROW_SIZE})=>{let offset=(0,_utils.getArrowOffset)(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+_utils.DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHNldElzSGlkZGVuKCFlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICByb290OiBudWxsLCAvLyB2aWV3cG9ydFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0cmlnZ2VyUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFt0cmlnZ2VyUmVmLCBpc1Zpc2libGUsIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2NvbnRlbnR9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgc2l6ZT17YXJyb3dTaXplfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcblxuICBjb25zdCB3cmFwcGVyRWxtID0gc3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWV9Pnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9Pnt3cmFwcGVyRWxtfTwvUG9ydGFsPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4S29CIn0= */"),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"};let lastTooltipHideTimestamp=0;function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport}){let animationDuration,[style,setStyle]=(0,_react.useState)(initialStyle),[isHidden,setIsHidden]=(0,_react.useState)(!1),tooltipRef=(0,_react.useRef)(null),isOverflowCallbackCalledRef=(0,_react.useRef)(!1),document=(0,_useDocument.useDocument)(),window=(0,_useWindow.useWindow)(),arrowSize=(0,_react.useMemo)(()=>hideArrow?0:subTheme?_utils.ARROW_SIZE:_utils.ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=(0,_react.useCallback)((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=(0,_react.useCallback)(()=>{triggerRef.current&&tooltipRef.current&&setStyle((0,_utils.getTooltipStyle)({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow]);if((0,_react.useLayoutEffect)(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,maxWidth]),(0,_react.useEffect)(()=>(isVisible&&tooltipRef.current?(window.addEventListener("resize",calculateStyle),window.addEventListener("scroll",calculateStyle,!0)):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle),window.removeEventListener("scroll",calculateStyle,!0)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),(0,_react.useEffect)(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{setIsHidden(!entry.isIntersecting)}),{root:null,threshold:1})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=_react.default.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:maxWidth,contentPadding:contentPadding,isHidden:isHidden,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&_react.default.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?_react.default.createElement(_SubThemeProvider.SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return _react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},wrapperElm)}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"TooltipContent",{enumerable:!0,get:function(){return TooltipContent}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_useDocument=require("../../shared/useDocument"),_useWindow=require("../../shared/useWindow"),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_Portal=require("../Portal/Portal"),_utils=require("./utils"),StyledContainer=(0,_styled.default)("div",{target:"e1n1ffen0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden})=>{let animationDistance="top"===verticalPlacement?`${_utils.ANIMATION_DISTANCE}px`:`-${_utils.ANIMATION_DISTANCE}px`,animation=(0,_react1.keyframes)({to:{opacity:theme.variables.opacity.visible,transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:(0,_Portal.usePortalChildZIndex)(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNGd0IifQ== */"),StyledArrow=(0,_styled.default)("div",{target:"e1n1ffen1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=_utils.ARROW_SIZE})=>{let offset=(0,_utils.getArrowOffset)(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+_utils.DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThLb0IifQ== */"),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"};let lastTooltipHideTimestamp=0;function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport}){let animationDuration,[style,setStyle]=(0,_react.useState)(initialStyle),[isHidden,setIsHidden]=(0,_react.useState)(!1),tooltipRef=(0,_react.useRef)(null),isOverflowCallbackCalledRef=(0,_react.useRef)(!1),document=(0,_useDocument.useDocument)(),window=(0,_useWindow.useWindow)(),arrowSize=(0,_react.useMemo)(()=>hideArrow?0:subTheme?_utils.ARROW_SIZE:_utils.ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=(0,_react.useCallback)((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=(0,_react.useCallback)(()=>{triggerRef.current&&tooltipRef.current&&setStyle((0,_utils.getTooltipStyle)({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow]);if((0,_react.useLayoutEffect)(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,maxWidth]),(0,_react.useEffect)(()=>(isVisible&&tooltipRef.current?(window.addEventListener("resize",calculateStyle),window.addEventListener("scroll",calculateStyle,!0)):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle),window.removeEventListener("scroll",calculateStyle,!0)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),(0,_react.useEffect)(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:1})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=_react.default.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:maxWidth,contentPadding:contentPadding,isHidden:isHidden,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&_react.default.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?_react.default.createElement(_SubThemeProvider.SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return _react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},wrapperElm)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e1duonp60",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHNldElzSGlkZGVuKCFlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICByb290OiBudWxsLCAvLyB2aWV3cG9ydFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0cmlnZ2VyUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFt0cmlnZ2VyUmVmLCBpc1Zpc2libGUsIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2NvbnRlbnR9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgc2l6ZT17YXJyb3dTaXplfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcblxuICBjb25zdCB3cmFwcGVyRWxtID0gc3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWV9Pnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9Pnt3cmFwcGVyRWxtfTwvUG9ydGFsPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRndCIn0= */"),StyledArrow=styled("div",{target:"e1duonp61",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHNldElzSGlkZGVuKCFlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICByb290OiBudWxsLCAvLyB2aWV3cG9ydFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0cmlnZ2VyUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFt0cmlnZ2VyUmVmLCBpc1Zpc2libGUsIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyXSk7XG5cbiAgaWYgKCFpc1Zpc2libGUpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHRvb2x0aXBFbG0gPSAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIGRhdGEtZHMtaWQ9e2RhdGFEU0lkfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiBzdHlsZS50b3AsXG4gICAgICAgIGxlZnQ6IHN0eWxlLmxlZnQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBnZXRBbmltYXRpb25EdXJhdGlvbigpLFxuICAgICAgfX1cbiAgICAgIHJlZj17dG9vbHRpcFJlZn1cbiAgICAgIGlkPXt0b29sdGlwSWR9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQ9e3N0eWxlLnZlcnRpY2FsUGxhY2VtZW50fVxuICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgY29udGVudFBhZGRpbmc9e2NvbnRlbnRQYWRkaW5nfVxuICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgb25Qb2ludGVyRW50ZXI9e29uVG9vbHRpcFBvaW50ZXJFbnRlcn1cbiAgICAgIG9uUG9pbnRlckxlYXZlPXtvblRvb2x0aXBQb2ludGVyTGVhdmV9XG4gICAgPlxuICAgICAge2NvbnRlbnR9XG4gICAgICB7IWhpZGVBcnJvdyAmJiAoXG4gICAgICAgIDxTdHlsZWRBcnJvd1xuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2Ake2RhdGFFMmVUZXN0SWR9X2Fycm93YH1cbiAgICAgICAgICBzdWJUaGVtZT17c3ViVGhlbWV9XG4gICAgICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICAgICAgc2l6ZT17YXJyb3dTaXplfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcblxuICBjb25zdCB3cmFwcGVyRWxtID0gc3ViVGhlbWUgPyAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWV9Pnt0b29sdGlwRWxtfTwvU3ViVGhlbWVQcm92aWRlcj5cbiAgKSA6IChcbiAgICB0b29sdGlwRWxtXG4gICk7XG5cbiAgcmV0dXJuIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9Pnt3cmFwcGVyRWxtfTwvUG9ydGFsPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4S29CIn0= */"),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,maxWidth]),useEffect(()=>(isVisible&&tooltipRef.current?(window.addEventListener("resize",calculateStyle),window.addEventListener("scroll",calculateStyle,!0)):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle),window.removeEventListener("scroll",calculateStyle,!0)}),[isVisible,calculateStyle,window,tooltipRef]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{setIsHidden(!entry.isIntersecting)}),{root:null,threshold:1})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:maxWidth,contentPadding:contentPadding,isHidden:isHidden,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&React.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
|
|
1
|
+
import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e1n1ffen0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNGd0IifQ== */"),StyledArrow=styled("div",{target:"e1n1ffen1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcImNzc3R5cGVcIjtcbmltcG9ydCB7IHVzZURvY3VtZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VEb2N1bWVudFwiO1xuaW1wb3J0IHsgdXNlV2luZG93IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC91c2VXaW5kb3dcIjtcbmltcG9ydCB7IFN1YlRoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi4vU3ViVGhlbWVQcm92aWRlci9TdWJUaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQge1xuICBQb3J0YWwsXG4gIHVzZVBvcnRhbENoaWxkWkluZGV4LFxuICB0eXBlIFBvcnRhbFByb3BzLFxufSBmcm9tIFwiLi4vUG9ydGFsL1BvcnRhbFwiO1xuXG5pbXBvcnQge1xuICBBTklNQVRJT05fRElTVEFOQ0UsXG4gIEFSUk9XX1NJWkUsXG4gIEFSUk9XX1NJWkVfQklHLFxuICBESVNUQU5DRV9GUk9NX1RSSUdHRVIsXG4gIGdldEFycm93T2Zmc2V0LFxuICBnZXRUb29sdGlwU3R5bGUsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIFwiYXJpYS1oaWRkZW5cIj86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gIH0pID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25EaXN0YW5jZSA9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIlxuICAgICAgICA/IGAke0FOSU1BVElPTl9ESVNUQU5DRX1weGBcbiAgICAgICAgOiBgLSR7QU5JTUFUSU9OX0RJU1RBTkNFfXB4YDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBrZXlmcmFtZXMoe1xuICAgICAgdG86IHtcbiAgICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZSxcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgID8gYHRyYW5zbGF0ZSgtNTAlLCAke2FuaW1hdGlvbkRpc3RhbmNlfSlgXG4gICAgICAgICAgICA6IGB0cmFuc2xhdGVZKCR7YW5pbWF0aW9uRGlzdGFuY2V9KWAsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFBhZGRpbmdNYXAgPSB7XG4gICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB9O1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRTdWJUaGVtZVN0eWxlcyA9IHtcbiAgICAgIHBhZGRpbmc6IGAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHN9ICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfWAsXG4gICAgICAuLi4oY29udGVudFBhZGRpbmcgJiYge1xuICAgICAgICBwYWRkaW5nOiBjb250ZW50UGFkZGluZ01hcFtjb250ZW50UGFkZGluZ10sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgekluZGV4ID0gdXNlUG9ydGFsQ2hpbGRaSW5kZXgodGhlbWUudmFyaWFibGVzLnpJbmRleC50b29sdGlwKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgekluZGV4LFxuICAgICAgb3BhY2l0eTogdGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVuLFxuICAgICAgYW5pbWF0aW9uOiBgJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1vdXQgZm9yd2FyZHMgJHthbmltYXRpb259YCxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgd2lkdGg6IFwibWF4LWNvbnRlbnRcIixcbiAgICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgIDogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuZWxldmF0ZWQuZGVmYXVsdCxcbiAgICAgIGJvcmRlclJhZGl1czogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMueHNcbiAgICAgICAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMucyxcblxuICAgICAgLi4uKGlzSGlkZGVuICYmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG59OiBUb29sdGlwQ29udGVudFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgW3N0eWxlLCBzZXRTdHlsZV0gPSB1c2VTdGF0ZShpbml0aWFsU3R5bGUpO1xuICBjb25zdCBbaXNIaWRkZW4sIHNldElzSGlkZGVuXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gY3NzIHZpc2liaWx0eSBoaWRkZW5cbiAgY29uc3QgdG9vbHRpcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZG9jdW1lbnQgPSB1c2VEb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcblxuICBjb25zdCBhcnJvd1NpemUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGlkZUFycm93KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHN1YlRoZW1lID8gQVJST1dfU0laRSA6IEFSUk9XX1NJWkVfQklHO1xuICB9LCBbc3ViVGhlbWUsIGhpZGVBcnJvd10pO1xuXG4gIGNvbnN0IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3cgPSB1c2VDYWxsYmFjazxcbiAgICBUb29sdGlwQ29udGVudFByb3BzW1wib25PdmVyZmxvd1ZpZXdwb3J0XCJdXG4gID4oXG4gICAgKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpID0+IHtcbiAgICAgIGlmICghaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0Py4odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk92ZXJmbG93Vmlld3BvcnQsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl1cbiAgKTtcblxuICBjb25zdCBjYWxjdWxhdGVTdHlsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgLy8gY2FsY3VsYXRlIHRvb2x0aXAgc3R5bGVcbiAgICAgIHNldFN0eWxlKFxuICAgICAgICBnZXRUb29sdGlwU3R5bGUoe1xuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICB0b29sdGlwUmVmLFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIHdpbmRvdyxcbiAgICAgICAgICBhcnJvd1NpemUsXG4gICAgICAgICAgb25PdmVyZmxvd1ZpZXdwb3J0OiBoYW5kbGVWaWV3cG9ydE92ZXJmbG93LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtcbiAgICB0cmlnZ2VyUmVmLFxuICAgIHRvb2x0aXBSZWYsXG4gICAgZG9jdW1lbnQsXG4gICAgd2luZG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1NpemUsXG4gICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgIGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBtYXhXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTsgLy8gdXNlIGNhcHR1cmUgaGVyZSB0byBkZXRlY3Qgc2Nyb2xsIG9uIGFueSBwYXJlbnRcbiAgICB9IGVsc2UgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIC8vIGxvZyB0aW1lIHdoZW4gdG9vbHRpcCBjbG9zZXNcbiAgICAgIGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGNhbGN1bGF0ZVN0eWxlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGN1bGF0ZVN0eWxlLCB0cnVlKTtcbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgd2luZG93LCB0b29sdGlwUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThLb0IifQ== */"),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,maxWidth]),useEffect(()=>(isVisible&&tooltipRef.current?(window.addEventListener("resize",calculateStyle),window.addEventListener("scroll",calculateStyle,!0)):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle),window.removeEventListener("scroll",calculateStyle,!0)}),[isVisible,calculateStyle,window,tooltipRef]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:1})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:maxWidth,contentPadding:contentPadding,isHidden:isHidden,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&React.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
|