@itwin/core-react 4.13.4 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +5 -8
  2. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  3. package/lib/cjs/core-react/autosuggest/AutoSuggest.js +1 -5
  4. package/lib/cjs/core-react/autosuggest/AutoSuggest.js.map +1 -1
  5. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  6. package/lib/cjs/core-react/contextmenu/ContextMenu.js +4 -21
  7. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  8. package/lib/cjs/core-react/contextmenu/ContextMenu.scss +2 -0
  9. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  10. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js +0 -2
  11. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  12. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  13. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js +2 -11
  14. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  15. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  16. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js +1 -5
  17. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  18. package/lib/cjs/core-react/dialog/Dialog.d.ts.map +1 -1
  19. package/lib/cjs/core-react/dialog/Dialog.js +1 -3
  20. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  21. package/lib/cjs/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  22. package/lib/cjs/core-react/dialog/GlobalDialog.js +0 -1
  23. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  24. package/lib/cjs/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  25. package/lib/cjs/core-react/elementseparator/ElementSeparator.js +1 -5
  26. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  27. package/lib/cjs/core-react/elementseparator/ElementSeparator.scss +1 -0
  28. package/lib/cjs/core-react/expandable/ExpandableList.d.ts.map +1 -1
  29. package/lib/cjs/core-react/expandable/ExpandableList.js +0 -1
  30. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  31. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  32. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js +0 -2
  33. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  34. package/lib/cjs/core-react/focustrap/FocusTrap.d.ts.map +1 -1
  35. package/lib/cjs/core-react/focustrap/FocusTrap.js +1 -14
  36. package/lib/cjs/core-react/focustrap/FocusTrap.js.map +1 -1
  37. package/lib/cjs/core-react/hocs/withOnOutsideClick.d.ts.map +1 -1
  38. package/lib/cjs/core-react/hocs/withOnOutsideClick.js +0 -6
  39. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  40. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  41. package/lib/cjs/core-react/icons/ConditionalIconItem.js +0 -8
  42. package/lib/cjs/core-react/icons/ConditionalIconItem.js.map +1 -1
  43. package/lib/cjs/core-react/icons/IconComponent.d.ts.map +1 -1
  44. package/lib/cjs/core-react/icons/IconComponent.js +0 -1
  45. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  46. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  47. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js +0 -4
  48. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  49. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  50. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js +0 -1
  51. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  52. package/lib/cjs/core-react/listbox/Listbox.d.ts.map +1 -1
  53. package/lib/cjs/core-react/listbox/Listbox.js +0 -11
  54. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  55. package/lib/cjs/core-react/messagebox/MessageBox.js +0 -2
  56. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  57. package/lib/cjs/core-react/notification/MessageRenderer.d.ts.map +1 -1
  58. package/lib/cjs/core-react/notification/MessageRenderer.js +0 -3
  59. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  60. package/lib/cjs/core-react/popup/Popup.d.ts.map +1 -1
  61. package/lib/cjs/core-react/popup/Popup.js +2 -14
  62. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  63. package/lib/cjs/core-react/radialmenu/Annulus.d.ts.map +1 -1
  64. package/lib/cjs/core-react/radialmenu/Annulus.js +1 -1
  65. package/lib/cjs/core-react/radialmenu/Annulus.js.map +1 -1
  66. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts +6 -5
  67. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  68. package/lib/cjs/core-react/radialmenu/RadialMenu.js +4 -9
  69. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  70. package/lib/cjs/core-react/searchbox/SearchBox.d.ts.map +1 -1
  71. package/lib/cjs/core-react/searchbox/SearchBox.js +0 -7
  72. package/lib/cjs/core-react/searchbox/SearchBox.js.map +1 -1
  73. package/lib/cjs/core-react/settings/SettingsContainer.d.ts.map +1 -1
  74. package/lib/cjs/core-react/settings/SettingsContainer.js +0 -1
  75. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  76. package/lib/cjs/core-react/tabs/Tabs.d.ts.map +1 -1
  77. package/lib/cjs/core-react/tabs/Tabs.js +0 -4
  78. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  79. package/lib/cjs/core-react/text/FilteredText.d.ts.map +1 -1
  80. package/lib/cjs/core-react/text/FilteredText.js +0 -3
  81. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  82. package/lib/cjs/core-react/tree/Tree.d.ts.map +1 -1
  83. package/lib/cjs/core-react/tree/Tree.js +0 -3
  84. package/lib/cjs/core-react/tree/Tree.js.map +1 -1
  85. package/lib/cjs/core-react/utils/IconHelper.d.ts.map +1 -1
  86. package/lib/cjs/core-react/utils/IconHelper.js +0 -8
  87. package/lib/cjs/core-react/utils/IconHelper.js.map +1 -1
  88. package/lib/cjs/core-react/utils/IconWebComponent.d.ts.map +1 -1
  89. package/lib/cjs/core-react/utils/IconWebComponent.js +0 -1
  90. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  91. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  92. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js +0 -2
  93. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  94. package/lib/cjs/core-react/utils/flattenChildren.d.ts.map +1 -1
  95. package/lib/cjs/core-react/utils/flattenChildren.js +0 -1
  96. package/lib/cjs/core-react/utils/flattenChildren.js.map +1 -1
  97. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  98. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js +0 -1
  99. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  100. package/lib/cjs/core-react/utils/hooks/useEventListener.d.ts.map +1 -1
  101. package/lib/cjs/core-react/utils/hooks/useEventListener.js +0 -1
  102. package/lib/cjs/core-react/utils/hooks/useEventListener.js.map +1 -1
  103. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.d.ts.map +1 -1
  104. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js +0 -1
  105. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  106. package/lib/cjs/core-react/utils/hooks/useRefs.d.ts.map +1 -1
  107. package/lib/cjs/core-react/utils/hooks/useRefs.js +0 -2
  108. package/lib/cjs/core-react/utils/hooks/useRefs.js.map +1 -1
  109. package/lib/cjs/core-react/utils/hooks/useResizeObserver.d.ts.map +1 -1
  110. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js +1 -17
  111. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  112. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.d.ts.map +1 -1
  113. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js +1 -1
  114. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  115. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  116. package/lib/esm/core-react/autosuggest/AutoSuggest.js +1 -5
  117. package/lib/esm/core-react/autosuggest/AutoSuggest.js.map +1 -1
  118. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  119. package/lib/esm/core-react/contextmenu/ContextMenu.js +4 -21
  120. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  121. package/lib/esm/core-react/contextmenu/ContextMenu.scss +2 -0
  122. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  123. package/lib/esm/core-react/contextmenu/ContextMenuItem.js +0 -2
  124. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  125. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  126. package/lib/esm/core-react/contextmenu/ContextSubMenu.js +2 -11
  127. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  128. package/lib/esm/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  129. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js +1 -5
  130. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  131. package/lib/esm/core-react/dialog/Dialog.d.ts.map +1 -1
  132. package/lib/esm/core-react/dialog/Dialog.js +1 -3
  133. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  134. package/lib/esm/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  135. package/lib/esm/core-react/dialog/GlobalDialog.js +0 -1
  136. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  137. package/lib/esm/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  138. package/lib/esm/core-react/elementseparator/ElementSeparator.js +1 -5
  139. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  140. package/lib/esm/core-react/elementseparator/ElementSeparator.scss +1 -0
  141. package/lib/esm/core-react/expandable/ExpandableList.d.ts.map +1 -1
  142. package/lib/esm/core-react/expandable/ExpandableList.js +0 -1
  143. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  144. package/lib/esm/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  145. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js +0 -2
  146. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  147. package/lib/esm/core-react/focustrap/FocusTrap.d.ts.map +1 -1
  148. package/lib/esm/core-react/focustrap/FocusTrap.js +1 -14
  149. package/lib/esm/core-react/focustrap/FocusTrap.js.map +1 -1
  150. package/lib/esm/core-react/hocs/withOnOutsideClick.d.ts.map +1 -1
  151. package/lib/esm/core-react/hocs/withOnOutsideClick.js +0 -6
  152. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  153. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  154. package/lib/esm/core-react/icons/ConditionalIconItem.js +0 -8
  155. package/lib/esm/core-react/icons/ConditionalIconItem.js.map +1 -1
  156. package/lib/esm/core-react/icons/IconComponent.d.ts.map +1 -1
  157. package/lib/esm/core-react/icons/IconComponent.js +0 -1
  158. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  159. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  160. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js +0 -4
  161. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  162. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  163. package/lib/esm/core-react/inputs/numberinput/NumberInput.js +0 -1
  164. package/lib/esm/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  165. package/lib/esm/core-react/listbox/Listbox.d.ts.map +1 -1
  166. package/lib/esm/core-react/listbox/Listbox.js +0 -11
  167. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  168. package/lib/esm/core-react/messagebox/MessageBox.js +0 -2
  169. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  170. package/lib/esm/core-react/notification/MessageRenderer.d.ts.map +1 -1
  171. package/lib/esm/core-react/notification/MessageRenderer.js +0 -3
  172. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  173. package/lib/esm/core-react/popup/Popup.d.ts.map +1 -1
  174. package/lib/esm/core-react/popup/Popup.js +2 -14
  175. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  176. package/lib/esm/core-react/radialmenu/Annulus.d.ts.map +1 -1
  177. package/lib/esm/core-react/radialmenu/Annulus.js +1 -1
  178. package/lib/esm/core-react/radialmenu/Annulus.js.map +1 -1
  179. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts +6 -5
  180. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  181. package/lib/esm/core-react/radialmenu/RadialMenu.js +4 -9
  182. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  183. package/lib/esm/core-react/searchbox/SearchBox.d.ts.map +1 -1
  184. package/lib/esm/core-react/searchbox/SearchBox.js +0 -7
  185. package/lib/esm/core-react/searchbox/SearchBox.js.map +1 -1
  186. package/lib/esm/core-react/settings/SettingsContainer.d.ts.map +1 -1
  187. package/lib/esm/core-react/settings/SettingsContainer.js +0 -1
  188. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  189. package/lib/esm/core-react/tabs/Tabs.d.ts.map +1 -1
  190. package/lib/esm/core-react/tabs/Tabs.js +0 -4
  191. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  192. package/lib/esm/core-react/text/FilteredText.d.ts.map +1 -1
  193. package/lib/esm/core-react/text/FilteredText.js +0 -3
  194. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  195. package/lib/esm/core-react/tree/Tree.d.ts.map +1 -1
  196. package/lib/esm/core-react/tree/Tree.js +0 -3
  197. package/lib/esm/core-react/tree/Tree.js.map +1 -1
  198. package/lib/esm/core-react/utils/IconHelper.d.ts.map +1 -1
  199. package/lib/esm/core-react/utils/IconHelper.js +0 -8
  200. package/lib/esm/core-react/utils/IconHelper.js.map +1 -1
  201. package/lib/esm/core-react/utils/IconWebComponent.d.ts.map +1 -1
  202. package/lib/esm/core-react/utils/IconWebComponent.js +0 -1
  203. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  204. package/lib/esm/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  205. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js +0 -2
  206. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  207. package/lib/esm/core-react/utils/flattenChildren.d.ts.map +1 -1
  208. package/lib/esm/core-react/utils/flattenChildren.js +0 -1
  209. package/lib/esm/core-react/utils/flattenChildren.js.map +1 -1
  210. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  211. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js +0 -1
  212. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  213. package/lib/esm/core-react/utils/hooks/useEventListener.d.ts.map +1 -1
  214. package/lib/esm/core-react/utils/hooks/useEventListener.js +0 -1
  215. package/lib/esm/core-react/utils/hooks/useEventListener.js.map +1 -1
  216. package/lib/esm/core-react/utils/hooks/useProximityToMouse.d.ts.map +1 -1
  217. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js +0 -1
  218. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  219. package/lib/esm/core-react/utils/hooks/useRefs.d.ts.map +1 -1
  220. package/lib/esm/core-react/utils/hooks/useRefs.js +0 -2
  221. package/lib/esm/core-react/utils/hooks/useRefs.js.map +1 -1
  222. package/lib/esm/core-react/utils/hooks/useResizeObserver.d.ts.map +1 -1
  223. package/lib/esm/core-react/utils/hooks/useResizeObserver.js +1 -17
  224. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  225. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.d.ts.map +1 -1
  226. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js +1 -1
  227. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  228. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useProximityToMouse.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useProximityToMouse.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAC/B,oCAAiC;AACjC,4CAAyC;AAEzC,gBAAgB;AAChB,MAAa,gBAAiB,SAAQ,GAA6B;CAAG;AAAtE,4CAAsE;AAEtE;;GAEG;AACI,MAAM,mBAAmB,GAAG,CACjC,UAA4B,EAC5B,OAAgB,KAAK,EACrB,SAAS,GAAG,mCAA2B,EACvC,EAAE;IACF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,yBAAyB,GAAG,CAAC,CAAe,EAAE,EAAE;YACpD,IAAI,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAEhD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,uBAAuB;gBACvB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,qBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC/C,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1C,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC1B,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAC3C,iBAAiB,CAClB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,+BAAuB,EAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,IAAI,KAAK,KAAK,cAAc;gBAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;QAEpE,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAElD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AApCW,QAAA,mBAAmB,uBAoC9B;AAEF;;GAEG;AACU,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAE/C;;GAEG;AACU,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;GAEG;AACU,QAAA,kCAAkC,GAAG,IAAI,CAAC;AAEvD;;GAEG;AACU,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAEvD;;GAEG;AACI,MAAM,uBAAuB,GAAG,CACrC,SAAiB,EACjB,OAAgB,KAAK,EACrB,SAAS,GAAG,mCAA2B,EAC/B,EAAE;IACV,IAAI,KAAK,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5E,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,GAAG,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC;AAEF;;GAEG;AACI,MAAM,uBAAuB,GAAG,CAAC,cAAsB,EAAU,EAAE;IACxE,OAAO,+BAAuB,GAAG,cAAc,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,uBAAuB,2BAElC;AAEF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAU,EAAE;IAC1E,OAAO,0CAAkC,GAAG,cAAc,CAAC;AAC7D,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AAEF;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,cAAsB,EAAU,EAAE;IAC5E,OAAO,4CAAoC,GAAG,cAAc,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,2BAA2B,+BAEtC;AAEF;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAU,EAAE;IACnE,OAAO,yCAAyC,OAAO,GAAG,CAAC;AAC7D,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC7D,OAAO,6BAA6B,OAAO,GAAG,CAAC;AACjD,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEF;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAU,EAAE;IACrE,OAAO,QAAQ,UAAU,KAAK,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { Point } from \"../Point\";\nimport { Rectangle } from \"../Rectangle\";\n\n/** @internal */\nexport class WidgetElementSet extends Set<React.RefObject<Element>> {}\n\n/** Returns the proximity scale associated with the shortest distance from the element(s) to the mouse.\n * @internal\n */\nexport const useProximityToMouse = (\n elementSet: WidgetElementSet,\n snap: boolean = false,\n threshold = PROXIMITY_THRESHOLD_DEFAULT\n) => {\n const [proximityScale, setProximityScale] = React.useState(1.0);\n\n React.useEffect(() => {\n const handleDocumentPointerMove = (e: PointerEvent) => {\n let shortestProximity = Number.MAX_SAFE_INTEGER;\n\n for (const ref of elementSet) {\n // istanbul ignore else\n if (ref.current) {\n const clientRect = ref.current.getBoundingClientRect();\n const rectangle = Rectangle.create(clientRect);\n const point = new Point(e.pageX, e.pageY);\n shortestProximity = Math.min(\n rectangle.getShortestDistanceToPoint(point),\n shortestProximity\n );\n }\n }\n\n const scale = calculateProximityScale(shortestProximity, snap, threshold);\n if (scale !== proximityScale) setProximityScale(scale);\n };\n\n document.addEventListener(\"pointermove\", handleDocumentPointerMove);\n\n return () => {\n document.removeEventListener(\"pointermove\", handleDocumentPointerMove);\n };\n }, [elementSet, proximityScale, snap, threshold]);\n\n return proximityScale;\n};\n\n/** Default proximity threshold.\n * @internal\n */\nexport const PROXIMITY_THRESHOLD_DEFAULT = 100;\n\n/** Default toolbar opacity.\n * @internal\n */\nexport const TOOLBAR_OPACITY_DEFAULT = 0.5;\n\n/** Default toolbar box-shadow opacity.\n * @internal\n */\nexport const TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT = 0.35;\n\n/** Default toolbar backdrop-filter blur.\n * @internal\n */\nexport const TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT = 10;\n\n/** Calculates a proximity scale for further calculations given the proximity and threshold.\n * @internal\n */\nexport const calculateProximityScale = (\n proximity: number,\n snap: boolean = false,\n threshold = PROXIMITY_THRESHOLD_DEFAULT\n): number => {\n let scale = (proximity < threshold ? threshold - proximity : 0) / threshold;\n if (snap && scale > 0) scale = 1.0;\n return scale;\n};\n\n/** Calculates a toolbar opacity based on a given proximity scale.\n * @internal\n */\nexport const calculateToolbarOpacity = (proximityScale: number): number => {\n return TOOLBAR_OPACITY_DEFAULT * proximityScale;\n};\n\n/** Calculates a box-shadow opacity based on a given proximity scale.\n * @internal\n */\nexport const calculateBoxShadowOpacity = (proximityScale: number): number => {\n return TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT * proximityScale;\n};\n\n/** Calculates a backdrop-filter blur based on a given proximity scale.\n * @internal\n */\nexport const calculateBackdropFilterBlur = (proximityScale: number): number => {\n return TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT * proximityScale;\n};\n\n/** Gets the Toolbar background-color based on a given opacity.\n * @internal\n */\nexport const getToolbarBackgroundColor = (opacity: number): string => {\n return `hsl(var(--iui-color-background-hsl) / ${opacity})`;\n};\n\n/** Gets the Toolbar box-shadow based on a given opacity.\n * @internal\n */\nexport const getToolbarBoxShadow = (opacity: number): string => {\n return `0 1px 3px 0 rgba(0, 0, 0, ${opacity})`;\n};\n\n/** Gets the Toolbar backdrop-filter based on a given blur amount.\n * @internal\n */\nexport const getToolbarBackdropFilter = (filterBlur: number): string => {\n return `blur(${filterBlur}px)`;\n};\n"]}
