@amboss/design-system 3.40.6 → 3.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/build/cjs/components/BulkActionsToolbar/BulkActionsToolbar.js +1 -1
  2. package/build/cjs/components/Callout/Callout.js +1 -1
  3. package/build/cjs/components/CatalogCard/CatalogCard.js +1 -1
  4. package/build/cjs/components/Content/ContentBox/ContentBox.js +1 -1
  5. package/build/cjs/components/Form/Combobox/constants.js +1 -1
  6. package/build/cjs/components/Form/SearchInput/SearchInput.js +1 -1
  7. package/build/cjs/components/Form/SegmentedControl/SegmentedControl.js +1 -1
  8. package/build/cjs/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
  9. package/build/cjs/components/Icon/Icon.d.ts +2 -2
  10. package/build/cjs/components/Icon/Icon.js +1 -1
  11. package/build/cjs/components/Logo/Logo.js +1 -1
  12. package/build/cjs/components/MediaViewerCarousel/MediaViewerCarousel.js +1 -1
  13. package/build/cjs/components/SplashCardMedia/SplashCardMedia.js +1 -1
  14. package/build/cjs/components/SubThemeProvider/SubThemeProvider.d.ts +1 -1
  15. package/build/cjs/components/Toggletip/BasePopover.js +1 -1
  16. package/build/cjs/components/Tooltip/TooltipContent.d.ts +1 -1
  17. package/build/cjs/components/Tooltip/TooltipContent.js +1 -1
  18. package/build/cjs/index.d.ts +1 -1
  19. package/build/cjs/index.js +1 -1
  20. package/build/cjs/shared/mediaQueries.js +1 -1
  21. package/build/cjs/shared/useBreakpoints.js +1 -1
  22. package/build/cjs/web-tokens/_sizes.json +28 -28
  23. package/build/cjs/web-tokens/{_subThemeType.d.ts → _subThemeType.ts} +1 -0
  24. package/build/cjs/web-tokens/visualConfig.ts +5074 -0
  25. package/build/esm/components/BulkActionsToolbar/BulkActionsToolbar.js +1 -1
  26. package/build/esm/components/Callout/Callout.js +1 -1
  27. package/build/esm/components/CatalogCard/CatalogCard.js +1 -1
  28. package/build/esm/components/Content/ContentBox/ContentBox.js +1 -1
  29. package/build/esm/components/Form/Combobox/constants.js +1 -1
  30. package/build/esm/components/Form/SearchInput/SearchInput.js +1 -1
  31. package/build/esm/components/Form/SegmentedControl/SegmentedControl.js +1 -1
  32. package/build/esm/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
  33. package/build/esm/components/Icon/Icon.d.ts +2 -2
  34. package/build/esm/components/Icon/Icon.js +1 -1
  35. package/build/esm/components/Logo/Logo.js +1 -1
  36. package/build/esm/components/MediaViewerCarousel/MediaViewerCarousel.js +1 -1
  37. package/build/esm/components/SplashCardMedia/SplashCardMedia.js +1 -1
  38. package/build/esm/components/SubThemeProvider/SubThemeProvider.d.ts +1 -1
  39. package/build/esm/components/Toggletip/BasePopover.js +1 -1
  40. package/build/esm/components/Tooltip/TooltipContent.d.ts +1 -1
  41. package/build/esm/components/Tooltip/TooltipContent.js +1 -1
  42. package/build/esm/index.d.ts +1 -1
  43. package/build/esm/index.js +1 -1
  44. package/build/esm/shared/mediaQueries.js +1 -1
  45. package/build/esm/shared/useBreakpoints.js +1 -1
  46. package/build/esm/web-tokens/_sizes.json +28 -28
  47. package/build/esm/web-tokens/{_subThemeType.d.ts → _subThemeType.ts} +1 -0
  48. package/build/esm/web-tokens/visualConfig.ts +5074 -0
  49. package/package.json +27 -21
  50. package/build/cjs/web-tokens/_subThemeType.js +0 -1
  51. package/build/cjs/web-tokens/visualConfig.d.ts +0 -1765
  52. package/build/cjs/web-tokens/visualConfig.js +0 -1
  53. package/build/esm/web-tokens/_subThemeType.js +0 -1
  54. package/build/esm/web-tokens/visualConfig.d.ts +0 -1765
  55. package/build/esm/web-tokens/visualConfig.js +0 -1
