@amboss/design-system 4.2.5 → 4.2.6

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 (35) hide show
  1. package/build/cjs/components/EntityList/BaseEntityList.d.ts +1 -1
  2. package/build/cjs/components/EntityList/BaseEntityList.js +1 -1
  3. package/build/cjs/components/EntityList/EntityListItem.d.ts +29 -2
  4. package/build/cjs/components/EntityList/EntityListItem.js +1 -1
  5. package/build/cjs/components/EntityList/types.d.ts +27 -2
  6. package/build/cjs/components/EntityTree/BaseEntityTree.d.ts +14 -1
  7. package/build/cjs/components/EntityTree/BaseEntityTree.js +1 -1
  8. package/build/cjs/components/EntityTree/EntityTreeItem.d.ts +29 -2
  9. package/build/cjs/components/EntityTree/EntityTreeItem.js +1 -1
  10. package/build/cjs/components/Tooltip/BaseTooltip.d.ts +2 -2
  11. package/build/cjs/components/Tooltip/BaseTooltip.js +1 -1
  12. package/build/cjs/components/Tooltip/TooltipContent.d.ts +26 -1
  13. package/build/cjs/components/Tooltip/TooltipContent.js +1 -1
  14. package/build/cjs/components/Tooltip/getSideTooltipStyle.d.ts +14 -0
  15. package/build/cjs/components/Tooltip/getSideTooltipStyle.js +1 -0
  16. package/build/cjs/components/Tooltip/utils.d.ts +7 -2
  17. package/build/cjs/components/Tooltip/utils.js +1 -1
  18. package/build/esm/components/EntityList/BaseEntityList.d.ts +1 -1
  19. package/build/esm/components/EntityList/BaseEntityList.js +1 -1
  20. package/build/esm/components/EntityList/EntityListItem.d.ts +29 -2
  21. package/build/esm/components/EntityList/EntityListItem.js +1 -1
  22. package/build/esm/components/EntityList/types.d.ts +27 -2
  23. package/build/esm/components/EntityTree/BaseEntityTree.d.ts +14 -1
  24. package/build/esm/components/EntityTree/BaseEntityTree.js +1 -1
  25. package/build/esm/components/EntityTree/EntityTreeItem.d.ts +29 -2
  26. package/build/esm/components/EntityTree/EntityTreeItem.js +1 -1
  27. package/build/esm/components/Tooltip/BaseTooltip.d.ts +2 -2
  28. package/build/esm/components/Tooltip/BaseTooltip.js +1 -1
  29. package/build/esm/components/Tooltip/TooltipContent.d.ts +26 -1
  30. package/build/esm/components/Tooltip/TooltipContent.js +1 -1
  31. package/build/esm/components/Tooltip/getSideTooltipStyle.d.ts +14 -0
  32. package/build/esm/components/Tooltip/getSideTooltipStyle.js +1 -0
  33. package/build/esm/components/Tooltip/utils.d.ts +7 -2
  34. package/build/esm/components/Tooltip/utils.js +1 -1
  35. package/package.json +7 -7