1
+ {"version":3,"file":"useProximityToMouse.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useProximityToMouse.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { Point } from \"../Point\";\nimport { Rectangle } from \"../Rectangle\";\n\n/** @internal */\nexport class WidgetElementSet extends Set<React.RefObject<Element>> {}\n\n/** Returns the proximity scale associated with the shortest distance from the element(s) to the mouse.\n * @internal\n */\nexport const useProximityToMouse = (\n elementSet: WidgetElementSet,\n snap: boolean = false,\n threshold = PROXIMITY_THRESHOLD_DEFAULT\n) => {\n const [proximityScale, setProximityScale] = React.useState(1.0);\n\n React.useEffect(() => {\n const handleDocumentPointerMove = (e: PointerEvent) => {\n let shortestProximity = Number.MAX_SAFE_INTEGER;\n\n for (const ref of elementSet) {\n if (ref.current) {\n const clientRect = ref.current.getBoundingClientRect();\n const rectangle = Rectangle.create(clientRect);\n const point = new Point(e.pageX, e.pageY);\n shortestProximity = Math.min(\n rectangle.getShortestDistanceToPoint(point),\n shortestProximity\n );\n }\n }\n\n const scale = calculateProximityScale(shortestProximity, snap, threshold);\n if (scale !== proximityScale) setProximityScale(scale);\n };\n\n document.addEventListener(\"pointermove\", handleDocumentPointerMove);\n\n return () => {\n document.removeEventListener(\"pointermove\", handleDocumentPointerMove);\n };\n }, [elementSet, proximityScale, snap, threshold]);\n\n return proximityScale;\n};\n\n/** Default proximity threshold.\n * @internal\n */\nexport const PROXIMITY_THRESHOLD_DEFAULT = 100;\n\n/** Default toolbar opacity.\n * @internal\n */\nexport const TOOLBAR_OPACITY_DEFAULT = 0.5;\n\n/** Default toolbar box-shadow opacity.\n * @internal\n */\nexport const TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT = 0.35;\n\n/** Default toolbar backdrop-filter blur.\n * @internal\n */\nexport const TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT = 10;\n\n/** Calculates a proximity scale for further calculations given the proximity and threshold.\n * @internal\n */\nexport const calculateProximityScale = (\n proximity: number,\n snap: boolean = false,\n threshold = PROXIMITY_THRESHOLD_DEFAULT\n): number => {\n let scale = (proximity < threshold ? threshold - proximity : 0) / threshold;\n if (snap && scale > 0) scale = 1.0;\n return scale;\n};\n\n/** Calculates a toolbar opacity based on a given proximity scale.\n * @internal\n */\nexport const calculateToolbarOpacity = (proximityScale: number): number => {\n return TOOLBAR_OPACITY_DEFAULT * proximityScale;\n};\n\n/** Calculates a box-shadow opacity based on a given proximity scale.\n * @internal\n */\nexport const calculateBoxShadowOpacity = (proximityScale: number): number => {\n return TOOLBAR_BOX_SHADOW_OPACITY_DEFAULT * proximityScale;\n};\n\n/** Calculates a backdrop-filter blur based on a given proximity scale.\n * @internal\n */\nexport const calculateBackdropFilterBlur = (proximityScale: number): number => {\n return TOOLBAR_BACKDROP_FILTER_BLUR_DEFAULT * proximityScale;\n};\n\n/** Gets the Toolbar background-color based on a given opacity.\n * @internal\n */\nexport const getToolbarBackgroundColor = (opacity: number): string => {\n return `hsl(var(--iui-color-background-hsl) / ${opacity})`;\n};\n\n/** Gets the Toolbar box-shadow based on a given opacity.\n * @internal\n */\nexport const getToolbarBoxShadow = (opacity: number): string => {\n return `0 1px 3px 0 rgba(0, 0, 0, ${opacity})`;\n};\n\n/** Gets the Toolbar backdrop-filter based on a given blur amount.\n * @internal\n */\nexport const getToolbarBackdropFilter = (filterBlur: number): string => {\n return `blur(${filterBlur}px)`;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useRefs.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useRefs.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,cAE5D,CAAC,GAAG,IAAI,UAetB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAC7C,CAAC,GAAG,IAAI,UAY3B"}
1
+ {"version":3,"file":"useRefs.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useRefs.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,cAE5D,CAAC,GAAG,IAAI,UActB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAC7C,CAAC,GAAG,IAAI,UAW3B"}
@@ -19,7 +19,6 @@ function isRefCallback(ref) {
19
19
  function useRefs(...refs) {
20
20
  return React.useCallback((instance) => {
21
21
  for (const ref of refs) {
22
- // istanbul ignore else
23
22
  if (ref) {
24
23
  if (isRefCallback(ref)) {
25
24
  ref(instance);
@@ -40,7 +39,6 @@ exports.useRefs = useRefs;
40
39
  function mergeRefs(...refs) {
41
40
  return (instance) => {
42
41
  for (const ref of refs) {
43
- // istanbul ignore else
44
42
  if (ref) {
45
43
  if (isRefCallback(ref)) {
46
44
  ref(instance);
@@ -1 +1 @@
1
- {"version":3,"file":"useRefs.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useRefs.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,+BAA+B;AAC/B,SAAS,aAAa,CAAI,GAAiB;IACzC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAI,GAAG,IAA6C;IACzE,OAAO,KAAK,CAAC,WAAW,CACtB,CAAC,QAAkB,EAAE,EAAE;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,uBAAuB;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACL,GAAwC,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,uDAAuD;IACvD,CAAC,GAAG,IAAI,CAAC,CACV,CAAC;AACJ,CAAC;AAjBD,0BAiBC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAI,GAAG,IAAiC;IAC/D,OAAO,CAAC,QAAkB,EAAE,EAAE;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,uBAAuB;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACL,GAAwC,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAbD,8BAaC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\n\n/** Callback ref type guard. */\nfunction isRefCallback<T>(ref: React.Ref<T>): ref is (_: T | null) => void {\n return typeof ref === \"function\";\n}\n\n/** Hook used to combine multiple refs.\n * @internal\n */\nexport function useRefs<T>(...refs: ReadonlyArray<React.Ref<T> | undefined>) {\n return React.useCallback(\n (instance: T | null) => {\n for (const ref of refs) {\n // istanbul ignore else\n if (ref) {\n if (isRefCallback(ref)) {\n ref(instance);\n } else {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...refs]\n );\n}\n\n/** Used to combine multiple refs for a class component.\n * @internal\n */\nexport function mergeRefs<T>(...refs: ReadonlyArray<React.Ref<T>>) {\n return (instance: T | null) => {\n for (const ref of refs) {\n // istanbul ignore else\n if (ref) {\n if (isRefCallback(ref)) {\n ref(instance);\n } else {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n }\n }\n };\n}\n"]}
1
+ {"version":3,"file":"useRefs.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useRefs.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAE/B,+BAA+B;AAC/B,SAAS,aAAa,CAAI,GAAiB;IACzC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAI,GAAG,IAA6C;IACzE,OAAO,KAAK,CAAC,WAAW,CACtB,CAAC,QAAkB,EAAE,EAAE;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACL,GAAwC,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,uDAAuD;IACvD,CAAC,GAAG,IAAI,CAAC,CACV,CAAC;AACJ,CAAC;AAhBD,0BAgBC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAI,GAAG,IAAiC;IAC/D,OAAO,CAAC,QAAkB,EAAE,EAAE;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACL,GAAwC,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,8BAYC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\n\n/** Callback ref type guard. */\nfunction isRefCallback<T>(ref: React.Ref<T>): ref is (_: T | null) => void {\n return typeof ref === \"function\";\n}\n\n/** Hook used to combine multiple refs.\n * @internal\n */\nexport function useRefs<T>(...refs: ReadonlyArray<React.Ref<T> | undefined>) {\n return React.useCallback(\n (instance: T | null) => {\n for (const ref of refs) {\n if (ref) {\n if (isRefCallback(ref)) {\n ref(instance);\n } else {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...refs]\n );\n}\n\n/** Used to combine multiple refs for a class component.\n * @internal\n */\nexport function mergeRefs<T>(...refs: ReadonlyArray<React.Ref<T>>) {\n return (instance: T | null) => {\n for (const ref of refs) {\n if (ref) {\n if (isRefCallback(ref)) {\n ref(instance);\n } else {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n }\n }\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useResizeObserver.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,sCA0HnD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,0BAgHrD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,MAAM,GACP,EAAE;IACD,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,CAAC,YAAY,CAAC;CACxD,sEAGA;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,qBA2CA"}
1
+ {"version":3,"file":"useResizeObserver.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useResizeObserver.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,sCAiHnD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,0BAyGrD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,MAAM,GACP,EAAE;IACD,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,CAAC,YAAY,CAAC;CACxD,sEAGA;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,qBAyCA"}
@@ -21,7 +21,6 @@ function useResizeObserver(onResize) {
21
21
  const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active
22
22
  const isMountedRef = React.useRef(false);
23
23
  const owningWindowRef = React.useRef(null);
24
- // istanbul ignore next
25
24
  const resizeObserverCleanup = () => {
26
25
  if (rafRef.current)
27
26
  owningWindowRef.current.cancelAnimationFrame(rafRef.current);
@@ -39,7 +38,6 @@ function useResizeObserver(onResize) {
39
38
  }, []);
40
39
  const processResize = React.useCallback((target) => {
41
40
  const newBounds = target.getBoundingClientRect();
42
- // istanbul ignore else
43
41
  if (isMountedRef.current &&
44
42
  (bounds.current.width !== newBounds.width ||
45
43
  bounds.current.height !== newBounds.height)) {
@@ -48,18 +46,15 @@ function useResizeObserver(onResize) {
48
46
  }
49
47
  }, [onResize]);
50
48
  const handleResize = React.useCallback((entries) => {
51
- // istanbul ignore if
52
49
  if (!isMountedRef.current ||
53
50
  !Array.isArray(entries) ||
54
51
  0 === entries.length) {
55
52
  return;
56
53
  }
57
54
  const target = entries[0].target;
58
- // istanbul ignore next
59
55
  owningWindowRef.current &&
60
56
  owningWindowRef.current.removeEventListener("beforeunload", resizeObserverCleanup);
61
57
  owningWindowRef.current = target.ownerDocument.defaultView;
62
- // istanbul ignore else
63
58
  if (owningWindowRef.current) {
64
59
  owningWindowRef.current.addEventListener("unload", resizeObserverCleanup);
65
60
  // using requestAnimationFrame to stop the "ResizeObserver loop completed with undelivered notifications." and
@@ -77,14 +72,12 @@ function useResizeObserver(onResize) {
77
72
  bounds.current = newBounds;
78
73
  }
79
74
  return () => {
80
- instance &&
81
- /* istanbul ignore next */ resizeObserver.current?.unobserve(instance);
75
+ instance && resizeObserver.current?.unobserve(instance);
82
76
  resizeObserver.current = null;
83
77
  };
84
78
  }, [handleResize, onResize]);
85
79
  const handleRef = React.useCallback((instance) => {
86
80
  const newBounds = instance && instance.getBoundingClientRect();
87
- // istanbul ignore if
88
81
  if (newBounds &&
89
82
  (bounds.current.width !== newBounds.width ||
90
83
  bounds.current.height !== newBounds.height)) {
@@ -109,7 +102,6 @@ function useLayoutResizeObserver(inElement, onResize) {
109
102
  const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active
110
103
  const isMountedRef = React.useRef(false);
111
104
  const owningWindowRef = React.useRef(null);
112
- // istanbul ignore next
113
105
  const resizeObserverCleanup = () => {
114
106
  if (rafRef.current)
115
107
  owningWindowRef.current.cancelAnimationFrame(rafRef.current);
@@ -119,7 +111,6 @@ function useLayoutResizeObserver(inElement, onResize) {
119
111
  React.useEffect(() => {
120
112
  isMountedRef.current = true;
121
113
  setWatchedElement(inElement);
122
- // istanbul ignore next
123
114
  if (inElement) {
124
115
  const newBounds = inElement.getBoundingClientRect();
125
116
  onResize && onResize(newBounds.width, newBounds.height);
@@ -136,7 +127,6 @@ function useLayoutResizeObserver(inElement, onResize) {
136
127
  }, [onResize, inElement]);
137
128
  const processResize = React.useCallback((target) => {
138
129
  const newBounds = target.getBoundingClientRect();
139
- // istanbul ignore next
140
130
  if (isMountedRef.current &&
141
131
  (bounds.width !== newBounds.width || bounds.height !== newBounds.height)) {
142
132
  onResize && onResize(newBounds.width, newBounds.height);
@@ -144,18 +134,15 @@ function useLayoutResizeObserver(inElement, onResize) {
144
134
  }
145
135
  }, [bounds.height, bounds.width, onResize]);
146
136
  const handleResize = React.useCallback((entries) => {
147
- // istanbul ignore next
148
137
  if (!isMountedRef.current ||
149
138
  !Array.isArray(entries) ||
150
139
  0 === entries.length) {
151
140
  return;
152
141
  }
153
142
  const target = entries[0].target;
154
- // istanbul ignore next
155
143
  if (owningWindowRef.current)
156
144
  owningWindowRef.current.removeEventListener("beforeunload", resizeObserverCleanup);
157
145
  owningWindowRef.current = target.ownerDocument.defaultView;
158
- // istanbul ignore else
159
146
  if (owningWindowRef.current) {
160
147
  owningWindowRef.current.addEventListener("unload", resizeObserverCleanup);
161
148
  // using requestAnimationFrame to stop the "ResizeObserver loop completed with undelivered notifications." and
@@ -171,7 +158,6 @@ function useLayoutResizeObserver(inElement, onResize) {
171
158
  resizeObserver.current = new RO(handleResize);
172
159
  resizeObserver.current.observe(watchedElement);
173
160
  return () => {
174
- // istanbul ignore next
175
161
  resizeObserver.current?.disconnect();
176
162
  resizeObserver.current = null;
177
163
  };
@@ -201,7 +187,6 @@ function ResizableContainerObserver({ onResize, children, }) {
201
187
  const hasChildren = React.Children.count(children) !== 0;
202
188
  // if no children are specified then monitor size of parent element.
203
189
  React.useEffect(() => {
204
- // istanbul ignore next
205
190
  if (!isMountedRef.current && containerRef.current) {
206
191
  isMountedRef.current = true;
207
192
  const hasParent = !!containerRef.current.parentElement;
@@ -211,7 +196,6 @@ function ResizableContainerObserver({ onResize, children, }) {
211
196
  }
212
197
  }, [hasChildren]);
213
198
  const processResize = React.useCallback((width, height) => {
214
- // istanbul ignore next
215
199
  onResize(width ?? 0, height ?? 0);
216
200
  }, [onResize]);
217
201
  useLayoutResizeObserver(containerElement, processResize);
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useResizeObserver.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\nimport * as React from \"react\";\nimport { getResizeObserver } from \"./ResizeObserverPolyfill\";\nimport { useRefEffect } from \"./useRefEffect\";\nimport { useRefs } from \"./useRefs\";\n\n/** Uses ResizeObserver API to notify about element bound changes.\n * @internal\n */\nexport function useResizeObserver<T extends Element>(\n onResize?: (width: number, height: number) => void\n) {\n const bounds = React.useRef({ width: 0, height: 0 });\n const resizeObserver = React.useRef<ResizeObserver | null>(null);\n const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active\n const isMountedRef = React.useRef(false);\n const owningWindowRef = React.useRef<any>(null);\n\n // istanbul ignore next\n const resizeObserverCleanup = () => {\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n owningWindowRef.current?.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n };\n }, []);\n\n const processResize = React.useCallback(\n (target: HTMLElement) => {\n const newBounds = target.getBoundingClientRect();\n // istanbul ignore else\n if (\n isMountedRef.current &&\n (bounds.current.width !== newBounds.width ||\n bounds.current.height !== newBounds.height)\n ) {\n bounds.current = newBounds;\n onResize && onResize(newBounds.width, newBounds.height);\n }\n },\n [onResize]\n );\n\n const handleResize = React.useCallback(\n (entries: any[]) => {\n // istanbul ignore if\n if (\n !isMountedRef.current ||\n !Array.isArray(entries) ||\n 0 === entries.length\n ) {\n return;\n }\n const target = entries[0].target as HTMLElement;\n // istanbul ignore next\n owningWindowRef.current &&\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n\n owningWindowRef.current = target.ownerDocument.defaultView;\n // istanbul ignore else\n if (owningWindowRef.current) {\n owningWindowRef.current.addEventListener(\n \"unload\",\n resizeObserverCleanup\n );\n\n // using requestAnimationFrame to stop the \"ResizeObserver loop completed with undelivered notifications.\" and\n // \"ResizeObserver loop limit exceeded\" messages reported to window.onError\n rafRef.current = owningWindowRef.current.requestAnimationFrame(() =>\n processResize(target)\n );\n }\n },\n [processResize]\n );\n\n const observerRef = useRefEffect(\n (instance: T | null) => {\n const RO = getResizeObserver();\n resizeObserver.current = new RO(handleResize);\n if (instance) {\n resizeObserver.current.observe(instance);\n const newBounds = instance.getBoundingClientRect();\n onResize && onResize(newBounds.width, newBounds.height);\n bounds.current = newBounds;\n }\n\n return () => {\n instance &&\n /* istanbul ignore next */ resizeObserver.current?.unobserve(\n instance\n );\n resizeObserver.current = null;\n };\n },\n [handleResize, onResize]\n );\n\n const handleRef = React.useCallback(\n (instance: Element | null) => {\n const newBounds = instance && instance.getBoundingClientRect();\n // istanbul ignore if\n if (\n newBounds &&\n (bounds.current.width !== newBounds.width ||\n bounds.current.height !== newBounds.height)\n ) {\n bounds.current = newBounds;\n onResize && onResize(newBounds.width, newBounds.height);\n }\n },\n [onResize]\n );\n\n const ref = useRefs(handleRef, observerRef);\n return ref;\n}\n\n/** React hook that uses ResizeObserver API to notify about element bound changes. Note: to work similar to ReactResizeDetector\n * width and height are initialized as undefined and only set during after mount if bounds are non-zero. This implementation properly\n * handles observing element in pop-out/child windows.\n * @internal\n */\nexport function useLayoutResizeObserver(\n inElement: HTMLElement | null,\n onResize?: (width?: number, height?: number) => void\n) {\n const inBoundingRect = inElement?.getBoundingClientRect();\n const [bounds, setBounds] = React.useState<{\n width?: number;\n height?: number;\n }>({ width: inBoundingRect?.width, height: inBoundingRect?.height });\n const [watchedElement, setWatchedElement] = React.useState(inElement);\n const resizeObserver = React.useRef<ResizeObserver | null>(null);\n const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active\n const isMountedRef = React.useRef(false);\n const owningWindowRef = React.useRef<any>(null);\n\n // istanbul ignore next\n const resizeObserverCleanup = () => {\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n\n React.useEffect(() => {\n isMountedRef.current = true;\n setWatchedElement(inElement);\n\n // istanbul ignore next\n if (inElement) {\n const newBounds = inElement.getBoundingClientRect();\n onResize && onResize(newBounds.width, newBounds.height);\n setBounds(newBounds);\n }\n\n return () => {\n isMountedRef.current = false;\n rafRef.current &&\n owningWindowRef.current &&\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n owningWindowRef.current &&\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n };\n }, [onResize, inElement]);\n\n const processResize = React.useCallback(\n (target: HTMLElement) => {\n const newBounds = target.getBoundingClientRect();\n // istanbul ignore next\n if (\n isMountedRef.current &&\n (bounds.width !== newBounds.width || bounds.height !== newBounds.height)\n ) {\n onResize && onResize(newBounds.width, newBounds.height);\n setBounds(newBounds);\n }\n },\n [bounds.height, bounds.width, onResize]\n );\n\n const handleResize = React.useCallback(\n (entries: any[]) => {\n // istanbul ignore next\n if (\n !isMountedRef.current ||\n !Array.isArray(entries) ||\n 0 === entries.length\n ) {\n return;\n }\n const target = entries[0].target as HTMLElement;\n // istanbul ignore next\n if (owningWindowRef.current)\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n\n owningWindowRef.current = target.ownerDocument.defaultView;\n // istanbul ignore else\n if (owningWindowRef.current) {\n owningWindowRef.current.addEventListener(\n \"unload\",\n resizeObserverCleanup\n );\n\n // using requestAnimationFrame to stop the \"ResizeObserver loop completed with undelivered notifications.\" and\n // \"ResizeObserver loop limit exceeded\" messages reported to window.onError\n rafRef.current = owningWindowRef.current.requestAnimationFrame(() =>\n processResize(target)\n );\n }\n },\n [processResize]\n );\n\n React.useLayoutEffect(() => {\n if (!watchedElement) {\n return;\n }\n const RO = getResizeObserver();\n resizeObserver.current = new RO(handleResize);\n resizeObserver.current.observe(watchedElement);\n return () => {\n // istanbul ignore next\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n }, [handleResize, watchedElement]);\n\n return [bounds.width, bounds.height];\n}\n\n/** Prop the ElementResizeObserver sends to the render function.\n * @public\n */\nexport interface RenderPropsArgs {\n width?: number;\n height?: number;\n}\n\n/** ElementResizeObserver provides functionality similar to ReactResizeDetector when a render function is specified. This implementation properly handles\n * observing element in pop-out/child windows.\n * @public\n */\nexport function ElementResizeObserver({\n watchedElement,\n render,\n}: {\n watchedElement: HTMLElement | null;\n render: (props: RenderPropsArgs) => React.ReactElement;\n}) {\n const [width, height] = useLayoutResizeObserver(watchedElement);\n return render({ width, height });\n}\n\n/** ResizableContainerObserver is a component that provides the functionality similar to the ReactResizeDetector option that call a function when\n * the observed element is resized. This implementation properly handles observing element in pop-out/child windows. If children nodes are defined then\n * the div added by the component is considered the container whose size will be observed. If no children are provided then the component will report\n * size changes from its parent container.\n * @public\n */\nexport function ResizableContainerObserver({\n onResize,\n children,\n}: {\n onResize: (width: number, height: number) => void;\n children?: React.ReactNode;\n}) {\n const containerRef = React.useRef<HTMLDivElement>(null); // set to non-zero when requestAnimationFrame processing is active\n const [containerElement, setContainerElement] =\n React.useState<HTMLElement | null>(null);\n const isMountedRef = React.useRef(false);\n const hasChildren = React.Children.count(children) !== 0;\n\n // if no children are specified then monitor size of parent element.\n React.useEffect(() => {\n // istanbul ignore next\n if (!isMountedRef.current && containerRef.current) {\n isMountedRef.current = true;\n const hasParent = !!containerRef.current.parentElement;\n setContainerElement(\n hasChildren && hasParent\n ? containerRef.current\n : containerRef.current.parentElement\n );\n }\n }, [hasChildren]);\n\n const processResize = React.useCallback(\n (width?: number, height?: number) => {\n // istanbul ignore next\n onResize(width ?? 0, height ?? 0);\n },\n [onResize]\n );\n\n useLayoutResizeObserver(containerElement, processResize);\n const style: React.CSSProperties = hasChildren\n ? { width: \"100%\", height: \"100%\" }\n : { display: \"none\" };\n\n return (\n <div\n ref={containerRef}\n className=\"uicore-resizable-container\"\n style={style}\n >\n {hasChildren && children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"useResizeObserver.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useResizeObserver.tsx"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG;;GAEG;AACH,+BAA+B;AAC/B,qEAA6D;AAC7D,iDAA8C;AAC9C,uCAAoC;AAEpC;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,QAAkD;IAElD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kEAAkE;IAClG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAM,IAAI,CAAC,CAAC;IAEhD,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,MAAM,CAAC,OAAO;YAChB,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE/D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QACrC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,IAAI,MAAM,CAAC,OAAO;gBAChB,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/D,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAC1C,cAAc,EACd,qBAAqB,CACtB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,MAAmB,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjD,IACE,YAAY,CAAC,OAAO;YACpB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;gBACvC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,EAC7C,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,OAAc,EAAE,EAAE;QACjB,IACE,CAAC,YAAY,CAAC,OAAO;YACrB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,CAAC,KAAK,OAAO,CAAC,MAAM,EACpB,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAqB,CAAC;QAChD,eAAe,CAAC,OAAO;YACrB,eAAe,CAAC,OAAO,CAAC,mBAAmB,CACzC,cAAc,EACd,qBAAqB,CACtB,CAAC;QAEJ,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3D,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,CAAC,gBAAgB,CACtC,QAAQ,EACR,qBAAqB,CACtB,CAAC;YAEF,8GAA8G;YAC9G,2EAA2E;YAC3E,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAClE,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;QACJ,CAAC;IACH,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,2BAAY,EAC9B,CAAC,QAAkB,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,IAAA,0CAAiB,GAAE,CAAC;QAC/B,cAAc,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACnD,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,IAAI,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,QAAwB,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC/D,IACE,SAAS;YACT,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;gBACvC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,EAC7C,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,GAAG,GAAG,IAAA,iBAAO,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAlHD,8CAkHC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,SAA6B,EAC7B,QAAoD;IAEpD,MAAM,cAAc,GAAG,SAAS,EAAE,qBAAqB,EAAE,CAAC;IAC1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAGvC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kEAAkE;IAClG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAM,IAAI,CAAC,CAAC;IAEhD,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,MAAM,CAAC,OAAO;YAChB,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE/D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QACrC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACpD,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,SAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,MAAM,CAAC,OAAO;gBACZ,eAAe,CAAC,OAAO;gBACvB,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/D,eAAe,CAAC,OAAO;gBACrB,eAAe,CAAC,OAAO,CAAC,mBAAmB,CACzC,cAAc,EACd,qBAAqB,CACtB,CAAC;QACN,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,MAAmB,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjD,IACE,YAAY,CAAC,OAAO;YACpB,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,EACxE,CAAC;YACD,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,SAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CACxC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,OAAc,EAAE,EAAE;QACjB,IACE,CAAC,YAAY,CAAC,OAAO;YACrB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,CAAC,KAAK,OAAO,CAAC,MAAM,EACpB,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAqB,CAAC;QAChD,IAAI,eAAe,CAAC,OAAO;YACzB,eAAe,CAAC,OAAO,CAAC,mBAAmB,CACzC,cAAc,EACd,qBAAqB,CACtB,CAAC;QAEJ,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3D,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,CAAC,gBAAgB,CACtC,QAAQ,EACR,qBAAqB,CACtB,CAAC;YAEF,8GAA8G;YAC9G,2EAA2E;YAC3E,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAClE,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;QACJ,CAAC;IACH,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,IAAA,0CAAiB,GAAE,CAAC;QAC/B,cAAc,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;QAC9C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YACrC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AA3GD,0DA2GC;AAUD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,MAAM,GAIP;IACC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AATD,sDASC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,QAAQ,GAIT;IACC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC,CAAC,kEAAkE;IAC3H,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAC3C,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,oEAAoE;IACpE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAClD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;YACvD,mBAAmB,CACjB,WAAW,IAAI,SAAS;gBACtB,CAAC,CAAC,YAAY,CAAC,OAAO;gBACtB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,KAAc,EAAE,MAAe,EAAE,EAAE;QAClC,QAAQ,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,uBAAuB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,KAAK,GAAwB,WAAW;QAC5C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QACnC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAExB,OAAO,CACL,6BACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,KAAK,IAEX,WAAW,IAAI,QAAQ,CACpB,CACP,CAAC;AACJ,CAAC;AA/CD,gEA+CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\nimport * as React from \"react\";\nimport { getResizeObserver } from \"./ResizeObserverPolyfill\";\nimport { useRefEffect } from \"./useRefEffect\";\nimport { useRefs } from \"./useRefs\";\n\n/** Uses ResizeObserver API to notify about element bound changes.\n * @internal\n */\nexport function useResizeObserver<T extends Element>(\n onResize?: (width: number, height: number) => void\n) {\n const bounds = React.useRef({ width: 0, height: 0 });\n const resizeObserver = React.useRef<ResizeObserver | null>(null);\n const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active\n const isMountedRef = React.useRef(false);\n const owningWindowRef = React.useRef<any>(null);\n\n const resizeObserverCleanup = () => {\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n owningWindowRef.current?.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n };\n }, []);\n\n const processResize = React.useCallback(\n (target: HTMLElement) => {\n const newBounds = target.getBoundingClientRect();\n if (\n isMountedRef.current &&\n (bounds.current.width !== newBounds.width ||\n bounds.current.height !== newBounds.height)\n ) {\n bounds.current = newBounds;\n onResize && onResize(newBounds.width, newBounds.height);\n }\n },\n [onResize]\n );\n\n const handleResize = React.useCallback(\n (entries: any[]) => {\n if (\n !isMountedRef.current ||\n !Array.isArray(entries) ||\n 0 === entries.length\n ) {\n return;\n }\n const target = entries[0].target as HTMLElement;\n owningWindowRef.current &&\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n\n owningWindowRef.current = target.ownerDocument.defaultView;\n if (owningWindowRef.current) {\n owningWindowRef.current.addEventListener(\n \"unload\",\n resizeObserverCleanup\n );\n\n // using requestAnimationFrame to stop the \"ResizeObserver loop completed with undelivered notifications.\" and\n // \"ResizeObserver loop limit exceeded\" messages reported to window.onError\n rafRef.current = owningWindowRef.current.requestAnimationFrame(() =>\n processResize(target)\n );\n }\n },\n [processResize]\n );\n\n const observerRef = useRefEffect(\n (instance: T | null) => {\n const RO = getResizeObserver();\n resizeObserver.current = new RO(handleResize);\n if (instance) {\n resizeObserver.current.observe(instance);\n const newBounds = instance.getBoundingClientRect();\n onResize && onResize(newBounds.width, newBounds.height);\n bounds.current = newBounds;\n }\n\n return () => {\n instance && resizeObserver.current?.unobserve(instance);\n resizeObserver.current = null;\n };\n },\n [handleResize, onResize]\n );\n\n const handleRef = React.useCallback(\n (instance: Element | null) => {\n const newBounds = instance && instance.getBoundingClientRect();\n if (\n newBounds &&\n (bounds.current.width !== newBounds.width ||\n bounds.current.height !== newBounds.height)\n ) {\n bounds.current = newBounds;\n onResize && onResize(newBounds.width, newBounds.height);\n }\n },\n [onResize]\n );\n\n const ref = useRefs(handleRef, observerRef);\n return ref;\n}\n\n/** React hook that uses ResizeObserver API to notify about element bound changes. Note: to work similar to ReactResizeDetector\n * width and height are initialized as undefined and only set during after mount if bounds are non-zero. This implementation properly\n * handles observing element in pop-out/child windows.\n * @internal\n */\nexport function useLayoutResizeObserver(\n inElement: HTMLElement | null,\n onResize?: (width?: number, height?: number) => void\n) {\n const inBoundingRect = inElement?.getBoundingClientRect();\n const [bounds, setBounds] = React.useState<{\n width?: number;\n height?: number;\n }>({ width: inBoundingRect?.width, height: inBoundingRect?.height });\n const [watchedElement, setWatchedElement] = React.useState(inElement);\n const resizeObserver = React.useRef<ResizeObserver | null>(null);\n const rafRef = React.useRef(0); // set to non-zero when requestAnimationFrame processing is active\n const isMountedRef = React.useRef(false);\n const owningWindowRef = React.useRef<any>(null);\n\n const resizeObserverCleanup = () => {\n if (rafRef.current)\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n\n React.useEffect(() => {\n isMountedRef.current = true;\n setWatchedElement(inElement);\n\n if (inElement) {\n const newBounds = inElement.getBoundingClientRect();\n onResize && onResize(newBounds.width, newBounds.height);\n setBounds(newBounds);\n }\n\n return () => {\n isMountedRef.current = false;\n rafRef.current &&\n owningWindowRef.current &&\n owningWindowRef.current.cancelAnimationFrame(rafRef.current);\n owningWindowRef.current &&\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n };\n }, [onResize, inElement]);\n\n const processResize = React.useCallback(\n (target: HTMLElement) => {\n const newBounds = target.getBoundingClientRect();\n if (\n isMountedRef.current &&\n (bounds.width !== newBounds.width || bounds.height !== newBounds.height)\n ) {\n onResize && onResize(newBounds.width, newBounds.height);\n setBounds(newBounds);\n }\n },\n [bounds.height, bounds.width, onResize]\n );\n\n const handleResize = React.useCallback(\n (entries: any[]) => {\n if (\n !isMountedRef.current ||\n !Array.isArray(entries) ||\n 0 === entries.length\n ) {\n return;\n }\n const target = entries[0].target as HTMLElement;\n if (owningWindowRef.current)\n owningWindowRef.current.removeEventListener(\n \"beforeunload\",\n resizeObserverCleanup\n );\n\n owningWindowRef.current = target.ownerDocument.defaultView;\n if (owningWindowRef.current) {\n owningWindowRef.current.addEventListener(\n \"unload\",\n resizeObserverCleanup\n );\n\n // using requestAnimationFrame to stop the \"ResizeObserver loop completed with undelivered notifications.\" and\n // \"ResizeObserver loop limit exceeded\" messages reported to window.onError\n rafRef.current = owningWindowRef.current.requestAnimationFrame(() =>\n processResize(target)\n );\n }\n },\n [processResize]\n );\n\n React.useLayoutEffect(() => {\n if (!watchedElement) {\n return;\n }\n const RO = getResizeObserver();\n resizeObserver.current = new RO(handleResize);\n resizeObserver.current.observe(watchedElement);\n return () => {\n resizeObserver.current?.disconnect();\n resizeObserver.current = null;\n };\n }, [handleResize, watchedElement]);\n\n return [bounds.width, bounds.height];\n}\n\n/** Prop the ElementResizeObserver sends to the render function.\n * @public\n */\nexport interface RenderPropsArgs {\n width?: number;\n height?: number;\n}\n\n/** ElementResizeObserver provides functionality similar to ReactResizeDetector when a render function is specified. This implementation properly handles\n * observing element in pop-out/child windows.\n * @public\n */\nexport function ElementResizeObserver({\n watchedElement,\n render,\n}: {\n watchedElement: HTMLElement | null;\n render: (props: RenderPropsArgs) => React.ReactElement;\n}) {\n const [width, height] = useLayoutResizeObserver(watchedElement);\n return render({ width, height });\n}\n\n/** ResizableContainerObserver is a component that provides the functionality similar to the ReactResizeDetector option that call a function when\n * the observed element is resized. This implementation properly handles observing element in pop-out/child windows. If children nodes are defined then\n * the div added by the component is considered the container whose size will be observed. If no children are provided then the component will report\n * size changes from its parent container.\n * @public\n */\nexport function ResizableContainerObserver({\n onResize,\n children,\n}: {\n onResize: (width: number, height: number) => void;\n children?: React.ReactNode;\n}) {\n const containerRef = React.useRef<HTMLDivElement>(null); // set to non-zero when requestAnimationFrame processing is active\n const [containerElement, setContainerElement] =\n React.useState<HTMLElement | null>(null);\n const isMountedRef = React.useRef(false);\n const hasChildren = React.Children.count(children) !== 0;\n\n // if no children are specified then monitor size of parent element.\n React.useEffect(() => {\n if (!isMountedRef.current && containerRef.current) {\n isMountedRef.current = true;\n const hasParent = !!containerRef.current.parentElement;\n setContainerElement(\n hasChildren && hasParent\n ? containerRef.current\n : containerRef.current.parentElement\n );\n }\n }, [hasChildren]);\n\n const processResize = React.useCallback(\n (width?: number, height?: number) => {\n onResize(width ?? 0, height ?? 0);\n },\n [onResize]\n );\n\n useLayoutResizeObserver(containerElement, processResize);\n const style: React.CSSProperties = hasChildren\n ? { width: \"100%\", height: \"100%\" }\n : { display: \"none\" };\n\n return (\n <div\n ref={containerRef}\n className=\"uicore-resizable-container\"\n style={style}\n >\n {hasChildren && children}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useWidgetOpacityContext.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useWidgetOpacityContext.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0CAM7B,CAAC;AAEL;;GAEG;AACH,wBAAgB,uBAAuB,8BAEtC"}
1
+ {"version":3,"file":"useWidgetOpacityContext.d.ts","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useWidgetOpacityContext.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0CAI7B,CAAC;AAEL;;GAEG;AACH,wBAAgB,uBAAuB,8BAEtC"}
@@ -14,7 +14,7 @@ const React = require("react");
14
14
  * @internal
15
15
  */
16
16
  exports.WidgetOpacityContext = React.createContext({
17
- onElementRef: /* istanbul ignore next */ (_elementRef) => void {},
17
+ onElementRef: (_elementRef) => void {},
18
18
  proximityScale: 1.0,
19
19
  });
20
20
  /** Hook for using [[WidgetOpacityContext]]
@@ -1 +1 @@
1
- {"version":3,"file":"useWidgetOpacityContext.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useWidgetOpacityContext.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAU/B;;;GAGG;AACU,QAAA,oBAAoB,GAC/B,KAAK,CAAC,aAAa,CAA4B;IAC7C,YAAY,EAAE,0BAA0B,CAAC,CACvC,WAAqC,EACrC,EAAE,CAAC,KAAK,EAAE;IACZ,cAAc,EAAE,GAAG;CACpB,CAAC,CAAC;AAEL;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,4BAAoB,CAAC,CAAC;AAChD,CAAC;AAFD,0DAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\n\n/** Properties for [[WidgetOpacityContext]]\n * @internal\n */\nexport interface WidgetOpacityContextProps {\n readonly onElementRef: (elementRef: React.RefObject<Element>) => void;\n readonly proximityScale: number;\n}\n\n/**\n * Context used by Widgets and child components to process opacity changes based on mouse proximity.\n * @internal\n */\nexport const WidgetOpacityContext =\n React.createContext<WidgetOpacityContextProps>({\n onElementRef: /* istanbul ignore next */ (\n _elementRef: React.RefObject<Element>\n ) => void {},\n proximityScale: 1.0,\n });\n\n/** Hook for using [[WidgetOpacityContext]]\n * @internal\n */\nexport function useWidgetOpacityContext() {\n return React.useContext(WidgetOpacityContext);\n}\n"]}
1
+ {"version":3,"file":"useWidgetOpacityContext.js","sourceRoot":"","sources":["../../../../../src/core-react/utils/hooks/useWidgetOpacityContext.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA+B;AAU/B;;;GAGG;AACU,QAAA,oBAAoB,GAC/B,KAAK,CAAC,aAAa,CAA4B;IAC7C,YAAY,EAAE,CAAC,WAAqC,EAAE,EAAE,CAAC,KAAK,EAAE;IAChE,cAAc,EAAE,GAAG;CACpB,CAAC,CAAC;AAEL;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,4BAAoB,CAAC,CAAC;AAChD,CAAC;AAFD,0DAEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\n\n/** Properties for [[WidgetOpacityContext]]\n * @internal\n */\nexport interface WidgetOpacityContextProps {\n readonly onElementRef: (elementRef: React.RefObject<Element>) => void;\n readonly proximityScale: number;\n}\n\n/**\n * Context used by Widgets and child components to process opacity changes based on mouse proximity.\n * @internal\n */\nexport const WidgetOpacityContext =\n React.createContext<WidgetOpacityContextProps>({\n onElementRef: (_elementRef: React.RefObject<Element>) => void {},\n proximityScale: 1.0,\n });\n\n/** Hook for using [[WidgetOpacityContext]]\n * @internal\n */\nexport function useWidgetOpacityContext() {\n return React.useContext(WidgetOpacityContext);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoSuggest.d.ts","sourceRoot":"","sources":["../../../../src/core-react/autosuggest/AutoSuggest.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoSuggest.d.ts","sourceRoot":"","sources":["../../../../src/core-react/autosuggest/AutoSuggest.tsx"],"names":[],"mappings":"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"}
@@ -30,7 +30,6 @@ export class AutoSuggest extends React.PureComponent {
30
30
  });
31
31
  };
32
32
  this._onFocus = (e) => {
33
- // istanbul ignore else
34
33
  if (this.props.onInputFocus)
35
34
  this.props.onInputFocus(e);
36
35
  };
@@ -63,7 +62,7 @@ export class AutoSuggest extends React.PureComponent {
63
62
  const inputValue = value.trim().toLowerCase();
64
63
  const inputLength = inputValue.length;
65
64
  return Promise.resolve(inputLength === 0
66
- ? /* istanbul ignore next */ []
65
+ ? []
67
66
  : this.props.options.filter((data) => {
68
67
  return (data.label.toLowerCase().includes(inputValue) ||
69
68
  data.value.toLowerCase().includes(inputValue));
@@ -76,17 +75,14 @@ export class AutoSuggest extends React.PureComponent {
76
75
  this._handleKeyDown = (e) => {
77
76
  switch (e.key) {
78
77
  case Key.Enter.valueOf():
79
- // istanbul ignore else
80
78
  if (this.props.onPressEnter)
81
79
  this.props.onPressEnter(e);
82
80
  break;
83
81
  case Key.Escape.valueOf():
84
- // istanbul ignore else
85
82
  if (this.props.onPressEscape)
86
83
  this.props.onPressEscape(e);
87
84
  break;
88
85
  case Key.Tab.valueOf():
89
- // istanbul ignore else
90
86
  if (this.props.onPressTab)
91
87
  this.props.onPressTab(e);
92
88
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoSuggest.js","sourceRoot":"","sources":["../../../../src/core-react/autosuggest/AutoSuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AutoSuggest\n */\n\nimport \"./AutoSuggest.scss\";\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport ReactAutosuggest from \"react-autosuggest\";\nimport { Key } from \"ts-key-enum\";\nimport type { CommonProps } from \"../utils/Props\";\nimport { UiCore } from \"../UiCore\";\n\n/** Data for the [[AutoSuggest]] options\n * @public\n */\nexport interface AutoSuggestData {\n /** Value of [[AutoSuggest]] option. */\n value: string;\n /** Label of [[AutoSuggest]] option. This is shown in the dropdown. */\n label: string;\n}\n\n/** Prototype for function returning AutoSuggestData\n * @public\n */\nexport type GetAutoSuggestDataFunc = (value: string) => AutoSuggestData[];\n\n/** Prototype for async function returning AutoSuggestData\n * @public\n */\nexport type AsyncGetAutoSuggestDataFunc = (\n value: string\n) => Promise<AutoSuggestData[]>;\n\n/** Properties for the [[AutoSuggest]] component.\n * @public\n */\nexport interface AutoSuggestProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n CommonProps {\n /** Optional input value override. */\n value?: string;\n /** Options for dropdown. */\n options?: AutoSuggestData[] | GetAutoSuggestDataFunc;\n /** Asynchronously calculate suggestions for any given input value. */\n getSuggestions?: AsyncGetAutoSuggestDataFunc;\n /** Gets a label associated with a given value */\n getLabel?: (value: string | undefined) => string;\n /** Handler for when suggested selected. */\n onSuggestionSelected: (selected: AutoSuggestData) => void;\n /** Handler for Enter key. */\n onPressEnter?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for Escape key. */\n onPressEscape?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for Tab key. */\n onPressTab?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for input receiving focus. */\n onInputFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n /** Called every time you need to clear suggestions. */\n onSuggestionsClearRequested?: () => void;\n /** Indicates whether to set focus to the input element */\n setFocus?: boolean;\n\n /** Use it only if you need to customize the rendering of the input.\n * @internal\n */\n renderInputComponent?: any; // ReactAutosuggest.RenderInputComponent<AutoSuggestData>; NOTE: changed to \"any\" because build was failing with RenderInputComponent is not generic?\n /** Use it if you want to customize things inside the suggestions container beyond rendering the suggestions themselves.\n * @internal\n */\n renderSuggestionsContainer?: ReactAutosuggest.RenderSuggestionsContainer;\n\n /** @internal */\n alwaysRenderSuggestions?: boolean;\n}\n\n/** @internal */\ninterface AutoSuggestState {\n inputValue: string;\n suggestions: AutoSuggestData[];\n}\n\n/** Auto Suggest React component. Uses the react-autosuggest component internally.\n * @public\n */\nexport class AutoSuggest extends React.PureComponent<\n AutoSuggestProps,\n AutoSuggestState\n> {\n private _isMounted = false;\n\n constructor(props: AutoSuggestProps) {\n super(props);\n\n // Autosuggest is a controlled component.\n // This means that you need to provide an input value\n // and an onChange handler that updates this value (see below).\n // Suggestions also need to be provided to the Autosuggest,\n // and they are initially empty because the Autosuggest is closed.\n this.state = {\n inputValue: this.getLabel(props.value),\n suggestions: [],\n };\n }\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n public override componentDidUpdate(prevProps: AutoSuggestProps) {\n if (\n this.props.value !== prevProps.value ||\n this.props.options !== prevProps.options\n ) {\n this.setState((_prevState, props) => ({\n inputValue: this.getLabel(props.value),\n }));\n }\n }\n\n private _onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = \"\";\n\n if (e.target.tagName === \"LI\" && e.target.textContent)\n newValue = e.target.textContent;\n else if (e.target.value) newValue = e.target.value;\n\n this.setState({\n inputValue: newValue,\n });\n };\n\n private _onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n // istanbul ignore else\n if (this.props.onInputFocus) this.props.onInputFocus(e);\n };\n\n /** Autosuggest will call this function every time you need to update suggestions. */\n private _onSuggestionsFetchRequested = async (\n request: ReactAutosuggest.SuggestionsFetchRequestedParams\n ): Promise<void> => {\n const value = request.value;\n const suggestions = await this._getSuggestions(value);\n\n if (this._isMounted) this.setState({ suggestions });\n };\n\n /** Autosuggest will call this function every time you need to clear suggestions. */\n private _onSuggestionsClearRequested = () => {\n this.setState({ suggestions: [] });\n this.props.onSuggestionsClearRequested &&\n this.props.onSuggestionsClearRequested();\n };\n\n private _onSuggestionSelected = (\n _event: React.FormEvent<any>,\n data: ReactAutosuggest.SuggestionSelectedEventData<AutoSuggestData>\n ): void => {\n this.props.onSuggestionSelected(data.suggestion);\n };\n\n /** Teach Autosuggest how to calculate suggestions for any given input value. */\n private _getSuggestions = async (\n value: string\n ): Promise<AutoSuggestData[]> => {\n if (typeof this.props.options === \"function\")\n return Promise.resolve(this.props.options(value));\n\n if (this.props.getSuggestions) return this.props.getSuggestions(value);\n\n if (this.props.options === undefined) {\n Logger.logError(\n UiCore.loggerCategory(this),\n `props.options or props.getSuggestions should be provided`\n );\n return Promise.resolve([]);\n }\n\n const inputValue = value.trim().toLowerCase();\n const inputLength = inputValue.length;\n\n return Promise.resolve(\n inputLength === 0\n ? /* istanbul ignore next */ []\n : this.props.options.filter((data: AutoSuggestData) => {\n return (\n data.label.toLowerCase().includes(inputValue) ||\n data.value.toLowerCase().includes(inputValue)\n );\n })\n );\n };\n\n /** When suggestion is clicked, Autosuggest needs to populate the input based on the clicked suggestion. */\n private _getSuggestionValue = (suggestion: AutoSuggestData) =>\n suggestion.label;\n\n /** Render each suggestion. */\n private _renderSuggestion = (suggestion: AutoSuggestData) => (\n <span>{suggestion.label}</span>\n );\n\n private getLabel(value: string | undefined): string {\n let label = \"\";\n\n if (this.props.getLabel) {\n label = this.props.getLabel(value);\n } else if (this.props.options instanceof Array) {\n const entry = this.props.options.find(\n (data: AutoSuggestData) => data.value === value\n );\n if (entry) label = entry.label;\n } else {\n Logger.logError(\n UiCore.loggerCategory(this),\n `props.getLabel should be provided when props.options is a function`\n );\n }\n\n return label;\n }\n\n private _handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case Key.Enter.valueOf():\n // istanbul ignore else\n if (this.props.onPressEnter) this.props.onPressEnter(e);\n break;\n case Key.Escape.valueOf():\n // istanbul ignore else\n if (this.props.onPressEscape) this.props.onPressEscape(e);\n break;\n case Key.Tab.valueOf():\n // istanbul ignore else\n if (this.props.onPressTab) this.props.onPressTab(e);\n break;\n }\n };\n\n private _theme = {\n container: \"uicore-autosuggest__container\",\n containerOpen: \"uicore-autosuggest__container--open\",\n input: \"uicore-autosuggest__input\",\n inputOpen: \"uicore-autosuggest__input--open\",\n inputFocused: \"uicore-autosuggest__input--focused\",\n suggestionsContainer: \"uicore-autosuggest__suggestions-container\",\n suggestionsContainerOpen: \"uicore-autosuggest__suggestions-container--open\",\n suggestionsList: \"uicore-autosuggest__suggestions-list\",\n suggestion: \"uicore-autosuggest__suggestion\",\n suggestionFirst: \"uicore-autosuggest__suggestion--first\",\n suggestionHighlighted: \"uicore-autosuggest__suggestion--highlighted\",\n sectionContainer: \"uicore-autosuggest__section-container\",\n sectionContainerFirst: \"uicore-autosuggest__section-container--first\",\n sectionTitle: \"uicore-autosuggest__section-title\",\n };\n\n public override render(): React.ReactElement {\n const { inputValue, suggestions } = this.state;\n const {\n value,\n onChange,\n placeholder,\n options,\n onSuggestionSelected,\n setFocus,\n alwaysRenderSuggestions,\n onPressEnter,\n onPressEscape,\n onPressTab,\n onInputFocus,\n getLabel,\n getSuggestions,\n renderInputComponent,\n renderSuggestionsContainer,\n onSuggestionsClearRequested,\n ...props\n } = this.props;\n const inputPlaceholder = !inputValue ? placeholder : undefined;\n\n const inputProps: ReactAutosuggest.InputProps<AutoSuggestData> = {\n ...props,\n value: inputValue,\n onChange: this._onChange,\n onFocus: this._onFocus,\n placeholder: inputPlaceholder,\n autoFocus: setFocus,\n };\n\n const defaultRenderInputComponent: React.ComponentProps<\n typeof ReactAutosuggest\n >[\"renderInputComponent\"] = (renderInputProps) => {\n const { size, ...other } = renderInputProps;\n return <Input {...other} />;\n };\n return (\n // The onKeyDown event handler is only being used to capture bubbled events\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={this.props.className}\n style={this.props.style}\n onKeyDown={this._handleKeyDown}\n >\n <ReactAutosuggest\n theme={this._theme}\n suggestions={suggestions}\n onSuggestionsFetchRequested={this._onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this._onSuggestionsClearRequested}\n getSuggestionValue={this._getSuggestionValue}\n renderSuggestion={this._renderSuggestion}\n inputProps={inputProps}\n onSuggestionSelected={this._onSuggestionSelected}\n alwaysRenderSuggestions={alwaysRenderSuggestions}\n renderInputComponent={\n renderInputComponent || defaultRenderInputComponent\n }\n renderSuggestionsContainer={renderSuggestionsContainer}\n />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"AutoSuggest.js","sourceRoot":"","sources":["../../../../src/core-react/autosuggest/AutoSuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AutoSuggest\n */\n\nimport \"./AutoSuggest.scss\";\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport ReactAutosuggest from \"react-autosuggest\";\nimport { Key } from \"ts-key-enum\";\nimport type { CommonProps } from \"../utils/Props\";\nimport { UiCore } from \"../UiCore\";\n\n/** Data for the [[AutoSuggest]] options\n * @public\n */\nexport interface AutoSuggestData {\n /** Value of [[AutoSuggest]] option. */\n value: string;\n /** Label of [[AutoSuggest]] option. This is shown in the dropdown. */\n label: string;\n}\n\n/** Prototype for function returning AutoSuggestData\n * @public\n */\nexport type GetAutoSuggestDataFunc = (value: string) => AutoSuggestData[];\n\n/** Prototype for async function returning AutoSuggestData\n * @public\n */\nexport type AsyncGetAutoSuggestDataFunc = (\n value: string\n) => Promise<AutoSuggestData[]>;\n\n/** Properties for the [[AutoSuggest]] component.\n * @public\n */\nexport interface AutoSuggestProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n CommonProps {\n /** Optional input value override. */\n value?: string;\n /** Options for dropdown. */\n options?: AutoSuggestData[] | GetAutoSuggestDataFunc;\n /** Asynchronously calculate suggestions for any given input value. */\n getSuggestions?: AsyncGetAutoSuggestDataFunc;\n /** Gets a label associated with a given value */\n getLabel?: (value: string | undefined) => string;\n /** Handler for when suggested selected. */\n onSuggestionSelected: (selected: AutoSuggestData) => void;\n /** Handler for Enter key. */\n onPressEnter?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for Escape key. */\n onPressEscape?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for Tab key. */\n onPressTab?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Handler for input receiving focus. */\n onInputFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n /** Called every time you need to clear suggestions. */\n onSuggestionsClearRequested?: () => void;\n /** Indicates whether to set focus to the input element */\n setFocus?: boolean;\n\n /** Use it only if you need to customize the rendering of the input.\n * @internal\n */\n renderInputComponent?: any; // ReactAutosuggest.RenderInputComponent<AutoSuggestData>; NOTE: changed to \"any\" because build was failing with RenderInputComponent is not generic?\n /** Use it if you want to customize things inside the suggestions container beyond rendering the suggestions themselves.\n * @internal\n */\n renderSuggestionsContainer?: ReactAutosuggest.RenderSuggestionsContainer;\n\n /** @internal */\n alwaysRenderSuggestions?: boolean;\n}\n\n/** @internal */\ninterface AutoSuggestState {\n inputValue: string;\n suggestions: AutoSuggestData[];\n}\n\n/** Auto Suggest React component. Uses the react-autosuggest component internally.\n * @public\n */\nexport class AutoSuggest extends React.PureComponent<\n AutoSuggestProps,\n AutoSuggestState\n> {\n private _isMounted = false;\n\n constructor(props: AutoSuggestProps) {\n super(props);\n\n // Autosuggest is a controlled component.\n // This means that you need to provide an input value\n // and an onChange handler that updates this value (see below).\n // Suggestions also need to be provided to the Autosuggest,\n // and they are initially empty because the Autosuggest is closed.\n this.state = {\n inputValue: this.getLabel(props.value),\n suggestions: [],\n };\n }\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n public override componentDidUpdate(prevProps: AutoSuggestProps) {\n if (\n this.props.value !== prevProps.value ||\n this.props.options !== prevProps.options\n ) {\n this.setState((_prevState, props) => ({\n inputValue: this.getLabel(props.value),\n }));\n }\n }\n\n private _onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = \"\";\n\n if (e.target.tagName === \"LI\" && e.target.textContent)\n newValue = e.target.textContent;\n else if (e.target.value) newValue = e.target.value;\n\n this.setState({\n inputValue: newValue,\n });\n };\n\n private _onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onInputFocus) this.props.onInputFocus(e);\n };\n\n /** Autosuggest will call this function every time you need to update suggestions. */\n private _onSuggestionsFetchRequested = async (\n request: ReactAutosuggest.SuggestionsFetchRequestedParams\n ): Promise<void> => {\n const value = request.value;\n const suggestions = await this._getSuggestions(value);\n\n if (this._isMounted) this.setState({ suggestions });\n };\n\n /** Autosuggest will call this function every time you need to clear suggestions. */\n private _onSuggestionsClearRequested = () => {\n this.setState({ suggestions: [] });\n this.props.onSuggestionsClearRequested &&\n this.props.onSuggestionsClearRequested();\n };\n\n private _onSuggestionSelected = (\n _event: React.FormEvent<any>,\n data: ReactAutosuggest.SuggestionSelectedEventData<AutoSuggestData>\n ): void => {\n this.props.onSuggestionSelected(data.suggestion);\n };\n\n /** Teach Autosuggest how to calculate suggestions for any given input value. */\n private _getSuggestions = async (\n value: string\n ): Promise<AutoSuggestData[]> => {\n if (typeof this.props.options === \"function\")\n return Promise.resolve(this.props.options(value));\n\n if (this.props.getSuggestions) return this.props.getSuggestions(value);\n\n if (this.props.options === undefined) {\n Logger.logError(\n UiCore.loggerCategory(this),\n `props.options or props.getSuggestions should be provided`\n );\n return Promise.resolve([]);\n }\n\n const inputValue = value.trim().toLowerCase();\n const inputLength = inputValue.length;\n\n return Promise.resolve(\n inputLength === 0\n ? []\n : this.props.options.filter((data: AutoSuggestData) => {\n return (\n data.label.toLowerCase().includes(inputValue) ||\n data.value.toLowerCase().includes(inputValue)\n );\n })\n );\n };\n\n /** When suggestion is clicked, Autosuggest needs to populate the input based on the clicked suggestion. */\n private _getSuggestionValue = (suggestion: AutoSuggestData) =>\n suggestion.label;\n\n /** Render each suggestion. */\n private _renderSuggestion = (suggestion: AutoSuggestData) => (\n <span>{suggestion.label}</span>\n );\n\n private getLabel(value: string | undefined): string {\n let label = \"\";\n\n if (this.props.getLabel) {\n label = this.props.getLabel(value);\n } else if (this.props.options instanceof Array) {\n const entry = this.props.options.find(\n (data: AutoSuggestData) => data.value === value\n );\n if (entry) label = entry.label;\n } else {\n Logger.logError(\n UiCore.loggerCategory(this),\n `props.getLabel should be provided when props.options is a function`\n );\n }\n\n return label;\n }\n\n private _handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case Key.Enter.valueOf():\n if (this.props.onPressEnter) this.props.onPressEnter(e);\n break;\n case Key.Escape.valueOf():\n if (this.props.onPressEscape) this.props.onPressEscape(e);\n break;\n case Key.Tab.valueOf():\n if (this.props.onPressTab) this.props.onPressTab(e);\n break;\n }\n };\n\n private _theme = {\n container: \"uicore-autosuggest__container\",\n containerOpen: \"uicore-autosuggest__container--open\",\n input: \"uicore-autosuggest__input\",\n inputOpen: \"uicore-autosuggest__input--open\",\n inputFocused: \"uicore-autosuggest__input--focused\",\n suggestionsContainer: \"uicore-autosuggest__suggestions-container\",\n suggestionsContainerOpen: \"uicore-autosuggest__suggestions-container--open\",\n suggestionsList: \"uicore-autosuggest__suggestions-list\",\n suggestion: \"uicore-autosuggest__suggestion\",\n suggestionFirst: \"uicore-autosuggest__suggestion--first\",\n suggestionHighlighted: \"uicore-autosuggest__suggestion--highlighted\",\n sectionContainer: \"uicore-autosuggest__section-container\",\n sectionContainerFirst: \"uicore-autosuggest__section-container--first\",\n sectionTitle: \"uicore-autosuggest__section-title\",\n };\n\n public override render(): React.ReactElement {\n const { inputValue, suggestions } = this.state;\n const {\n value,\n onChange,\n placeholder,\n options,\n onSuggestionSelected,\n setFocus,\n alwaysRenderSuggestions,\n onPressEnter,\n onPressEscape,\n onPressTab,\n onInputFocus,\n getLabel,\n getSuggestions,\n renderInputComponent,\n renderSuggestionsContainer,\n onSuggestionsClearRequested,\n ...props\n } = this.props;\n const inputPlaceholder = !inputValue ? placeholder : undefined;\n\n const inputProps: ReactAutosuggest.InputProps<AutoSuggestData> = {\n ...props,\n value: inputValue,\n onChange: this._onChange,\n onFocus: this._onFocus,\n placeholder: inputPlaceholder,\n autoFocus: setFocus,\n };\n\n const defaultRenderInputComponent: React.ComponentProps<\n typeof ReactAutosuggest\n >[\"renderInputComponent\"] = (renderInputProps) => {\n const { size, ...other } = renderInputProps;\n return <Input {...other} />;\n };\n return (\n // The onKeyDown event handler is only being used to capture bubbled events\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={this.props.className}\n style={this.props.style}\n onKeyDown={this._handleKeyDown}\n >\n <ReactAutosuggest\n theme={this._theme}\n suggestions={suggestions}\n onSuggestionsFetchRequested={this._onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this._onSuggestionsClearRequested}\n getSuggestionValue={this._getSuggestionValue}\n renderSuggestion={this._renderSuggestion}\n inputProps={inputProps}\n onSuggestionSelected={this._onSuggestionSelected}\n alwaysRenderSuggestions={alwaysRenderSuggestions}\n renderInputComponent={\n renderInputComponent || defaultRenderInputComponent\n }\n renderSuggestionsContainer={renderSuggestionsContainer}\n />\n </div>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/contextmenu/ContextMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/contextmenu/ContextMenu.tsx"],"names":[],"mappings":"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"}
@@ -34,7 +34,6 @@ export class ContextMenu extends React.PureComponent {
34
34
  this._handleHotKeyParsed = (index, hotKey) => {
35
35
  this._hotKeyMap.set(index, hotKey);
36
36
  };
37
- // istanbul ignore next
38
37
  this._handleOnOutsideClick = (event) => {
39
38
  if (this.props.opened && this.props.onOutsideClick)
40
39
  this.props.onOutsideClick(event);
@@ -70,8 +69,7 @@ export class ContextMenu extends React.PureComponent {
70
69
  };
71
70
  if (child.type === ContextSubMenu) {
72
71
  // add direction only to sub-menus
73
- childProps.direction =
74
- child.props.direction || /* istanbul ignore next */ direction;
72
+ childProps.direction = child.props.direction || direction;
75
73
  }
76
74
  index++;
77
75
  return React.cloneElement(child, childProps);
@@ -89,25 +87,21 @@ export class ContextMenu extends React.PureComponent {
89
87
  this._menuElement = el;
90
88
  };
91
89
  this.focus = () => {
92
- // istanbul ignore else
93
90
  if (this._menuElement)
94
91
  this._menuElement.focus();
95
92
  };
96
93
  this.blur = () => {
97
- // istanbul ignore else
98
94
  if (this._menuElement)
99
95
  this._menuElement.blur();
100
96
  };
101
97
  this.getRect = () => {
102
98
  let clientRect = DOMRect.fromRect({ x: 0, y: 0, width: 0, height: 0 });
103
- // istanbul ignore else
104
99
  if (this._menuElement) {
105
100
  clientRect = this._menuElement.getBoundingClientRect();
106
101
  }
107
102
  return clientRect;
108
103
  };
109
104
  this._handleFocusChange = (event) => {
110
- // istanbul ignore else
111
105
  if (this._rootElement &&
112
106
  this.props.opened &&
113
107
  event.target instanceof Node &&
@@ -124,7 +118,6 @@ export class ContextMenu extends React.PureComponent {
124
118
  this.setState({ ignoreNextKeyUp: false });
125
119
  return;
126
120
  }
127
- // istanbul ignore else
128
121
  if (event.key) {
129
122
  for (const [key, value] of this._hotKeyMap) {
130
123
  if (!this.props.hotkeySelect && key > this.state.selectedIndex) {
@@ -157,7 +150,6 @@ export class ContextMenu extends React.PureComponent {
157
150
  this.props.onEsc(event);
158
151
  }
159
152
  if (event.key === Key.Escape.valueOf()) {
160
- // istanbul ignore else
161
153
  if (this.props.onEsc)
162
154
  this.props.onEsc(event);
163
155
  }
@@ -165,11 +157,8 @@ export class ContextMenu extends React.PureComponent {
165
157
  event.key === Key.ArrowRight.valueOf()) &&
166
158
  this._selectedElement) {
167
159
  event.stopPropagation();
168
- // istanbul ignore else
169
160
  if (event.key === Key.Enter.valueOf() ||
170
- /* istanbul ignore next */ this._selectedElement instanceof
171
- ContextSubMenu) {
172
- // istanbul ignore else
161
+ this._selectedElement instanceof ContextSubMenu) {
173
162
  if (this._selectedElement.select)
174
163
  this._selectedElement.select();
175
164
  }
@@ -215,17 +204,13 @@ export class ContextMenu extends React.PureComponent {
215
204
  this._lastDirection = renderDirection;
216
205
  this._lastSelectedIndex = this.state.selectedIndex;
217
206
  }
218
- const classNames = classnames("core-context-menu", className);
219
- return (React.createElement("div", { role: "presentation", className: classNames, onKeyUp: this._handleKeyUp, onClick: this._handleClick, "data-testid": "core-context-menu-root", ...props, ref: this._rootRef },
207
+ return (React.createElement("div", { role: "presentation", className: classnames("core-context-menu", className), onKeyUp: this._handleKeyUp, onClick: this._handleClick, "data-testid": "core-context-menu-root", ...props, ref: this._rootRef },
220
208
  React.createElement(DivWithOutsideClick, { onOutsideClick: this._handleOnOutsideClick },
221
209
  React.createElement("div", { ref: this._menuRef, role: "menu", tabIndex: 0, "data-testid": "core-context-menu-container", className: classnames("core-context-menu-container", opened && "core-context-menu-opened", floating && "core-context-menu-floating", ContextMenu.getCSSClassNameFromDirection(renderDirection)) }, this._injectedChildren))));
222
210
  }
223
211
  getWindow() {
224
- const el = this._rootElement
225
- ? this._rootElement
226
- : /* istanbul ignore next */ this._menuElement;
212
+ const el = this._rootElement ? this._rootElement : this._menuElement;
227
213
  const parentDocument = el.ownerDocument;
228
- // istanbul ignore next
229
214
  return parentDocument.defaultView ?? window;
230
215
  }
231
216
  /** @internal */
@@ -256,7 +241,6 @@ export class ContextMenu extends React.PureComponent {
256
241
  if (parentWindow && autoflip && parentMenu === undefined) {
257
242
  const menuRect = this.getRect();
258
243
  renderDirection = ContextMenu.autoFlip(renderDirection, menuRect, parentWindow.innerWidth, parentWindow.innerHeight);
259
- // istanbul ignore next
260
244
  if (renderDirection !== this.state.direction)
261
245
  this.setState({ direction: renderDirection });
262
246
  }
@@ -342,7 +326,6 @@ ContextMenu.autoFlip = (dir, rect, windowWidth, windowHeight) => {
342
326
  /** @internal */
343
327
  ContextMenu.getCSSClassNameFromDirection = (direction) => {
344
328
  let className = "";
345
- // istanbul ignore next
346
329
  if (direction === undefined)
347
330
  direction = ContextMenuDirection.BottomRight;
348
331
  if (direction === ContextMenuDirection.None)