@deephaven/components 0.22.3-beta.18 → 0.22.3-beta.21

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 (178) hide show
  1. package/dist/AutoCompleteInput.js +12 -85
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.d.ts +5 -5
  4. package/dist/AutoResizeTextarea.d.ts.map +1 -1
  5. package/dist/AutoResizeTextarea.js +8 -23
  6. package/dist/AutoResizeTextarea.js.map +1 -1
  7. package/dist/BasicModal.d.ts +28 -1
  8. package/dist/BasicModal.d.ts.map +1 -1
  9. package/dist/BasicModal.js +2 -8
  10. package/dist/BasicModal.js.map +1 -1
  11. package/dist/Button.js +8 -34
  12. package/dist/Button.js.map +1 -1
  13. package/dist/ButtonGroup.d.ts +6 -6
  14. package/dist/ButtonGroup.d.ts.map +1 -1
  15. package/dist/ButtonGroup.js +2 -4
  16. package/dist/ButtonGroup.js.map +1 -1
  17. package/dist/ButtonOld.js.map +1 -1
  18. package/dist/CardFlip.d.ts +1 -1
  19. package/dist/CardFlip.d.ts.map +1 -1
  20. package/dist/CardFlip.js +2 -7
  21. package/dist/CardFlip.js.map +1 -1
  22. package/dist/Checkbox.js +3 -14
  23. package/dist/Checkbox.js.map +1 -1
  24. package/dist/Collapse.js +0 -15
  25. package/dist/Collapse.js.map +1 -1
  26. package/dist/ComboBox.js +4 -83
  27. package/dist/ComboBox.js.map +1 -1
  28. package/dist/CopyButton.d.ts +1 -1
  29. package/dist/CopyButton.d.ts.map +1 -1
  30. package/dist/CopyButton.js +2 -4
  31. package/dist/CopyButton.js.map +1 -1
  32. package/dist/CustomTimeSelect.js +2 -86
  33. package/dist/CustomTimeSelect.js.map +1 -1
  34. package/dist/DateInput.js.map +1 -1
  35. package/dist/DateInputUtils.js +0 -7
  36. package/dist/DateInputUtils.js.map +1 -1
  37. package/dist/DateTimeInput.js +7 -10
  38. package/dist/DateTimeInput.js.map +1 -1
  39. package/dist/DebouncedSearchInput.js +0 -14
  40. package/dist/DebouncedSearchInput.js.map +1 -1
  41. package/dist/DragUtils.js +4 -16
  42. package/dist/DragUtils.js.map +1 -1
  43. package/dist/DraggableItemList.d.ts.map +1 -1
  44. package/dist/DraggableItemList.js +22 -44
  45. package/dist/DraggableItemList.js.map +1 -1
  46. package/dist/EditableItemList.d.ts +1 -1
  47. package/dist/EditableItemList.d.ts.map +1 -1
  48. package/dist/EditableItemList.js +2 -6
  49. package/dist/EditableItemList.js.map +1 -1
  50. package/dist/HierarchicalCheckboxMenu.js +6 -28
  51. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  52. package/dist/ItemList.d.ts.map +1 -1
  53. package/dist/ItemList.js +22 -115
  54. package/dist/ItemList.js.map +1 -1
  55. package/dist/ItemListItem.d.ts +0 -1
  56. package/dist/ItemListItem.d.ts.map +1 -1
  57. package/dist/ItemListItem.js +26 -50
  58. package/dist/ItemListItem.js.map +1 -1
  59. package/dist/LoadingOverlay.d.ts +1 -1
  60. package/dist/LoadingOverlay.d.ts.map +1 -1
  61. package/dist/LoadingOverlay.js +3 -5
  62. package/dist/LoadingOverlay.js.map +1 -1
  63. package/dist/LoadingSpinner.d.ts +1 -1
  64. package/dist/LoadingSpinner.d.ts.map +1 -1
  65. package/dist/LoadingSpinner.js +2 -4
  66. package/dist/LoadingSpinner.js.map +1 -1
  67. package/dist/MaskedInput.js +26 -85
  68. package/dist/MaskedInput.js.map +1 -1
  69. package/dist/Option.d.ts +1 -1
  70. package/dist/Option.d.ts.map +1 -1
  71. package/dist/Option.js +2 -4
  72. package/dist/Option.js.map +1 -1
  73. package/dist/RadioGroup.d.ts +1 -1
  74. package/dist/RadioGroup.d.ts.map +1 -1
  75. package/dist/RadioGroup.js +4 -6
  76. package/dist/RadioGroup.js.map +1 -1
  77. package/dist/RadioItem.js +0 -1
  78. package/dist/RadioItem.js.map +1 -1
  79. package/dist/SearchInput.js +2 -13
  80. package/dist/SearchInput.js.map +1 -1
  81. package/dist/Select.d.ts +1 -1
  82. package/dist/Select.d.ts.map +1 -1
  83. package/dist/Select.js +2 -4
  84. package/dist/Select.js.map +1 -1
  85. package/dist/SelectValueList.js +0 -28
  86. package/dist/SelectValueList.js.map +1 -1
  87. package/dist/SocketedButton.js.map +1 -1
  88. package/dist/ThemeExport.js +0 -4
  89. package/dist/ThemeExport.js.map +1 -1
  90. package/dist/TimeInput.js +2 -12
  91. package/dist/TimeInput.js.map +1 -1
  92. package/dist/TimeSlider.d.ts +1 -1
  93. package/dist/TimeSlider.d.ts.map +1 -1
  94. package/dist/TimeSlider.js +19 -33
  95. package/dist/TimeSlider.js.map +1 -1
  96. package/dist/ToastNotification.d.ts +4 -4
  97. package/dist/ToastNotification.d.ts.map +1 -1
  98. package/dist/ToastNotification.js +2 -4
  99. package/dist/ToastNotification.js.map +1 -1
  100. package/dist/UISwitch.d.ts +1 -1
  101. package/dist/UISwitch.d.ts.map +1 -1
  102. package/dist/UISwitch.js +2 -4
  103. package/dist/UISwitch.js.map +1 -1
  104. package/dist/ValidateLabelInput.d.ts.map +1 -1
  105. package/dist/ValidateLabelInput.js +3 -3
  106. package/dist/ValidateLabelInput.js.map +1 -1
  107. package/dist/context-actions/ContextActionUtils.js +9 -40
  108. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  109. package/dist/context-actions/ContextActions.js +1 -34
  110. package/dist/context-actions/ContextActions.js.map +1 -1
  111. package/dist/context-actions/ContextMenu.js +29 -110
  112. package/dist/context-actions/ContextMenu.js.map +1 -1
  113. package/dist/context-actions/ContextMenuItem.d.ts.map +1 -1
  114. package/dist/context-actions/ContextMenuItem.js +3 -19
  115. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  116. package/dist/context-actions/ContextMenuRoot.js +7 -26
  117. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  118. package/dist/context-actions/GlobalContextAction.js +0 -15
  119. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  120. package/dist/context-actions/GlobalContextActions.js +0 -6
  121. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  122. package/dist/context-actions/index.js.map +1 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/menu-actions/DropdownMenu.js +4 -32
  125. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  126. package/dist/menu-actions/Menu.js +7 -52
  127. package/dist/menu-actions/Menu.js.map +1 -1
  128. package/dist/menu-actions/index.d.ts +2 -1
  129. package/dist/menu-actions/index.d.ts.map +1 -1
  130. package/dist/menu-actions/index.js +2 -2
  131. package/dist/menu-actions/index.js.map +1 -1
  132. package/dist/modal/Modal.d.ts +2 -2
  133. package/dist/modal/Modal.d.ts.map +1 -1
  134. package/dist/modal/Modal.js +3 -9
  135. package/dist/modal/Modal.js.map +1 -1
  136. package/dist/modal/ModalBody.d.ts +1 -1
  137. package/dist/modal/ModalBody.d.ts.map +1 -1
  138. package/dist/modal/ModalBody.js +2 -4
  139. package/dist/modal/ModalBody.js.map +1 -1
  140. package/dist/modal/ModalFooter.d.ts +1 -1
  141. package/dist/modal/ModalFooter.d.ts.map +1 -1
  142. package/dist/modal/ModalFooter.js +2 -4
  143. package/dist/modal/ModalFooter.js.map +1 -1
  144. package/dist/modal/ModalHeader.d.ts +1 -1
  145. package/dist/modal/ModalHeader.d.ts.map +1 -1
  146. package/dist/modal/ModalHeader.js +2 -4
  147. package/dist/modal/ModalHeader.js.map +1 -1
  148. package/dist/modal/index.js.map +1 -1
  149. package/dist/navigation/Menu.d.ts +1 -1
  150. package/dist/navigation/Menu.d.ts.map +1 -1
  151. package/dist/navigation/Menu.js +2 -2
  152. package/dist/navigation/Menu.js.map +1 -1
  153. package/dist/navigation/MenuItem.d.ts +1 -1
  154. package/dist/navigation/MenuItem.d.ts.map +1 -1
  155. package/dist/navigation/MenuItem.js +4 -7
  156. package/dist/navigation/MenuItem.js.map +1 -1
  157. package/dist/navigation/Page.d.ts +1 -1
  158. package/dist/navigation/Page.d.ts.map +1 -1
  159. package/dist/navigation/Page.js +2 -3
  160. package/dist/navigation/Page.js.map +1 -1
  161. package/dist/navigation/Stack.d.ts +1 -1
  162. package/dist/navigation/Stack.d.ts.map +1 -1
  163. package/dist/navigation/Stack.js +3 -6
  164. package/dist/navigation/Stack.js.map +1 -1
  165. package/dist/navigation/index.js.map +1 -1
  166. package/dist/popper/Popper.d.ts.map +1 -1
  167. package/dist/popper/Popper.js +13 -46
  168. package/dist/popper/Popper.js.map +1 -1
  169. package/dist/popper/Tooltip.js +0 -56
  170. package/dist/popper/Tooltip.js.map +1 -1
  171. package/dist/popper/index.js.map +1 -1
  172. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  173. package/dist/shortcuts/Shortcut.js +19 -76
  174. package/dist/shortcuts/Shortcut.js.map +1 -1
  175. package/dist/shortcuts/ShortcutRegistry.js +3 -18
  176. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  177. package/dist/shortcuts/index.js.map +1 -1
  178. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","names":["React","useState","useEffect","useMemo","useCallback","CSSTransition","usePrevious","ThemeExport","Stack","children","dataTestId","childrenArray","Children","toArray","prevChildrenArray","mainView","setMainView","length","pushingView","setPushingView","poppingView","setPoppingView","initAnimation","undefined","topChild","pushComplete","popComplete","transitionMidMs"],"sources":["../../src/navigation/Stack.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport ThemeExport from '../ThemeExport';\nimport './Stack.scss';\n\nexport type StackProps = {\n children: React.ReactNode | React.ReactNode[];\n 'data-testid'?: string;\n};\n\n/**\n * Pass a full navigation stack of children, and then automatically does a sliding animation when the stack changes.\n * Adding items to the stack will do a \"push\" animation, and removing items from the stack will do a \"pop\" animation.\n */\nexport const Stack = ({\n children,\n 'data-testid': dataTestId,\n}: StackProps): JSX.Element => {\n const childrenArray = useMemo(() => React.Children.toArray(children), [\n children,\n ]);\n const prevChildrenArray = usePrevious(childrenArray);\n const [mainView, setMainView] = useState<React.ReactNode>(\n childrenArray[childrenArray.length - 1]\n );\n\n const [pushingView, setPushingView] = useState<React.ReactNode>(null);\n const [poppingView, setPoppingView] = useState<React.ReactNode>(null);\n\n /**\n * To do the animation effect, we just need to set the proper pushing/popping views when the stack changes.\n * `mainView` - The main view of the stack, stationary, filling the container.\n * `pushingView` - A view that's currently being pushed. Slides from off screen right to overtop of `mainView`.\n * `poppingView` - A view that's currently being popped. Slides from overtop of `mainView` to right off screen.\n *\n * When the `pushingView` or `poppingView` is set, that will kick off their animation.\n * Completion of the animation is handled in `pushComplete` or `popComplete`, and then the stack is in an idle state again.\n */\n useEffect(\n function initAnimation() {\n if (\n prevChildrenArray === undefined ||\n childrenArray === prevChildrenArray\n ) {\n return;\n }\n const topChild = childrenArray[childrenArray.length - 1];\n if (\n childrenArray.length === prevChildrenArray.length ||\n prevChildrenArray.length === 0 ||\n pushingView !== null ||\n poppingView !== null\n ) {\n // 1) Stack is the same size, we've just mounted, or we're already in an animation - just update the view\n if (pushingView !== null && topChild !== pushingView) {\n // Stack was updated mid animation\n setPushingView(topChild);\n } else if (topChild !== poppingView && topChild !== mainView) {\n // Replace the current view\n setMainView(topChild);\n }\n } else if (childrenArray.length > prevChildrenArray.length) {\n // 2) Stack has grown - start the push animation\n setPushingView(topChild);\n } else if (childrenArray.length < prevChildrenArray.length) {\n // 3) Stack has shrunk - start the pop animation\n setMainView(topChild);\n setPoppingView(prevChildrenArray[prevChildrenArray.length - 1]);\n }\n },\n [childrenArray, prevChildrenArray, pushingView, poppingView, mainView]\n );\n\n const pushComplete = useCallback(() => {\n setMainView(pushingView);\n setPushingView(null);\n }, [pushingView]);\n\n const popComplete = useCallback(() => {\n setPoppingView(null);\n }, []);\n\n return (\n <div className=\"navigation-stack\">\n <div className=\"main-view\" data-testid={dataTestId}>\n {mainView}\n </div>\n\n <CSSTransition\n in={poppingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-right\"\n onEntered={popComplete}\n >\n <>\n {poppingView != null && (\n <div className=\"popping-view\">{poppingView}</div>\n )}\n </>\n </CSSTransition>\n <CSSTransition\n in={pushingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-left\"\n onEntered={pushComplete}\n >\n <>\n {pushingView != null && (\n <div className=\"pushing-view\">{pushingView}</div>\n )}\n </>\n </CSSTransition>\n </div>\n );\n};\n\nexport default Stack;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Stack.js","names":["React","useState","useEffect","useMemo","useCallback","CSSTransition","usePrevious","ThemeExport","Stack","children","dataTestId","childrenArray","Children","toArray","prevChildrenArray","mainView","setMainView","length","pushingView","setPushingView","poppingView","setPoppingView","initAnimation","undefined","topChild","pushComplete","popComplete","transitionMidMs"],"sources":["../../src/navigation/Stack.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport ThemeExport from '../ThemeExport';\nimport './Stack.scss';\n\nexport type StackProps = {\n children: React.ReactNode | React.ReactNode[];\n 'data-testid'?: string;\n};\n\n/**\n * Pass a full navigation stack of children, and then automatically does a sliding animation when the stack changes.\n * Adding items to the stack will do a \"push\" animation, and removing items from the stack will do a \"pop\" animation.\n */\nexport function Stack({\n children,\n 'data-testid': dataTestId,\n}: StackProps): JSX.Element {\n const childrenArray = useMemo(() => React.Children.toArray(children), [\n children,\n ]);\n const prevChildrenArray = usePrevious(childrenArray);\n const [mainView, setMainView] = useState<React.ReactNode>(\n childrenArray[childrenArray.length - 1]\n );\n\n const [pushingView, setPushingView] = useState<React.ReactNode>(null);\n const [poppingView, setPoppingView] = useState<React.ReactNode>(null);\n\n /**\n * To do the animation effect, we just need to set the proper pushing/popping views when the stack changes.\n * `mainView` - The main view of the stack, stationary, filling the container.\n * `pushingView` - A view that's currently being pushed. Slides from off screen right to overtop of `mainView`.\n * `poppingView` - A view that's currently being popped. Slides from overtop of `mainView` to right off screen.\n *\n * When the `pushingView` or `poppingView` is set, that will kick off their animation.\n * Completion of the animation is handled in `pushComplete` or `popComplete`, and then the stack is in an idle state again.\n */\n useEffect(\n function initAnimation() {\n if (\n prevChildrenArray === undefined ||\n childrenArray === prevChildrenArray\n ) {\n return;\n }\n const topChild = childrenArray[childrenArray.length - 1];\n if (\n childrenArray.length === prevChildrenArray.length ||\n prevChildrenArray.length === 0 ||\n pushingView !== null ||\n poppingView !== null\n ) {\n // 1) Stack is the same size, we've just mounted, or we're already in an animation - just update the view\n if (pushingView !== null && topChild !== pushingView) {\n // Stack was updated mid animation\n setPushingView(topChild);\n } else if (topChild !== poppingView && topChild !== mainView) {\n // Replace the current view\n setMainView(topChild);\n }\n } else if (childrenArray.length > prevChildrenArray.length) {\n // 2) Stack has grown - start the push animation\n setPushingView(topChild);\n } else if (childrenArray.length < prevChildrenArray.length) {\n // 3) Stack has shrunk - start the pop animation\n setMainView(topChild);\n setPoppingView(prevChildrenArray[prevChildrenArray.length - 1]);\n }\n },\n [childrenArray, prevChildrenArray, pushingView, poppingView, mainView]\n );\n\n const pushComplete = useCallback(() => {\n setMainView(pushingView);\n setPushingView(null);\n }, [pushingView]);\n\n const popComplete = useCallback(() => {\n setPoppingView(null);\n }, []);\n\n return (\n <div className=\"navigation-stack\">\n <div className=\"main-view\" data-testid={dataTestId}>\n {mainView}\n </div>\n\n <CSSTransition\n in={poppingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-right\"\n onEntered={popComplete}\n >\n {/* Without the fragment, the transition doesn't work. Without the conditional render, the stack is blank */}\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {poppingView != null && (\n <div className=\"popping-view\">{poppingView}</div>\n )}\n </>\n </CSSTransition>\n <CSSTransition\n in={pushingView != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"slide-left\"\n onEntered={pushComplete}\n >\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n {pushingView != null && (\n <div className=\"pushing-view\">{pushingView}</div>\n )}\n </>\n </CSSTransition>\n </div>\n );\n}\n\nexport default Stack;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Menu","MenuItem","Page","Stack"],"sources":["../../src/navigation/index.ts"],"sourcesContent":["export { default as Menu } from './Menu';\nexport type { MenuProps } from './Menu';\nexport { default as MenuItem } from './MenuItem';\nexport type { SwitchMenuItemDef, MenuItemDef, MenuItemProps } from './MenuItem';\nexport { default as Page } from './Page';\nexport type { PageProps } from './Page';\nexport { default as Stack } from './Stack';\n"],"mappings":"SAASA,OAAO,IAAIC,I;SAEXD,OAAO,IAAIE,Q;SAEXF,OAAO,IAAIG,I;SAEXH,OAAO,IAAII,K"}
1
+ {"version":3,"file":"index.js","names":["default","Menu","MenuItem","Page","Stack"],"sources":["../../src/navigation/index.ts"],"sourcesContent":["export { default as Menu } from './Menu';\nexport type { MenuProps } from './Menu';\nexport { default as MenuItem } from './MenuItem';\nexport type { SwitchMenuItemDef, MenuItemDef, MenuItemProps } from './MenuItem';\nexport { default as Page } from './Page';\nexport type { PageProps } from './Page';\nexport { default as Stack } from './Stack';\n"],"mappings":"SAASA,OAAO,IAAIC,IAAI;AAAA,SAEfD,OAAO,IAAIE,QAAQ;AAAA,SAEnBF,OAAO,IAAIG,IAAI;AAAA,SAEfH,OAAO,IAAII,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.d.ts","sourceRoot":"","sources":["../../src/popper/Popper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,eAAe,CAAC;AAEvB,UAAU,WAAW;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAED,cAAM,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,MAAM,CAAC,SAAS;;;;;;;;;;;;MAYd;IAEF,MAAM,CAAC,YAAY;;;;qBAIJ,IAAI;oBAGL,IAAI;;;;;;MAQhB;gBAEU,KAAK,EAAE,WAAW;IAsB9B,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAehD,oBAAoB,IAAI,IAAI;IAI5B,OAAO,EAAE,cAAc,CAAC;IAExB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAG3C,GAAG,EAAE,MAAM,CAAC;IAEZ,wFAAwF;IACxF,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAYlE,UAAU,IAAI,IAAI;IA2ClB,aAAa,CAAC,WAAW,UAAO,GAAG,IAAI;IAsBvC,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAIZ,cAAc,IAAI,IAAI;IAKtB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI;IASrC,WAAW,IAAI,IAAI;IAKnB,UAAU,IAAI,IAAI;IASlB,aAAa,IAAI,GAAG,CAAC,OAAO;IAwC5B,MAAM,IAAI,GAAG,CAAC,OAAO;CActB;AAED,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"Popper.d.ts","sourceRoot":"","sources":["../../src/popper/Popper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,eAAe,CAAC;AAEvB,UAAU,WAAW;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAED,cAAM,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,MAAM,CAAC,SAAS;;;;;;;;;;;;MAYd;IAEF,MAAM,CAAC,YAAY;;;;qBAIJ,IAAI;oBAGL,IAAI;;;;;;MAQhB;gBAEU,KAAK,EAAE,WAAW;IAsB9B,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAehD,oBAAoB,IAAI,IAAI;IAI5B,OAAO,EAAE,cAAc,CAAC;IAExB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAG3C,GAAG,EAAE,MAAM,CAAC;IAEZ,wFAAwF;IACxF,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAYlE,UAAU,IAAI,IAAI;IA2ClB,aAAa,CAAC,WAAW,UAAO,GAAG,IAAI;IAsBvC,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAIZ,cAAc,IAAI,IAAI;IAKtB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI;IASrC,WAAW,IAAI,IAAI;IAKnB,UAAU,IAAI,IAAI;IASlB,aAAa,IAAI,GAAG,CAAC,OAAO;IAyC5B,MAAM,IAAI,GAAG,CAAC,OAAO;CActB;AAED,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
@@ -1,9 +1,6 @@
1
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  /**
8
5
  * A component for creating popover dialogs. Only requires child element.
9
6
  *
@@ -20,6 +17,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
20
17
  * <ChildContent />
21
18
  * </Popper>
22
19
  */
20
+
23
21
  import React, { Component } from 'react';
24
22
  import ReactDOM from 'react-dom';
25
23
  import classNames from 'classnames';
@@ -28,25 +26,21 @@ import PopperJs from 'popper.js';
28
26
  import PropTypes from 'prop-types';
29
27
  import ThemeExport from "../ThemeExport.js";
30
28
  import "./Popper.css";
31
-
32
29
  class Popper extends Component {
33
30
  constructor(props) {
34
31
  super(props);
35
-
36
32
  _defineProperty(this, "element", void 0);
37
-
38
33
  _defineProperty(this, "container", void 0);
39
-
40
34
  _defineProperty(this, "rAF", void 0);
41
-
42
35
  this.handleEnter = this.handleEnter.bind(this);
43
36
  this.handleExit = this.handleExit.bind(this);
44
37
  this.handleBlur = this.handleBlur.bind(this);
45
38
  this.element = document.createElement('div');
46
39
  this.element.className = 'popper-container';
47
- this.container = /*#__PURE__*/React.createRef(); // cancelAnimationFrame does nothing if the handle isn't recognized
48
- // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe
40
+ this.container = /*#__PURE__*/React.createRef();
49
41
 
42
+ // cancelAnimationFrame does nothing if the handle isn't recognized
43
+ // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe
50
44
  this.rAF = 0;
51
45
  var {
52
46
  isShown
@@ -56,12 +50,10 @@ class Popper extends Component {
56
50
  popper: null
57
51
  };
58
52
  }
59
-
60
53
  componentDidUpdate(prevProps) {
61
54
  var {
62
55
  isShown
63
56
  } = this.props;
64
-
65
57
  if (prevProps.isShown !== isShown) {
66
58
  if (isShown) {
67
59
  cancelAnimationFrame(this.rAF);
@@ -73,20 +65,16 @@ class Popper extends Component {
73
65
  }
74
66
  }
75
67
  }
76
-
77
68
  componentWillUnmount() {
78
69
  this.destroyPopper(false);
79
70
  }
80
-
81
71
  /** Goes through an element and it's parents until the first visible element is found */
82
72
  getVisibleElement(element) {
83
73
  if (element == null || element.clientHeight > 0 || element.clientWidth > 0) {
84
74
  return element;
85
75
  }
86
-
87
76
  return this.getVisibleElement(element.parentElement);
88
77
  }
89
-
90
78
  initPopper() {
91
79
  var {
92
80
  popper
@@ -95,15 +83,12 @@ class Popper extends Component {
95
83
  closeOnBlur,
96
84
  referenceObject
97
85
  } = this.props;
98
-
99
86
  if (popper) {
100
87
  return;
101
88
  }
102
-
103
89
  if (this.container.current === null) {
104
90
  return;
105
91
  }
106
-
107
92
  var {
108
93
  options
109
94
  } = this.props;
@@ -112,87 +97,77 @@ class Popper extends Component {
112
97
  }, options);
113
98
  document.body.appendChild(this.element);
114
99
  var parent = this.getVisibleElement(this.container.current);
115
-
116
100
  if (parent == null) {
117
101
  parent = this.container.current;
118
102
  }
119
-
120
103
  popper = new PopperJs(referenceObject || parent, this.element, options);
121
- popper.scheduleUpdate(); // delayed due to scheduleUpdate
104
+ popper.scheduleUpdate();
122
105
 
106
+ // delayed due to scheduleUpdate
123
107
  cancelAnimationFrame(this.rAF);
124
108
  this.rAF = window.requestAnimationFrame(() => {
125
109
  // for blur on close to work, focus needs to be on or within the popper
126
110
  if (closeOnBlur && !this.element.contains(document.activeElement)) {
127
111
  // only set focus, if a focus isn't already set within
128
112
  var elem = this.element.firstElementChild;
129
-
130
113
  if (elem instanceof HTMLElement) {
131
114
  elem.focus(); // first child of the portal element
132
115
  }
133
116
  }
134
117
  });
118
+
135
119
  this.setState({
136
120
  popper
137
121
  });
138
122
  }
139
-
140
123
  destroyPopper() {
141
124
  var updateState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
142
125
  cancelAnimationFrame(this.rAF);
143
126
  var {
144
127
  popper
145
128
  } = this.state;
146
-
147
129
  if (!popper) {
148
130
  return;
149
131
  }
132
+ popper.destroy();
150
133
 
151
- popper.destroy(); // If component is exiting and unmounted in
134
+ // If component is exiting and unmounted in
152
135
  // the same frame, destroy can be called twice.
153
136
  // Check to make sure removeChild isn't called twice.
154
-
155
137
  if (document.body.contains(this.element)) {
156
138
  document.body.removeChild(this.element);
157
139
  }
158
-
159
140
  if (updateState) {
160
141
  this.setState({
161
142
  popper: null
162
143
  });
163
144
  }
164
145
  }
165
-
166
146
  show() {
167
147
  this.initPopper();
168
148
  this.setState({
169
149
  show: true
170
150
  });
171
151
  }
172
-
173
152
  hide() {
174
153
  this.setState({
175
154
  show: false
176
155
  });
177
156
  }
178
-
179
157
  scheduleUpdate() {
180
158
  var {
181
159
  popper
182
160
  } = this.state;
183
161
  if (popper) popper.scheduleUpdate();
184
162
  }
185
-
186
163
  handleBlur(e) {
187
164
  if (!(e.relatedTarget instanceof HTMLElement)) {
188
165
  return;
189
166
  }
190
-
191
167
  if (!this.element.contains(e.relatedTarget)) {
192
168
  this.hide();
193
169
  }
194
170
  }
195
-
196
171
  handleEnter() {
197
172
  var {
198
173
  onEntered
@@ -207,11 +182,9 @@ class Popper extends Component {
207
182
  var {
208
183
  show
209
184
  } = this.state;
210
-
211
185
  if (!show) {
212
186
  this.destroyPopper();
213
187
  }
214
-
215
188
  onExited(); // trigger any parent component waiting for exited handler
216
189
  }
217
190
 
@@ -253,7 +226,6 @@ class Popper extends Component {
253
226
  "x-arrow": ""
254
227
  }))));
255
228
  }
256
-
257
229
  render() {
258
230
  var {
259
231
  popper
@@ -270,9 +242,7 @@ class Popper extends Component {
270
242
  "data-testid": dataTestId
271
243
  }, popper && /*#__PURE__*/ReactDOM.createPortal(this.renderContent(), this.element));
272
244
  }
273
-
274
245
  }
275
-
276
246
  _defineProperty(Popper, "propTypes", {
277
247
  children: PropTypes.node.isRequired,
278
248
  options: PropTypes.shape({}),
@@ -286,24 +256,21 @@ _defineProperty(Popper, "propTypes", {
286
256
  referenceObject: PropTypes.shape({}),
287
257
  'data-testid': PropTypes.string
288
258
  });
289
-
290
259
  _defineProperty(Popper, "defaultProps", {
291
260
  options: {},
292
261
  className: '',
293
262
  timeout: ThemeExport.transitionMs,
294
-
295
- onEntered() {// no-op
263
+ onEntered() {
264
+ // no-op
296
265
  },
297
-
298
- onExited() {// no-op
266
+ onExited() {
267
+ // no-op
299
268
  },
300
-
301
269
  isShown: false,
302
270
  interactive: false,
303
271
  closeOnBlur: false,
304
272
  referenceObject: null,
305
273
  'data-testid': undefined
306
274
  });
307
-
308
275
  export default Popper;
309
276
  //# sourceMappingURL=Popper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.js","names":["React","Component","ReactDOM","classNames","CSSTransition","PopperJs","PropTypes","ThemeExport","Popper","constructor","props","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","createRef","rAF","isShown","state","show","popper","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","componentWillUnmount","destroyPopper","getVisibleElement","clientHeight","clientWidth","parentElement","initPopper","closeOnBlur","referenceObject","current","options","placement","body","appendChild","parent","scheduleUpdate","contains","activeElement","elem","firstElementChild","HTMLElement","focus","setState","updateState","destroy","removeChild","e","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","stopPropagation","key","undefined","render","dataTestId","display","createPortal","node","isRequired","shape","string","number","func","bool","transitionMs"],"sources":["../../src/popper/Popper.tsx"],"sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { PopperOptions, ReferenceObject } from 'popper.js';\nimport PropTypes from 'prop-types';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\n\ninterface PopperProps {\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n referenceObject: ReferenceObject | null;\n 'data-testid'?: string;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static propTypes = {\n children: PropTypes.node.isRequired,\n options: PropTypes.shape({}),\n className: PropTypes.string,\n timeout: PropTypes.number,\n onEntered: PropTypes.func,\n onExited: PropTypes.func,\n isShown: PropTypes.bool,\n closeOnBlur: PropTypes.bool,\n interactive: PropTypes.bool,\n referenceObject: PropTypes.shape({}),\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n referenceObject: null,\n 'data-testid': undefined,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n let { popper } = this.state;\n const { closeOnBlur, referenceObject } = this.props;\n\n if (popper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n popper = new PopperJs(referenceObject || parent, this.element, options);\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // for blur on close to work, focus needs to be on or within the popper\n if (closeOnBlur && !this.element.contains(document.activeElement)) {\n // only set focus, if a focus isn't already set within\n const elem = this.element.firstElementChild;\n if (elem instanceof HTMLElement) {\n elem.focus(); // first child of the portal element\n }\n }\n });\n\n this.setState({ popper });\n }\n\n destroyPopper(updateState = true): void {\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n // If component is exiting and unmounted in\n // the same frame, destroy can be called twice.\n // Check to make sure removeChild isn't called twice.\n if (document.body.contains(this.element)) {\n document.body.removeChild(this.element);\n }\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n this.setState({ show: true });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n onExited(); // trigger any parent component waiting for exited handler\n }\n\n renderContent(): JSX.Element {\n const {\n className,\n children,\n timeout,\n interactive,\n closeOnBlur,\n } = this.props;\n const { show } = this.state;\n\n return (\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExited={this.handleExit}\n >\n <div\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames('popper', { interactive }, className)}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n const { 'data-testid': dataTestId } = this.props;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions, ReferenceObject };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popper.js","names":["React","Component","ReactDOM","classNames","CSSTransition","PopperJs","PropTypes","ThemeExport","Popper","constructor","props","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","createRef","rAF","isShown","state","show","popper","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","componentWillUnmount","destroyPopper","getVisibleElement","clientHeight","clientWidth","parentElement","initPopper","closeOnBlur","referenceObject","current","options","placement","body","appendChild","parent","scheduleUpdate","contains","activeElement","elem","firstElementChild","HTMLElement","focus","setState","updateState","destroy","removeChild","e","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","stopPropagation","key","undefined","render","dataTestId","display","createPortal","node","isRequired","shape","string","number","func","bool","transitionMs"],"sources":["../../src/popper/Popper.tsx"],"sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { PopperOptions, ReferenceObject } from 'popper.js';\nimport PropTypes from 'prop-types';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\n\ninterface PopperProps {\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n referenceObject: ReferenceObject | null;\n 'data-testid'?: string;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static propTypes = {\n children: PropTypes.node.isRequired,\n options: PropTypes.shape({}),\n className: PropTypes.string,\n timeout: PropTypes.number,\n onEntered: PropTypes.func,\n onExited: PropTypes.func,\n isShown: PropTypes.bool,\n closeOnBlur: PropTypes.bool,\n interactive: PropTypes.bool,\n referenceObject: PropTypes.shape({}),\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n referenceObject: null,\n 'data-testid': undefined,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n let { popper } = this.state;\n const { closeOnBlur, referenceObject } = this.props;\n\n if (popper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n popper = new PopperJs(referenceObject || parent, this.element, options);\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // for blur on close to work, focus needs to be on or within the popper\n if (closeOnBlur && !this.element.contains(document.activeElement)) {\n // only set focus, if a focus isn't already set within\n const elem = this.element.firstElementChild;\n if (elem instanceof HTMLElement) {\n elem.focus(); // first child of the portal element\n }\n }\n });\n\n this.setState({ popper });\n }\n\n destroyPopper(updateState = true): void {\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n // If component is exiting and unmounted in\n // the same frame, destroy can be called twice.\n // Check to make sure removeChild isn't called twice.\n if (document.body.contains(this.element)) {\n document.body.removeChild(this.element);\n }\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n this.setState({ show: true });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n onExited(); // trigger any parent component waiting for exited handler\n }\n\n renderContent(): JSX.Element {\n const {\n className,\n children,\n timeout,\n interactive,\n closeOnBlur,\n } = this.props;\n const { show } = this.state;\n\n return (\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExited={this.handleExit}\n >\n <div\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames('popper', { interactive }, className)}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n {/* eslint-disable-next-line react/no-unknown-property */}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n const { 'data-testid': dataTestId } = this.props;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions, ReferenceObject };\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,QAAQ,MAAM,WAAW;AAChC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,QAAQ,MAA0C,WAAW;AACpE,OAAOC,SAAS,MAAM,YAAY;AAAC,OAC5BC,WAAW;AAAA;AAqBlB,MAAMC,MAAM,SAASP,SAAS,CAA2B;EAgCvDQ,WAAW,CAACC,KAAkB,EAAE;IAC9B,KAAK,CAACA,KAAK,CAAC;IAAC;IAAA;IAAA;IAEb,IAAI,CAACC,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACD,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACE,UAAU,GAAG,IAAI,CAACA,UAAU,CAACF,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACG,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAI,CAACF,OAAO,CAACG,SAAS,GAAG,kBAAkB;IAC3C,IAAI,CAACC,SAAS,gBAAGnB,KAAK,CAACoB,SAAS,EAAkB;;IAElD;IACA;IACA,IAAI,CAACC,GAAG,GAAG,CAAC;IAEZ,IAAM;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACZ,KAAK;IAE9B,IAAI,CAACa,KAAK,GAAG;MACXC,IAAI,EAAEF,OAAO;MACbG,MAAM,EAAE;IACV,CAAC;EACH;EAEAC,kBAAkB,CAACC,SAAsB,EAAQ;IAC/C,IAAM;MAAEL;IAAQ,CAAC,GAAG,IAAI,CAACZ,KAAK;IAE9B,IAAIiB,SAAS,CAACL,OAAO,KAAKA,OAAO,EAAE;MACjC,IAAIA,OAAO,EAAE;QACXM,oBAAoB,CAAC,IAAI,CAACP,GAAG,CAAC;QAC9B,IAAI,CAACA,GAAG,GAAGQ,MAAM,CAACC,qBAAqB,CAAC,MAAM;UAC5C,IAAI,CAACN,IAAI,EAAE;QACb,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACO,IAAI,EAAE;MACb;IACF;EACF;EAEAC,oBAAoB,GAAS;IAC3B,IAAI,CAACC,aAAa,CAAC,KAAK,CAAC;EAC3B;EASA;EACAC,iBAAiB,CAACnB,OAA2B,EAAsB;IACjE,IACEA,OAAO,IAAI,IAAI,IACfA,OAAO,CAACoB,YAAY,GAAG,CAAC,IACxBpB,OAAO,CAACqB,WAAW,GAAG,CAAC,EACvB;MACA,OAAOrB,OAAO;IAChB;IAEA,OAAO,IAAI,CAACmB,iBAAiB,CAACnB,OAAO,CAACsB,aAAa,CAAC;EACtD;EAEAC,UAAU,GAAS;IACjB,IAAI;MAAEb;IAAO,CAAC,GAAG,IAAI,CAACF,KAAK;IAC3B,IAAM;MAAEgB,WAAW;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC9B,KAAK;IAEnD,IAAIe,MAAM,EAAE;MACV;IACF;IAEA,IAAI,IAAI,CAACN,SAAS,CAACsB,OAAO,KAAK,IAAI,EAAE;MACnC;IACF;IAEA,IAAI;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAAChC,KAAK;IAC5BgC,OAAO;MACLC,SAAS,EAAE;IAAM,GACdD,OAAO,CACX;IACD1B,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAAC,IAAI,CAAC9B,OAAO,CAAC;IAEvC,IAAI+B,MAAM,GAAG,IAAI,CAACZ,iBAAiB,CAAC,IAAI,CAACf,SAAS,CAACsB,OAAO,CAAC;IAC3D,IAAIK,MAAM,IAAI,IAAI,EAAE;MAClBA,MAAM,GAAG,IAAI,CAAC3B,SAAS,CAACsB,OAAO;IACjC;IAEAhB,MAAM,GAAG,IAAIpB,QAAQ,CAACmC,eAAe,IAAIM,MAAM,EAAE,IAAI,CAAC/B,OAAO,EAAE2B,OAAO,CAAC;IACvEjB,MAAM,CAACsB,cAAc,EAAE;;IAEvB;IACAnB,oBAAoB,CAAC,IAAI,CAACP,GAAG,CAAC;IAC9B,IAAI,CAACA,GAAG,GAAGQ,MAAM,CAACC,qBAAqB,CAAC,MAAM;MAC5C;MACA,IAAIS,WAAW,IAAI,CAAC,IAAI,CAACxB,OAAO,CAACiC,QAAQ,CAAChC,QAAQ,CAACiC,aAAa,CAAC,EAAE;QACjE;QACA,IAAMC,IAAI,GAAG,IAAI,CAACnC,OAAO,CAACoC,iBAAiB;QAC3C,IAAID,IAAI,YAAYE,WAAW,EAAE;UAC/BF,IAAI,CAACG,KAAK,EAAE,CAAC,CAAC;QAChB;MACF;IACF,CAAC,CAAC;;IAEF,IAAI,CAACC,QAAQ,CAAC;MAAE7B;IAAO,CAAC,CAAC;EAC3B;EAEAQ,aAAa,GAA2B;IAAA,IAA1BsB,WAAW,uEAAG,IAAI;IAC9B3B,oBAAoB,CAAC,IAAI,CAACP,GAAG,CAAC;IAE9B,IAAM;MAAEI;IAAO,CAAC,GAAG,IAAI,CAACF,KAAK;IAC7B,IAAI,CAACE,MAAM,EAAE;MACX;IACF;IAEAA,MAAM,CAAC+B,OAAO,EAAE;;IAEhB;IACA;IACA;IACA,IAAIxC,QAAQ,CAAC4B,IAAI,CAACI,QAAQ,CAAC,IAAI,CAACjC,OAAO,CAAC,EAAE;MACxCC,QAAQ,CAAC4B,IAAI,CAACa,WAAW,CAAC,IAAI,CAAC1C,OAAO,CAAC;IACzC;IAEA,IAAIwC,WAAW,EAAE;MACf,IAAI,CAACD,QAAQ,CAAC;QAAE7B,MAAM,EAAE;MAAK,CAAC,CAAC;IACjC;EACF;EAEAD,IAAI,GAAS;IACX,IAAI,CAACc,UAAU,EAAE;IACjB,IAAI,CAACgB,QAAQ,CAAC;MAAE9B,IAAI,EAAE;IAAK,CAAC,CAAC;EAC/B;EAEAO,IAAI,GAAS;IACX,IAAI,CAACuB,QAAQ,CAAC;MAAE9B,IAAI,EAAE;IAAM,CAAC,CAAC;EAChC;EAEAuB,cAAc,GAAS;IACrB,IAAM;MAAEtB;IAAO,CAAC,GAAG,IAAI,CAACF,KAAK;IAC7B,IAAIE,MAAM,EAAEA,MAAM,CAACsB,cAAc,EAAE;EACrC;EAEAjC,UAAU,CAAC4C,CAAmB,EAAQ;IACpC,IAAI,EAAEA,CAAC,CAACC,aAAa,YAAYP,WAAW,CAAC,EAAE;MAC7C;IACF;IACA,IAAI,CAAC,IAAI,CAACrC,OAAO,CAACiC,QAAQ,CAACU,CAAC,CAACC,aAAa,CAAC,EAAE;MAC3C,IAAI,CAAC5B,IAAI,EAAE;IACb;EACF;EAEApB,WAAW,GAAS;IAClB,IAAM;MAAEiD;IAAU,CAAC,GAAG,IAAI,CAAClD,KAAK;IAChCkD,SAAS,EAAE,CAAC,CAAC;EACf;;EAEA/C,UAAU,GAAS;IACjB,IAAM;MAAEgD;IAAS,CAAC,GAAG,IAAI,CAACnD,KAAK;IAC/B,IAAM;MAAEc;IAAK,CAAC,GAAG,IAAI,CAACD,KAAK;IAC3B,IAAI,CAACC,IAAI,EAAE;MACT,IAAI,CAACS,aAAa,EAAE;IACtB;IACA4B,QAAQ,EAAE,CAAC,CAAC;EACd;;EAEAC,aAAa,GAAgB;IAC3B,IAAM;MACJ5C,SAAS;MACT6C,QAAQ;MACRC,OAAO;MACPC,WAAW;MACX1B;IACF,CAAC,GAAG,IAAI,CAAC7B,KAAK;IACd,IAAM;MAAEc;IAAK,CAAC,GAAG,IAAI,CAACD,KAAK;IAE3B,oBACE,oBAAC,aAAa;MACZ,EAAE,EAAEC,IAAK;MACT,OAAO,EAAEwC,OAAQ;MACjB,UAAU,EAAC,mBAAmB;MAC9B,SAAS,EAAE,IAAI,CAACrD,WAAY;MAC5B,QAAQ,EAAE,IAAI,CAACE;IAAW,gBAE1B;MACE,OAAO,EAAE6C,CAAC,IAAI;QACZ;QACAA,CAAC,CAACQ,eAAe,EAAE;MACrB,CAAE;MACF,SAAS,EAAER,CAAC,IAAI;QACd,IAAIA,CAAC,CAACS,GAAG,KAAK,QAAQ,EAAE,IAAI,CAACpC,IAAI,EAAE;MACrC,CAAE;MACF,SAAS,EAAE5B,UAAU,CAAC,QAAQ,EAAE;QAAE8D;MAAY,CAAC,EAAE/C,SAAS,CAAE;MAC5D,MAAM,EAAEqB,WAAW,GAAG,IAAI,CAACzB,UAAU,GAAGsD,SAAU;MAClD,QAAQ,EAAE7B,WAAW,GAAG,CAAC,CAAC,GAAG6B,SAAU;MACvC,IAAI,EAAC;IAAc,gBAEnB;MAAK,SAAS,EAAC;IAAgB,GAC5BL,QAAQ,eAET;MAAK,SAAS,EAAC,cAAc;MAAC,WAAQ;IAAE,EAAG,CACvC,CACF,CACQ;EAEpB;EAEAM,MAAM,GAAgB;IACpB,IAAM;MAAE5C;IAAO,CAAC,GAAG,IAAI,CAACF,KAAK;IAC7B,IAAM;MAAE,aAAa,EAAE+C;IAAW,CAAC,GAAG,IAAI,CAAC5D,KAAK;IAChD,oBACE;MACE,SAAS,EAAC,yBAAyB;MACnC,GAAG,EAAE,IAAI,CAACS,SAAU;MACpB,KAAK,EAAE;QAAEoD,OAAO,EAAE;MAAO,CAAE;MAC3B,eAAaD;IAAW,GAEvB7C,MAAM,iBAAIvB,QAAQ,CAACsE,YAAY,CAAC,IAAI,CAACV,aAAa,EAAE,EAAE,IAAI,CAAC/C,OAAO,CAAC,CAChE;EAEV;AACF;AAAC,gBA1PKP,MAAM,eACS;EACjBuD,QAAQ,EAAEzD,SAAS,CAACmE,IAAI,CAACC,UAAU;EACnChC,OAAO,EAAEpC,SAAS,CAACqE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC5BzD,SAAS,EAAEZ,SAAS,CAACsE,MAAM;EAC3BZ,OAAO,EAAE1D,SAAS,CAACuE,MAAM;EACzBjB,SAAS,EAAEtD,SAAS,CAACwE,IAAI;EACzBjB,QAAQ,EAAEvD,SAAS,CAACwE,IAAI;EACxBxD,OAAO,EAAEhB,SAAS,CAACyE,IAAI;EACvBxC,WAAW,EAAEjC,SAAS,CAACyE,IAAI;EAC3Bd,WAAW,EAAE3D,SAAS,CAACyE,IAAI;EAC3BvC,eAAe,EAAElC,SAAS,CAACqE,KAAK,CAAC,CAAC,CAAC,CAAC;EACpC,aAAa,EAAErE,SAAS,CAACsE;AAC3B,CAAC;AAAA,gBAbGpE,MAAM,kBAeY;EACpBkC,OAAO,EAAE,CAAC,CAAC;EACXxB,SAAS,EAAE,EAAE;EACb8C,OAAO,EAAEzD,WAAW,CAACyE,YAAY;EACjCpB,SAAS,GAAS;IAChB;EAAA,CACD;EACDC,QAAQ,GAAS;IACf;EAAA,CACD;EACDvC,OAAO,EAAE,KAAK;EACd2C,WAAW,EAAE,KAAK;EAClB1B,WAAW,EAAE,KAAK;EAClBC,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE4B;AACjB,CAAC;AA8NH,eAAe5D,MAAM"}
@@ -1,11 +1,9 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import React, { Component } from 'react';
4
3
  import classNames from 'classnames';
5
4
  import Log from '@deephaven/log';
6
5
  import Popper from "./Popper.js";
7
6
  var log = Log.module('Tooltip');
8
-
9
7
  /**
10
8
  * Component that can be added to an element to automatically display a tooltip.
11
9
  * Content is mounted lazily, so don't worry about complex tooltips!
@@ -21,27 +19,19 @@ var log = Log.module('Tooltip');
21
19
  class Tooltip extends Component {
22
20
  static handleHidden() {
23
21
  Tooltip.shownTooltipCount -= 1;
24
-
25
22
  if (Tooltip.shownTooltipCount === 0) {
26
23
  Tooltip.lastHiddenTime = Date.now();
27
24
  }
28
25
  }
29
-
30
26
  static handleShown() {
31
27
  Tooltip.shownTooltipCount += 1;
32
28
  }
33
-
34
29
  constructor(props) {
35
30
  super(props);
36
-
37
31
  _defineProperty(this, "container", void 0);
38
-
39
32
  _defineProperty(this, "popper", void 0);
40
-
41
33
  _defineProperty(this, "parent", void 0);
42
-
43
34
  _defineProperty(this, "timer", void 0);
44
-
45
35
  this.handleMouseMove = this.handleMouseMove.bind(this);
46
36
  this.handleMouseLeave = this.handleMouseLeave.bind(this);
47
37
  this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);
@@ -57,18 +47,15 @@ class Tooltip extends Component {
57
47
  isShown: false
58
48
  };
59
49
  }
60
-
61
50
  componentDidMount() {
62
51
  this.startListening();
63
52
  var {
64
53
  timeout
65
54
  } = this.props;
66
-
67
55
  if (timeout === 0) {
68
56
  this.show();
69
57
  }
70
58
  }
71
-
72
59
  componentDidUpdate(prevProps, prevState) {
73
60
  var {
74
61
  isShown: oldIsShown
@@ -76,7 +63,6 @@ class Tooltip extends Component {
76
63
  var {
77
64
  isShown
78
65
  } = this.state;
79
-
80
66
  if (isShown !== oldIsShown) {
81
67
  if (isShown) {
82
68
  Tooltip.handleShown();
@@ -85,7 +71,6 @@ class Tooltip extends Component {
85
71
  }
86
72
  }
87
73
  }
88
-
89
74
  componentWillUnmount() {
90
75
  this.stopListening();
91
76
  this.stopListeningWindow();
@@ -93,55 +78,45 @@ class Tooltip extends Component {
93
78
  var {
94
79
  isShown
95
80
  } = this.state;
96
-
97
81
  if (isShown) {
98
82
  Tooltip.handleHidden();
99
83
  }
100
84
  }
101
-
102
85
  startListening() {
103
86
  if (!this.container.current || !this.container.current.parentElement) {
104
87
  log.error("Tooltip doesn't have a container or a parent set!");
105
88
  return;
106
89
  }
107
-
108
90
  this.parent = this.container.current.parentElement;
109
91
  this.parent.addEventListener('mousemove', this.handleMouseMove);
110
92
  this.parent.addEventListener('mouseleave', this.handleMouseLeave);
111
93
  this.parent.addEventListener('mousedown', this.stopShowingTooltip);
112
94
  }
113
-
114
95
  stopListening() {
115
96
  if (!this.parent) {
116
97
  return;
117
98
  }
118
-
119
99
  this.parent.removeEventListener('mousemove', this.handleMouseMove);
120
100
  this.parent.removeEventListener('mouseleave', this.handleMouseLeave);
121
101
  this.parent.removeEventListener('mousedown', this.stopShowingTooltip);
122
102
  }
123
-
124
103
  startListeningWindow() {
125
104
  window.addEventListener('mousemove', this.handleWindowMouseMove, true);
126
105
  window.addEventListener('contextmenu', this.stopShowingTooltip, true);
127
106
  window.addEventListener('wheel', this.handleWheel);
128
107
  }
129
-
130
108
  stopListeningWindow() {
131
109
  window.removeEventListener('mousemove', this.handleWindowMouseMove, true);
132
110
  window.removeEventListener('contextmenu', this.stopShowingTooltip, true);
133
111
  window.removeEventListener('wheel', this.handleWheel);
134
112
  }
135
-
136
113
  handleMouseMove() {
137
114
  this.startTimer();
138
115
  }
139
-
140
116
  handleWheel() {
141
117
  var {
142
118
  isShown
143
119
  } = this.state;
144
-
145
120
  if (this.popper.current && this.parent && isShown) {
146
121
  if (!this.popper.current.element.matches(':hover') && !this.parent.matches(':hover')) {
147
122
  this.stopTimer();
@@ -149,7 +124,6 @@ class Tooltip extends Component {
149
124
  }
150
125
  }
151
126
  }
152
-
153
127
  handleMouseLeave() {
154
128
  var {
155
129
  isShown
@@ -158,30 +132,24 @@ class Tooltip extends Component {
158
132
  var {
159
133
  interactive
160
134
  } = this.props;
161
-
162
135
  if (!interactive && isShown) {
163
136
  this.hide();
164
137
  }
165
138
  }
166
-
167
139
  handleTimeout() {
168
140
  this.show();
169
141
  }
170
-
171
142
  handleWindowMouseMove(event) {
172
143
  var mouseX = event.clientX;
173
144
  var mouseY = event.clientY;
174
145
  var {
175
146
  isShown
176
147
  } = this.state;
177
-
178
148
  if (!this.popper.current || !this.parent) {
179
149
  return;
180
150
  }
181
-
182
151
  var popperRect = this.popper.current.element.getBoundingClientRect();
183
152
  var parentRect = this.parent.getBoundingClientRect();
184
-
185
153
  if (mouseX >= popperRect.left && mouseX <= popperRect.left + popperRect.width && mouseY >= popperRect.top && mouseY <= popperRect.top + popperRect.height) {
186
154
  this.handleMouseMove();
187
155
  } else if (mouseX >= parentRect.left && mouseX <= parentRect.left + parentRect.width && mouseY >= parentRect.top && mouseY <= parentRect.top + parentRect.height) {
@@ -191,7 +159,6 @@ class Tooltip extends Component {
191
159
  this.hide();
192
160
  }
193
161
  }
194
-
195
162
  startTimer() {
196
163
  this.stopTimer();
197
164
  var {
@@ -199,30 +166,24 @@ class Tooltip extends Component {
199
166
  reshowTimeout
200
167
  } = this.props;
201
168
  var timerTimeout = timeout;
202
-
203
169
  if (Tooltip.shownTooltipCount > 0 || Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold) {
204
170
  timerTimeout = reshowTimeout;
205
171
  }
206
-
207
172
  this.timer = window.setTimeout(this.handleTimeout, timerTimeout);
208
173
  }
209
-
210
174
  stopTimer() {
211
175
  if (this.timer != null) {
212
176
  clearTimeout(this.timer);
213
177
  this.timer = null;
214
178
  }
215
179
  }
216
-
217
180
  show() {
218
181
  var {
219
182
  isShown
220
183
  } = this.state;
221
184
  this.stopTimer();
222
-
223
185
  if (!isShown) {
224
186
  var _this$popper$current;
225
-
226
187
  (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.show();
227
188
  this.setState({
228
189
  isShown: true
@@ -230,26 +191,20 @@ class Tooltip extends Component {
230
191
  var {
231
192
  interactive
232
193
  } = this.props;
233
-
234
194
  if (interactive) {
235
195
  this.startListeningWindow();
236
196
  }
237
197
  }
238
198
  }
239
-
240
199
  hide() {
241
200
  var _this$popper$current2;
242
-
243
201
  (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.hide();
244
202
  this.stopListeningWindow();
245
203
  }
246
-
247
204
  update() {
248
205
  var _this$popper$current3;
249
-
250
206
  (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.scheduleUpdate();
251
207
  }
252
-
253
208
  handleExited() {
254
209
  this.setState({
255
210
  isShown: false
@@ -259,18 +214,15 @@ class Tooltip extends Component {
259
214
  } = this.props;
260
215
  onExited();
261
216
  }
262
-
263
217
  stopShowingTooltip() {
264
218
  var {
265
219
  isShown
266
220
  } = this.state;
267
221
  this.stopTimer();
268
-
269
222
  if (isShown) {
270
223
  this.hide();
271
224
  }
272
225
  }
273
-
274
226
  render() {
275
227
  var {
276
228
  interactive,
@@ -302,19 +254,12 @@ class Tooltip extends Component {
302
254
  className: "tooltip-content"
303
255
  }, " ", isShown && children)));
304
256
  }
305
-
306
257
  }
307
-
308
258
  _defineProperty(Tooltip, "defaultTimeout", 500);
309
-
310
259
  _defineProperty(Tooltip, "defaultReshowTimeout", 100);
311
-
312
260
  _defineProperty(Tooltip, "triggerReshowThreshold", 300);
313
-
314
261
  _defineProperty(Tooltip, "shownTooltipCount", 0);
315
-
316
262
  _defineProperty(Tooltip, "lastHiddenTime", Date.now());
317
-
318
263
  _defineProperty(Tooltip, "defaultProps", {
319
264
  interactive: false,
320
265
  options: {},
@@ -325,6 +270,5 @@ _defineProperty(Tooltip, "defaultProps", {
325
270
  onExited: () => undefined,
326
271
  'data-testid': undefined
327
272
  });
328
-
329
273
  export default Tooltip;
330
274
  //# sourceMappingURL=Tooltip.js.map