@@ -1 +1 @@
1
- import React,{useCallback,useRef}from"react";import styled from"@emotion/styled";import{useResponsiveValue}from"../../shared/mediaQueries";import{EntityTreeItemExpandButton}from"./EntityTreeItemExpandButton";import{useKeyboard}from"../../shared/useKeyboard";import{getFocusStyles}from"../../shared/mixins";import{EntityItemBody}from"../EntityList/EntityItemBody";import{StyledEntityItem,StyledEntityListItemWrapper,StyledEntityListItemButton}from"../EntityList/styled-components";let StyledEntityTreeItemWrapper=styled(StyledEntityListItemWrapper,{target:"e1n4xnc20",label:"StyledEntityTreeItemWrapper"})({paddingLeft:"0 !important"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5VHJlZS9FbnRpdHlUcmVlSXRlbS50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eVRyZWUvRW50aXR5VHJlZUl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZVJlc3BvbnNpdmVWYWx1ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5pbXBvcnQgeyBFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvbiB9IGZyb20gXCIuL0VudGl0eVRyZWVJdGVtRXhwYW5kQnV0dG9uXCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlS2V5Ym9hcmRcIjtcbmltcG9ydCB7IGdldEZvY3VzU3R5bGVzIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9taXhpbnNcIjtcbmltcG9ydCB7IEVudGl0eUl0ZW1Cb2R5IH0gZnJvbSBcIi4uL0VudGl0eUxpc3QvRW50aXR5SXRlbUJvZHlcIjtcbmltcG9ydCB7XG4gIFN0eWxlZEVudGl0eUl0ZW0sXG4gIFN0eWxlZEVudGl0eUxpc3RJdGVtV3JhcHBlcixcbiAgU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24sXG59IGZyb20gXCIuLi9FbnRpdHlMaXN0L3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RJdGVtUHJvcHMgfSBmcm9tIFwiLi4vRW50aXR5TGlzdC90eXBlc1wiO1xuXG5jb25zdCBTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1XcmFwcGVyKSh7XG4gIHBhZGRpbmdMZWZ0OiBcIjAgIWltcG9ydGFudFwiLCAvLyBcImltcG9ydGFudFwiIGlzIG5lZWRlZCB0byBvdmVycmlkZSB0aGUgQG1lZGlhIHF1ZXJ5IG9mIE1RIGZ1bmN0aW9uXG59KTtcblxuY29uc3QgU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24pPHtcbiAgaGFzRXhwYW5kYWJsZUljb246IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGFzRXhwYW5kYWJsZUljb24sIGxTcGFjZVN0ZXAgfSkgPT4ge1xuICBjb25zdCBnZXRTaXplID0gKGJhc2VPZmZzZXQ6IHN0cmluZywgZGVlcGVzdE5vZGVPZmZzZXQ6IHN0cmluZykgPT5cbiAgICBgY2FsYygke2Jhc2VPZmZzZXR9ICogJHtsU3BhY2VTdGVwfSArICR7XG4gICAgICBoYXNFeHBhbmRhYmxlSWNvbiA/IFwiMHB4XCIgOiBkZWVwZXN0Tm9kZU9mZnNldFxuICAgIH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Rm9jdXNTdHlsZXMoeyBvZmZzZXQ6IC0yIH0pLFxuICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICBwYWRkaW5nTGVmdDogW1xuICAgICAgICAvLyA0MnB4IGFuZCA1NnB4IGFyZSBFeHBhbmQgYnV0dG9uIHdpZHRoICsgcGFkZGluZ1xuICAgICAgICAvLyBpdCdzIG5lZWRlZCBmb3IgYSBkZWVwZXN0IG5vZGUgd2l0aG91dCBleHBhbmRCdXR0b25cbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sIFwiNDJweFwiKSxcbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhsLCBcIjU2cHhcIiksXG4gICAgICBdLFxuICAgIH0pLFxuICB9O1xufSk7XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlUcmVlSXRlbSA9ICh7XG4gIGNoZWNrYm94UHJvcHMsXG4gIGNoaWxkcmVuLFxuICBkZXNjcmlwdGlvbixcbiAgaGlkZUJvcmRlcixcbiAgaXNBY3RpdmUsXG4gIGlzQ2xpY2thYmxlLFxuICBpc0Rpc2FibGVkLFxuICBpc0Rpc2FibGVkRXhwYW5kLFxuICBpc0V4cGFuZGVkLFxuICBsU3BhY2VTdGVwLFxuICBvbkNsaWNrLFxuICBvbkV4cGFuZENsaWNrLFxuICBvblNwYWNlRW50ZXJQcmVzcyxcbiAgcmVuZGVyTGFiZWwsXG4gIHJlbmRlckxlZnQsXG4gIHJlbmRlclJpZ2h0LFxuICBzaXplID0gXCJtXCIsXG4gIHRhYkluZGV4LFxuICBhcmlhTGFiZWxFeHBhbmQsXG4gIGFyaWFMYWJlbENvbGxhcHNlLFxuICBcImFyaWEtbGV2ZWxcIjogYXJpYUxldmVsLFxuICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICBcImRhdGEtbGlzdC1pdGVtXCI6IGRhdGFMaXN0SXRlbSxcbn06IEVudGl0eUxpc3RJdGVtUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT4ge1xuICBjb25zdCBoYXNFeHBhbmRhYmxlSWNvbiA9IGlzRXhwYW5kZWQgIT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVPbkNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgIG9uQ2xpY2soZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DbGlja11cbiAgKTtcblxuICBjb25zdCBidXR0b25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIFwiU3BhY2UgRW50ZXJcIjogb25TcGFjZUVudGVyUHJlc3MsXG4gICAgfSxcbiAgICBidXR0b25SZWYsXG4gICAgdGFiSW5kZXggPT09IDAgJiYgKGlzQ2xpY2thYmxlIHx8ICEhY2hlY2tib3hQcm9wcyksXG4gICAgdHJ1ZVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEVudGl0eUl0ZW1cbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICBhcmlhLWV4cGFuZGVkPXtoYXNFeHBhbmRhYmxlSWNvbiA/IGlzRXhwYW5kZWQgOiB1bmRlZmluZWR9XG4gICAgICBhcmlhLWNoZWNrZWQ9e2NoZWNrYm94UHJvcHM/LmNoZWNrZWR9XG4gICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICBhcmlhLWxldmVsPXthcmlhTGV2ZWx9XG4gICAgPlxuICAgICAgPFN0eWxlZEVudGl0eVRyZWVJdGVtQ29udGFpbmVyXG4gICAgICAgIGRhdGEtbGlzdC1pdGVtPXtkYXRhTGlzdEl0ZW19XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHJlZj17YnV0dG9uUmVmfVxuICAgICAgICBkYXRhLWlkPVwibGlzdC1pdGVtXCJcbiAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBoYXNFeHBhbmRhYmxlSWNvbj17aGFzRXhwYW5kYWJsZUljb259XG4gICAgICAgIGxTcGFjZVN0ZXA9e2xTcGFjZVN0ZXB9XG4gICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9uQ2xpY2t9XG4gICAgICAgIGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgID5cbiAgICAgICAge2hhc0V4cGFuZGFibGVJY29uICYmIChcbiAgICAgICAgICA8RW50aXR5VHJlZUl0ZW1FeHBhbmRCdXR0b25cbiAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkRXhwYW5kIHx8IGlzRGlzYWJsZWR9XG4gICAgICAgICAgICBpc0V4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17b25FeHBhbmRDbGlja31cbiAgICAgICAgICAgIGFyaWFMYWJlbEV4cGFuZD17YXJpYUxhYmVsRXhwYW5kfVxuICAgICAgICAgICAgYXJpYUxhYmVsQ29sbGFwc2U9e2FyaWFMYWJlbENvbGxhcHNlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXJcbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGhpZGVCb3JkZXI9e2hpZGVCb3JkZXIgfHwgc2l6ZSA9PT0gXCJ4c1wifVxuICAgICAgICA+XG4gICAgICAgICAgPEVudGl0eUl0ZW1Cb2R5XG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgcmVuZGVyTGFiZWw9e3JlbmRlckxhYmVsfVxuICAgICAgICAgICAgcmVuZGVyTGVmdD17cmVuZGVyTGVmdH1cbiAgICAgICAgICAgIHJlbmRlclJpZ2h0PXtyZW5kZXJSaWdodH1cbiAgICAgICAgICAgIGNoZWNrYm94UHJvcHM9e2NoZWNrYm94UHJvcHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXI+XG4gICAgICA8L1N0eWxlZEVudGl0eVRyZWVJdGVtQ29udGFpbmVyPlxuICAgICAge2lzRXhwYW5kZWQgJiYgY2hpbGRyZW59XG4gICAgPC9TdHlsZWRFbnRpdHlJdGVtPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjb0MifQ== */"),StyledEntityTreeItemContainer=styled(StyledEntityListItemButton,{target:"e1n4xnc21",label:"StyledEntityTreeItemContainer"})(({theme,hasExpandableIcon,lSpaceStep})=>{let getSize=(baseOffset,deepestNodeOffset)=>`calc(${baseOffset} * ${lSpaceStep} + ${hasExpandableIcon?"0px":deepestNodeOffset} + ${theme.variables.size.spacing.xxs})`;return{...getFocusStyles({offset:-2}),...useResponsiveValue({paddingLeft:[getSize(theme.variables.size.spacing.m,"42px"),getSize(theme.variables.size.spacing.xl,"56px")]})}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5VHJlZS9FbnRpdHlUcmVlSXRlbS50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eVRyZWUvRW50aXR5VHJlZUl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZVJlc3BvbnNpdmVWYWx1ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5pbXBvcnQgeyBFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvbiB9IGZyb20gXCIuL0VudGl0eVRyZWVJdGVtRXhwYW5kQnV0dG9uXCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlS2V5Ym9hcmRcIjtcbmltcG9ydCB7IGdldEZvY3VzU3R5bGVzIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9taXhpbnNcIjtcbmltcG9ydCB7IEVudGl0eUl0ZW1Cb2R5IH0gZnJvbSBcIi4uL0VudGl0eUxpc3QvRW50aXR5SXRlbUJvZHlcIjtcbmltcG9ydCB7XG4gIFN0eWxlZEVudGl0eUl0ZW0sXG4gIFN0eWxlZEVudGl0eUxpc3RJdGVtV3JhcHBlcixcbiAgU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24sXG59IGZyb20gXCIuLi9FbnRpdHlMaXN0L3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RJdGVtUHJvcHMgfSBmcm9tIFwiLi4vRW50aXR5TGlzdC90eXBlc1wiO1xuXG5jb25zdCBTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1XcmFwcGVyKSh7XG4gIHBhZGRpbmdMZWZ0OiBcIjAgIWltcG9ydGFudFwiLCAvLyBcImltcG9ydGFudFwiIGlzIG5lZWRlZCB0byBvdmVycmlkZSB0aGUgQG1lZGlhIHF1ZXJ5IG9mIE1RIGZ1bmN0aW9uXG59KTtcblxuY29uc3QgU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24pPHtcbiAgaGFzRXhwYW5kYWJsZUljb246IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGFzRXhwYW5kYWJsZUljb24sIGxTcGFjZVN0ZXAgfSkgPT4ge1xuICBjb25zdCBnZXRTaXplID0gKGJhc2VPZmZzZXQ6IHN0cmluZywgZGVlcGVzdE5vZGVPZmZzZXQ6IHN0cmluZykgPT5cbiAgICBgY2FsYygke2Jhc2VPZmZzZXR9ICogJHtsU3BhY2VTdGVwfSArICR7XG4gICAgICBoYXNFeHBhbmRhYmxlSWNvbiA/IFwiMHB4XCIgOiBkZWVwZXN0Tm9kZU9mZnNldFxuICAgIH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Rm9jdXNTdHlsZXMoeyBvZmZzZXQ6IC0yIH0pLFxuICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICBwYWRkaW5nTGVmdDogW1xuICAgICAgICAvLyA0MnB4IGFuZCA1NnB4IGFyZSBFeHBhbmQgYnV0dG9uIHdpZHRoICsgcGFkZGluZ1xuICAgICAgICAvLyBpdCdzIG5lZWRlZCBmb3IgYSBkZWVwZXN0IG5vZGUgd2l0aG91dCBleHBhbmRCdXR0b25cbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sIFwiNDJweFwiKSxcbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhsLCBcIjU2cHhcIiksXG4gICAgICBdLFxuICAgIH0pLFxuICB9O1xufSk7XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlUcmVlSXRlbSA9ICh7XG4gIGNoZWNrYm94UHJvcHMsXG4gIGNoaWxkcmVuLFxuICBkZXNjcmlwdGlvbixcbiAgaGlkZUJvcmRlcixcbiAgaXNBY3RpdmUsXG4gIGlzQ2xpY2thYmxlLFxuICBpc0Rpc2FibGVkLFxuICBpc0Rpc2FibGVkRXhwYW5kLFxuICBpc0V4cGFuZGVkLFxuICBsU3BhY2VTdGVwLFxuICBvbkNsaWNrLFxuICBvbkV4cGFuZENsaWNrLFxuICBvblNwYWNlRW50ZXJQcmVzcyxcbiAgcmVuZGVyTGFiZWwsXG4gIHJlbmRlckxlZnQsXG4gIHJlbmRlclJpZ2h0LFxuICBzaXplID0gXCJtXCIsXG4gIHRhYkluZGV4LFxuICBhcmlhTGFiZWxFeHBhbmQsXG4gIGFyaWFMYWJlbENvbGxhcHNlLFxuICBcImFyaWEtbGV2ZWxcIjogYXJpYUxldmVsLFxuICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICBcImRhdGEtbGlzdC1pdGVtXCI6IGRhdGFMaXN0SXRlbSxcbn06IEVudGl0eUxpc3RJdGVtUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT4ge1xuICBjb25zdCBoYXNFeHBhbmRhYmxlSWNvbiA9IGlzRXhwYW5kZWQgIT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVPbkNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgIG9uQ2xpY2soZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DbGlja11cbiAgKTtcblxuICBjb25zdCBidXR0b25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIFwiU3BhY2UgRW50ZXJcIjogb25TcGFjZUVudGVyUHJlc3MsXG4gICAgfSxcbiAgICBidXR0b25SZWYsXG4gICAgdGFiSW5kZXggPT09IDAgJiYgKGlzQ2xpY2thYmxlIHx8ICEhY2hlY2tib3hQcm9wcyksXG4gICAgdHJ1ZVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEVudGl0eUl0ZW1cbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICBhcmlhLWV4cGFuZGVkPXtoYXNFeHBhbmRhYmxlSWNvbiA/IGlzRXhwYW5kZWQgOiB1bmRlZmluZWR9XG4gICAgICBhcmlhLWNoZWNrZWQ9e2NoZWNrYm94UHJvcHM/LmNoZWNrZWR9XG4gICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICBhcmlhLWxldmVsPXthcmlhTGV2ZWx9XG4gICAgPlxuICAgICAgPFN0eWxlZEVudGl0eVRyZWVJdGVtQ29udGFpbmVyXG4gICAgICAgIGRhdGEtbGlzdC1pdGVtPXtkYXRhTGlzdEl0ZW19XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHJlZj17YnV0dG9uUmVmfVxuICAgICAgICBkYXRhLWlkPVwibGlzdC1pdGVtXCJcbiAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBoYXNFeHBhbmRhYmxlSWNvbj17aGFzRXhwYW5kYWJsZUljb259XG4gICAgICAgIGxTcGFjZVN0ZXA9e2xTcGFjZVN0ZXB9XG4gICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9uQ2xpY2t9XG4gICAgICAgIGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgID5cbiAgICAgICAge2hhc0V4cGFuZGFibGVJY29uICYmIChcbiAgICAgICAgICA8RW50aXR5VHJlZUl0ZW1FeHBhbmRCdXR0b25cbiAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkRXhwYW5kIHx8IGlzRGlzYWJsZWR9XG4gICAgICAgICAgICBpc0V4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17b25FeHBhbmRDbGlja31cbiAgICAgICAgICAgIGFyaWFMYWJlbEV4cGFuZD17YXJpYUxhYmVsRXhwYW5kfVxuICAgICAgICAgICAgYXJpYUxhYmVsQ29sbGFwc2U9e2FyaWFMYWJlbENvbGxhcHNlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXJcbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGhpZGVCb3JkZXI9e2hpZGVCb3JkZXIgfHwgc2l6ZSA9PT0gXCJ4c1wifVxuICAgICAgICA+XG4gICAgICAgICAgPEVudGl0eUl0ZW1Cb2R5XG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgcmVuZGVyTGFiZWw9e3JlbmRlckxhYmVsfVxuICAgICAgICAgICAgcmVuZGVyTGVmdD17cmVuZGVyTGVmdH1cbiAgICAgICAgICAgIHJlbmRlclJpZ2h0PXtyZW5kZXJSaWdodH1cbiAgICAgICAgICAgIGNoZWNrYm94UHJvcHM9e2NoZWNrYm94UHJvcHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXI+XG4gICAgICA8L1N0eWxlZEVudGl0eVRyZWVJdGVtQ29udGFpbmVyPlxuICAgICAge2lzRXhwYW5kZWQgJiYgY2hpbGRyZW59XG4gICAgPC9TdHlsZWRFbnRpdHlJdGVtPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQnNDIn0= */");export const EntityTreeItem=({checkboxProps,children,description,hideBorder,isActive,isClickable,isDisabled,isDisabledExpand,isExpanded,lSpaceStep,onClick,onExpandClick,onSpaceEnterPress,renderLabel,renderLeft,renderRight,size="m",tabIndex,ariaLabelExpand,ariaLabelCollapse,"aria-level":ariaLevel,"aria-label":ariaLabel,"data-list-item":dataListItem})=>{let hasExpandableIcon=void 0!==isExpanded,handleOnClick=useCallback(e=>{onClick&&onClick(e)},[onClick]),buttonRef=useRef(null);return useKeyboard({"Space Enter":onSpaceEnterPress},buttonRef,0===tabIndex&&(isClickable||!!checkboxProps),!0),React.createElement(StyledEntityItem,{role:"treeitem","aria-expanded":hasExpandableIcon?isExpanded:void 0,"aria-checked":checkboxProps?.checked,"aria-label":ariaLabel,"aria-level":ariaLevel},React.createElement(StyledEntityTreeItemContainer,{"data-list-item":dataListItem,size:size,ref:buttonRef,"data-id":"list-item",tabIndex:tabIndex,role:"presentation",isActive:isActive,hasExpandableIcon:hasExpandableIcon,lSpaceStep:lSpaceStep,isDisabled:isDisabled,onClick:handleOnClick,isClickable:isClickable},hasExpandableIcon&&React.createElement(EntityTreeItemExpandButton,{size:size,tabIndex:-1,isDisabled:isDisabledExpand||isDisabled,isExpanded:isExpanded,onClick:onExpandClick,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse}),React.createElement(StyledEntityTreeItemWrapper,{size:size,hideBorder:hideBorder||"xs"===size},React.createElement(EntityItemBody,{size:size,tabIndex:tabIndex,description:description,renderLabel:renderLabel,renderLeft:renderLeft,renderRight:renderRight,checkboxProps:checkboxProps}))),isExpanded&&children)};
1
+ import React,{useCallback,useImperativeHandle,useRef}from"react";import styled from"@emotion/styled";import{useResponsiveValue}from"../../shared/mediaQueries";import{EntityTreeItemExpandButton}from"./EntityTreeItemExpandButton";import{useKeyboard}from"../../shared/useKeyboard";import{getFocusStyles}from"../../shared/mixins";import{EntityItemBody}from"../EntityList/EntityItemBody";import{StyledEntityItem,StyledEntityListItemWrapper,StyledEntityListItemButton}from"../EntityList/styled-components";let isSelfEvent=e=>e.target===e.currentTarget,StyledEntityTreeItemWrapper=styled(StyledEntityListItemWrapper,{target:"e18sww000",label:"StyledEntityTreeItemWrapper"})({paddingLeft:"0 !important"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5VHJlZS9FbnRpdHlUcmVlSXRlbS50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eVRyZWUvRW50aXR5VHJlZUl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZVJlc3BvbnNpdmVWYWx1ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5pbXBvcnQgeyBFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvbiB9IGZyb20gXCIuL0VudGl0eVRyZWVJdGVtRXhwYW5kQnV0dG9uXCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlS2V5Ym9hcmRcIjtcbmltcG9ydCB7IGdldEZvY3VzU3R5bGVzIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9taXhpbnNcIjtcbmltcG9ydCB7IEVudGl0eUl0ZW1Cb2R5IH0gZnJvbSBcIi4uL0VudGl0eUxpc3QvRW50aXR5SXRlbUJvZHlcIjtcbmltcG9ydCB7XG4gIFN0eWxlZEVudGl0eUl0ZW0sXG4gIFN0eWxlZEVudGl0eUxpc3RJdGVtV3JhcHBlcixcbiAgU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24sXG59IGZyb20gXCIuLi9FbnRpdHlMaXN0L3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RJdGVtUHJvcHMgfSBmcm9tIFwiLi4vRW50aXR5TGlzdC90eXBlc1wiO1xuXG5jb25zdCBpc1NlbGZFdmVudCA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50KSA9PiBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0O1xuXG5jb25zdCBTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1XcmFwcGVyKSh7XG4gIHBhZGRpbmdMZWZ0OiBcIjAgIWltcG9ydGFudFwiLCAvLyBcImltcG9ydGFudFwiIGlzIG5lZWRlZCB0byBvdmVycmlkZSB0aGUgQG1lZGlhIHF1ZXJ5IG9mIE1RIGZ1bmN0aW9uXG59KTtcblxuY29uc3QgU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24pPHtcbiAgaGFzRXhwYW5kYWJsZUljb246IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGFzRXhwYW5kYWJsZUljb24sIGxTcGFjZVN0ZXAgfSkgPT4ge1xuICBjb25zdCBnZXRTaXplID0gKGJhc2VPZmZzZXQ6IHN0cmluZywgZGVlcGVzdE5vZGVPZmZzZXQ6IHN0cmluZykgPT5cbiAgICBgY2FsYygke2Jhc2VPZmZzZXR9ICogJHtsU3BhY2VTdGVwfSArICR7XG4gICAgICBoYXNFeHBhbmRhYmxlSWNvbiA/IFwiMHB4XCIgOiBkZWVwZXN0Tm9kZU9mZnNldFxuICAgIH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Rm9jdXNTdHlsZXMoeyBvZmZzZXQ6IC0yIH0pLFxuICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICBwYWRkaW5nTGVmdDogW1xuICAgICAgICAvLyA0MnB4IGFuZCA1NnB4IGFyZSBFeHBhbmQgYnV0dG9uIHdpZHRoICsgcGFkZGluZ1xuICAgICAgICAvLyBpdCdzIG5lZWRlZCBmb3IgYSBkZWVwZXN0IG5vZGUgd2l0aG91dCBleHBhbmRCdXR0b25cbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sIFwiNDJweFwiKSxcbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhsLCBcIjU2cHhcIiksXG4gICAgICBdLFxuICAgIH0pLFxuICB9O1xufSk7XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGVja2JveFByb3BzLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGhpZGVCb3JkZXIsXG4gICAgICBpc0FjdGl2ZSxcbiAgICAgIGlzQ2xpY2thYmxlLFxuICAgICAgaXNEaXNhYmxlZCxcbiAgICAgIGlzRGlzYWJsZWRFeHBhbmQsXG4gICAgICBpc0V4cGFuZGVkLFxuICAgICAgbFNwYWNlU3RlcCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbkV4cGFuZENsaWNrLFxuICAgICAgb25TcGFjZUVudGVyUHJlc3MsXG4gICAgICByZW5kZXJMYWJlbCxcbiAgICAgIHJlbmRlckxlZnQsXG4gICAgICByZW5kZXJSaWdodCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHRhYkluZGV4LFxuICAgICAgYXJpYUxhYmVsRXhwYW5kLFxuICAgICAgYXJpYUxhYmVsQ29sbGFwc2UsXG4gICAgICBcImFyaWEtbGV2ZWxcIjogYXJpYUxldmVsLFxuICAgICAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgICAgIFwiZGF0YS1saXN0LWl0ZW1cIjogZGF0YUxpc3RJdGVtLFxuICAgICAgb25Qb2ludGVyRW50ZXIsXG4gICAgICBvblBvaW50ZXJMZWF2ZSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogYXJpYURlc2NyaWJlZEJ5LFxuICAgIH06IEVudGl0eUxpc3RJdGVtUHJvcHMsXG4gICAgcmVmOiBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+XG4gICk6IFJlYWN0LlJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgaGFzRXhwYW5kYWJsZUljb24gPSBpc0V4cGFuZGVkICE9PSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBoYW5kbGVPbkNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAob25DbGljaykge1xuICAgICAgICAgIG9uQ2xpY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbb25DbGlja11cbiAgICApO1xuXG4gICAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAgIHVzZUtleWJvYXJkKFxuICAgICAge1xuICAgICAgICBcIlNwYWNlIEVudGVyXCI6IG9uU3BhY2VFbnRlclByZXNzLFxuICAgICAgfSxcbiAgICAgIGJ1dHRvblJlZixcbiAgICAgIHRhYkluZGV4ID09PSAwICYmIChpc0NsaWNrYWJsZSB8fCAhIWNoZWNrYm94UHJvcHMpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICAvLyBQdWJsaXNoZXMgdGhlIHJvdyAtIG5vdCB0aGUgYHRyZWVpdGVtYCB0aGF0IGFsc28gaG9sZHMgdGhlIG5lc3RlZCBzdWJ0cmVlIC1cbiAgICAvLyBzbyBhbiBvdmVybGF5IHdyYXBwZXIgYW5jaG9ycyB0byB0aGUgcm93IGFsb25lLiBgYnV0dG9uUmVmYCBzdGF5cyBpbnRhY3QgZm9yXG4gICAgLy8gdGhlIGtleWJvYXJkIGhhbmRsaW5nIGFib3ZlLlxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBidXR0b25SZWYuY3VycmVudCk7XG5cbiAgICAvLyBBbiBvdmVybGF5IG9uIHRoZSByb3cgZGVzY3JpYmVzIHRoZSByb3csIG5vdCB0aGUgZXhwYW5kIGJ1dHRvbiBvciBhIHRyYWlsaW5nXG4gICAgLy8gY29udHJvbCBpbnNpZGUgaXQsIGFuZCBmb2N1cyBldmVudHMgYnViYmxlLlxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKGU6IFJlYWN0LkZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc1NlbGZFdmVudChlKSkgb25Gb2N1cz8uKGUpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyID0gKGU6IFJlYWN0LkZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc1NlbGZFdmVudChlKSkgb25CbHVyPy4oZSk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRW50aXR5SXRlbVxuICAgICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtoYXNFeHBhbmRhYmxlSWNvbiA/IGlzRXhwYW5kZWQgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtY2hlY2tlZD17Y2hlY2tib3hQcm9wcz8uY2hlY2tlZH1cbiAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICBhcmlhLWxldmVsPXthcmlhTGV2ZWx9XG4gICAgICA+XG4gICAgICAgIDxTdHlsZWRFbnRpdHlUcmVlSXRlbUNvbnRhaW5lclxuICAgICAgICAgIGRhdGEtbGlzdC1pdGVtPXtkYXRhTGlzdEl0ZW19XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgICBkYXRhLWlkPVwibGlzdC1pdGVtXCJcbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICAgIGhhc0V4cGFuZGFibGVJY29uPXtoYXNFeHBhbmRhYmxlSWNvbn1cbiAgICAgICAgICBsU3BhY2VTdGVwPXtsU3BhY2VTdGVwfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlT25DbGlja31cbiAgICAgICAgICBpc0NsaWNrYWJsZT17aXNDbGlja2FibGV9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17YXJpYURlc2NyaWJlZEJ5fVxuICAgICAgICAgIC8vIEZvcndhcmRlZCBzbyBhbiBvdmVybGF5IHdyYXBwZXIgY2FuIHVzZSB0aGUgd2hvbGUgcm93IGFzIGl0cyB0cmlnZ2VyLlxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXtvblBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Qb2ludGVyTGVhdmV9XG4gICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0V4cGFuZGFibGVJY29uICYmIChcbiAgICAgICAgICAgIDxFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWRFeHBhbmQgfHwgaXNEaXNhYmxlZH1cbiAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgb25DbGljaz17b25FeHBhbmRDbGlja31cbiAgICAgICAgICAgICAgYXJpYUxhYmVsRXhwYW5kPXthcmlhTGFiZWxFeHBhbmR9XG4gICAgICAgICAgICAgIGFyaWFMYWJlbENvbGxhcHNlPXthcmlhTGFiZWxDb2xsYXBzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3R5bGVkRW50aXR5VHJlZUl0ZW1XcmFwcGVyXG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgaGlkZUJvcmRlcj17aGlkZUJvcmRlciB8fCBzaXplID09PSBcInhzXCJ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEVudGl0eUl0ZW1Cb2R5XG4gICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICByZW5kZXJMYWJlbD17cmVuZGVyTGFiZWx9XG4gICAgICAgICAgICAgIHJlbmRlckxlZnQ9e3JlbmRlckxlZnR9XG4gICAgICAgICAgICAgIHJlbmRlclJpZ2h0PXtyZW5kZXJSaWdodH1cbiAgICAgICAgICAgICAgY2hlY2tib3hQcm9wcz17Y2hlY2tib3hQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXI+XG4gICAgICAgIDwvU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXI+XG4gICAgICAgIHtpc0V4cGFuZGVkICYmIGNoaWxkcmVufVxuICAgICAgPC9TdHlsZWRFbnRpdHlJdGVtPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JvQyJ9 */"),StyledEntityTreeItemContainer=styled(StyledEntityListItemButton,{target:"e18sww001",label:"StyledEntityTreeItemContainer"})(({theme,hasExpandableIcon,lSpaceStep})=>{let getSize=(baseOffset,deepestNodeOffset)=>`calc(${baseOffset} * ${lSpaceStep} + ${hasExpandableIcon?"0px":deepestNodeOffset} + ${theme.variables.size.spacing.xxs})`;return{...getFocusStyles({offset:-2}),...useResponsiveValue({paddingLeft:[getSize(theme.variables.size.spacing.m,"42px"),getSize(theme.variables.size.spacing.xl,"56px")]})}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5VHJlZS9FbnRpdHlUcmVlSXRlbS50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eVRyZWUvRW50aXR5VHJlZUl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZVJlc3BvbnNpdmVWYWx1ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5pbXBvcnQgeyBFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvbiB9IGZyb20gXCIuL0VudGl0eVRyZWVJdGVtRXhwYW5kQnV0dG9uXCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlS2V5Ym9hcmRcIjtcbmltcG9ydCB7IGdldEZvY3VzU3R5bGVzIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9taXhpbnNcIjtcbmltcG9ydCB7IEVudGl0eUl0ZW1Cb2R5IH0gZnJvbSBcIi4uL0VudGl0eUxpc3QvRW50aXR5SXRlbUJvZHlcIjtcbmltcG9ydCB7XG4gIFN0eWxlZEVudGl0eUl0ZW0sXG4gIFN0eWxlZEVudGl0eUxpc3RJdGVtV3JhcHBlcixcbiAgU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24sXG59IGZyb20gXCIuLi9FbnRpdHlMaXN0L3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RJdGVtUHJvcHMgfSBmcm9tIFwiLi4vRW50aXR5TGlzdC90eXBlc1wiO1xuXG5jb25zdCBpc1NlbGZFdmVudCA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50KSA9PiBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0O1xuXG5jb25zdCBTdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1XcmFwcGVyKSh7XG4gIHBhZGRpbmdMZWZ0OiBcIjAgIWltcG9ydGFudFwiLCAvLyBcImltcG9ydGFudFwiIGlzIG5lZWRlZCB0byBvdmVycmlkZSB0aGUgQG1lZGlhIHF1ZXJ5IG9mIE1RIGZ1bmN0aW9uXG59KTtcblxuY29uc3QgU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXIgPSBzdHlsZWQoU3R5bGVkRW50aXR5TGlzdEl0ZW1CdXR0b24pPHtcbiAgaGFzRXhwYW5kYWJsZUljb246IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGFzRXhwYW5kYWJsZUljb24sIGxTcGFjZVN0ZXAgfSkgPT4ge1xuICBjb25zdCBnZXRTaXplID0gKGJhc2VPZmZzZXQ6IHN0cmluZywgZGVlcGVzdE5vZGVPZmZzZXQ6IHN0cmluZykgPT5cbiAgICBgY2FsYygke2Jhc2VPZmZzZXR9ICogJHtsU3BhY2VTdGVwfSArICR7XG4gICAgICBoYXNFeHBhbmRhYmxlSWNvbiA/IFwiMHB4XCIgOiBkZWVwZXN0Tm9kZU9mZnNldFxuICAgIH0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Rm9jdXNTdHlsZXMoeyBvZmZzZXQ6IC0yIH0pLFxuICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICBwYWRkaW5nTGVmdDogW1xuICAgICAgICAvLyA0MnB4IGFuZCA1NnB4IGFyZSBFeHBhbmQgYnV0dG9uIHdpZHRoICsgcGFkZGluZ1xuICAgICAgICAvLyBpdCdzIG5lZWRlZCBmb3IgYSBkZWVwZXN0IG5vZGUgd2l0aG91dCBleHBhbmRCdXR0b25cbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sIFwiNDJweFwiKSxcbiAgICAgICAgZ2V0U2l6ZSh0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhsLCBcIjU2cHhcIiksXG4gICAgICBdLFxuICAgIH0pLFxuICB9O1xufSk7XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGVja2JveFByb3BzLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGhpZGVCb3JkZXIsXG4gICAgICBpc0FjdGl2ZSxcbiAgICAgIGlzQ2xpY2thYmxlLFxuICAgICAgaXNEaXNhYmxlZCxcbiAgICAgIGlzRGlzYWJsZWRFeHBhbmQsXG4gICAgICBpc0V4cGFuZGVkLFxuICAgICAgbFNwYWNlU3RlcCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbkV4cGFuZENsaWNrLFxuICAgICAgb25TcGFjZUVudGVyUHJlc3MsXG4gICAgICByZW5kZXJMYWJlbCxcbiAgICAgIHJlbmRlckxlZnQsXG4gICAgICByZW5kZXJSaWdodCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHRhYkluZGV4LFxuICAgICAgYXJpYUxhYmVsRXhwYW5kLFxuICAgICAgYXJpYUxhYmVsQ29sbGFwc2UsXG4gICAgICBcImFyaWEtbGV2ZWxcIjogYXJpYUxldmVsLFxuICAgICAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgICAgIFwiZGF0YS1saXN0LWl0ZW1cIjogZGF0YUxpc3RJdGVtLFxuICAgICAgb25Qb2ludGVyRW50ZXIsXG4gICAgICBvblBvaW50ZXJMZWF2ZSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogYXJpYURlc2NyaWJlZEJ5LFxuICAgIH06IEVudGl0eUxpc3RJdGVtUHJvcHMsXG4gICAgcmVmOiBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+XG4gICk6IFJlYWN0LlJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgaGFzRXhwYW5kYWJsZUljb24gPSBpc0V4cGFuZGVkICE9PSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBoYW5kbGVPbkNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAob25DbGljaykge1xuICAgICAgICAgIG9uQ2xpY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbb25DbGlja11cbiAgICApO1xuXG4gICAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAgIHVzZUtleWJvYXJkKFxuICAgICAge1xuICAgICAgICBcIlNwYWNlIEVudGVyXCI6IG9uU3BhY2VFbnRlclByZXNzLFxuICAgICAgfSxcbiAgICAgIGJ1dHRvblJlZixcbiAgICAgIHRhYkluZGV4ID09PSAwICYmIChpc0NsaWNrYWJsZSB8fCAhIWNoZWNrYm94UHJvcHMpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICAvLyBQdWJsaXNoZXMgdGhlIHJvdyAtIG5vdCB0aGUgYHRyZWVpdGVtYCB0aGF0IGFsc28gaG9sZHMgdGhlIG5lc3RlZCBzdWJ0cmVlIC1cbiAgICAvLyBzbyBhbiBvdmVybGF5IHdyYXBwZXIgYW5jaG9ycyB0byB0aGUgcm93IGFsb25lLiBgYnV0dG9uUmVmYCBzdGF5cyBpbnRhY3QgZm9yXG4gICAgLy8gdGhlIGtleWJvYXJkIGhhbmRsaW5nIGFib3ZlLlxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBidXR0b25SZWYuY3VycmVudCk7XG5cbiAgICAvLyBBbiBvdmVybGF5IG9uIHRoZSByb3cgZGVzY3JpYmVzIHRoZSByb3csIG5vdCB0aGUgZXhwYW5kIGJ1dHRvbiBvciBhIHRyYWlsaW5nXG4gICAgLy8gY29udHJvbCBpbnNpZGUgaXQsIGFuZCBmb2N1cyBldmVudHMgYnViYmxlLlxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKGU6IFJlYWN0LkZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc1NlbGZFdmVudChlKSkgb25Gb2N1cz8uKGUpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyID0gKGU6IFJlYWN0LkZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc1NlbGZFdmVudChlKSkgb25CbHVyPy4oZSk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRW50aXR5SXRlbVxuICAgICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtoYXNFeHBhbmRhYmxlSWNvbiA/IGlzRXhwYW5kZWQgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtY2hlY2tlZD17Y2hlY2tib3hQcm9wcz8uY2hlY2tlZH1cbiAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICBhcmlhLWxldmVsPXthcmlhTGV2ZWx9XG4gICAgICA+XG4gICAgICAgIDxTdHlsZWRFbnRpdHlUcmVlSXRlbUNvbnRhaW5lclxuICAgICAgICAgIGRhdGEtbGlzdC1pdGVtPXtkYXRhTGlzdEl0ZW19XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgICBkYXRhLWlkPVwibGlzdC1pdGVtXCJcbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICAgIGhhc0V4cGFuZGFibGVJY29uPXtoYXNFeHBhbmRhYmxlSWNvbn1cbiAgICAgICAgICBsU3BhY2VTdGVwPXtsU3BhY2VTdGVwfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgb25DbGljaz17aGFuZGxlT25DbGlja31cbiAgICAgICAgICBpc0NsaWNrYWJsZT17aXNDbGlja2FibGV9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17YXJpYURlc2NyaWJlZEJ5fVxuICAgICAgICAgIC8vIEZvcndhcmRlZCBzbyBhbiBvdmVybGF5IHdyYXBwZXIgY2FuIHVzZSB0aGUgd2hvbGUgcm93IGFzIGl0cyB0cmlnZ2VyLlxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXtvblBvaW50ZXJFbnRlcn1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17b25Qb2ludGVyTGVhdmV9XG4gICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICA+XG4gICAgICAgICAge2hhc0V4cGFuZGFibGVJY29uICYmIChcbiAgICAgICAgICAgIDxFbnRpdHlUcmVlSXRlbUV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWRFeHBhbmQgfHwgaXNEaXNhYmxlZH1cbiAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgb25DbGljaz17b25FeHBhbmRDbGlja31cbiAgICAgICAgICAgICAgYXJpYUxhYmVsRXhwYW5kPXthcmlhTGFiZWxFeHBhbmR9XG4gICAgICAgICAgICAgIGFyaWFMYWJlbENvbGxhcHNlPXthcmlhTGFiZWxDb2xsYXBzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3R5bGVkRW50aXR5VHJlZUl0ZW1XcmFwcGVyXG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgaGlkZUJvcmRlcj17aGlkZUJvcmRlciB8fCBzaXplID09PSBcInhzXCJ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEVudGl0eUl0ZW1Cb2R5XG4gICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICByZW5kZXJMYWJlbD17cmVuZGVyTGFiZWx9XG4gICAgICAgICAgICAgIHJlbmRlckxlZnQ9e3JlbmRlckxlZnR9XG4gICAgICAgICAgICAgIHJlbmRlclJpZ2h0PXtyZW5kZXJSaWdodH1cbiAgICAgICAgICAgICAgY2hlY2tib3hQcm9wcz17Y2hlY2tib3hQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRFbnRpdHlUcmVlSXRlbVdyYXBwZXI+XG4gICAgICAgIDwvU3R5bGVkRW50aXR5VHJlZUl0ZW1Db250YWluZXI+XG4gICAgICAgIHtpc0V4cGFuZGVkICYmIGNoaWxkcmVufVxuICAgICAgPC9TdHlsZWRFbnRpdHlJdGVtPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JzQyJ9 */");export const EntityTreeItem=React.forwardRef(({checkboxProps,children,description,hideBorder,isActive,isClickable,isDisabled,isDisabledExpand,isExpanded,lSpaceStep,onClick,onExpandClick,onSpaceEnterPress,renderLabel,renderLeft,renderRight,size="m",tabIndex,ariaLabelExpand,ariaLabelCollapse,"aria-level":ariaLevel,"aria-label":ariaLabel,"data-list-item":dataListItem,onPointerEnter,onPointerLeave,onFocus,onBlur,onKeyDown,"aria-describedby":ariaDescribedBy},ref)=>{let hasExpandableIcon=void 0!==isExpanded,handleOnClick=useCallback(e=>{onClick&&onClick(e)},[onClick]),buttonRef=useRef(null);return useKeyboard({"Space Enter":onSpaceEnterPress},buttonRef,0===tabIndex&&(isClickable||!!checkboxProps),!0),useImperativeHandle(ref,()=>buttonRef.current),React.createElement(StyledEntityItem,{role:"treeitem","aria-expanded":hasExpandableIcon?isExpanded:void 0,"aria-checked":checkboxProps?.checked,"aria-label":ariaLabel,"aria-level":ariaLevel},React.createElement(StyledEntityTreeItemContainer,{"data-list-item":dataListItem,size:size,ref:buttonRef,"data-id":"list-item",tabIndex:tabIndex,role:"presentation",isActive:isActive,hasExpandableIcon:hasExpandableIcon,lSpaceStep:lSpaceStep,isDisabled:isDisabled,onClick:handleOnClick,isClickable:isClickable,"aria-describedby":ariaDescribedBy,onPointerEnter:onPointerEnter,onPointerLeave:onPointerLeave,onFocus:e=>{isSelfEvent(e)&&onFocus?.(e)},onBlur:e=>{isSelfEvent(e)&&onBlur?.(e)},onKeyDown:onKeyDown},hasExpandableIcon&&React.createElement(EntityTreeItemExpandButton,{size:size,tabIndex:-1,isDisabled:isDisabledExpand||isDisabled,isExpanded:isExpanded,onClick:onExpandClick,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse}),React.createElement(StyledEntityTreeItemWrapper,{size:size,hideBorder:hideBorder||"xs"===size},React.createElement(EntityItemBody,{size:size,tabIndex:tabIndex,description:description,renderLabel:renderLabel,renderLeft:renderLeft,renderRight:renderRight,checkboxProps:checkboxProps}))),isExpanded&&children)});
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { ReactElement, FocusEvent as ReactFocusEvent, MouseEvent as ReactMouseEvent } from "react";
3
3
  import type { TooltipContentProps } from "./TooltipContent";
4
- type BaseProps = Pick<TooltipContentProps, "placement" | "portalContainer" | "contentPadding" | "maxWidth" | "subTheme" | "onOverflowViewport"> & {
4
+ type BaseProps = Pick<TooltipContentProps, "placement" | "portalContainer" | "contentPadding" | "maxWidth" | "subTheme" | "onOverflowViewport" | "privateProps"> & {
5
5
  /** Tooltip content */
6
6
  content: React.ReactElement;
7
7
  "data-e2e-test-id"?: string;
@@ -22,5 +22,5 @@ export type BaseTooltipProps = BaseProps & ({
22
22
  children?: never;
23
23
  externalTriggerRef: React.RefObject<HTMLElement>;
24
24
  });
25
- export declare function BaseTooltip({ placement, content, children, externalTriggerRef, portalContainer, contentPadding, maxWidth, subTheme, "data-e2e-test-id": dataE2eTestId, onVisibilityChange, ...ariaAttributes }: BaseTooltipProps): React.ReactElement;
25
+ export declare function BaseTooltip({ placement, content, children, externalTriggerRef, portalContainer, contentPadding, maxWidth, subTheme, "data-e2e-test-id": dataE2eTestId, onVisibilityChange, privateProps, ...ariaAttributes }: BaseTooltipProps): React.ReactElement;
26
26
  export {};
@@ -1 +1 @@
1
- import React,{useState,useRef,useEffect,useCallback,useMemo}from"react";import{useFocusVisible}from"@react-aria/interactions";import{TooltipContent}from"./TooltipContent";export function BaseTooltip({placement="auto",content,children,externalTriggerRef,portalContainer,contentPadding,maxWidth,subTheme,"data-e2e-test-id":dataE2eTestId,onVisibilityChange,...ariaAttributes}){let tooltipId=useMemo(()=>`DSTooltip_${Math.floor(Date.now()*Math.random())}`,[]),{isFocusVisible}=useFocusVisible(),[isVisible,setVisible]=useState(!1),triggeredByEvent=useRef(null),isTooltipHovered=useRef(!1),isTriggerHovered=useRef(!1),hideTooltipTimeoutId=useRef(null),showTooltipTimeoutId=useRef(null),internalTriggerRef=useRef(null),triggerRef=externalTriggerRef||internalTriggerRef,toggleVisibility=useCallback(status=>{setVisible(status),onVisibilityChange&&onVisibilityChange(status)},[onVisibilityChange]),handleTriggerPointerEnter=useCallback(()=>{isTriggerHovered.current=!0,isTooltipHovered.current||(clearTimeout(showTooltipTimeoutId.current),showTooltipTimeoutId.current=setTimeout(()=>{isTriggerHovered.current&&(triggeredByEvent.current="hover",toggleVisibility(!0))},200))},[toggleVisibility]),handleTriggerPointerLeave=useCallback(()=>{isTriggerHovered.current=!1,clearTimeout(hideTooltipTimeoutId.current),hideTooltipTimeoutId.current=setTimeout(()=>{isTooltipHovered.current||"hover"!==triggeredByEvent.current||isTriggerHovered.current||toggleVisibility(!1)},200)},[toggleVisibility]),handleTriggerFocus=useCallback(()=>{isFocusVisible&&(triggeredByEvent.current="focus",toggleVisibility(!0))},[isFocusVisible,toggleVisibility]),handleTriggerBlur=useCallback(()=>{"focus"===triggeredByEvent.current&&toggleVisibility(!1)},[toggleVisibility]),handleTriggerClick=useCallback(()=>{toggleVisibility(!1)},[toggleVisibility]),handleTriggerKeyDown=useCallback(evt=>{"Escape"===evt.key&&toggleVisibility(!1)},[toggleVisibility]);useEffect(()=>()=>{clearTimeout(showTooltipTimeoutId.current),clearTimeout(hideTooltipTimeoutId.current)},[]),useEffect(()=>{let trigger;if(externalTriggerRef?.current&&!children){let triggerTabIndex=(trigger=externalTriggerRef.current).getAttribute("tabindex");trigger.setAttribute("tabindex",triggerTabIndex??"0"),trigger.addEventListener("pointerenter",handleTriggerPointerEnter),trigger.addEventListener("pointerleave",handleTriggerPointerLeave),trigger.addEventListener("focus",handleTriggerFocus),trigger.addEventListener("blur",handleTriggerBlur),trigger.addEventListener("click",handleTriggerClick),trigger.addEventListener("keydown",handleTriggerKeyDown)}return()=>{trigger&&(trigger.removeEventListener("pointerenter",handleTriggerPointerEnter),trigger.removeEventListener("pointerleave",handleTriggerPointerLeave),trigger.removeEventListener("focus",handleTriggerFocus),trigger.removeEventListener("blur",handleTriggerBlur),trigger.removeEventListener("click",handleTriggerClick),trigger.removeEventListener("keydown",handleTriggerKeyDown))}},[externalTriggerRef,children,handleTriggerPointerEnter,handleTriggerPointerLeave,handleTriggerFocus,handleTriggerBlur,handleTriggerClick,handleTriggerKeyDown]),useEffect(()=>{if(externalTriggerRef?.current&&!children){let trigger=externalTriggerRef.current;isVisible?trigger.setAttribute("aria-describedby",tooltipId):trigger.removeAttribute("aria-describedby")}},[externalTriggerRef,children,tooltipId,isVisible]);let triggerElm=children?React.cloneElement(children,{ref:triggerRef,...ariaAttributes,...isVisible&&{"aria-describedby":tooltipId},tabIndex:children.props.tabIndex??0,onPointerEnter:handleTriggerPointerEnter,onPointerLeave:handleTriggerPointerLeave,onFocus:evt=>{handleTriggerFocus(),children.props.onFocus&&children.props.onFocus(evt)},onBlur:evt=>{handleTriggerBlur(),children.props.onBlur&&children.props.onBlur(evt)},onClick:evt=>{handleTriggerClick(),children.props.onClick&&children.props.onClick(evt)},onKeyDown:handleTriggerKeyDown}):null,tooltipElm=React.createElement(TooltipContent,{dataDSId:"Tooltip",content:content,placement:placement,portalContainer:portalContainer,dataE2eTestId:dataE2eTestId,isVisible:isVisible,tooltipId:tooltipId,triggerRef:triggerRef,"aria-hidden":!0,role:"tooltip",contentPadding:contentPadding,maxWidth:maxWidth,subTheme:subTheme,onTooltipPointerEnter:()=>{isTooltipHovered.current=!0},onTooltipPointerLeave:()=>{isTooltipHovered.current=!1,"hover"===triggeredByEvent.current&&toggleVisibility(!1)}});return React.createElement(React.Fragment,null,triggerElm,tooltipElm)}
1
+ import React,{useState,useRef,useEffect,useCallback,useMemo}from"react";import{useFocusVisible}from"@react-aria/interactions";import{TooltipContent}from"./TooltipContent";export function BaseTooltip({placement="auto",content,children,externalTriggerRef,portalContainer,contentPadding,maxWidth,subTheme,"data-e2e-test-id":dataE2eTestId,onVisibilityChange,privateProps,...ariaAttributes}){let tooltipId=useMemo(()=>`DSTooltip_${Math.floor(Date.now()*Math.random())}`,[]),{isFocusVisible}=useFocusVisible(),[isVisible,setVisible]=useState(!1),triggeredByEvent=useRef(null),isTooltipHovered=useRef(!1),isTriggerHovered=useRef(!1),hideTooltipTimeoutId=useRef(null),showTooltipTimeoutId=useRef(null),internalTriggerRef=useRef(null),triggerRef=externalTriggerRef||internalTriggerRef,toggleVisibility=useCallback(status=>{setVisible(status),onVisibilityChange&&onVisibilityChange(status)},[onVisibilityChange]),handleTriggerPointerEnter=useCallback(()=>{isTriggerHovered.current=!0,isTooltipHovered.current||(clearTimeout(showTooltipTimeoutId.current),showTooltipTimeoutId.current=setTimeout(()=>{isTriggerHovered.current&&(triggeredByEvent.current="hover",toggleVisibility(!0))},200))},[toggleVisibility]),handleTriggerPointerLeave=useCallback(()=>{isTriggerHovered.current=!1,clearTimeout(hideTooltipTimeoutId.current),hideTooltipTimeoutId.current=setTimeout(()=>{isTooltipHovered.current||"hover"!==triggeredByEvent.current||isTriggerHovered.current||toggleVisibility(!1)},200)},[toggleVisibility]),handleTriggerFocus=useCallback(()=>{isFocusVisible&&(triggeredByEvent.current="focus",toggleVisibility(!0))},[isFocusVisible,toggleVisibility]),handleTriggerBlur=useCallback(()=>{"focus"===triggeredByEvent.current&&toggleVisibility(!1)},[toggleVisibility]),handleTriggerClick=useCallback(()=>{toggleVisibility(!1)},[toggleVisibility]),handleTriggerKeyDown=useCallback(evt=>{"Escape"===evt.key&&toggleVisibility(!1)},[toggleVisibility]);useEffect(()=>()=>{clearTimeout(showTooltipTimeoutId.current),clearTimeout(hideTooltipTimeoutId.current)},[]),useEffect(()=>{let trigger;if(externalTriggerRef?.current&&!children){let triggerTabIndex=(trigger=externalTriggerRef.current).getAttribute("tabindex");trigger.setAttribute("tabindex",triggerTabIndex??"0"),trigger.addEventListener("pointerenter",handleTriggerPointerEnter),trigger.addEventListener("pointerleave",handleTriggerPointerLeave),trigger.addEventListener("focus",handleTriggerFocus),trigger.addEventListener("blur",handleTriggerBlur),trigger.addEventListener("click",handleTriggerClick),trigger.addEventListener("keydown",handleTriggerKeyDown)}return()=>{trigger&&(trigger.removeEventListener("pointerenter",handleTriggerPointerEnter),trigger.removeEventListener("pointerleave",handleTriggerPointerLeave),trigger.removeEventListener("focus",handleTriggerFocus),trigger.removeEventListener("blur",handleTriggerBlur),trigger.removeEventListener("click",handleTriggerClick),trigger.removeEventListener("keydown",handleTriggerKeyDown))}},[externalTriggerRef,children,handleTriggerPointerEnter,handleTriggerPointerLeave,handleTriggerFocus,handleTriggerBlur,handleTriggerClick,handleTriggerKeyDown]),useEffect(()=>{if(externalTriggerRef?.current&&!children){let trigger=externalTriggerRef.current;isVisible?trigger.setAttribute("aria-describedby",tooltipId):trigger.removeAttribute("aria-describedby")}},[externalTriggerRef,children,tooltipId,isVisible]);let triggerElm=children?React.cloneElement(children,{ref:triggerRef,...ariaAttributes,...isVisible&&{"aria-describedby":tooltipId},tabIndex:children.props.tabIndex??0,onPointerEnter:handleTriggerPointerEnter,onPointerLeave:handleTriggerPointerLeave,onFocus:evt=>{handleTriggerFocus(),children.props.onFocus&&children.props.onFocus(evt)},onBlur:evt=>{handleTriggerBlur(),children.props.onBlur&&children.props.onBlur(evt)},onClick:evt=>{handleTriggerClick(),children.props.onClick&&children.props.onClick(evt)},onKeyDown:handleTriggerKeyDown}):null,tooltipElm=React.createElement(TooltipContent,{dataDSId:"Tooltip",content:content,placement:placement,portalContainer:portalContainer,dataE2eTestId:dataE2eTestId,isVisible:isVisible,tooltipId:tooltipId,triggerRef:triggerRef,"aria-hidden":!0,role:"tooltip",contentPadding:contentPadding,maxWidth:maxWidth,subTheme:subTheme,onTooltipPointerEnter:()=>{isTooltipHovered.current=!0},onTooltipPointerLeave:()=>{isTooltipHovered.current=!1,"hover"===triggeredByEvent.current&&toggleVisibility(!1)},privateProps:privateProps});return React.createElement(React.Fragment,null,triggerElm,tooltipElm)}
@@ -3,6 +3,29 @@ import React from "react";
3
3
  import type { Property } from "csstype";
4
4
  import type { SubThemeTypes } from "../../web-tokens/_subThemeType";
5
5
  import { type PortalProps } from "../Portal/Portal";
6
+ export type TooltipPrivateProps = {
7
+ /**
8
+ * @internal
9
+ * Places the tooltip beside the trigger with their top edges aligned instead
10
+ * of above or below it. Renders without an arrow, takes precedence over
11
+ * `placement`, and falls back to `placement` when there is no room.
12
+ * TODO: remove temporary side placement
13
+ */
14
+ placement?: "right-top";
15
+ /**
16
+ * @internal
17
+ * Gap in px between the trigger and a side-placed tooltip. Only applies
18
+ * alongside `placement`. Defaults to 10px, the gap other tooltips settle at.
19
+ * TODO: remove temporary side placement
20
+ */
21
+ offset?: number;
22
+ /**
23
+ * @internal
24
+ * Raises the content width cap for components that omit `maxWidth` from their
25
+ * public props, such as `Tooltip`. Takes precedence over `maxWidth`.
26
+ */
27
+ maxWidth?: Property.MaxWidth | number;
28
+ };
6
29
  export type TooltipContentProps = {
7
30
  content: ReactElement;
8
31
  triggerRef: MutableRefObject<any>;
@@ -24,12 +47,14 @@ export type TooltipContentProps = {
24
47
  onTooltipPointerLeave?: React.PointerEventHandler<HTMLDivElement>;
25
48
  /** This callback is triggered when content overflows the viewport both above and below trigger. Use this for tracking purposes or re-rendering Popover with a larger maxWidth */
26
49
  onOverflowViewport?: (triggerRect: DOMRect, tooltipRect: DOMRect, viewportHeight: number) => void;
50
+ privateProps?: TooltipPrivateProps;
27
51
  } & Pick<PortalProps, "portalContainer"> & AriaAttributes;
28
52
  export type TooltipStyle = {
29
53
  top: number;
30
54
  left: number;
31
55
  horizontalPlacement: "left" | "right" | "center";
32
56
  verticalPlacement: "top" | "bottom";
57
+ isSidePlacement?: boolean;
33
58
  };
34
59
  /** This component is used to display the overlay for both Toggletip and Tooltip components */
35
- export declare function TooltipContent({ placement, content, tooltipId, triggerRef, portalContainer, dataE2eTestId, dataDSId, isVisible, "aria-hidden": ariaHidden, role, tabIndex, contentPadding, maxWidth, subTheme, defaultVerticalPlacement, hideArrow, isHiddenOnInvisibleTrigger, onTooltipPointerEnter, onTooltipPointerLeave, onOverflowViewport, ...ariaAttributes }: TooltipContentProps): React.ReactElement;
60
+ export declare function TooltipContent({ placement, content, tooltipId, triggerRef, portalContainer, dataE2eTestId, dataDSId, isVisible, "aria-hidden": ariaHidden, role, tabIndex, contentPadding, maxWidth, subTheme, defaultVerticalPlacement, hideArrow, isHiddenOnInvisibleTrigger, onTooltipPointerEnter, onTooltipPointerLeave, onOverflowViewport, privateProps, ...ariaAttributes }: TooltipContentProps): React.ReactElement;
@@ -1 +1 @@
1
- import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e1c7en970",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICBzdWJUaGVtZT86IFN1YlRoZW1lVHlwZXM7XG4gIG1heFdpZHRoPzogUHJvcGVydHkuTWF4V2lkdGggfCBudW1iZXI7XG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudD86IFRvb2x0aXBTdHlsZVtcInZlcnRpY2FsUGxhY2VtZW50XCJdO1xuICBoaWRlQXJyb3c/OiBib29sZWFuO1xuICAvKiogU2V0cyBjc3MgdmlzaWJpbGl0eSBoaWRkZW4gd2hlbiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyPzogYm9vbGVhbjtcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uVG9vbHRpcFBvaW50ZXJMZWF2ZT86IFJlYWN0LlBvaW50ZXJFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICAvKiogVGhpcyBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0aGUgdmlld3BvcnQgYm90aCBhYm92ZSBhbmQgYmVsb3cgdHJpZ2dlci4gVXNlIHRoaXMgZm9yIHRyYWNraW5nIHB1cnBvc2VzIG9yIHJlLXJlbmRlcmluZyBQb3BvdmVyIHdpdGggYSBsYXJnZXIgbWF4V2lkdGggKi9cbiAgb25PdmVyZmxvd1ZpZXdwb3J0PzogKFxuICAgIHRyaWdnZXJSZWN0OiBET01SZWN0LFxuICAgIHRvb2x0aXBSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0SGVpZ2h0OiBudW1iZXJcbiAgKSA9PiB2b2lkO1xufSAmIFBpY2s8UG9ydGFsUHJvcHMsIFwicG9ydGFsQ29udGFpbmVyXCI+ICZcbiAgQXJpYUF0dHJpYnV0ZXM7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0gUGljazxcbiAgVG9vbHRpcENvbnRlbnRQcm9wcyxcbiAgXCJjb250ZW50UGFkZGluZ1wiIHwgXCJtYXhXaWR0aFwiIHwgXCJzdWJUaGVtZVwiXG4+ICYge1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJob3Jpem9udGFsUGxhY2VtZW50XCJdO1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGlzSGlkZGVuOiBib29sZWFuO1xufTtcblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuY29uc3QgU0hPV19ISURFX0RFTEFZID0gMjAwO1xuY29uc3QgTUFYX0NPTlRFTlRfV0lEVEggPSAyMjQ7XG4vLyBVc2UgMC45OSBpbnN0ZWFkIG9mIDEuMCB0byBoYW5kbGUgc3ViLXBpeGVsIHJvdW5kaW5nIGlzc3Vlc1xuLy8gdGhhdCBjYW4gY2F1c2UgaW50ZXJzZWN0aW9uUmF0aW8gdG8gcmVwb3J0IHZhbHVlcyBsaWtlIDAuOTlcbmNvbnN0IElOVEVSU0VDVElPTl9USFJFU0hPTEQgPSAwLjk5O1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENvbnRhaW5lclByb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHZlcnRpY2FsUGxhY2VtZW50LFxuICAgIG1heFdpZHRoLFxuICAgIGNvbnRlbnRQYWRkaW5nLFxuICAgIHN1YlRoZW1lLFxuICAgIGlzSGlkZGVuLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiXG4gICAgICAgICAgICA/IGB0cmFuc2xhdGUoLTUwJSwgJHthbmltYXRpb25EaXN0YW5jZX0pYFxuICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nTWFwID0ge1xuICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGludmVydGVkU3ViVGhlbWVTdHlsZXMgPSB7XG4gICAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuICAgICAgLi4uKGNvbnRlbnRQYWRkaW5nICYmIHtcbiAgICAgICAgcGFkZGluZzogY29udGVudFBhZGRpbmdNYXBbY29udGVudFBhZGRpbmddLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IHpJbmRleCA9IHVzZVBvcnRhbENoaWxkWkluZGV4KHRoZW1lLnZhcmlhYmxlcy56SW5kZXgudG9vbHRpcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHpJbmRleCxcbiAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbixcbiAgICAgIGFuaW1hdGlvbjogYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2Utb3V0IGZvcndhcmRzICR7YW5pbWF0aW9ufWAsXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHdpZHRoOiBcIm1heC1jb250ZW50XCIsXG4gICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLnByaW1hcnkuZGVmYXVsdFxuICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICBib3JkZXJSYWRpdXM6IHN1YlRoZW1lXG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLnMsXG5cbiAgICAgIC4uLihpc0hpZGRlbiAmJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXN1YlRoZW1lICYmIGludmVydGVkU3ViVGhlbWVTdHlsZXMpLFxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCIgJiYge1xuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUpXCIsXG4gICAgICB9KSxcblxuICAgICAgLi4uKCFzdWJUaGVtZSAmJiB7XG4gICAgICAgIFwiOmFmdGVyXCI6IHtcbiAgICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBcImluaGVyaXRcIixcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG4pO1xuXG50eXBlIFN0eWxlZEFycm93UHJvcHMgPSBQaWNrPFRvb2x0aXBDb250ZW50UHJvcHMsIFwic3ViVGhlbWVcIj4gJiB7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1wiaG9yaXpvbnRhbFBsYWNlbWVudFwiXTtcbiAgc2l6ZT86IDAgfCB0eXBlb2YgQVJST1dfU0laRSB8IHR5cGVvZiBBUlJPV19TSVpFX0JJRztcbn07XG5cbi8vIFRoaXMgY29udGFpbmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBhcnJvdyBzaGFkb3cgYmx1clxuY29uc3QgQVJST1dfQ09OVEFJTkVSX1dJRFRIID0gNDA7XG5cbmNvbnN0IFN0eWxlZEFycm93ID0gc3R5bGVkLmRpdjxTdHlsZWRBcnJvd1Byb3BzPihcbiAgKHtcbiAgICB0aGVtZSxcbiAgICBzdWJUaGVtZSxcbiAgICB2ZXJ0aWNhbFBsYWNlbWVudCxcbiAgICBob3Jpem9udGFsUGxhY2VtZW50LFxuICAgIHNpemUgPSBBUlJPV19TSVpFLFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gZ2V0QXJyb3dPZmZzZXQoc2l6ZSk7XG4gICAgY29uc3QgYWRqdXN0bWVudEZvclNoYWRvdyA9IHN1YlRoZW1lID8gMCA6IDE7XG4gICAgY29uc3QgYXJyb3dDb250YWluZXJIZWlnaHQgPSBzaXplICsgRElTVEFOQ0VfRlJPTV9UUklHR0VSO1xuICAgIC8vIEdldCBhcnJvdyB3aWR0aCBhbmQgaGVpZ2h0IHVzaW5nIHB5dGhvZ29yYXMgdGhlb3JlbSBhbmQgYWRkIDEgdG8gaGVpZ2h0IHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBzaGFkb3cuXG4gICAgY29uc3QgYXJyb3dTaWRlTGVuZ3RoID0gTWF0aC5zcXJ0KFxuICAgICAgc2l6ZSAqKiAyICsgKHNpemUgKyBhZGp1c3RtZW50Rm9yU2hhZG93KSAqKiAyXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IEFSUk9XX0NPTlRBSU5FUl9XSURUSCxcbiAgICAgIGhlaWdodDogYXJyb3dDb250YWluZXJIZWlnaHQsXG4gICAgICB6SW5kZXg6IDEsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcblxuICAgICAgLi4uKHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiICYmIHtcbiAgICAgICAgLy8gcGxhY2UgdGhlIGFycm93IGNvbnRhaW5lciAxcHggaW5zaWRlIHRvb2x0aXAgY29udGFpbmVyIHRvIGFjY291bnQgZm9yIGRhcmsgbW9kZSBib3gtc2hhZG93XG4gICAgICAgIHRvcDogYGNhbGMoMTAwJSAtICR7YWRqdXN0bWVudEZvclNoYWRvd31weClgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJib3R0b21cIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGAtJHthcnJvd0NvbnRhaW5lckhlaWdodCAtIGFkanVzdG1lbnRGb3JTaGFkb3d9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgICBsZWZ0OiBgJHtvZmZzZXQgLSAoQVJST1dfQ09OVEFJTkVSX1dJRFRIIC8gMiAtIHNpemUpfXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJsZWZ0XCIgJiYge1xuICAgICAgICByaWdodDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgXCImOjphZnRlclwiOiB7XG4gICAgICAgIGNvbnRlbnQ6ICdcIiBcIicsXG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCIgPyAwIDogXCIxMDAlXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHdpZHRoOiBhcnJvd1NpZGVMZW5ndGgsXG4gICAgICAgIGhlaWdodDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN1YlRoZW1lXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgICA6IHRoZW1lLnZhbHVlcy5jb2xvci5iYWNrZ3JvdW5kLmVsZXZhdGVkLmRlZmF1bHQsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuXG4gICAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblszXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGluaXRpYWxTdHlsZTogVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiLFxuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImNlbnRlclwiLFxufTtcblxubGV0IGxhc3RUb29sdGlwSGlkZVRpbWVzdGFtcCA9IDA7XG5cbi8qIERpc2FibGUgYW5pbWF0aW9uIGlmIHRpbWUgYmV0d2VlbiBsYXN0IGNsb3NlIGFuZCBuZXcgb3BlbiBpcyBsZXNzIHRoYW4gNTAwbXMgKyBTSE9XX0hJREVfREVMQVkgKi9cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICBsZXQgYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtBTklNQVRJT05fRFVSQVRJT059bXNgO1xuXG4gIGlmIChsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXApIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0VG9vbHRpcCA9IERhdGUubm93KCkgLSBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXA7XG5cbiAgICBpZiAodGltZVNpbmNlTGFzdFRvb2x0aXAgPCA1MDAgKyBTSE9XX0hJREVfREVMQVkpIHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uID0gXCIwbXNcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xufVxuXG4vKiogVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBvdmVybGF5IGZvciBib3RoIFRvZ2dsZXRpcCBhbmQgVG9vbHRpcCBjb21wb25lbnRzICovXG5leHBvcnQgZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoe1xuICBwbGFjZW1lbnQgPSBcImF1dG9cIixcbiAgY29udGVudCxcbiAgdG9vbHRpcElkLFxuICB0cmlnZ2VyUmVmLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGRhdGFFMmVUZXN0SWQsXG4gIGRhdGFEU0lkLFxuICBpc1Zpc2libGUsXG4gIFwiYXJpYS1oaWRkZW5cIjogYXJpYUhpZGRlbixcbiAgcm9sZSxcbiAgdGFiSW5kZXgsXG4gIGNvbnRlbnRQYWRkaW5nLFxuICBtYXhXaWR0aCA9IE1BWF9DT05URU5UX1dJRFRILFxuICBzdWJUaGVtZSxcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICBoaWRlQXJyb3cgPSBmYWxzZSxcbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXIgPSBmYWxzZSxcbiAgb25Ub29sdGlwUG9pbnRlckVudGVyLFxuICBvblRvb2x0aXBQb2ludGVyTGVhdmUsXG4gIG9uT3ZlcmZsb3dWaWV3cG9ydCxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuXG4gIGNvbnN0IGFycm93U2l6ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlQXJyb3cpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gc3ViVGhlbWUgPyBBUlJPV19TSVpFIDogQVJST1dfU0laRV9CSUc7XG4gIH0sIFtzdWJUaGVtZSwgaGlkZUFycm93XSk7XG5cbiAgY29uc3QgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyA9IHVzZUNhbGxiYWNrPFxuICAgIFRvb2x0aXBDb250ZW50UHJvcHNbXCJvbk92ZXJmbG93Vmlld3BvcnRcIl1cbiAgPihcbiAgICAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCB2aWV3cG9ydEhlaWdodCkgPT4ge1xuICAgICAgaWYgKCFpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ/Lih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3ZlcmZsb3dWaWV3cG9ydCwgaXNPdmVyZmxvd0NhbGxiYWNrQ2FsbGVkUmVmXVxuICApO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZVN0eWxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyUmVmLmN1cnJlbnQgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBjYWxjdWxhdGUgdG9vbHRpcCBzdHlsZVxuICAgICAgc2V0U3R5bGUoXG4gICAgICAgIGdldFRvb2x0aXBTdHlsZSh7XG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICAgIHRvb2x0aXBSZWYsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgIGFycm93U2l6ZSxcbiAgICAgICAgICBvbk92ZXJmbG93Vmlld3BvcnQ6IGhhbmRsZVZpZXdwb3J0T3ZlcmZsb3csXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgXSk7XG5cbiAgLy8gVGhpcyBsYXlvdXQgZWZmZWN0IHRvIHJlLXJlbmRlciB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gYWZ0ZXIgZGV0ZXJtaW5pbmcgY29udGVudCB3aWR0aFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgfVxuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgY29udGVudFBhZGRpbmcsIGNvbnRlbnQsIG1heFdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBSZWYuY3VycmVudCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH0gZWxzZSBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgLy8gbG9nIHRpbWUgd2hlbiB0b29sdGlwIGNsb3Nlc1xuICAgICAgbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgY2FsY3VsYXRlU3R5bGUpO1xuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB3aW5kb3csIHRvb2x0aXBSZWZdKTtcblxuICAvLyBPYnNlcnZlIHRvb2x0aXAgZWxlbWVudCBzaXplIGNoYW5nZXMgdG8gcmVjYWxjdWxhdGUgcG9zaXRpb25pbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKFxuICAgICAgaXNWaXNpYmxlICYmXG4gICAgICB0b29sdGlwUmVmLmN1cnJlbnQgJiZcbiAgICAgIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5jb250ZW50UmVjdC53aWR0aCA+IDAgJiYgZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodG9vbHRpcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbaXNWaXNpYmxlLCBjYWxjdWxhdGVTdHlsZSwgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIFJlY2FsY3VsYXRlIHBvc2l0aW9uIHdoZW4gdGhlIHRyaWdnZXIgbW92ZXMgd2l0aG91dCBlbWl0dGluZyBzY3JvbGwvcmVzaXplXG4gIC8vIGV2ZW50cyAoZS5nLiBDU1MgdHJhbnNmb3JtcywgY2FudmFzIHpvb20vcGFuKS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyO1xuICAgIGxldCBwcmV2UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IHRyaWdnZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAoXG4gICAgICAgIHByZXZSZWN0ICYmXG4gICAgICAgIG5leHRSZWN0ICYmXG4gICAgICAgIChwcmV2UmVjdC54ICE9PSBuZXh0UmVjdC54IHx8XG4gICAgICAgICAgcHJldlJlY3QueSAhPT0gbmV4dFJlY3QueSB8fFxuICAgICAgICAgIHByZXZSZWN0LndpZHRoICE9PSBuZXh0UmVjdC53aWR0aCB8fFxuICAgICAgICAgIHByZXZSZWN0LmhlaWdodCAhPT0gbmV4dFJlY3QuaGVpZ2h0KVxuICAgICAgKSB7XG4gICAgICAgIGNhbGN1bGF0ZVN0eWxlKCk7XG4gICAgICB9XG4gICAgICBwcmV2UmVjdCA9IG5leHRSZWN0O1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgfTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlY2FsY3VsYXRlUG9zaXRpb24pO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCk7XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0cmlnZ2VyUmVmXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbaXNWaXNpYmxlLCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdKTtcblxuICAvKiBIaWRlICh2aXNpYmlsaXR5OiBoaWRkZW4pIHRvb2x0aXAgaWYgdHJpZ2dlciBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlciAmJlxuICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ICYmXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3Q7XG5cbiAgICAgICAgICAgIC8vIElnbm9yZSBpbnRlcnNlY3Rpb24gY2hhbmdlcyB3aGVuIGVsZW1lbnQgaGFzIHplcm8gZGltZW5zaW9uc1xuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGR1cmluZyBET00gdXBkYXRlcy9wb3J0YWwgcmVuZGVyaW5nXG4gICAgICAgICAgICBpZiAocmVjdD8ud2lkdGggPT09IDAgJiYgcmVjdD8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0SXNIaWRkZW4oIWVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsIC8vIHZpZXdwb3J0XG4gICAgICAgICAgdGhyZXNob2xkOiBJTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRyaWdnZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3RyaWdnZXJSZWYsIGlzVmlzaWJsZSwgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXJdKTtcblxuICBpZiAoIWlzVmlzaWJsZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgdG9vbHRpcEVsbSA9IChcbiAgICA8U3R5bGVkQ29udGFpbmVyXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD17ZGF0YURTSWR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IHN0eWxlLnRvcCxcbiAgICAgICAgbGVmdDogc3R5bGUubGVmdCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGdldEFuaW1hdGlvbkR1cmF0aW9uKCksXG4gICAgICB9fVxuICAgICAgcmVmPXt0b29sdGlwUmVmfVxuICAgICAgaWQ9e3Rvb2x0aXBJZH1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICB7Li4uYXJpYUF0dHJpYnV0ZXN9XG4gICAgICBhcmlhLWhpZGRlbj17YXJpYUhpZGRlbn1cbiAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGhvcml6b250YWxQbGFjZW1lbnQ9e3N0eWxlLmhvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICB2ZXJ0aWNhbFBsYWNlbWVudD17c3R5bGUudmVydGljYWxQbGFjZW1lbnR9XG4gICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBvblBvaW50ZXJFbnRlcj17b25Ub29sdGlwUG9pbnRlckVudGVyfVxuICAgICAgb25Qb2ludGVyTGVhdmU9e29uVG9vbHRpcFBvaW50ZXJMZWF2ZX1cbiAgICA+XG4gICAgICB7Y29udGVudH1cbiAgICAgIHshaGlkZUFycm93ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGd0IifQ== */"),StyledArrow=styled("div",{target:"e1c7en971",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwQ29udGVudFByb3BzID0ge1xuICBjb250ZW50OiBSZWFjdEVsZW1lbnQ7XG4gIHRyaWdnZXJSZWY6IE11dGFibGVSZWZPYmplY3Q8YW55PjtcbiAgcGxhY2VtZW50PzpcbiAgICB8IFwiYXV0b1wiXG4gICAgfCBcInRvcFwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcInRvcC1sZWZ0XCJcbiAgICB8IFwidG9wLXJpZ2h0XCJcbiAgICB8IFwiYm90dG9tLWxlZnRcIlxuICAgIHwgXCJib3R0b20tcmlnaHRcIjtcbiAgZGF0YUUyZVRlc3RJZD86IHN0cmluZztcbiAgZGF0YURTSWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcElkPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgY29udGVudFBhZGRpbmc/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"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,...ariaAttributes}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,maxWidth]),useEffect(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),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]),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]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...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.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
1
+ import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e7hx7lj0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden,isSidePlacement})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,...!isSidePlacement&&{transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwUHJpdmF0ZVByb3BzID0ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFBsYWNlcyB0aGUgdG9vbHRpcCBiZXNpZGUgdGhlIHRyaWdnZXIgd2l0aCB0aGVpciB0b3AgZWRnZXMgYWxpZ25lZCBpbnN0ZWFkXG4gICAqIG9mIGFib3ZlIG9yIGJlbG93IGl0LiBSZW5kZXJzIHdpdGhvdXQgYW4gYXJyb3csIHRha2VzIHByZWNlZGVuY2Ugb3ZlclxuICAgKiBgcGxhY2VtZW50YCwgYW5kIGZhbGxzIGJhY2sgdG8gYHBsYWNlbWVudGAgd2hlbiB0aGVyZSBpcyBubyByb29tLlxuICAgKiBUT0RPOiByZW1vdmUgdGVtcG9yYXJ5IHNpZGUgcGxhY2VtZW50XG4gICAqL1xuICBwbGFjZW1lbnQ/OiBcInJpZ2h0LXRvcFwiO1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEdhcCBpbiBweCBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZCBhIHNpZGUtcGxhY2VkIHRvb2x0aXAuIE9ubHkgYXBwbGllc1xuICAgKiBhbG9uZ3NpZGUgYHBsYWNlbWVudGAuIERlZmF1bHRzIHRvIDEwcHgsIHRoZSBnYXAgb3RoZXIgdG9vbHRpcHMgc2V0dGxlIGF0LlxuICAgKiBUT0RPOiByZW1vdmUgdGVtcG9yYXJ5IHNpZGUgcGxhY2VtZW50XG4gICAqL1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmFpc2VzIHRoZSBjb250ZW50IHdpZHRoIGNhcCBmb3IgY29tcG9uZW50cyB0aGF0IG9taXQgYG1heFdpZHRoYCBmcm9tIHRoZWlyXG4gICAqIHB1YmxpYyBwcm9wcywgc3VjaCBhcyBgVG9vbHRpcGAuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciBgbWF4V2lkdGhgLlxuICAgKi9cbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG4gIHByaXZhdGVQcm9wcz86IFRvb2x0aXBQcml2YXRlUHJvcHM7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj4gJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbiAgaXNTaWRlUGxhY2VtZW50PzogYm9vbGVhbjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcInN1YlRoZW1lXCJcbj4gJiB7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaXNIaWRkZW46IGJvb2xlYW47XG4gIGlzU2lkZVBsYWNlbWVudD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcbi8vIFVzZSAwLjk5IGluc3RlYWQgb2YgMS4wIHRvIGhhbmRsZSBzdWItcGl4ZWwgcm91bmRpbmcgaXNzdWVzXG4vLyB0aGF0IGNhbiBjYXVzZSBpbnRlcnNlY3Rpb25SYXRpbyB0byByZXBvcnQgdmFsdWVzIGxpa2UgMC45OVxuY29uc3QgSU5URVJTRUNUSU9OX1RIUkVTSE9MRCA9IDAuOTk7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gICAgaXNTaWRlUGxhY2VtZW50LFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIC8vIFNpZGUgcGxhY2VtZW50IGZhZGVzIGluIHdpdGhvdXQgbW92aW5nLCBzbyBpdCBrZWVwcyBubyB0cmFuc2Zvcm0uXG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnRcbiAgICAgICAgLi4uKCFpc1NpZGVQbGFjZW1lbnQgJiYge1xuICAgICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB6SW5kZXggPSB1c2VQb3J0YWxDaGlsZFpJbmRleCh0aGVtZS52YXJpYWJsZXMuekluZGV4LnRvb2x0aXApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXgsXG4gICAgICBvcGFjaXR5OiB0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sXG4gICAgICBhbmltYXRpb246IGAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLW91dCBmb3J3YXJkcyAke2FuaW1hdGlvbn1gLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICB3aWR0aDogXCJtYXgtY29udGVudFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgYm9yZGVyUmFkaXVzOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy54c1xuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5zLFxuXG4gICAgICAuLi4oaXNIaWRkZW4gJiYge1xuICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiLFxuICAgICAgfSksXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG4gIHByaXZhdGVQcm9wcyxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuICAvLyBSZWFkIGFzIHByaW1pdGl2ZXMgc28gYW4gaW5saW5lIGBwcml2YXRlUHJvcHNgIGxpdGVyYWwgZG9lcyBub3QgZ2l2ZVxuICAvLyBgY2FsY3VsYXRlU3R5bGVgIGEgbmV3IGlkZW50aXR5IG9uIGV2ZXJ5IHJlbmRlci5cbiAgY29uc3Qge1xuICAgIC8vIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnQsIGJvdGggZmllbGRzXG4gICAgcGxhY2VtZW50OiBzaWRlUGxhY2VtZW50LFxuICAgIG9mZnNldDogc2lkZU9mZnNldCxcbiAgICBtYXhXaWR0aDogcHJpdmF0ZU1heFdpZHRoLFxuICB9ID0gcHJpdmF0ZVByb3BzID8/IHt9O1xuICBjb25zdCBjb250ZW50TWF4V2lkdGggPSBwcml2YXRlTWF4V2lkdGggPz8gbWF4V2lkdGg7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBzdWJUaGVtZSA/IEFSUk9XX1NJWkUgOiBBUlJPV19TSVpFX0JJRztcbiAgfSwgW3N1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBoYW5kbGVWaWV3cG9ydE92ZXJmbG93ID0gdXNlQ2FsbGJhY2s8XG4gICAgVG9vbHRpcENvbnRlbnRQcm9wc1tcIm9uT3ZlcmZsb3dWaWV3cG9ydFwiXVxuICA+KFxuICAgICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KSA9PiB7XG4gICAgICBpZiAoIWlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIG9uT3ZlcmZsb3dWaWV3cG9ydD8uKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpO1xuICAgICAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25PdmVyZmxvd1ZpZXdwb3J0LCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdXG4gICk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKHtcbiAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgICAgICAgIHRyaWdnZXJSZWYsXG4gICAgICAgICAgdG9vbHRpcFJlZixcbiAgICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgYXJyb3dTaXplLFxuICAgICAgICAgIG9uT3ZlcmZsb3dWaWV3cG9ydDogaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgICAgICAgICBzaWRlUGxhY2VtZW50LFxuICAgICAgICAgIHNpZGVPZmZzZXQsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgICBzaWRlUGxhY2VtZW50LFxuICAgIHNpZGVPZmZzZXQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBjb250ZW50TWF4V2lkdGhdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgfTtcbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIE9ic2VydmUgdG9vbHRpcCBlbGVtZW50IHNpemUgY2hhbmdlcyB0byByZWNhbGN1bGF0ZSBwb3NpdGlvbmluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudCAmJlxuICAgICAgdHlwZW9mIFJlc2l6ZU9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgKSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgaWYgKGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoID4gMCAmJiBlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0b29sdGlwUmVmXSk7XG5cbiAgLy8gUmVjYWxjdWxhdGUgcG9zaXRpb24gd2hlbiB0aGUgdHJpZ2dlciBtb3ZlcyB3aXRob3V0IGVtaXR0aW5nIHNjcm9sbC9yZXNpemVcbiAgLy8gZXZlbnRzIChlLmcuIENTUyB0cmFuc2Zvcm1zLCBjYW52YXMgem9vbS9wYW4pLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNWaXNpYmxlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgbGV0IHJlcXVlc3RBbmltYXRpb25GcmFtZUlkOiBudW1iZXI7XG4gICAgbGV0IHByZXZSZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVjYWxjdWxhdGVQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5leHRSZWN0ID0gdHJpZ2dlclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJldlJlY3QgJiZcbiAgICAgICAgbmV4dFJlY3QgJiZcbiAgICAgICAgKHByZXZSZWN0LnggIT09IG5leHRSZWN0LnggfHxcbiAgICAgICAgICBwcmV2UmVjdC55ICE9PSBuZXh0UmVjdC55IHx8XG4gICAgICAgICAgcHJldlJlY3Qud2lkdGggIT09IG5leHRSZWN0LndpZHRoIHx8XG4gICAgICAgICAgcHJldlJlY3QuaGVpZ2h0ICE9PSBuZXh0UmVjdC5oZWlnaHQpXG4gICAgICApIHtcbiAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgIH1cbiAgICAgIHByZXZSZWN0ID0gbmV4dFJlY3Q7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZWNhbGN1bGF0ZVBvc2l0aW9uKTtcbiAgICB9O1xuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJlcXVlc3RBbmltYXRpb25GcmFtZUlkKTtcbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIHRyaWdnZXJSZWZdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0sIFtpc1Zpc2libGUsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl0pO1xuXG4gIC8qIEhpZGUgKHZpc2liaWxpdHk6IGhpZGRlbikgdG9vbHRpcCBpZiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICAgIGlmIChcbiAgICAgIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyICYmXG4gICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdDtcblxuICAgICAgICAgICAgLy8gSWdub3JlIGludGVyc2VjdGlvbiBjaGFuZ2VzIHdoZW4gZWxlbWVudCBoYXMgemVybyBkaW1lbnNpb25zXG4gICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gZHVyaW5nIERPTSB1cGRhdGVzL3BvcnRhbCByZW5kZXJpbmdcbiAgICAgICAgICAgIGlmIChyZWN0Py53aWR0aCA9PT0gMCAmJiByZWN0Py5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRJc0hpZGRlbighZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgcm9vdDogbnVsbCwgLy8gdmlld3BvcnRcbiAgICAgICAgICB0aHJlc2hvbGQ6IElOVEVSU0VDVElPTl9USFJFU0hPTEQsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUodHJpZ2dlclJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHJpZ2dlclJlZiwgaXNWaXNpYmxlLCBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlcl0pO1xuXG4gIGlmICghaXNWaXNpYmxlKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCB0b29sdGlwRWxtID0gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHRvcDogc3R5bGUudG9wLFxuICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICBhbmltYXRpb25EdXJhdGlvbjogZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSxcbiAgICAgIH19XG4gICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICBpZD17dG9vbHRpcElkfVxuICAgICAgcm9sZT17cm9sZX1cbiAgICAgIHsuLi5hcmlhQXR0cmlidXRlc31cbiAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgc3ViVGhlbWU9e3N1YlRoZW1lfVxuICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgIG1heFdpZHRoPXtjb250ZW50TWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBpc1NpZGVQbGFjZW1lbnQ9e3N0eWxlLmlzU2lkZVBsYWNlbWVudH1cbiAgICAgIG9uUG9pbnRlckVudGVyPXtvblRvb2x0aXBQb2ludGVyRW50ZXJ9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgID5cbiAgICAgIHtjb250ZW50fVxuICAgICAgey8qIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnQgKi99XG4gICAgICB7IWhpZGVBcnJvdyAmJiAhc3R5bGUuaXNTaWRlUGxhY2VtZW50ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Id0IifQ== */"),StyledArrow=styled("div",{target:"e7hx7lj1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwQ29udGVudC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJpYUF0dHJpYnV0ZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0RWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgdHlwZSB7IFN1YlRoZW1lVHlwZXMgfSBmcm9tIFwiLi4vLi4vd2ViLXRva2Vucy9fc3ViVGhlbWVUeXBlXCI7XG5pbXBvcnQgeyB1c2VEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlRG9jdW1lbnRcIjtcbmltcG9ydCB7IHVzZVdpbmRvdyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlV2luZG93XCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgUG9ydGFsLFxuICB1c2VQb3J0YWxDaGlsZFpJbmRleCxcbiAgdHlwZSBQb3J0YWxQcm9wcyxcbn0gZnJvbSBcIi4uL1BvcnRhbC9Qb3J0YWxcIjtcblxuaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RJU1RBTkNFLFxuICBBUlJPV19TSVpFLFxuICBBUlJPV19TSVpFX0JJRyxcbiAgRElTVEFOQ0VfRlJPTV9UUklHR0VSLFxuICBnZXRBcnJvd09mZnNldCxcbiAgZ2V0VG9vbHRpcFN0eWxlLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwUHJpdmF0ZVByb3BzID0ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFBsYWNlcyB0aGUgdG9vbHRpcCBiZXNpZGUgdGhlIHRyaWdnZXIgd2l0aCB0aGVpciB0b3AgZWRnZXMgYWxpZ25lZCBpbnN0ZWFkXG4gICAqIG9mIGFib3ZlIG9yIGJlbG93IGl0LiBSZW5kZXJzIHdpdGhvdXQgYW4gYXJyb3csIHRha2VzIHByZWNlZGVuY2Ugb3ZlclxuICAgKiBgcGxhY2VtZW50YCwgYW5kIGZhbGxzIGJhY2sgdG8gYHBsYWNlbWVudGAgd2hlbiB0aGVyZSBpcyBubyByb29tLlxuICAgKiBUT0RPOiByZW1vdmUgdGVtcG9yYXJ5IHNpZGUgcGxhY2VtZW50XG4gICAqL1xuICBwbGFjZW1lbnQ/OiBcInJpZ2h0LXRvcFwiO1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEdhcCBpbiBweCBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZCBhIHNpZGUtcGxhY2VkIHRvb2x0aXAuIE9ubHkgYXBwbGllc1xuICAgKiBhbG9uZ3NpZGUgYHBsYWNlbWVudGAuIERlZmF1bHRzIHRvIDEwcHgsIHRoZSBnYXAgb3RoZXIgdG9vbHRpcHMgc2V0dGxlIGF0LlxuICAgKiBUT0RPOiByZW1vdmUgdGVtcG9yYXJ5IHNpZGUgcGxhY2VtZW50XG4gICAqL1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmFpc2VzIHRoZSBjb250ZW50IHdpZHRoIGNhcCBmb3IgY29tcG9uZW50cyB0aGF0IG9taXQgYG1heFdpZHRoYCBmcm9tIHRoZWlyXG4gICAqIHB1YmxpYyBwcm9wcywgc3VjaCBhcyBgVG9vbHRpcGAuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciBgbWF4V2lkdGhgLlxuICAgKi9cbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0RWxlbWVudDtcbiAgdHJpZ2dlclJlZjogTXV0YWJsZVJlZk9iamVjdDxhbnk+O1xuICBwbGFjZW1lbnQ/OlxuICAgIHwgXCJhdXRvXCJcbiAgICB8IFwidG9wXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwidG9wLWxlZnRcIlxuICAgIHwgXCJ0b3AtcmlnaHRcIlxuICAgIHwgXCJib3R0b20tbGVmdFwiXG4gICAgfCBcImJvdHRvbS1yaWdodFwiO1xuICBkYXRhRTJlVGVzdElkPzogc3RyaW5nO1xuICBkYXRhRFNJZDogc3RyaW5nO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB0b29sdGlwSWQ/OiBzdHJpbmc7XG4gIHJvbGU/OiBzdHJpbmc7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xuICBjb250ZW50UGFkZGluZz86IFwic1wiIHwgXCJtXCI7XG4gIHN1YlRoZW1lPzogU3ViVGhlbWVUeXBlcztcbiAgbWF4V2lkdGg/OiBQcm9wZXJ0eS5NYXhXaWR0aCB8IG51bWJlcjtcbiAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50PzogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhpZGVBcnJvdz86IGJvb2xlYW47XG4gIC8qKiBTZXRzIGNzcyB2aXNpYmlsaXR5IGhpZGRlbiB3aGVuIHRyaWdnZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgKi9cbiAgaXNIaWRkZW5PbkludmlzaWJsZVRyaWdnZXI/OiBib29sZWFuO1xuICBvblRvb2x0aXBQb2ludGVyRW50ZXI/OiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlPzogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBUaGlzIGNhbGxiYWNrIGlzIHRyaWdnZXJlZCB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSB2aWV3cG9ydCBib3RoIGFib3ZlIGFuZCBiZWxvdyB0cmlnZ2VyLiBVc2UgdGhpcyBmb3IgdHJhY2tpbmcgcHVycG9zZXMgb3IgcmUtcmVuZGVyaW5nIFBvcG92ZXIgd2l0aCBhIGxhcmdlciBtYXhXaWR0aCAqL1xuICBvbk92ZXJmbG93Vmlld3BvcnQ/OiAoXG4gICAgdHJpZ2dlclJlY3Q6IERPTVJlY3QsXG4gICAgdG9vbHRpcFJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlclxuICApID0+IHZvaWQ7XG4gIHByaXZhdGVQcm9wcz86IFRvb2x0aXBQcml2YXRlUHJvcHM7XG59ICYgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj4gJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0eWxlID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBob3Jpem9udGFsUGxhY2VtZW50OiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBcInRvcFwiIHwgXCJib3R0b21cIjtcbiAgaXNTaWRlUGxhY2VtZW50PzogYm9vbGVhbjtcbn07XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBUb29sdGlwQ29udGVudFByb3BzLFxuICBcImNvbnRlbnRQYWRkaW5nXCIgfCBcIm1heFdpZHRoXCIgfCBcInN1YlRoZW1lXCJcbj4gJiB7XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHZlcnRpY2FsUGxhY2VtZW50OiBUb29sdGlwU3R5bGVbXCJ2ZXJ0aWNhbFBsYWNlbWVudFwiXTtcbiAgaXNIaWRkZW46IGJvb2xlYW47XG4gIGlzU2lkZVBsYWNlbWVudD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XG5jb25zdCBTSE9XX0hJREVfREVMQVkgPSAyMDA7XG5jb25zdCBNQVhfQ09OVEVOVF9XSURUSCA9IDIyNDtcbi8vIFVzZSAwLjk5IGluc3RlYWQgb2YgMS4wIHRvIGhhbmRsZSBzdWItcGl4ZWwgcm91bmRpbmcgaXNzdWVzXG4vLyB0aGF0IGNhbiBjYXVzZSBpbnRlcnNlY3Rpb25SYXRpbyB0byByZXBvcnQgdmFsdWVzIGxpa2UgMC45OVxuY29uc3QgSU5URVJTRUNUSU9OX1RIUkVTSE9MRCA9IDAuOTk7XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGhvcml6b250YWxQbGFjZW1lbnQsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgbWF4V2lkdGgsXG4gICAgY29udGVudFBhZGRpbmcsXG4gICAgc3ViVGhlbWUsXG4gICAgaXNIaWRkZW4sXG4gICAgaXNTaWRlUGxhY2VtZW50LFxuICB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uRGlzdGFuY2UgPVxuICAgICAgdmVydGljYWxQbGFjZW1lbnQgPT09IFwidG9wXCJcbiAgICAgICAgPyBgJHtBTklNQVRJT05fRElTVEFOQ0V9cHhgXG4gICAgICAgIDogYC0ke0FOSU1BVElPTl9ESVNUQU5DRX1weGA7XG4gICAgY29uc3QgYW5pbWF0aW9uID0ga2V5ZnJhbWVzKHtcbiAgICAgIHRvOiB7XG4gICAgICAgIG9wYWNpdHk6IHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGUsXG4gICAgICAgIC8vIFNpZGUgcGxhY2VtZW50IGZhZGVzIGluIHdpdGhvdXQgbW92aW5nLCBzbyBpdCBrZWVwcyBubyB0cmFuc2Zvcm0uXG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnRcbiAgICAgICAgLi4uKCFpc1NpZGVQbGFjZW1lbnQgJiYge1xuICAgICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICAgIGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPyBgdHJhbnNsYXRlKC01MCUsICR7YW5pbWF0aW9uRGlzdGFuY2V9KWBcbiAgICAgICAgICAgICAgOiBgdHJhbnNsYXRlWSgke2FuaW1hdGlvbkRpc3RhbmNlfSlgLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250ZW50UGFkZGluZ01hcCA9IHtcbiAgICAgIHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICAgICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIH07XG5cbiAgICBjb25zdCBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzID0ge1xuICAgICAgcGFkZGluZzogYCR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54c30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcbiAgICAgIC4uLihjb250ZW50UGFkZGluZyAmJiB7XG4gICAgICAgIHBhZGRpbmc6IGNvbnRlbnRQYWRkaW5nTWFwW2NvbnRlbnRQYWRkaW5nXSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCB6SW5kZXggPSB1c2VQb3J0YWxDaGlsZFpJbmRleCh0aGVtZS52YXJpYWJsZXMuekluZGV4LnRvb2x0aXApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXgsXG4gICAgICBvcGFjaXR5OiB0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sXG4gICAgICBhbmltYXRpb246IGAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLW91dCBmb3J3YXJkcyAke2FuaW1hdGlvbn1gLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICB3aWR0aDogXCJtYXgtY29udGVudFwiLFxuICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3ViVGhlbWVcbiAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5wcmltYXJ5LmRlZmF1bHRcbiAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgYm9yZGVyUmFkaXVzOiBzdWJUaGVtZVxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy54c1xuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5zLFxuXG4gICAgICAuLi4oaXNIaWRkZW4gJiYge1xuICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiLFxuICAgICAgfSksXG4gICAgICAuLi4oISFzdWJUaGVtZSAmJiBpbnZlcnRlZFN1YlRoZW1lU3R5bGVzKSxcbiAgICAgIC4uLihob3Jpem9udGFsUGxhY2VtZW50ID09PSBcImNlbnRlclwiICYmIHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlKVwiLFxuICAgICAgfSksXG5cbiAgICAgIC4uLighc3ViVGhlbWUgJiYge1xuICAgICAgICBcIjphZnRlclwiOiB7XG4gICAgICAgICAgY29udGVudDogJ1wiIFwiJyxcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gICAgICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuZWxldmF0aW9uWzNdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRBcnJvd1Byb3BzID0gUGljazxUb29sdGlwQ29udGVudFByb3BzLCBcInN1YlRoZW1lXCI+ICYge1xuICB2ZXJ0aWNhbFBsYWNlbWVudDogVG9vbHRpcFN0eWxlW1widmVydGljYWxQbGFjZW1lbnRcIl07XG4gIGhvcml6b250YWxQbGFjZW1lbnQ6IFRvb2x0aXBTdHlsZVtcImhvcml6b250YWxQbGFjZW1lbnRcIl07XG4gIHNpemU/OiAwIHwgdHlwZW9mIEFSUk9XX1NJWkUgfCB0eXBlb2YgQVJST1dfU0laRV9CSUc7XG59O1xuXG4vLyBUaGlzIGNvbnRhaW5lciBpcyBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiB0aGUgYXJyb3cgc2hhZG93IGJsdXJcbmNvbnN0IEFSUk9XX0NPTlRBSU5FUl9XSURUSCA9IDQwO1xuXG5jb25zdCBTdHlsZWRBcnJvdyA9IHN0eWxlZC5kaXY8U3R5bGVkQXJyb3dQcm9wcz4oXG4gICh7XG4gICAgdGhlbWUsXG4gICAgc3ViVGhlbWUsXG4gICAgdmVydGljYWxQbGFjZW1lbnQsXG4gICAgaG9yaXpvbnRhbFBsYWNlbWVudCxcbiAgICBzaXplID0gQVJST1dfU0laRSxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9IGdldEFycm93T2Zmc2V0KHNpemUpO1xuICAgIGNvbnN0IGFkanVzdG1lbnRGb3JTaGFkb3cgPSBzdWJUaGVtZSA/IDAgOiAxO1xuICAgIGNvbnN0IGFycm93Q29udGFpbmVySGVpZ2h0ID0gc2l6ZSArIERJU1RBTkNFX0ZST01fVFJJR0dFUjtcbiAgICAvLyBHZXQgYXJyb3cgd2lkdGggYW5kIGhlaWdodCB1c2luZyBweXRob2dvcmFzIHRoZW9yZW0gYW5kIGFkZCAxIHRvIGhlaWdodCB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgc2hhZG93LlxuICAgIGNvbnN0IGFycm93U2lkZUxlbmd0aCA9IE1hdGguc3FydChcbiAgICAgIHNpemUgKiogMiArIChzaXplICsgYWRqdXN0bWVudEZvclNoYWRvdykgKiogMlxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBBUlJPV19DT05UQUlORVJfV0lEVEgsXG4gICAgICBoZWlnaHQ6IGFycm93Q29udGFpbmVySGVpZ2h0LFxuICAgICAgekluZGV4OiAxLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG5cbiAgICAgIC4uLih2ZXJ0aWNhbFBsYWNlbWVudCA9PT0gXCJ0b3BcIiAmJiB7XG4gICAgICAgIC8vIHBsYWNlIHRoZSBhcnJvdyBjb250YWluZXIgMXB4IGluc2lkZSB0b29sdGlwIGNvbnRhaW5lciB0byBhY2NvdW50IGZvciBkYXJrIG1vZGUgYm94LXNoYWRvd1xuICAgICAgICB0b3A6IGBjYWxjKDEwMCUgLSAke2FkanVzdG1lbnRGb3JTaGFkb3d9cHgpYCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4odmVydGljYWxQbGFjZW1lbnQgPT09IFwiYm90dG9tXCIgJiYge1xuICAgICAgICAvLyBwbGFjZSB0aGUgYXJyb3cgY29udGFpbmVyIDFweCBpbnNpZGUgdG9vbHRpcCBjb250YWluZXIgdG8gYWNjb3VudCBmb3IgZGFyayBtb2RlIGJveC1zaGFkb3dcbiAgICAgICAgdG9wOiBgLSR7YXJyb3dDb250YWluZXJIZWlnaHQgLSBhZGp1c3RtZW50Rm9yU2hhZG93fXB4YCxcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJjZW50ZXJcIiAmJiB7XG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSlcIixcbiAgICAgIH0pLFxuXG4gICAgICAuLi4oaG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gXCJyaWdodFwiICYmIHtcbiAgICAgICAgbGVmdDogYCR7b2Zmc2V0IC0gKEFSUk9XX0NPTlRBSU5FUl9XSURUSCAvIDIgLSBzaXplKX1weGAsXG4gICAgICB9KSxcblxuICAgICAgLi4uKGhvcml6b250YWxQbGFjZW1lbnQgPT09IFwibGVmdFwiICYmIHtcbiAgICAgICAgcmlnaHQ6IGAke29mZnNldCAtIChBUlJPV19DT05UQUlORVJfV0lEVEggLyAyIC0gc2l6ZSl9cHhgLFxuICAgICAgfSksXG5cbiAgICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgICBjb250ZW50OiAnXCIgXCInLFxuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IHZlcnRpY2FsUGxhY2VtZW50ID09PSBcInRvcFwiID8gMCA6IFwiMTAwJVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB3aWR0aDogYXJyb3dTaWRlTGVuZ3RoLFxuICAgICAgICBoZWlnaHQ6IGFycm93U2lkZUxlbmd0aCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzdWJUaGVtZVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQucHJpbWFyeS5kZWZhdWx0XG4gICAgICAgICAgOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5lbGV2YXRlZC5kZWZhdWx0LFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZylcIixcblxuICAgICAgICAuLi4oIXN1YlRoZW1lICYmIHtcbiAgICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5lbGV2YXRpb25bM10sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4pO1xuXG5jb25zdCBpbml0aWFsU3R5bGU6IFRvb2x0aXBTdHlsZSA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwLFxuICB2ZXJ0aWNhbFBsYWNlbWVudDogXCJ0b3BcIixcbiAgaG9yaXpvbnRhbFBsYWNlbWVudDogXCJjZW50ZXJcIixcbn07XG5cbmxldCBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSAwO1xuXG4vKiBEaXNhYmxlIGFuaW1hdGlvbiBpZiB0aW1lIGJldHdlZW4gbGFzdCBjbG9zZSBhbmQgbmV3IG9wZW4gaXMgbGVzcyB0aGFuIDUwMG1zICsgU0hPV19ISURFX0RFTEFZICovXG5mdW5jdGlvbiBnZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgbGV0IGFuaW1hdGlvbkR1cmF0aW9uID0gYCR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zYDtcblxuICBpZiAobGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wKSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdFRvb2x0aXAgPSBEYXRlLm5vdygpIC0gbGFzdFRvb2x0aXBIaWRlVGltZXN0YW1wO1xuXG4gICAgaWYgKHRpbWVTaW5jZUxhc3RUb29sdGlwIDwgNTAwICsgU0hPV19ISURFX0RFTEFZKSB7XG4gICAgICBhbmltYXRpb25EdXJhdGlvbiA9IFwiMG1zXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbn1cblxuLyoqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgb3ZlcmxheSBmb3IgYm90aCBUb2dnbGV0aXAgYW5kIFRvb2x0aXAgY29tcG9uZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRvb2x0aXBDb250ZW50KHtcbiAgcGxhY2VtZW50ID0gXCJhdXRvXCIsXG4gIGNvbnRlbnQsXG4gIHRvb2x0aXBJZCxcbiAgdHJpZ2dlclJlZixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBkYXRhRTJlVGVzdElkLFxuICBkYXRhRFNJZCxcbiAgaXNWaXNpYmxlLFxuICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gIHJvbGUsXG4gIHRhYkluZGV4LFxuICBjb250ZW50UGFkZGluZyxcbiAgbWF4V2lkdGggPSBNQVhfQ09OVEVOVF9XSURUSCxcbiAgc3ViVGhlbWUsXG4gIGRlZmF1bHRWZXJ0aWNhbFBsYWNlbWVudCxcbiAgaGlkZUFycm93ID0gZmFsc2UsXG4gIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyID0gZmFsc2UsXG4gIG9uVG9vbHRpcFBvaW50ZXJFbnRlcixcbiAgb25Ub29sdGlwUG9pbnRlckxlYXZlLFxuICBvbk92ZXJmbG93Vmlld3BvcnQsXG4gIHByaXZhdGVQcm9wcyxcbiAgLi4uYXJpYUF0dHJpYnV0ZXNcbn06IFRvb2x0aXBDb250ZW50UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbc3R5bGUsIHNldFN0eWxlXSA9IHVzZVN0YXRlKGluaXRpYWxTdHlsZSk7XG4gIGNvbnN0IFtpc0hpZGRlbiwgc2V0SXNIaWRkZW5dID0gdXNlU3RhdGUoZmFsc2UpOyAvLyBjc3MgdmlzaWJpbHR5IGhpZGRlblxuICBjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBkb2N1bWVudCA9IHVzZURvY3VtZW50KCk7XG4gIGNvbnN0IHdpbmRvdyA9IHVzZVdpbmRvdygpO1xuICAvLyBSZWFkIGFzIHByaW1pdGl2ZXMgc28gYW4gaW5saW5lIGBwcml2YXRlUHJvcHNgIGxpdGVyYWwgZG9lcyBub3QgZ2l2ZVxuICAvLyBgY2FsY3VsYXRlU3R5bGVgIGEgbmV3IGlkZW50aXR5IG9uIGV2ZXJ5IHJlbmRlci5cbiAgY29uc3Qge1xuICAgIC8vIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnQsIGJvdGggZmllbGRzXG4gICAgcGxhY2VtZW50OiBzaWRlUGxhY2VtZW50LFxuICAgIG9mZnNldDogc2lkZU9mZnNldCxcbiAgICBtYXhXaWR0aDogcHJpdmF0ZU1heFdpZHRoLFxuICB9ID0gcHJpdmF0ZVByb3BzID8/IHt9O1xuICBjb25zdCBjb250ZW50TWF4V2lkdGggPSBwcml2YXRlTWF4V2lkdGggPz8gbWF4V2lkdGg7XG5cbiAgY29uc3QgYXJyb3dTaXplID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVBcnJvdykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBzdWJUaGVtZSA/IEFSUk9XX1NJWkUgOiBBUlJPV19TSVpFX0JJRztcbiAgfSwgW3N1YlRoZW1lLCBoaWRlQXJyb3ddKTtcblxuICBjb25zdCBoYW5kbGVWaWV3cG9ydE92ZXJmbG93ID0gdXNlQ2FsbGJhY2s8XG4gICAgVG9vbHRpcENvbnRlbnRQcm9wc1tcIm9uT3ZlcmZsb3dWaWV3cG9ydFwiXVxuICA+KFxuICAgICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QsIHZpZXdwb3J0SGVpZ2h0KSA9PiB7XG4gICAgICBpZiAoIWlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIG9uT3ZlcmZsb3dWaWV3cG9ydD8uKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgdmlld3BvcnRIZWlnaHQpO1xuICAgICAgICBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25PdmVyZmxvd1ZpZXdwb3J0LCBpc092ZXJmbG93Q2FsbGJhY2tDYWxsZWRSZWZdXG4gICk7XG5cbiAgY29uc3QgY2FsY3VsYXRlU3R5bGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCAmJiB0b29sdGlwUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0b29sdGlwIHN0eWxlXG4gICAgICBzZXRTdHlsZShcbiAgICAgICAgZ2V0VG9vbHRpcFN0eWxlKHtcbiAgICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgICAgZGVmYXVsdFZlcnRpY2FsUGxhY2VtZW50LFxuICAgICAgICAgIHRyaWdnZXJSZWYsXG4gICAgICAgICAgdG9vbHRpcFJlZixcbiAgICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgYXJyb3dTaXplLFxuICAgICAgICAgIG9uT3ZlcmZsb3dWaWV3cG9ydDogaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgICAgICAgICBzaWRlUGxhY2VtZW50LFxuICAgICAgICAgIHNpZGVPZmZzZXQsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIHRyaWdnZXJSZWYsXG4gICAgdG9vbHRpcFJlZixcbiAgICBkb2N1bWVudCxcbiAgICB3aW5kb3csXG4gICAgcGxhY2VtZW50LFxuICAgIGFycm93U2l6ZSxcbiAgICBkZWZhdWx0VmVydGljYWxQbGFjZW1lbnQsXG4gICAgaGFuZGxlVmlld3BvcnRPdmVyZmxvdyxcbiAgICBzaWRlUGxhY2VtZW50LFxuICAgIHNpZGVPZmZzZXQsXG4gIF0pO1xuXG4gIC8vIFRoaXMgbGF5b3V0IGVmZmVjdCB0byByZS1yZW5kZXIgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIGFmdGVyIGRldGVybWluaW5nIGNvbnRlbnQgd2lkdGhcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIGNvbnRlbnRQYWRkaW5nLCBjb250ZW50LCBjb250ZW50TWF4V2lkdGhdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUgJiYgdG9vbHRpcFJlZi5jdXJyZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgfSBlbHNlIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAvLyBsb2cgdGltZSB3aGVuIHRvb2x0aXAgY2xvc2VzXG4gICAgICBsYXN0VG9vbHRpcEhpZGVUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBjYWxjdWxhdGVTdHlsZSk7XG4gICAgfTtcbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIHdpbmRvdywgdG9vbHRpcFJlZl0pO1xuXG4gIC8vIE9ic2VydmUgdG9vbHRpcCBlbGVtZW50IHNpemUgY2hhbmdlcyB0byByZWNhbGN1bGF0ZSBwb3NpdGlvbmluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBpZiAoXG4gICAgICBpc1Zpc2libGUgJiZcbiAgICAgIHRvb2x0aXBSZWYuY3VycmVudCAmJlxuICAgICAgdHlwZW9mIFJlc2l6ZU9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgKSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgaWYgKGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoID4gMCAmJiBlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICBjYWxjdWxhdGVTdHlsZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0b29sdGlwUmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtpc1Zpc2libGUsIGNhbGN1bGF0ZVN0eWxlLCB0b29sdGlwUmVmXSk7XG5cbiAgLy8gUmVjYWxjdWxhdGUgcG9zaXRpb24gd2hlbiB0aGUgdHJpZ2dlciBtb3ZlcyB3aXRob3V0IGVtaXR0aW5nIHNjcm9sbC9yZXNpemVcbiAgLy8gZXZlbnRzIChlLmcuIENTUyB0cmFuc2Zvcm1zLCBjYW52YXMgem9vbS9wYW4pLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNWaXNpYmxlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgbGV0IHJlcXVlc3RBbmltYXRpb25GcmFtZUlkOiBudW1iZXI7XG4gICAgbGV0IHByZXZSZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVjYWxjdWxhdGVQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5leHRSZWN0ID0gdHJpZ2dlclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJldlJlY3QgJiZcbiAgICAgICAgbmV4dFJlY3QgJiZcbiAgICAgICAgKHByZXZSZWN0LnggIT09IG5leHRSZWN0LnggfHxcbiAgICAgICAgICBwcmV2UmVjdC55ICE9PSBuZXh0UmVjdC55IHx8XG4gICAgICAgICAgcHJldlJlY3Qud2lkdGggIT09IG5leHRSZWN0LndpZHRoIHx8XG4gICAgICAgICAgcHJldlJlY3QuaGVpZ2h0ICE9PSBuZXh0UmVjdC5oZWlnaHQpXG4gICAgICApIHtcbiAgICAgICAgY2FsY3VsYXRlU3R5bGUoKTtcbiAgICAgIH1cbiAgICAgIHByZXZSZWN0ID0gbmV4dFJlY3Q7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZWNhbGN1bGF0ZVBvc2l0aW9uKTtcbiAgICB9O1xuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVjYWxjdWxhdGVQb3NpdGlvbik7XG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJlcXVlc3RBbmltYXRpb25GcmFtZUlkKTtcbiAgfSwgW2lzVmlzaWJsZSwgY2FsY3VsYXRlU3R5bGUsIHRyaWdnZXJSZWZdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0sIFtpc1Zpc2libGUsIGlzT3ZlcmZsb3dDYWxsYmFja0NhbGxlZFJlZl0pO1xuXG4gIC8qIEhpZGUgKHZpc2liaWxpdHk6IGhpZGRlbikgdG9vbHRpcCBpZiB0cmlnZ2VyIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3ICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICAgIGlmIChcbiAgICAgIGlzSGlkZGVuT25JbnZpc2libGVUcmlnZ2VyICYmXG4gICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgJiZcbiAgICAgIGlzVmlzaWJsZSAmJlxuICAgICAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdDtcblxuICAgICAgICAgICAgLy8gSWdub3JlIGludGVyc2VjdGlvbiBjaGFuZ2VzIHdoZW4gZWxlbWVudCBoYXMgemVybyBkaW1lbnNpb25zXG4gICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gZHVyaW5nIERPTSB1cGRhdGVzL3BvcnRhbCByZW5kZXJpbmdcbiAgICAgICAgICAgIGlmIChyZWN0Py53aWR0aCA9PT0gMCAmJiByZWN0Py5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRJc0hpZGRlbighZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgcm9vdDogbnVsbCwgLy8gdmlld3BvcnRcbiAgICAgICAgICB0aHJlc2hvbGQ6IElOVEVSU0VDVElPTl9USFJFU0hPTEQsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUodHJpZ2dlclJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHJpZ2dlclJlZiwgaXNWaXNpYmxlLCBpc0hpZGRlbk9uSW52aXNpYmxlVHJpZ2dlcl0pO1xuXG4gIGlmICghaXNWaXNpYmxlKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCB0b29sdGlwRWxtID0gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPXtkYXRhRFNJZH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHRvcDogc3R5bGUudG9wLFxuICAgICAgICBsZWZ0OiBzdHlsZS5sZWZ0LFxuICAgICAgICBhbmltYXRpb25EdXJhdGlvbjogZ2V0QW5pbWF0aW9uRHVyYXRpb24oKSxcbiAgICAgIH19XG4gICAgICByZWY9e3Rvb2x0aXBSZWZ9XG4gICAgICBpZD17dG9vbHRpcElkfVxuICAgICAgcm9sZT17cm9sZX1cbiAgICAgIHsuLi5hcmlhQXR0cmlidXRlc31cbiAgICAgIGFyaWEtaGlkZGVuPXthcmlhSGlkZGVufVxuICAgICAgc3ViVGhlbWU9e3N1YlRoZW1lfVxuICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgaG9yaXpvbnRhbFBsYWNlbWVudD17c3R5bGUuaG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgIG1heFdpZHRoPXtjb250ZW50TWF4V2lkdGh9XG4gICAgICBjb250ZW50UGFkZGluZz17Y29udGVudFBhZGRpbmd9XG4gICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICBpc1NpZGVQbGFjZW1lbnQ9e3N0eWxlLmlzU2lkZVBsYWNlbWVudH1cbiAgICAgIG9uUG9pbnRlckVudGVyPXtvblRvb2x0aXBQb2ludGVyRW50ZXJ9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17b25Ub29sdGlwUG9pbnRlckxlYXZlfVxuICAgID5cbiAgICAgIHtjb250ZW50fVxuICAgICAgey8qIFRPRE86IHJlbW92ZSB0ZW1wb3Jhcnkgc2lkZSBwbGFjZW1lbnQgKi99XG4gICAgICB7IWhpZGVBcnJvdyAmJiAhc3R5bGUuaXNTaWRlUGxhY2VtZW50ICYmIChcbiAgICAgICAgPFN0eWxlZEFycm93XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17YCR7ZGF0YUUyZVRlc3RJZH1fYXJyb3dgfVxuICAgICAgICAgIHN1YlRoZW1lPXtzdWJUaGVtZX1cbiAgICAgICAgICBob3Jpem9udGFsUGxhY2VtZW50PXtzdHlsZS5ob3Jpem9udGFsUGxhY2VtZW50fVxuICAgICAgICAgIHZlcnRpY2FsUGxhY2VtZW50PXtzdHlsZS52ZXJ0aWNhbFBsYWNlbWVudH1cbiAgICAgICAgICBzaXplPXthcnJvd1NpemV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJFbG0gPSBzdWJUaGVtZSA/IChcbiAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXtzdWJUaGVtZX0+e3Rvb2x0aXBFbG19PC9TdWJUaGVtZVByb3ZpZGVyPlxuICApIDogKFxuICAgIHRvb2x0aXBFbG1cbiAgKTtcblxuICByZXR1cm4gPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e3dyYXBwZXJFbG19PC9Qb3J0YWw+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdOb0IifQ== */"),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,privateProps,...ariaAttributes}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),{placement:sidePlacement,offset:sideOffset,maxWidth:privateMaxWidth}=privateProps??{},contentMaxWidth=privateMaxWidth??maxWidth,arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow,sidePlacement,sideOffset}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow,sidePlacement,sideOffset]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,contentMaxWidth]),useEffect(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),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]),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]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...ariaAttributes,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:contentMaxWidth,contentPadding:contentPadding,isHidden:isHidden,isSidePlacement:style.isSidePlacement,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&!style.isSidePlacement&&React.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
@@ -0,0 +1,14 @@
1
+ import type { TooltipStyle } from "./TooltipContent";
2
+ type GetSideTooltipStyleParams = {
3
+ triggerRect: DOMRect;
4
+ offset: number;
5
+ window: Window;
6
+ };
7
+ /**
8
+ * TODO: remove temporary side placement
9
+ *
10
+ * Places the tooltip beside the trigger with their top edges aligned. Callers
11
+ * must verify the tooltip fits beforehand, as this applies no viewport clamping.
12
+ */
13
+ export declare const getSideTooltipStyle: ({ triggerRect, offset, window, }: GetSideTooltipStyleParams) => TooltipStyle;
14
+ export {};
@@ -0,0 +1 @@
1
+ export const getSideTooltipStyle=({triggerRect,offset,window})=>({top:triggerRect.top+window.scrollY,left:triggerRect.right+offset+window.scrollX,horizontalPlacement:"right",verticalPlacement:"top",isSidePlacement:!0});
@@ -1,10 +1,12 @@
1
1
  import type { RefObject } from "react";
2
2
  import type { TooltipProps } from "./Tooltip";
3
- import type { TooltipStyle, TooltipContentProps } from "./TooltipContent";
3
+ import type { TooltipStyle, TooltipContentProps, TooltipPrivateProps } from "./TooltipContent";
4
4
  export declare const DISTANCE_FROM_TRIGGER = 4;
5
5
  export declare const ANIMATION_DISTANCE = 8;
6
6
  export declare const ARROW_SIZE = 6;
7
7
  export declare const ARROW_SIZE_BIG = 8;
8
+ /** TODO: remove temporary side placement. Matches the gap top/bottom tooltips settle at. */
9
+ export declare const sidePlacementOffset: number;
8
10
  export declare const getArrowOffset: (size: number) => number;
9
11
  type GetTooltipStyleParams = {
10
12
  placement: TooltipProps["placement"];
@@ -15,9 +17,12 @@ type GetTooltipStyleParams = {
15
17
  window: Window;
16
18
  arrowSize: number;
17
19
  onOverflowViewport: TooltipContentProps["onOverflowViewport"];
20
+ /** TODO: remove temporary side placement, both fields */
21
+ sidePlacement?: TooltipPrivateProps["placement"];
22
+ sideOffset?: number;
18
23
  };
19
24
  /**
20
25
  * Get tooltip position and width
21
26
  */
22
- export declare function getTooltipStyle({ placement, defaultVerticalPlacement, triggerRef, tooltipRef, document, window, arrowSize, onOverflowViewport, }: GetTooltipStyleParams): TooltipStyle;
27
+ export declare function getTooltipStyle({ placement, defaultVerticalPlacement, triggerRef, tooltipRef, document, window, arrowSize, onOverflowViewport, sidePlacement, sideOffset, }: GetTooltipStyleParams): TooltipStyle;
23
28
  export {};
@@ -1 +1 @@
1
- export const DISTANCE_FROM_TRIGGER=4;export const ANIMATION_DISTANCE=8;export const ARROW_SIZE=6;export const ARROW_SIZE_BIG=8;export const getArrowOffset=size=>2*size;export function getTooltipStyle({placement,defaultVerticalPlacement="top",triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport}){let triggerRect=triggerRef.current.getBoundingClientRect(),tooltipRect=tooltipRef.current.getBoundingClientRect(),viewportWidth=document.documentElement.clientWidth,viewportHeight=document.documentElement.clientHeight,top=0,left=0,verticalPlacement=defaultVerticalPlacement,horizontalPlacement="center",arrowOffset=getArrowOffset(arrowSize),tooltipMargin=arrowSize+8+4;switch(placement){case"top":case"bottom":verticalPlacement=placement;break;case"top-left":case"top-right":case"bottom-left":case"bottom-right":{let placements=placement.split("-");verticalPlacement=placements[0],horizontalPlacement=placements[1];break}default:{let canPlaceAboveTrigger=triggerRect.top>=tooltipRect.height,canPlaceBelowTrigger=triggerRect.bottom+tooltipRect.height<viewportHeight;canPlaceBelowTrigger||canPlaceAboveTrigger||onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),"top"===verticalPlacement&&!canPlaceAboveTrigger&&canPlaceBelowTrigger?verticalPlacement="bottom":"bottom"!==verticalPlacement||canPlaceBelowTrigger||(verticalPlacement="top"),triggerRect.left>=tooltipRect.width/2?triggerRect.left+triggerRect.width/2+tooltipRect.width/2>=viewportWidth&&(horizontalPlacement="left"):horizontalPlacement="right"}}switch(top="top"===verticalPlacement?triggerRect.top-tooltipRect.height-tooltipMargin:triggerRect.bottom+tooltipMargin,horizontalPlacement){case"left":left=arrowSize?triggerRect.left+triggerRect.width/2-tooltipRect.width+arrowOffset+arrowSize:triggerRect.right-tooltipRect.width;break;case"right":left=arrowSize?triggerRect.left+triggerRect.width/2-arrowOffset-arrowSize:triggerRect.left;break;default:left=triggerRect.left+triggerRect.width/2}return{top:top+window.scrollY,left:left+window.scrollX,horizontalPlacement,verticalPlacement}}
1
+ import{getSideTooltipStyle}from"./getSideTooltipStyle";export const DISTANCE_FROM_TRIGGER=4;export const ANIMATION_DISTANCE=8;export const ARROW_SIZE=6;export const ARROW_SIZE_BIG=8;export const sidePlacementOffset=10;export const getArrowOffset=size=>2*size;export function getTooltipStyle({placement,defaultVerticalPlacement="top",triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport,sidePlacement,sideOffset=10}){let triggerRect=triggerRef.current.getBoundingClientRect(),tooltipRect=tooltipRef.current.getBoundingClientRect(),viewportWidth=document.documentElement.clientWidth,viewportHeight=document.documentElement.clientHeight;if("right-top"===sidePlacement){let fitsRightOfTrigger=triggerRect.right+sideOffset+tooltipRect.width<=viewportWidth,fitsBelowTriggerTop=triggerRect.top+tooltipRect.height<=viewportHeight;if(fitsRightOfTrigger&&fitsBelowTriggerTop)return getSideTooltipStyle({triggerRect,offset:sideOffset,window})}let top=0,left=0,verticalPlacement=defaultVerticalPlacement,horizontalPlacement="center",arrowOffset=getArrowOffset(arrowSize),tooltipMargin=arrowSize+8+4;switch(placement){case"top":case"bottom":verticalPlacement=placement;break;case"top-left":case"top-right":case"bottom-left":case"bottom-right":{let placements=placement.split("-");verticalPlacement=placements[0],horizontalPlacement=placements[1];break}default:{let canPlaceAboveTrigger=triggerRect.top>=tooltipRect.height,canPlaceBelowTrigger=triggerRect.bottom+tooltipRect.height<viewportHeight;canPlaceBelowTrigger||canPlaceAboveTrigger||onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),"top"===verticalPlacement&&!canPlaceAboveTrigger&&canPlaceBelowTrigger?verticalPlacement="bottom":"bottom"!==verticalPlacement||canPlaceBelowTrigger||(verticalPlacement="top"),triggerRect.left>=tooltipRect.width/2?triggerRect.left+triggerRect.width/2+tooltipRect.width/2>=viewportWidth&&(horizontalPlacement="left"):horizontalPlacement="right"}}switch(top="top"===verticalPlacement?triggerRect.top-tooltipRect.height-tooltipMargin:triggerRect.bottom+tooltipMargin,horizontalPlacement){case"left":left=arrowSize?triggerRect.left+triggerRect.width/2-tooltipRect.width+arrowOffset+arrowSize:triggerRect.right-tooltipRect.width;break;case"right":left=arrowSize?triggerRect.left+triggerRect.width/2-arrowOffset-arrowSize:triggerRect.left;break;default:left=triggerRect.left+triggerRect.width/2}return{top:top+window.scrollY,left:left+window.scrollX,horizontalPlacement,verticalPlacement}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amboss/design-system",
3
- "version": "4.2.5",
3
+ "version": "4.2.6",
4
4
  "description": "the design system for AMBOSS products",
5
5
  "author": "AMBOSS",
6
6
  "license": "ISC",
@@ -170,12 +170,12 @@
170
170
  "@auto-it/npm": "^11.1.6",
171
171
  "@auto-it/released": "^10.13.2",
172
172
  "@emotion/jest": "^11.11.0",
173
- "@storybook/addon-a11y": "10.5.2",
174
- "@storybook/addon-docs": "10.5.2",
175
- "@storybook/addon-links": "10.5.2",
173
+ "@storybook/addon-a11y": "10.5.6",
174
+ "@storybook/addon-docs": "10.5.6",
175
+ "@storybook/addon-links": "10.5.6",
176
176
  "@storybook/addon-mcp": "^0.7.0",
177
- "@storybook/addon-vitest": "10.5.2",
178
- "@storybook/react-vite": "10.5.2",
177
+ "@storybook/addon-vitest": "10.5.6",
178
+ "@storybook/react-vite": "10.5.6",
179
179
  "@swc/cli": "^0.1.65",
180
180
  "@swc/core": "~1.11.31",
181
181
  "@swc/plugin-emotion": "^9.0.0",
@@ -221,7 +221,7 @@
221
221
  "prettier": "^2.2.1",
222
222
  "react": "^18.3.1",
223
223
  "react-dom": "^18.3.1",
224
- "storybook": "10.5.2",
224
+ "storybook": "10.5.6",
225
225
  "style-dictionary": "^3.8.0",
226
226
  "svg-to-pdfkit": "^0.1.8",
227
227
  "svg2vectordrawable": "^2.9.1",