@@ -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:"e1iz0lt0",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHR5cGUgeyBTdWJUaGVtZVR5cGVzIH0gZnJvbSBcIi4uLy4uL3dlYi10b2tlbnMvX3N1YlRoZW1lVHlwZVwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBzdWJUaGVtZT86IFN1YlRoZW1lVHlwZXM7XG4gIG1heFdpZHRoPzogUHJvcGVydHkuTWF4V2lkdGggfCBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBoaWRlQXJyb3c/OiBib29sZWFuO1xuICAvKiogU2V0cyBjc3MgdmlzaWJpbGl0eSBoaWRkZW4gd2hlbiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyPzogYm9vbGVhbjtcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uVG9vbHRpcFBvaW50ZXJMZWF2ZT86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICAvKiogVGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0aGUgdmlld3BvcnQgYm90aCBhYm92ZSBhbmQgYmVsb3cgdHJpZ2dlci4gVXNlIHRoaXMgZm9yIHRyYWNraW5nIHB1cnBvc2VzIG9yIHJlLXJlbmRlcmluZyBQb3BvdmVyIHdpdGggYSBsYXJnZXIgbWF4V2lkdGggKi9cbiAgb25PdmVyZmxvd1ZpZXdwb3J0PzogKFxuICAgIHRyaWdnZXJSZWN0OiBET01SZWN0LFxuICAgIHRvb2x0aXBSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgKSA9PiB2b2lkO1xufSAmIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+ICZcbiAgQXJpYUF0dHJpYnV0ZXM7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG4vLyBVc2UgMC45OSBpbnN0ZWFkIG9mIDEuMCB0byBoYW5kbGUgc3ViLXBpeGVsIHJvdW5kaW5nIGlzc3Vlc1xuLy8gdGhhdCBjYW4gY2F1c2UgaW50ZXJzZWN0aW9uUmF0aW8gdG8gcmVwb3J0IHZhbHVlcyBsaWtlIDAuOTlcbmNvbnN0IElOVEVSU0VDVElPTl9USFJFU0hPTEQgPSAwLjk5O1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRhaW5lclByb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHZlcnRpY2FsUGxhY2VtZW50LFxuICAgIG1heFdpZHRoLFxuICAgIGNvbnRlbnRQYWRkaW5nLFxuICAgIHN1YlRoZW1lLFxuICAgIGlzSGlkZGVuLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiXG4gICAgICAgICAgICA/IGB0cmFuc2xhdGUoLTUwJSwgJHthbmltYXRpb25EaXN0YW5jZX0pYFxuICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nTWFwID0ge1xuICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGludmVydGVkU3ViVGhlbWVTdHlsZXMgPSB7XG4gICAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuICAgICAgLi4uKGNvbnRlbnRQYWRkaW5nICYmIHtcbiAgICAgICAgcGFkZGluZzogY29udGVudFBhZGRpbmdNYXBbY29udGVudFBhZGRpbmddLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHpJbmRleCA9IHVzZVBvcnRhbENoaWxkWkluZGV4KHRoZW1lLnZhcmlhYmxlcy56SW5kZXgudG9vbHRpcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHpJbmRleCxcbiAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbixcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcIm1heC1jb250ZW50XCIsXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdFxuICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBib3JkZXJSYWRpdXM6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnMsXG5cbiAgICAgIC4uLihpc0hpZGRlbiAmJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKCFzdWJUaGVtZSAmJiB7XG4gICAgICAgIFwiOmFmdGVyXCI6IHtcbiAgICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcImluaGVyaXRcIixcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSBQaWNrPFRvb2x0aXBDb250ZW50UHJvcHMsIFwic3ViVGhlbWVcIj4gJiB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbi8vIFRoaXMgY29udGFpbmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBhcnJvdyBzaGFkb3cgYmx1clxuY29uc3QgQVJST1dfQ09OVEFJTkVSX1dJRFRIID0gNDA7XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBzdWJUaGVtZSxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHNpemUgPSBBUlJPV19TSVpFLFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgY29uc3QgYWRqdXN0bWVudEZvclNoYWRvdyA9IHN1YlRoZW1lID8gMCA6IDE7XG4gICAgY29uc3QgYXJyb3dDb250YWluZXJIZWlnaHQgPSBzaXplICsgRElTVEFOQ0VfRlJPTV9UUklHR0VSO1xuICAgIC8vIEdldCBhcnJvdyB3aWR0aCBhbmQgaGVpZ2h0IHVzaW5nIHB5dGhvZ29yYXMgdGhlb3JlbSBhbmQgYWRkIDEgdG8gaGVpZ2h0IHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBzaGFkb3cuXG4gICAgY29uc3QgYXJyb3dTaWRlTGVuZ3RoID0gTWF0aC5zcXJ0KFxuICAgICAgc2l6ZSAqKiAyICsgKHNpemUgKyBhZGp1c3RtZW50Rm9yU2hhZG93KSAqKiAyXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IEFSUk9XX0NPTlRBSU5FUl9XSURUSCxcbiAgICAgIGhlaWdodDogYXJyb3dDb250YWluZXJIZWlnaHQsXG4gICAgICB6SW5kZXg6IDEsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgLy8gcGxhY2UgdGhlIGFycm93IGNvbnRhaW5lciAxcHggaW5zaWRlIHRvb2x0aXAgY29udGFpbmVyIHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBib3gtc2hhZG93XG4gICAgICAgIHRvcDogYGNhbGMoMTAwJSAtICR7YWRqdXN0bWVudEZvclNoYWRvd31weClgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJib3R0b21cIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGAtJHthcnJvd0NvbnRhaW5lckhlaWdodCAtIGFkanVzdG1lbnRGb3JTaGFkb3d9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXQgLSAoQVJST1dfQ09OVEFJTkVSX1dJRFRIIC8gMiAtIHNpemUpfXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJsZWZ0XCIgJiYge1xuICAgICAgICByaWdodDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgXCImOjphZnRlclwiOiB7XG4gICAgICAgIGNvbnRlbnQ6ICdcIiBcIicsXG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgPyAwIDogXCIxMDAlXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHdpZHRoOiBhcnJvd1NpZGVMZW5ndGgsXG4gICAgICAgIGhlaWdodDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuXG4gICAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblszXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGluaXRpYWxTdHlsZTogVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiLFxuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImNlbnRlclwiLFxufTtcblxubGV0IGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IDA7XG5cbi8qIERpc2FibGUgYW5pbWF0aW9uIGlmIHRpbWUgYmV0d2VlbiBsYXN0IGNsb3NlIGFuZCBuZXcgb3BlbiBpcyBsZXNzIHRoYW4gNTAwbXMgKyBTSE9XX0hJREVfREVMQVkgKi9cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICBsZXQgYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT059bXNgO1xuXG4gIGlmIChsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXApIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0VG9vbHRpcCA9IERhdGUubm93KCkgLSBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXA7XG5cbiAgICBpZiAodGltZVNpbmNlTGFzdFRvb2x0aXAgPCA1MDAgKyBTSE9XX0hJREVfREVMQVkpIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gXCIwbXNcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xufVxuXG4vKiogVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBvdmVybGF5IGZvciBib3RoIFRvZ2dsZXRpcCBhbmQgVG9vbHRpcCBjb21wb25lbnRzICovXG5leHBvcnQgZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoe1xuICBwbGFjZW1lbnQgPSBcImF1dG9cIixcbiAgY29udGVudCxcbiAgdG9vbHRpcElkLFxuICB0cmlnZ2VyUmVmLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRhdGFFMmVUZXN0SWQsXG4gIGRhdGFEU0lkLFxuICBpc1Zpc2libGUsXG4gIFwiYXJpYS1oaWRkZW5cIjogYXJpYUhpZGRlbixcbiAgcm9sZSxcbiAgdGFiSW5kZXgsXG4gIGNvbnRlbnRQYWRkaW5nLFxuICBtYXhXaWR0aCA9IE1BWF9DT05URU5UX1dJRFRILFxuICBzdWJUaGVtZSxcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXIgPSBmYWxzZSxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIG9uT3ZlcmZsb3dWaWV3cG9ydCxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuXG4gIGNvbnN0IGFycm93U2l6ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlQXJyb3cpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gc3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtzdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyA9IHVzZUNhbGxiYWNrPFxuICAgIFRvb2x0aXBDb250ZW50UHJvcHNbXCJvbk92ZXJmbG93Vmlld3BvcnRcIl1cbiAgPihcbiAgICAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCkgPT4ge1xuICAgICAgaWYgKCFpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ/Lih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3ZlcmZsb3dWaWV3cG9ydCwgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmXVxuICApO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyUmVmLmN1cnJlbnQgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBjYWxjdWxhdGUgdG9vbHRpcCBzdHlsZVxuICAgICAgc2V0U3R5bGUoXG4gICAgICAgIGdldFRvb2x0aXBTdHlsZSh7XG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZSxcbiAgICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ6IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgXSk7XG5cbiAgLy8gVGhpcyBsYXlvdXQgZWZmZWN0IHRvIHJlLXJlbmRlciB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gYWZ0ZXIgZGV0ZXJtaW5pbmcgY29udGVudCB3aWR0aFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgY29udGVudFBhZGRpbmcsIGNvbnRlbnQsIG1heFdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICAvLyBPYnNlcnZlIHRvb2x0aXAgZWxlbWVudCBzaXplIGNoYW5nZXMgdG8gcmVjYWxjdWxhdGUgcG9zaXRpb25pbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgaXNWaXNpYmxlICYmXG4gICAgICB0b29sdGlwUmVmLmN1cnJlbnQgJiZcbiAgICAgIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCA+IDAgJiYgZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodG9vbHRpcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIFJlY2FsY3VsYXRlIHBvc2l0aW9uIHdoZW4gdGhlIHRyaWdnZXIgbW92ZXMgd2l0aG91dCBlbWl0dGluZyBzY3JvbGwvcmVzaXplXG4gIC8vIGV2ZW50cyAoZS5nLiBDU1MgdHJhbnNmb3JtcywgY2FudmFzIHpvb20vcGFuKS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyO1xuICAgIGxldCBwcmV2UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IHRyaWdnZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZSZWN0ICYmXG4gICAgICAgIG5leHRSZWN0ICYmXG4gICAgICAgIChwcmV2UmVjdC54ICE9PSBuZXh0UmVjdC54IHx8XG4gICAgICAgICAgcHJldlJlY3QueSAhPT0gbmV4dFJlY3QueSB8fFxuICAgICAgICAgIHByZXZSZWN0LndpZHRoICE9PSBuZXh0UmVjdC53aWR0aCB8fFxuICAgICAgICAgIHByZXZSZWN0LmhlaWdodCAhPT0gbmV4dFJlY3QuaGVpZ2h0KVxuICAgICAgKSB7XG4gICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICB9XG4gICAgICBwcmV2UmVjdCA9IG5leHRSZWN0O1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgfTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlY2FsY3VsYXRlUG9zaXRpb24pO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCk7XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0cmlnZ2VyUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiBJTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGd0IifQ== */"),StyledArrow=(0,_styled.default)("div",{target:"e1iz0lt1",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHR5cGUgeyBTdWJUaGVtZVR5cGVzIH0gZnJvbSBcIi4uLy4uL3dlYi10b2tlbnMvX3N1YlRoZW1lVHlwZVwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBzdWJUaGVtZT86IFN1YlRoZW1lVHlwZXM7XG4gIG1heFdpZHRoPzogUHJvcGVydHkuTWF4V2lkdGggfCBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBoaWRlQXJyb3c/OiBib29sZWFuO1xuICAvKiogU2V0cyBjc3MgdmlzaWJpbGl0eSBoaWRkZW4gd2hlbiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyPzogYm9vbGVhbjtcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uVG9vbHRpcFBvaW50ZXJMZWF2ZT86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICAvKiogVGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0aGUgdmlld3BvcnQgYm90aCBhYm92ZSBhbmQgYmVsb3cgdHJpZ2dlci4gVXNlIHRoaXMgZm9yIHRyYWNraW5nIHB1cnBvc2VzIG9yIHJlLXJlbmRlcmluZyBQb3BvdmVyIHdpdGggYSBsYXJnZXIgbWF4V2lkdGggKi9cbiAgb25PdmVyZmxvd1ZpZXdwb3J0PzogKFxuICAgIHRyaWdnZXJSZWN0OiBET01SZWN0LFxuICAgIHRvb2x0aXBSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgKSA9PiB2b2lkO1xufSAmIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+ICZcbiAgQXJpYUF0dHJpYnV0ZXM7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG4vLyBVc2UgMC45OSBpbnN0ZWFkIG9mIDEuMCB0byBoYW5kbGUgc3ViLXBpeGVsIHJvdW5kaW5nIGlzc3Vlc1xuLy8gdGhhdCBjYW4gY2F1c2UgaW50ZXJzZWN0aW9uUmF0aW8gdG8gcmVwb3J0IHZhbHVlcyBsaWtlIDAuOTlcbmNvbnN0IElOVEVSU0VDVElPTl9USFJFU0hPTEQgPSAwLjk5O1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRhaW5lclByb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHZlcnRpY2FsUGxhY2VtZW50LFxuICAgIG1heFdpZHRoLFxuICAgIGNvbnRlbnRQYWRkaW5nLFxuICAgIHN1YlRoZW1lLFxuICAgIGlzSGlkZGVuLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiXG4gICAgICAgICAgICA/IGB0cmFuc2xhdGUoLTUwJSwgJHthbmltYXRpb25EaXN0YW5jZX0pYFxuICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nTWFwID0ge1xuICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGludmVydGVkU3ViVGhlbWVTdHlsZXMgPSB7XG4gICAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuICAgICAgLi4uKGNvbnRlbnRQYWRkaW5nICYmIHtcbiAgICAgICAgcGFkZGluZzogY29udGVudFBhZGRpbmdNYXBbY29udGVudFBhZGRpbmddLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHpJbmRleCA9IHVzZVBvcnRhbENoaWxkWkluZGV4KHRoZW1lLnZhcmlhYmxlcy56SW5kZXgudG9vbHRpcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHpJbmRleCxcbiAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbixcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcIm1heC1jb250ZW50XCIsXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdFxuICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBib3JkZXJSYWRpdXM6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnMsXG5cbiAgICAgIC4uLihpc0hpZGRlbiAmJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKCFzdWJUaGVtZSAmJiB7XG4gICAgICAgIFwiOmFmdGVyXCI6IHtcbiAgICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcImluaGVyaXRcIixcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSBQaWNrPFRvb2x0aXBDb250ZW50UHJvcHMsIFwic3ViVGhlbWVcIj4gJiB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbi8vIFRoaXMgY29udGFpbmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBhcnJvdyBzaGFkb3cgYmx1clxuY29uc3QgQVJST1dfQ09OVEFJTkVSX1dJRFRIID0gNDA7XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBzdWJUaGVtZSxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHNpemUgPSBBUlJPV19TSVpFLFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgY29uc3QgYWRqdXN0bWVudEZvclNoYWRvdyA9IHN1YlRoZW1lID8gMCA6IDE7XG4gICAgY29uc3QgYXJyb3dDb250YWluZXJIZWlnaHQgPSBzaXplICsgRElTVEFOQ0VfRlJPTV9UUklHR0VSO1xuICAgIC8vIEdldCBhcnJvdyB3aWR0aCBhbmQgaGVpZ2h0IHVzaW5nIHB5dGhvZ29yYXMgdGhlb3JlbSBhbmQgYWRkIDEgdG8gaGVpZ2h0IHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBzaGFkb3cuXG4gICAgY29uc3QgYXJyb3dTaWRlTGVuZ3RoID0gTWF0aC5zcXJ0KFxuICAgICAgc2l6ZSAqKiAyICsgKHNpemUgKyBhZGp1c3RtZW50Rm9yU2hhZG93KSAqKiAyXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IEFSUk9XX0NPTlRBSU5FUl9XSURUSCxcbiAgICAgIGhlaWdodDogYXJyb3dDb250YWluZXJIZWlnaHQsXG4gICAgICB6SW5kZXg6IDEsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgLy8gcGxhY2UgdGhlIGFycm93IGNvbnRhaW5lciAxcHggaW5zaWRlIHRvb2x0aXAgY29udGFpbmVyIHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBib3gtc2hhZG93XG4gICAgICAgIHRvcDogYGNhbGMoMTAwJSAtICR7YWRqdXN0bWVudEZvclNoYWRvd31weClgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJib3R0b21cIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGAtJHthcnJvd0NvbnRhaW5lckhlaWdodCAtIGFkanVzdG1lbnRGb3JTaGFkb3d9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXQgLSAoQVJST1dfQ09OVEFJTkVSX1dJRFRIIC8gMiAtIHNpemUpfXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJsZWZ0XCIgJiYge1xuICAgICAgICByaWdodDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgXCImOjphZnRlclwiOiB7XG4gICAgICAgIGNvbnRlbnQ6ICdcIiBcIicsXG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgPyAwIDogXCIxMDAlXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHdpZHRoOiBhcnJvd1NpZGVMZW5ndGgsXG4gICAgICAgIGhlaWdodDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuXG4gICAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblszXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGluaXRpYWxTdHlsZTogVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiLFxuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImNlbnRlclwiLFxufTtcblxubGV0IGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IDA7XG5cbi8qIERpc2FibGUgYW5pbWF0aW9uIGlmIHRpbWUgYmV0d2VlbiBsYXN0IGNsb3NlIGFuZCBuZXcgb3BlbiBpcyBsZXNzIHRoYW4gNTAwbXMgKyBTSE9XX0hJREVfREVMQVkgKi9cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICBsZXQgYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT059bXNgO1xuXG4gIGlmIChsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXApIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0VG9vbHRpcCA9IERhdGUubm93KCkgLSBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXA7XG5cbiAgICBpZiAodGltZVNpbmNlTGFzdFRvb2x0aXAgPCA1MDAgKyBTSE9XX0hJREVfREVMQVkpIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gXCIwbXNcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xufVxuXG4vKiogVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBvdmVybGF5IGZvciBib3RoIFRvZ2dsZXRpcCBhbmQgVG9vbHRpcCBjb21wb25lbnRzICovXG5leHBvcnQgZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoe1xuICBwbGFjZW1lbnQgPSBcImF1dG9cIixcbiAgY29udGVudCxcbiAgdG9vbHRpcElkLFxuICB0cmlnZ2VyUmVmLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRhdGFFMmVUZXN0SWQsXG4gIGRhdGFEU0lkLFxuICBpc1Zpc2libGUsXG4gIFwiYXJpYS1oaWRkZW5cIjogYXJpYUhpZGRlbixcbiAgcm9sZSxcbiAgdGFiSW5kZXgsXG4gIGNvbnRlbnRQYWRkaW5nLFxuICBtYXhXaWR0aCA9IE1BWF9DT05URU5UX1dJRFRILFxuICBzdWJUaGVtZSxcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXIgPSBmYWxzZSxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIG9uT3ZlcmZsb3dWaWV3cG9ydCxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuXG4gIGNvbnN0IGFycm93U2l6ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlQXJyb3cpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gc3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtzdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyA9IHVzZUNhbGxiYWNrPFxuICAgIFRvb2x0aXBDb250ZW50UHJvcHNbXCJvbk92ZXJmbG93Vmlld3BvcnRcIl1cbiAgPihcbiAgICAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCkgPT4ge1xuICAgICAgaWYgKCFpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ/Lih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3ZlcmZsb3dWaWV3cG9ydCwgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmXVxuICApO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyUmVmLmN1cnJlbnQgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBjYWxjdWxhdGUgdG9vbHRpcCBzdHlsZVxuICAgICAgc2V0U3R5bGUoXG4gICAgICAgIGdldFRvb2x0aXBTdHlsZSh7XG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZSxcbiAgICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ6IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgXSk7XG5cbiAgLy8gVGhpcyBsYXlvdXQgZWZmZWN0IHRvIHJlLXJlbmRlciB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gYWZ0ZXIgZGV0ZXJtaW5pbmcgY29udGVudCB3aWR0aFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgY29udGVudFBhZGRpbmcsIGNvbnRlbnQsIG1heFdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICAvLyBPYnNlcnZlIHRvb2x0aXAgZWxlbWVudCBzaXplIGNoYW5nZXMgdG8gcmVjYWxjdWxhdGUgcG9zaXRpb25pbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgaXNWaXNpYmxlICYmXG4gICAgICB0b29sdGlwUmVmLmN1cnJlbnQgJiZcbiAgICAgIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCA+IDAgJiYgZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodG9vbHRpcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIFJlY2FsY3VsYXRlIHBvc2l0aW9uIHdoZW4gdGhlIHRyaWdnZXIgbW92ZXMgd2l0aG91dCBlbWl0dGluZyBzY3JvbGwvcmVzaXplXG4gIC8vIGV2ZW50cyAoZS5nLiBDU1MgdHJhbnNmb3JtcywgY2FudmFzIHpvb20vcGFuKS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyO1xuICAgIGxldCBwcmV2UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IHRyaWdnZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZSZWN0ICYmXG4gICAgICAgIG5leHRSZWN0ICYmXG4gICAgICAgIChwcmV2UmVjdC54ICE9PSBuZXh0UmVjdC54IHx8XG4gICAgICAgICAgcHJldlJlY3QueSAhPT0gbmV4dFJlY3QueSB8fFxuICAgICAgICAgIHByZXZSZWN0LndpZHRoICE9PSBuZXh0UmVjdC53aWR0aCB8fFxuICAgICAgICAgIHByZXZSZWN0LmhlaWdodCAhPT0gbmV4dFJlY3QuaGVpZ2h0KVxuICAgICAgKSB7XG4gICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICB9XG4gICAgICBwcmV2UmVjdCA9IG5leHRSZWN0O1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgfTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlY2FsY3VsYXRlUG9zaXRpb24pO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCk7XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0cmlnZ2VyUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiBJTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdMb0IifQ== */"),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,...ariaAttributes}){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):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),(0,_react.useEffect)(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),(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:.99})).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,...ariaAttributes,"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:"e7cv2nt0",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiQGFtYm9zcy9kZXNpZ24tdG9rZW5zL3dlYi9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBzdWJUaGVtZT86IFN1YlRoZW1lVHlwZXM7XG4gIG1heFdpZHRoPzogUHJvcGVydHkuTWF4V2lkdGggfCBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBoaWRlQXJyb3c/OiBib29sZWFuO1xuICAvKiogU2V0cyBjc3MgdmlzaWJpbGl0eSBoaWRkZW4gd2hlbiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyPzogYm9vbGVhbjtcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uVG9vbHRpcFBvaW50ZXJMZWF2ZT86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICAvKiogVGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0aGUgdmlld3BvcnQgYm90aCBhYm92ZSBhbmQgYmVsb3cgdHJpZ2dlci4gVXNlIHRoaXMgZm9yIHRyYWNraW5nIHB1cnBvc2VzIG9yIHJlLXJlbmRlcmluZyBQb3BvdmVyIHdpdGggYSBsYXJnZXIgbWF4V2lkdGggKi9cbiAgb25PdmVyZmxvd1ZpZXdwb3J0PzogKFxuICAgIHRyaWdnZXJSZWN0OiBET01SZWN0LFxuICAgIHRvb2x0aXBSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgKSA9PiB2b2lkO1xufSAmIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+ICZcbiAgQXJpYUF0dHJpYnV0ZXM7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG4vLyBVc2UgMC45OSBpbnN0ZWFkIG9mIDEuMCB0byBoYW5kbGUgc3ViLXBpeGVsIHJvdW5kaW5nIGlzc3Vlc1xuLy8gdGhhdCBjYW4gY2F1c2UgaW50ZXJzZWN0aW9uUmF0aW8gdG8gcmVwb3J0IHZhbHVlcyBsaWtlIDAuOTlcbmNvbnN0IElOVEVSU0VDVElPTl9USFJFU0hPTEQgPSAwLjk5O1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRhaW5lclByb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHZlcnRpY2FsUGxhY2VtZW50LFxuICAgIG1heFdpZHRoLFxuICAgIGNvbnRlbnRQYWRkaW5nLFxuICAgIHN1YlRoZW1lLFxuICAgIGlzSGlkZGVuLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiXG4gICAgICAgICAgICA/IGB0cmFuc2xhdGUoLTUwJSwgJHthbmltYXRpb25EaXN0YW5jZX0pYFxuICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nTWFwID0ge1xuICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGludmVydGVkU3ViVGhlbWVTdHlsZXMgPSB7XG4gICAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuICAgICAgLi4uKGNvbnRlbnRQYWRkaW5nICYmIHtcbiAgICAgICAgcGFkZGluZzogY29udGVudFBhZGRpbmdNYXBbY29udGVudFBhZGRpbmddLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHpJbmRleCA9IHVzZVBvcnRhbENoaWxkWkluZGV4KHRoZW1lLnZhcmlhYmxlcy56SW5kZXgudG9vbHRpcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHpJbmRleCxcbiAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbixcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcIm1heC1jb250ZW50XCIsXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdFxuICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBib3JkZXJSYWRpdXM6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnMsXG5cbiAgICAgIC4uLihpc0hpZGRlbiAmJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKCFzdWJUaGVtZSAmJiB7XG4gICAgICAgIFwiOmFmdGVyXCI6IHtcbiAgICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcImluaGVyaXRcIixcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSBQaWNrPFRvb2x0aXBDb250ZW50UHJvcHMsIFwic3ViVGhlbWVcIj4gJiB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbi8vIFRoaXMgY29udGFpbmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBhcnJvdyBzaGFkb3cgYmx1clxuY29uc3QgQVJST1dfQ09OVEFJTkVSX1dJRFRIID0gNDA7XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBzdWJUaGVtZSxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHNpemUgPSBBUlJPV19TSVpFLFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgY29uc3QgYWRqdXN0bWVudEZvclNoYWRvdyA9IHN1YlRoZW1lID8gMCA6IDE7XG4gICAgY29uc3QgYXJyb3dDb250YWluZXJIZWlnaHQgPSBzaXplICsgRElTVEFOQ0VfRlJPTV9UUklHR0VSO1xuICAgIC8vIEdldCBhcnJvdyB3aWR0aCBhbmQgaGVpZ2h0IHVzaW5nIHB5dGhvZ29yYXMgdGhlb3JlbSBhbmQgYWRkIDEgdG8gaGVpZ2h0IHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBzaGFkb3cuXG4gICAgY29uc3QgYXJyb3dTaWRlTGVuZ3RoID0gTWF0aC5zcXJ0KFxuICAgICAgc2l6ZSAqKiAyICsgKHNpemUgKyBhZGp1c3RtZW50Rm9yU2hhZG93KSAqKiAyXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IEFSUk9XX0NPTlRBSU5FUl9XSURUSCxcbiAgICAgIGhlaWdodDogYXJyb3dDb250YWluZXJIZWlnaHQsXG4gICAgICB6SW5kZXg6IDEsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgLy8gcGxhY2UgdGhlIGFycm93IGNvbnRhaW5lciAxcHggaW5zaWRlIHRvb2x0aXAgY29udGFpbmVyIHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBib3gtc2hhZG93XG4gICAgICAgIHRvcDogYGNhbGMoMTAwJSAtICR7YWRqdXN0bWVudEZvclNoYWRvd31weClgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJib3R0b21cIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGAtJHthcnJvd0NvbnRhaW5lckhlaWdodCAtIGFkanVzdG1lbnRGb3JTaGFkb3d9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXQgLSAoQVJST1dfQ09OVEFJTkVSX1dJRFRIIC8gMiAtIHNpemUpfXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJsZWZ0XCIgJiYge1xuICAgICAgICByaWdodDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgXCImOjphZnRlclwiOiB7XG4gICAgICAgIGNvbnRlbnQ6ICdcIiBcIicsXG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgPyAwIDogXCIxMDAlXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHdpZHRoOiBhcnJvd1NpZGVMZW5ndGgsXG4gICAgICAgIGhlaWdodDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuXG4gICAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblszXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGluaXRpYWxTdHlsZTogVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiLFxuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImNlbnRlclwiLFxufTtcblxubGV0IGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IDA7XG5cbi8qIERpc2FibGUgYW5pbWF0aW9uIGlmIHRpbWUgYmV0d2VlbiBsYXN0IGNsb3NlIGFuZCBuZXcgb3BlbiBpcyBsZXNzIHRoYW4gNTAwbXMgKyBTSE9XX0hJREVfREVMQVkgKi9cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICBsZXQgYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT059bXNgO1xuXG4gIGlmIChsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXApIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0VG9vbHRpcCA9IERhdGUubm93KCkgLSBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXA7XG5cbiAgICBpZiAodGltZVNpbmNlTGFzdFRvb2x0aXAgPCA1MDAgKyBTSE9XX0hJREVfREVMQVkpIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gXCIwbXNcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xufVxuXG4vKiogVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBvdmVybGF5IGZvciBib3RoIFRvZ2dsZXRpcCBhbmQgVG9vbHRpcCBjb21wb25lbnRzICovXG5leHBvcnQgZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoe1xuICBwbGFjZW1lbnQgPSBcImF1dG9cIixcbiAgY29udGVudCxcbiAgdG9vbHRpcElkLFxuICB0cmlnZ2VyUmVmLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRhdGFFMmVUZXN0SWQsXG4gIGRhdGFEU0lkLFxuICBpc1Zpc2libGUsXG4gIFwiYXJpYS1oaWRkZW5cIjogYXJpYUhpZGRlbixcbiAgcm9sZSxcbiAgdGFiSW5kZXgsXG4gIGNvbnRlbnRQYWRkaW5nLFxuICBtYXhXaWR0aCA9IE1BWF9DT05URU5UX1dJRFRILFxuICBzdWJUaGVtZSxcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXIgPSBmYWxzZSxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIG9uT3ZlcmZsb3dWaWV3cG9ydCxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuXG4gIGNvbnN0IGFycm93U2l6ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlQXJyb3cpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gc3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtzdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyA9IHVzZUNhbGxiYWNrPFxuICAgIFRvb2x0aXBDb250ZW50UHJvcHNbXCJvbk92ZXJmbG93Vmlld3BvcnRcIl1cbiAgPihcbiAgICAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCkgPT4ge1xuICAgICAgaWYgKCFpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ/Lih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3ZlcmZsb3dWaWV3cG9ydCwgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmXVxuICApO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyUmVmLmN1cnJlbnQgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBjYWxjdWxhdGUgdG9vbHRpcCBzdHlsZVxuICAgICAgc2V0U3R5bGUoXG4gICAgICAgIGdldFRvb2x0aXBTdHlsZSh7XG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZSxcbiAgICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ6IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgXSk7XG5cbiAgLy8gVGhpcyBsYXlvdXQgZWZmZWN0IHRvIHJlLXJlbmRlciB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gYWZ0ZXIgZGV0ZXJtaW5pbmcgY29udGVudCB3aWR0aFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgY29udGVudFBhZGRpbmcsIGNvbnRlbnQsIG1heFdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICAvLyBPYnNlcnZlIHRvb2x0aXAgZWxlbWVudCBzaXplIGNoYW5nZXMgdG8gcmVjYWxjdWxhdGUgcG9zaXRpb25pbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgaXNWaXNpYmxlICYmXG4gICAgICB0b29sdGlwUmVmLmN1cnJlbnQgJiZcbiAgICAgIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCA+IDAgJiYgZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodG9vbHRpcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIFJlY2FsY3VsYXRlIHBvc2l0aW9uIHdoZW4gdGhlIHRyaWdnZXIgbW92ZXMgd2l0aG91dCBlbWl0dGluZyBzY3JvbGwvcmVzaXplXG4gIC8vIGV2ZW50cyAoZS5nLiBDU1MgdHJhbnNmb3JtcywgY2FudmFzIHpvb20vcGFuKS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyO1xuICAgIGxldCBwcmV2UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IHRyaWdnZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZSZWN0ICYmXG4gICAgICAgIG5leHRSZWN0ICYmXG4gICAgICAgIChwcmV2UmVjdC54ICE9PSBuZXh0UmVjdC54IHx8XG4gICAgICAgICAgcHJldlJlY3QueSAhPT0gbmV4dFJlY3QueSB8fFxuICAgICAgICAgIHByZXZSZWN0LndpZHRoICE9PSBuZXh0UmVjdC53aWR0aCB8fFxuICAgICAgICAgIHByZXZSZWN0LmhlaWdodCAhPT0gbmV4dFJlY3QuaGVpZ2h0KVxuICAgICAgKSB7XG4gICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICB9XG4gICAgICBwcmV2UmVjdCA9IG5leHRSZWN0O1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgfTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlY2FsY3VsYXRlUG9zaXRpb24pO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCk7XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0cmlnZ2VyUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiBJTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGd0IifQ== */"),StyledArrow=(0,_styled.default)("div",{target:"e7cv2nt1",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiQGFtYm9zcy9kZXNpZ24tdG9rZW5zL3dlYi9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBzdWJUaGVtZT86IFN1YlRoZW1lVHlwZXM7XG4gIG1heFdpZHRoPzogUHJvcGVydHkuTWF4V2lkdGggfCBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBoaWRlQXJyb3c/OiBib29sZWFuO1xuICAvKiogU2V0cyBjc3MgdmlzaWJpbGl0eSBoaWRkZW4gd2hlbiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyPzogYm9vbGVhbjtcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uVG9vbHRpcFBvaW50ZXJMZWF2ZT86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICAvKiogVGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0aGUgdmlld3BvcnQgYm90aCBhYm92ZSBhbmQgYmVsb3cgdHJpZ2dlci4gVXNlIHRoaXMgZm9yIHRyYWNraW5nIHB1cnBvc2VzIG9yIHJlLXJlbmRlcmluZyBQb3BvdmVyIHdpdGggYSBsYXJnZXIgbWF4V2lkdGggKi9cbiAgb25PdmVyZmxvd1ZpZXdwb3J0PzogKFxuICAgIHRyaWdnZXJSZWN0OiBET01SZWN0LFxuICAgIHRvb2x0aXBSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgKSA9PiB2b2lkO1xufSAmIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+ICZcbiAgQXJpYUF0dHJpYnV0ZXM7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG4vLyBVc2UgMC45OSBpbnN0ZWFkIG9mIDEuMCB0byBoYW5kbGUgc3ViLXBpeGVsIHJvdW5kaW5nIGlzc3Vlc1xuLy8gdGhhdCBjYW4gY2F1c2UgaW50ZXJzZWN0aW9uUmF0aW8gdG8gcmVwb3J0IHZhbHVlcyBsaWtlIDAuOTlcbmNvbnN0IElOVEVSU0VDVElPTl9USFJFU0hPTEQgPSAwLjk5O1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRhaW5lclByb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHZlcnRpY2FsUGxhY2VtZW50LFxuICAgIG1heFdpZHRoLFxuICAgIGNvbnRlbnRQYWRkaW5nLFxuICAgIHN1YlRoZW1lLFxuICAgIGlzSGlkZGVuLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiXG4gICAgICAgICAgICA/IGB0cmFuc2xhdGUoLTUwJSwgJHthbmltYXRpb25EaXN0YW5jZX0pYFxuICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nTWFwID0ge1xuICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGludmVydGVkU3ViVGhlbWVTdHlsZXMgPSB7XG4gICAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuICAgICAgLi4uKGNvbnRlbnRQYWRkaW5nICYmIHtcbiAgICAgICAgcGFkZGluZzogY29udGVudFBhZGRpbmdNYXBbY29udGVudFBhZGRpbmddLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHpJbmRleCA9IHVzZVBvcnRhbENoaWxkWkluZGV4KHRoZW1lLnZhcmlhYmxlcy56SW5kZXgudG9vbHRpcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHpJbmRleCxcbiAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbixcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcIm1heC1jb250ZW50XCIsXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdFxuICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBib3JkZXJSYWRpdXM6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnMsXG5cbiAgICAgIC4uLihpc0hpZGRlbiAmJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKCFzdWJUaGVtZSAmJiB7XG4gICAgICAgIFwiOmFmdGVyXCI6IHtcbiAgICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcImluaGVyaXRcIixcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSBQaWNrPFRvb2x0aXBDb250ZW50UHJvcHMsIFwic3ViVGhlbWVcIj4gJiB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbi8vIFRoaXMgY29udGFpbmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBhcnJvdyBzaGFkb3cgYmx1clxuY29uc3QgQVJST1dfQ09OVEFJTkVSX1dJRFRIID0gNDA7XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBzdWJUaGVtZSxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHNpemUgPSBBUlJPV19TSVpFLFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgY29uc3QgYWRqdXN0bWVudEZvclNoYWRvdyA9IHN1YlRoZW1lID8gMCA6IDE7XG4gICAgY29uc3QgYXJyb3dDb250YWluZXJIZWlnaHQgPSBzaXplICsgRElTVEFOQ0VfRlJPTV9UUklHR0VSO1xuICAgIC8vIEdldCBhcnJvdyB3aWR0aCBhbmQgaGVpZ2h0IHVzaW5nIHB5dGhvZ29yYXMgdGhlb3JlbSBhbmQgYWRkIDEgdG8gaGVpZ2h0IHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBzaGFkb3cuXG4gICAgY29uc3QgYXJyb3dTaWRlTGVuZ3RoID0gTWF0aC5zcXJ0KFxuICAgICAgc2l6ZSAqKiAyICsgKHNpemUgKyBhZGp1c3RtZW50Rm9yU2hhZG93KSAqKiAyXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IEFSUk9XX0NPTlRBSU5FUl9XSURUSCxcbiAgICAgIGhlaWdodDogYXJyb3dDb250YWluZXJIZWlnaHQsXG4gICAgICB6SW5kZXg6IDEsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgLy8gcGxhY2UgdGhlIGFycm93IGNvbnRhaW5lciAxcHggaW5zaWRlIHRvb2x0aXAgY29udGFpbmVyIHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBib3gtc2hhZG93XG4gICAgICAgIHRvcDogYGNhbGMoMTAwJSAtICR7YWRqdXN0bWVudEZvclNoYWRvd31weClgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJib3R0b21cIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGAtJHthcnJvd0NvbnRhaW5lckhlaWdodCAtIGFkanVzdG1lbnRGb3JTaGFkb3d9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXQgLSAoQVJST1dfQ09OVEFJTkVSX1dJRFRIIC8gMiAtIHNpemUpfXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJsZWZ0XCIgJiYge1xuICAgICAgICByaWdodDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgXCImOjphZnRlclwiOiB7XG4gICAgICAgIGNvbnRlbnQ6ICdcIiBcIicsXG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgPyAwIDogXCIxMDAlXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHdpZHRoOiBhcnJvd1NpZGVMZW5ndGgsXG4gICAgICAgIGhlaWdodDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuXG4gICAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblszXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGluaXRpYWxTdHlsZTogVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiLFxuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImNlbnRlclwiLFxufTtcblxubGV0IGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IDA7XG5cbi8qIERpc2FibGUgYW5pbWF0aW9uIGlmIHRpbWUgYmV0d2VlbiBsYXN0IGNsb3NlIGFuZCBuZXcgb3BlbiBpcyBsZXNzIHRoYW4gNTAwbXMgKyBTSE9XX0hJREVfREVMQVkgKi9cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICBsZXQgYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT059bXNgO1xuXG4gIGlmIChsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXApIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0VG9vbHRpcCA9IERhdGUubm93KCkgLSBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXA7XG5cbiAgICBpZiAodGltZVNpbmNlTGFzdFRvb2x0aXAgPCA1MDAgKyBTSE9XX0hJREVfREVMQVkpIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gXCIwbXNcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xufVxuXG4vKiogVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBvdmVybGF5IGZvciBib3RoIFRvZ2dsZXRpcCBhbmQgVG9vbHRpcCBjb21wb25lbnRzICovXG5leHBvcnQgZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoe1xuICBwbGFjZW1lbnQgPSBcImF1dG9cIixcbiAgY29udGVudCxcbiAgdG9vbHRpcElkLFxuICB0cmlnZ2VyUmVmLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRhdGFFMmVUZXN0SWQsXG4gIGRhdGFEU0lkLFxuICBpc1Zpc2libGUsXG4gIFwiYXJpYS1oaWRkZW5cIjogYXJpYUhpZGRlbixcbiAgcm9sZSxcbiAgdGFiSW5kZXgsXG4gIGNvbnRlbnRQYWRkaW5nLFxuICBtYXhXaWR0aCA9IE1BWF9DT05URU5UX1dJRFRILFxuICBzdWJUaGVtZSxcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXIgPSBmYWxzZSxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIG9uT3ZlcmZsb3dWaWV3cG9ydCxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuXG4gIGNvbnN0IGFycm93U2l6ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlQXJyb3cpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gc3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtzdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyA9IHVzZUNhbGxiYWNrPFxuICAgIFRvb2x0aXBDb250ZW50UHJvcHNbXCJvbk92ZXJmbG93Vmlld3BvcnRcIl1cbiAgPihcbiAgICAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCkgPT4ge1xuICAgICAgaWYgKCFpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ/Lih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3ZlcmZsb3dWaWV3cG9ydCwgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmXVxuICApO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyUmVmLmN1cnJlbnQgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBjYWxjdWxhdGUgdG9vbHRpcCBzdHlsZVxuICAgICAgc2V0U3R5bGUoXG4gICAgICAgIGdldFRvb2x0aXBTdHlsZSh7XG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZSxcbiAgICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ6IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgXSk7XG5cbiAgLy8gVGhpcyBsYXlvdXQgZWZmZWN0IHRvIHJlLXJlbmRlciB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gYWZ0ZXIgZGV0ZXJtaW5pbmcgY29udGVudCB3aWR0aFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgY29udGVudFBhZGRpbmcsIGNvbnRlbnQsIG1heFdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICAvLyBPYnNlcnZlIHRvb2x0aXAgZWxlbWVudCBzaXplIGNoYW5nZXMgdG8gcmVjYWxjdWxhdGUgcG9zaXRpb25pbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgaXNWaXNpYmxlICYmXG4gICAgICB0b29sdGlwUmVmLmN1cnJlbnQgJiZcbiAgICAgIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCA+IDAgJiYgZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodG9vbHRpcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIFJlY2FsY3VsYXRlIHBvc2l0aW9uIHdoZW4gdGhlIHRyaWdnZXIgbW92ZXMgd2l0aG91dCBlbWl0dGluZyBzY3JvbGwvcmVzaXplXG4gIC8vIGV2ZW50cyAoZS5nLiBDU1MgdHJhbnNmb3JtcywgY2FudmFzIHpvb20vcGFuKS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyO1xuICAgIGxldCBwcmV2UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IHRyaWdnZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZSZWN0ICYmXG4gICAgICAgIG5leHRSZWN0ICYmXG4gICAgICAgIChwcmV2UmVjdC54ICE9PSBuZXh0UmVjdC54IHx8XG4gICAgICAgICAgcHJldlJlY3QueSAhPT0gbmV4dFJlY3QueSB8fFxuICAgICAgICAgIHByZXZSZWN0LndpZHRoICE9PSBuZXh0UmVjdC53aWR0aCB8fFxuICAgICAgICAgIHByZXZSZWN0LmhlaWdodCAhPT0gbmV4dFJlY3QuaGVpZ2h0KVxuICAgICAgKSB7XG4gICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICB9XG4gICAgICBwcmV2UmVjdCA9IG5leHRSZWN0O1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgfTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlY2FsY3VsYXRlUG9zaXRpb24pO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCk7XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0cmlnZ2VyUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiBJTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdMb0IifQ== */"),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,...ariaAttributes}){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):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),(0,_react.useEffect)(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),(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:.99})).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,...ariaAttributes,"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,4 +1,4 @@
1
- import type { VisualConfig } from "./web-tokens/visualConfig";
1
+ import type { VisualConfig } from "@amboss/design-tokens/web/visualConfig";
2
2
  export type { VisualConfig };
3
3
  export declare const dark: VisualConfig, light: VisualConfig;
4
4
  export { ThemeProvider, CacheProvider } from "@emotion/react";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("./web-tokens/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/AnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("@amboss/design-tokens/web/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/AnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get mq(){return mq},get mqValue(){return mqValue},get useResponsiveStyles(){return useResponsiveStyles},get useResponsiveValue(){return useResponsiveValue}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=require("react"),_ContainerQueryContext=require("../components/Utilities/ContainerQuery/ContainerQueryContext"),_breakpointsjson=/*#__PURE__*/_interop_require_default._(require("../web-tokens/_breakpoints.json")),defaultMqBreakpoints=[`@media (max-width: ${_breakpointsjson.default.m.value}px)`,`@media (min-width: ${_breakpointsjson.default.m.value}px) and (max-width: ${_breakpointsjson.default.xl.value}px)`,`@media (min-width: ${_breakpointsjson.default.xl.value}px)`],generateStyles=(cssProperty,prop,breakpointsRules,res,map)=>{let getValue=value=>map?"function"==typeof map?map(value):map[value]:value;if(Array.isArray(prop)){let sm=prop[0],md=prop[1]??prop[0],lg=prop[2]??prop[1]??prop[0],[s,m,l]=breakpointsRules;res[s]||(res[s]={}),res[s][cssProperty]=getValue(sm),m&&(res[m]||(res[m]={}),res[m][cssProperty]=getValue(md)),l&&(res[l]||(res[l]={}),res[l][cssProperty]=getValue(lg))}else res["@media screen"]||(res["@media screen"]={}),res["@media screen"][cssProperty]=getValue(prop);return res};function getQueries(mqBreakpoints,cqBreakpoints){return rules=>{let res={};return Object.entries(rules).forEach(([cssProp,[prop,map]])=>{prop&&(generateStyles(cssProp,prop?.mq||prop,mqBreakpoints,res,map),cqBreakpoints&&generateStyles(cssProp,prop?.cq||prop,cqBreakpoints,res,map))}),res}}const mq=getQueries(defaultMqBreakpoints),useResponsiveStyles=rules=>{let cqBreakpoints=(0,_react.useContext)(_ContainerQueryContext.ContainerQueryContext);return cqBreakpoints?getQueries(defaultMqBreakpoints,cqBreakpoints)(rules):mq(rules)};function getQueriesValue(mqBreakpoints,cqBreakpoints){return rules=>{let res={};return Object.entries(rules).forEach(([cssProp,values])=>{values&&(generateStyles(cssProp,values?.mq||values,mqBreakpoints,res),cqBreakpoints&&generateStyles(cssProp,values?.cq||values,cqBreakpoints,res))}),res}}const mqValue=getQueriesValue(defaultMqBreakpoints),useResponsiveValue=rules=>{let cqBreakpoints=(0,_react.useContext)(_ContainerQueryContext.ContainerQueryContext);return cqBreakpoints?getQueriesValue(defaultMqBreakpoints,cqBreakpoints)(rules):mqValue(rules)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get mq(){return mq},get mqValue(){return mqValue},get useResponsiveStyles(){return useResponsiveStyles},get useResponsiveValue(){return useResponsiveValue}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=require("react"),_breakpointsjson=/*#__PURE__*/_interop_require_default._(require("@amboss/design-tokens/web/_breakpoints.json")),_ContainerQueryContext=require("../components/Utilities/ContainerQuery/ContainerQueryContext"),defaultMqBreakpoints=[`@media (max-width: ${_breakpointsjson.default.m.value}px)`,`@media (min-width: ${_breakpointsjson.default.m.value}px) and (max-width: ${_breakpointsjson.default.xl.value}px)`,`@media (min-width: ${_breakpointsjson.default.xl.value}px)`],generateStyles=(cssProperty,prop,breakpointsRules,res,map)=>{let getValue=value=>map?"function"==typeof map?map(value):map[value]:value;if(Array.isArray(prop)){let sm=prop[0],md=prop[1]??prop[0],lg=prop[2]??prop[1]??prop[0],[s,m,l]=breakpointsRules;res[s]||(res[s]={}),res[s][cssProperty]=getValue(sm),m&&(res[m]||(res[m]={}),res[m][cssProperty]=getValue(md)),l&&(res[l]||(res[l]={}),res[l][cssProperty]=getValue(lg))}else res["@media screen"]||(res["@media screen"]={}),res["@media screen"][cssProperty]=getValue(prop);return res};function getQueries(mqBreakpoints,cqBreakpoints){return rules=>{let res={};return Object.entries(rules).forEach(([cssProp,[prop,map]])=>{prop&&(generateStyles(cssProp,prop?.mq||prop,mqBreakpoints,res,map),cqBreakpoints&&generateStyles(cssProp,prop?.cq||prop,cqBreakpoints,res,map))}),res}}const mq=getQueries(defaultMqBreakpoints),useResponsiveStyles=rules=>{let cqBreakpoints=(0,_react.useContext)(_ContainerQueryContext.ContainerQueryContext);return cqBreakpoints?getQueries(defaultMqBreakpoints,cqBreakpoints)(rules):mq(rules)};function getQueriesValue(mqBreakpoints,cqBreakpoints){return rules=>{let res={};return Object.entries(rules).forEach(([cssProp,values])=>{values&&(generateStyles(cssProp,values?.mq||values,mqBreakpoints,res),cqBreakpoints&&generateStyles(cssProp,values?.cq||values,cqBreakpoints,res))}),res}}const mqValue=getQueriesValue(defaultMqBreakpoints),useResponsiveValue=rules=>{let cqBreakpoints=(0,_react.useContext)(_ContainerQueryContext.ContainerQueryContext);return cqBreakpoints?getQueriesValue(defaultMqBreakpoints,cqBreakpoints)(rules):mqValue(rules)};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useBreakpoints",{enumerable:!0,get:function(){return useBreakpoints}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=require("react"),_breakpointsjson=/*#__PURE__*/_interop_require_default._(require("../web-tokens/_breakpoints.json")),_useWindow=require("./useWindow");function useBreakpoints(){let window=(0,_useWindow.useWindow)(),[width,setWidth]=(0,_react.useState)(()=>window?window.innerWidth:_breakpointsjson.default.xl.value);return(0,_react.useEffect)(()=>{if(!window)return;let handleResize=()=>{setWidth(window.innerWidth)};return handleResize(),window.addEventListener("resize",handleResize),()=>window.removeEventListener("resize",handleResize)},[window]),(0,_react.useMemo)(()=>({isSmallMobile:width<_breakpointsjson.default.s.value,isMobile:width<_breakpointsjson.default.m.value,isTablet:width>=_breakpointsjson.default.m.value&&width<_breakpointsjson.default.l.value,isDesktop:width>=_breakpointsjson.default.l.value,isLargeDesktop:width>=_breakpointsjson.default.xl.value}),[width])}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useBreakpoints",{enumerable:!0,get:function(){return useBreakpoints}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=require("react"),_breakpointsjson=/*#__PURE__*/_interop_require_default._(require("@amboss/design-tokens/web/_breakpoints.json")),_useWindow=require("./useWindow");function useBreakpoints(){let window=(0,_useWindow.useWindow)(),[width,setWidth]=(0,_react.useState)(()=>window?window.innerWidth:_breakpointsjson.default.xl.value);return(0,_react.useEffect)(()=>{if(!window)return;let handleResize=()=>{setWidth(window.innerWidth)};return handleResize(),window.addEventListener("resize",handleResize),()=>window.removeEventListener("resize",handleResize)},[window]),(0,_react.useMemo)(()=>({isSmallMobile:width<_breakpointsjson.default.s.value,isMobile:width<_breakpointsjson.default.m.value,isTablet:width>=_breakpointsjson.default.m.value&&width<_breakpointsjson.default.l.value,isDesktop:width>=_breakpointsjson.default.l.value,isLargeDesktop:width>=_breakpointsjson.default.xl.value}),[width])}
@@ -77,7 +77,7 @@
77
77
  "value": "16px",
78
78
  "original": 16,
79
79
  "variableName": "$size-dimension-checkbox-s",
80
- "isUsed": true
80
+ "isUsed": false
81
81
  },
82
82
  {
83
83
  "category": "size",
@@ -97,7 +97,7 @@
97
97
  "value": "16px",
98
98
  "original": 16,
99
99
  "variableName": "$size-dimension-radio-s",
100
- "isUsed": true
100
+ "isUsed": false
101
101
  },
102
102
  {
103
103
  "category": "size",
@@ -137,7 +137,7 @@
137
137
  "value": "16px",
138
138
  "original": 16,
139
139
  "variableName": "$size-dimension-toggle-height-s",
140
- "isUsed": true
140
+ "isUsed": false
141
141
  },
142
142
  {
143
143
  "category": "size",
@@ -157,7 +157,7 @@
157
157
  "value": "28px",
158
158
  "original": 28,
159
159
  "variableName": "$size-dimension-toggle-width-s",
160
- "isUsed": true
160
+ "isUsed": false
161
161
  },
162
162
  {
163
163
  "category": "size",
@@ -247,7 +247,7 @@
247
247
  "value": "800px",
248
248
  "original": 800,
249
249
  "variableName": "$size-dimension-modal-max-height-l",
250
- "isUsed": true
250
+ "isUsed": false
251
251
  },
252
252
  {
253
253
  "category": "size",
@@ -257,7 +257,7 @@
257
257
  "value": "40px",
258
258
  "original": 40,
259
259
  "variableName": "$size-dimension-modal-margin-l",
260
- "isUsed": true
260
+ "isUsed": false
261
261
  },
262
262
  {
263
263
  "category": "size",
@@ -267,7 +267,7 @@
267
267
  "value": "1280px",
268
268
  "original": 1280,
269
269
  "variableName": "$size-dimension-modal-full-screen-content-width",
270
- "isUsed": true
270
+ "isUsed": false
271
271
  },
272
272
  {
273
273
  "category": "size",
@@ -307,7 +307,7 @@
307
307
  "value": "0.5px",
308
308
  "original": 0.5,
309
309
  "variableName": "$size-letter-spacing-s",
310
- "isUsed": true
310
+ "isUsed": false
311
311
  },
312
312
  {
313
313
  "category": "size",
@@ -327,7 +327,7 @@
327
327
  "value": "12px",
328
328
  "original": 12,
329
329
  "variableName": "$size-font-xs",
330
- "isUsed": true
330
+ "isUsed": false
331
331
  },
332
332
  {
333
333
  "category": "size",
@@ -337,7 +337,7 @@
337
337
  "value": "14px",
338
338
  "original": 14,
339
339
  "variableName": "$size-font-s",
340
- "isUsed": true
340
+ "isUsed": false
341
341
  },
342
342
  {
343
343
  "category": "size",
@@ -347,7 +347,7 @@
347
347
  "value": "16px",
348
348
  "original": 16,
349
349
  "variableName": "$size-font-m",
350
- "isUsed": true
350
+ "isUsed": false
351
351
  },
352
352
  {
353
353
  "category": "size",
@@ -357,7 +357,7 @@
357
357
  "value": "18px",
358
358
  "original": 18,
359
359
  "variableName": "$size-font-l",
360
- "isUsed": true
360
+ "isUsed": false
361
361
  },
362
362
  {
363
363
  "category": "size",
@@ -367,7 +367,7 @@
367
367
  "value": "20px",
368
368
  "original": 20,
369
369
  "variableName": "$size-font-xl",
370
- "isUsed": true
370
+ "isUsed": false
371
371
  },
372
372
  {
373
373
  "category": "size",
@@ -377,7 +377,7 @@
377
377
  "value": "24px",
378
378
  "original": 24,
379
379
  "variableName": "$size-font-xxl",
380
- "isUsed": true
380
+ "isUsed": false
381
381
  },
382
382
  {
383
383
  "category": "size",
@@ -387,7 +387,7 @@
387
387
  "value": "26px",
388
388
  "original": 26,
389
389
  "variableName": "$size-font-xxxl",
390
- "isUsed": true
390
+ "isUsed": false
391
391
  },
392
392
  {
393
393
  "category": "size",
@@ -407,7 +407,7 @@
407
407
  "value": "2px",
408
408
  "original": 2,
409
409
  "variableName": "$size-spacing-xxxs",
410
- "isUsed": true
410
+ "isUsed": false
411
411
  },
412
412
  {
413
413
  "category": "size",
@@ -487,7 +487,7 @@
487
487
  "value": "0px",
488
488
  "original": 0,
489
489
  "variableName": "$size-border-radius-none",
490
- "isUsed": true
490
+ "isUsed": false
491
491
  },
492
492
  {
493
493
  "category": "size",
@@ -497,7 +497,7 @@
497
497
  "value": "4px",
498
498
  "original": 4,
499
499
  "variableName": "$size-border-radius-xs",
500
- "isUsed": true
500
+ "isUsed": false
501
501
  },
502
502
  {
503
503
  "category": "size",
@@ -507,7 +507,7 @@
507
507
  "value": "8px",
508
508
  "original": 8,
509
509
  "variableName": "$size-border-radius-s",
510
- "isUsed": true
510
+ "isUsed": false
511
511
  },
512
512
  {
513
513
  "category": "size",
@@ -517,7 +517,7 @@
517
517
  "value": "12px",
518
518
  "original": 12,
519
519
  "variableName": "$size-border-radius-m",
520
- "isUsed": true
520
+ "isUsed": false
521
521
  },
522
522
  {
523
523
  "category": "size",
@@ -527,7 +527,7 @@
527
527
  "value": "16px",
528
528
  "original": 16,
529
529
  "variableName": "$size-border-radius-l",
530
- "isUsed": true
530
+ "isUsed": false
531
531
  },
532
532
  {
533
533
  "category": "size",
@@ -537,7 +537,7 @@
537
537
  "value": "24px",
538
538
  "original": 24,
539
539
  "variableName": "$size-border-radius-xl",
540
- "isUsed": true
540
+ "isUsed": false
541
541
  },
542
542
  {
543
543
  "category": "size",
@@ -547,7 +547,7 @@
547
547
  "value": "9999px",
548
548
  "original": 9999,
549
549
  "variableName": "$size-border-radius-full",
550
- "isUsed": true
550
+ "isUsed": false
551
551
  },
552
552
  {
553
553
  "category": "size",
@@ -557,7 +557,7 @@
557
557
  "value": 1.1428571429,
558
558
  "original": 1.1428571429,
559
559
  "variableName": "$size-line-height-xs",
560
- "isUsed": true
560
+ "isUsed": false
561
561
  },
562
562
  {
563
563
  "category": "size",
@@ -567,7 +567,7 @@
567
567
  "value": 1.25,
568
568
  "original": 1.25,
569
569
  "variableName": "$size-line-height-s",
570
- "isUsed": true
570
+ "isUsed": false
571
571
  },
572
572
  {
573
573
  "category": "size",
@@ -577,7 +577,7 @@
577
577
  "value": 1.3333333,
578
578
  "original": 1.3333333,
579
579
  "variableName": "$size-line-height-m",
580
- "isUsed": true
580
+ "isUsed": false
581
581
  },
582
582
  {
583
583
  "category": "size",
@@ -587,7 +587,7 @@
587
587
  "value": 1.4285714286,
588
588
  "original": 1.4285714286,
589
589
  "variableName": "$size-line-height-l",
590
- "isUsed": true
590
+ "isUsed": false
591
591
  },
592
592
  {
593
593
  "category": "size",
@@ -597,7 +597,7 @@
597
597
  "value": 1.5,
598
598
  "original": 1.5,
599
599
  "variableName": "$size-line-height-xl",
600
- "isUsed": true
600
+ "isUsed": false
601
601
  },
602
602
  {
603
603
  "category": "size",
@@ -1 +1,2 @@
1
+ // This file is generated via "bun run tokens:web". Do not edit directly.
1
2
  export type SubThemeTypes = "ai" | "brand" | "brandSubtle" | "dimmed" | "dimmedSubtle" | "error" | "info" | "inverted" | "success";