@itwin/core-react 4.1.0-dev.1 → 4.2.0-dev.1

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 (758) hide show
  1. package/CHANGELOG.md +1609 -1602
  2. package/ContributeGuidelines.md +99 -99
  3. package/LICENSE.md +9 -9
  4. package/README.md +11 -11
  5. package/lib/cjs/core-react/UiCore.d.ts.map +1 -1
  6. package/lib/cjs/core-react/UiCore.js +9 -5
  7. package/lib/cjs/core-react/UiCore.js.map +1 -1
  8. package/lib/cjs/core-react/_helpers.scss +9 -8
  9. package/lib/cjs/core-react/_scrollbar.scss +8 -4
  10. package/lib/cjs/core-react/_z-index.scss +15 -33
  11. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts +1 -1
  12. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  13. package/lib/cjs/core-react/autosuggest/AutoSuggest.js +14 -15
  14. package/lib/cjs/core-react/autosuggest/AutoSuggest.js.map +1 -1
  15. package/lib/cjs/core-react/badge/Badge.d.ts +1 -1
  16. package/lib/cjs/core-react/badge/Badge.d.ts.map +1 -1
  17. package/lib/cjs/core-react/badge/Badge.js +3 -3
  18. package/lib/cjs/core-react/badge/Badge.js.map +1 -1
  19. package/lib/cjs/core-react/badge/BadgeUtilities.d.ts.map +1 -1
  20. package/lib/cjs/core-react/badge/BadgeUtilities.js +3 -3
  21. package/lib/cjs/core-react/badge/BadgeUtilities.js.map +1 -1
  22. package/lib/cjs/core-react/badge/BetaBadge.d.ts.map +1 -1
  23. package/lib/cjs/core-react/badge/BetaBadge.js +3 -3
  24. package/lib/cjs/core-react/badge/BetaBadge.js.map +1 -1
  25. package/lib/cjs/core-react/badge/NewBadge.d.ts.map +1 -1
  26. package/lib/cjs/core-react/badge/NewBadge.js +4 -4
  27. package/lib/cjs/core-react/badge/NewBadge.js.map +1 -1
  28. package/lib/cjs/core-react/base/Centered.js +3 -3
  29. package/lib/cjs/core-react/base/Centered.js.map +1 -1
  30. package/lib/cjs/core-react/base/Div.d.ts.map +1 -1
  31. package/lib/cjs/core-react/base/Div.js +3 -3
  32. package/lib/cjs/core-react/base/Div.js.map +1 -1
  33. package/lib/cjs/core-react/base/DivWithOutsideClick.d.ts.map +1 -1
  34. package/lib/cjs/core-react/base/DivWithOutsideClick.js +4 -4
  35. package/lib/cjs/core-react/base/DivWithOutsideClick.js.map +1 -1
  36. package/lib/cjs/core-react/base/FillCentered.js +3 -3
  37. package/lib/cjs/core-react/base/FillCentered.js.map +1 -1
  38. package/lib/cjs/core-react/base/FlexWrapContainer.js +3 -3
  39. package/lib/cjs/core-react/base/FlexWrapContainer.js.map +1 -1
  40. package/lib/cjs/core-react/base/Gap.d.ts.map +1 -1
  41. package/lib/cjs/core-react/base/Gap.js +4 -4
  42. package/lib/cjs/core-react/base/Gap.js.map +1 -1
  43. package/lib/cjs/core-react/base/PointerEvents.js +3 -3
  44. package/lib/cjs/core-react/base/PointerEvents.js.map +1 -1
  45. package/lib/cjs/core-react/base/ScrollView.js +3 -3
  46. package/lib/cjs/core-react/base/ScrollView.js.map +1 -1
  47. package/lib/cjs/core-react/base/classes.scss +24 -10
  48. package/lib/cjs/core-react/button/UnderlinedButton.d.ts.map +1 -1
  49. package/lib/cjs/core-react/button/UnderlinedButton.js +3 -3
  50. package/lib/cjs/core-react/button/UnderlinedButton.js.map +1 -1
  51. package/lib/cjs/core-react/button/UnderlinedButton.scss +4 -5
  52. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  53. package/lib/cjs/core-react/checklistbox/CheckListBox.js +4 -4
  54. package/lib/cjs/core-react/checklistbox/CheckListBox.js.map +1 -1
  55. package/lib/cjs/core-react/checklistbox/CheckListBox.scss +4 -4
  56. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts +7 -7
  57. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  58. package/lib/cjs/core-react/contextmenu/ContextMenu.js +42 -23
  59. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  60. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.d.ts.map +1 -1
  61. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js +3 -3
  62. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  63. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.d.ts +1 -1
  64. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.d.ts.map +1 -1
  65. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js +3 -3
  66. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  67. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts +1 -1
  68. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  69. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js +16 -12
  70. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  71. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts +2 -2
  72. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  73. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js +37 -15
  74. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  75. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  76. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js +11 -7
  77. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  78. package/lib/cjs/core-react/contextmenu/PopupContextMenu.d.ts.map +1 -1
  79. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js +3 -3
  80. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  81. package/lib/cjs/core-react/contextmenu/TildeFinder.d.ts.map +1 -1
  82. package/lib/cjs/core-react/contextmenu/TildeFinder.js +15 -7
  83. package/lib/cjs/core-react/contextmenu/TildeFinder.js.map +1 -1
  84. package/lib/cjs/core-react/dialog/Dialog.d.ts +6 -5
  85. package/lib/cjs/core-react/dialog/Dialog.d.ts.map +1 -1
  86. package/lib/cjs/core-react/dialog/Dialog.js +94 -86
  87. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  88. package/lib/cjs/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  89. package/lib/cjs/core-react/dialog/GlobalDialog.js +10 -6
  90. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  91. package/lib/cjs/core-react/dialog/SimpleDialog.d.ts +68 -0
  92. package/lib/cjs/core-react/dialog/SimpleDialog.d.ts.map +1 -0
  93. package/lib/cjs/core-react/dialog/SimpleDialog.js +51 -0
  94. package/lib/cjs/core-react/dialog/SimpleDialog.js.map +1 -0
  95. package/lib/cjs/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  96. package/lib/cjs/core-react/elementseparator/ElementSeparator.js +14 -8
  97. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  98. package/lib/cjs/core-react/elementseparator/ElementSeparator.scss +19 -10
  99. package/lib/cjs/core-react/enums/Alignment.js +3 -3
  100. package/lib/cjs/core-react/enums/Alignment.js.map +1 -1
  101. package/lib/cjs/core-react/enums/CheckBoxState.js +3 -3
  102. package/lib/cjs/core-react/enums/CheckBoxState.js.map +1 -1
  103. package/lib/cjs/core-react/enums/Orientation.js +3 -3
  104. package/lib/cjs/core-react/enums/Orientation.js.map +1 -1
  105. package/lib/cjs/core-react/enums/SortDirection.js +3 -3
  106. package/lib/cjs/core-react/enums/SortDirection.js.map +1 -1
  107. package/lib/cjs/core-react/enums/TimeFormat.js +3 -3
  108. package/lib/cjs/core-react/enums/TimeFormat.js.map +1 -1
  109. package/lib/cjs/core-react/expandable/ExpandableList.d.ts +1 -1
  110. package/lib/cjs/core-react/expandable/ExpandableList.d.ts.map +1 -1
  111. package/lib/cjs/core-react/expandable/ExpandableList.js +8 -5
  112. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  113. package/lib/cjs/core-react/expandable/ExpandableList.scss +4 -4
  114. package/lib/cjs/core-react/expandable/classes.scss +6 -4
  115. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  116. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js +38 -15
  117. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  118. package/lib/cjs/core-react/focustrap/FocusTrap.d.ts.map +1 -1
  119. package/lib/cjs/core-react/focustrap/FocusTrap.js +33 -16
  120. package/lib/cjs/core-react/focustrap/FocusTrap.js.map +1 -1
  121. package/lib/cjs/core-react/hocs/withIsPressed.d.ts.map +1 -1
  122. package/lib/cjs/core-react/hocs/withIsPressed.js +4 -7
  123. package/lib/cjs/core-react/hocs/withIsPressed.js.map +1 -1
  124. package/lib/cjs/core-react/hocs/withOnOutsideClick.d.ts.map +1 -1
  125. package/lib/cjs/core-react/hocs/withOnOutsideClick.js +16 -11
  126. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  127. package/lib/cjs/core-react/hocs/withTimeout.d.ts.map +1 -1
  128. package/lib/cjs/core-react/hocs/withTimeout.js +6 -8
  129. package/lib/cjs/core-react/hocs/withTimeout.js.map +1 -1
  130. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts +5 -1
  131. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  132. package/lib/cjs/core-react/icons/ConditionalIconItem.js +26 -9
  133. package/lib/cjs/core-react/icons/ConditionalIconItem.js.map +1 -1
  134. package/lib/cjs/core-react/icons/IconComponent.d.ts +1 -1
  135. package/lib/cjs/core-react/icons/IconComponent.d.ts.map +1 -1
  136. package/lib/cjs/core-react/icons/IconComponent.js +20 -10
  137. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  138. package/lib/cjs/core-react/icons/IconComponent.scss +5 -6
  139. package/lib/cjs/core-react/icons/SvgPath.d.ts.map +1 -1
  140. package/lib/cjs/core-react/icons/SvgPath.js +4 -4
  141. package/lib/cjs/core-react/icons/SvgPath.js.map +1 -1
  142. package/lib/cjs/core-react/icons/WebFontIcon.js +3 -3
  143. package/lib/cjs/core-react/icons/WebFontIcon.js.map +1 -1
  144. package/lib/cjs/core-react/icons/classes.scss +15 -7
  145. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  146. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js +6 -4
  147. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  148. package/lib/cjs/core-react/inputs/Input.d.ts +1 -1
  149. package/lib/cjs/core-react/inputs/Input.d.ts.map +1 -1
  150. package/lib/cjs/core-react/inputs/Input.js +6 -7
  151. package/lib/cjs/core-react/inputs/Input.js.map +1 -1
  152. package/lib/cjs/core-react/inputs/InputLabel.d.ts +1 -1
  153. package/lib/cjs/core-react/inputs/InputLabel.d.ts.map +1 -1
  154. package/lib/cjs/core-react/inputs/InputLabel.js +10 -13
  155. package/lib/cjs/core-react/inputs/InputLabel.js.map +1 -1
  156. package/lib/cjs/core-react/inputs/InputStatus.js +3 -3
  157. package/lib/cjs/core-react/inputs/InputStatus.js.map +1 -1
  158. package/lib/cjs/core-react/inputs/LabeledComponentProps.js +3 -3
  159. package/lib/cjs/core-react/inputs/LabeledComponentProps.js.map +1 -1
  160. package/lib/cjs/core-react/inputs/classes.scss +9 -5
  161. package/lib/cjs/core-react/inputs/iconinput/IconInput.d.ts +1 -1
  162. package/lib/cjs/core-react/inputs/iconinput/IconInput.d.ts.map +1 -1
  163. package/lib/cjs/core-react/inputs/iconinput/IconInput.js +3 -4
  164. package/lib/cjs/core-react/inputs/iconinput/IconInput.js.map +1 -1
  165. package/lib/cjs/core-react/inputs/iconinput/IconInput.scss +11 -12
  166. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts +2 -2
  167. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  168. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js +25 -16
  169. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  170. package/lib/cjs/core-react/layout-variables.scss +5 -7
  171. package/lib/cjs/core-react/listbox/Listbox.d.ts +2 -2
  172. package/lib/cjs/core-react/listbox/Listbox.d.ts.map +1 -1
  173. package/lib/cjs/core-react/listbox/Listbox.js +19 -12
  174. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  175. package/lib/cjs/core-react/loading/LoadingBar.d.ts.map +1 -1
  176. package/lib/cjs/core-react/loading/LoadingBar.js +4 -4
  177. package/lib/cjs/core-react/loading/LoadingBar.js.map +1 -1
  178. package/lib/cjs/core-react/loading/LoadingBar.scss +6 -6
  179. package/lib/cjs/core-react/loading/LoadingPrompt.d.ts.map +1 -1
  180. package/lib/cjs/core-react/loading/LoadingPrompt.js +9 -9
  181. package/lib/cjs/core-react/loading/LoadingPrompt.js.map +1 -1
  182. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts +3 -3
  183. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  184. package/lib/cjs/core-react/loading/LoadingSpinner.js +5 -5
  185. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  186. package/lib/cjs/core-react/loading/LoadingStatus.d.ts.map +1 -1
  187. package/lib/cjs/core-react/loading/LoadingStatus.js +3 -3
  188. package/lib/cjs/core-react/loading/LoadingStatus.js.map +1 -1
  189. package/lib/cjs/core-react/loading/LoadingStatus.scss +4 -4
  190. package/lib/cjs/core-react/messagebox/MessageBox.d.ts +3 -3
  191. package/lib/cjs/core-react/messagebox/MessageBox.d.ts.map +1 -1
  192. package/lib/cjs/core-react/messagebox/MessageBox.js +5 -5
  193. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  194. package/lib/cjs/core-react/notification/MessageRenderer.d.ts.map +1 -1
  195. package/lib/cjs/core-react/notification/MessageRenderer.js +18 -12
  196. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  197. package/lib/cjs/core-react/notification/MessageType.d.ts.map +1 -1
  198. package/lib/cjs/core-react/notification/MessageType.js +3 -3
  199. package/lib/cjs/core-react/notification/MessageType.js.map +1 -1
  200. package/lib/cjs/core-react/popup/Popup.d.ts.map +1 -1
  201. package/lib/cjs/core-react/popup/Popup.js +46 -23
  202. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  203. package/lib/cjs/core-react/radialmenu/Annulus.d.ts.map +1 -1
  204. package/lib/cjs/core-react/radialmenu/Annulus.js +4 -4
  205. package/lib/cjs/core-react/radialmenu/Annulus.js.map +1 -1
  206. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts +2 -2
  207. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  208. package/lib/cjs/core-react/radialmenu/RadialMenu.js +26 -11
  209. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  210. package/lib/cjs/core-react/searchbox/SearchBox.d.ts.map +1 -1
  211. package/lib/cjs/core-react/searchbox/SearchBox.js +17 -7
  212. package/lib/cjs/core-react/searchbox/SearchBox.js.map +1 -1
  213. package/lib/cjs/core-react/settings/SettingsContainer.d.ts +1 -1
  214. package/lib/cjs/core-react/settings/SettingsContainer.d.ts.map +1 -1
  215. package/lib/cjs/core-react/settings/SettingsContainer.js +54 -19
  216. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  217. package/lib/cjs/core-react/settings/SettingsManager.d.ts +3 -3
  218. package/lib/cjs/core-react/settings/SettingsManager.d.ts.map +1 -1
  219. package/lib/cjs/core-react/settings/SettingsManager.js +7 -8
  220. package/lib/cjs/core-react/settings/SettingsManager.js.map +1 -1
  221. package/lib/cjs/core-react/style/breakpoints.scss +30 -12
  222. package/lib/cjs/core-react/style/colors.scss +52 -52
  223. package/lib/cjs/core-react/style/mixins.scss +7 -11
  224. package/lib/cjs/core-react/style/themecolors.scss +116 -106
  225. package/lib/cjs/core-react/tabs/Tabs.d.ts +4 -4
  226. package/lib/cjs/core-react/tabs/Tabs.d.ts.map +1 -1
  227. package/lib/cjs/core-react/tabs/Tabs.js +13 -11
  228. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  229. package/lib/cjs/core-react/tabs/VerticalTabs.d.ts.map +1 -1
  230. package/lib/cjs/core-react/tabs/VerticalTabs.js +3 -3
  231. package/lib/cjs/core-react/tabs/VerticalTabs.js.map +1 -1
  232. package/lib/cjs/core-react/tabs/classes.scss +6 -4
  233. package/lib/cjs/core-react/text/BlockText.js +4 -4
  234. package/lib/cjs/core-react/text/BlockText.js.map +1 -1
  235. package/lib/cjs/core-react/text/BodyText.js +4 -4
  236. package/lib/cjs/core-react/text/BodyText.js.map +1 -1
  237. package/lib/cjs/core-react/text/DisabledText.js +4 -4
  238. package/lib/cjs/core-react/text/DisabledText.js.map +1 -1
  239. package/lib/cjs/core-react/text/FilteredText.d.ts.map +1 -1
  240. package/lib/cjs/core-react/text/FilteredText.js +5 -5
  241. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  242. package/lib/cjs/core-react/text/MutedText.js +4 -4
  243. package/lib/cjs/core-react/text/MutedText.js.map +1 -1
  244. package/lib/cjs/core-react/text/StyledText.js +3 -3
  245. package/lib/cjs/core-react/text/StyledText.js.map +1 -1
  246. package/lib/cjs/core-react/text/TextProps.d.ts.map +1 -1
  247. package/lib/cjs/core-react/text/TextProps.js +3 -3
  248. package/lib/cjs/core-react/text/TextProps.js.map +1 -1
  249. package/lib/cjs/core-react/text/classes.scss +15 -7
  250. package/lib/cjs/core-react/text/disabled.scss +4 -5
  251. package/lib/cjs/core-react/text/muted.scss +4 -5
  252. package/lib/cjs/core-react/tree/Branch.d.ts.map +1 -1
  253. package/lib/cjs/core-react/tree/Branch.js +3 -3
  254. package/lib/cjs/core-react/tree/Branch.js.map +1 -1
  255. package/lib/cjs/core-react/tree/Branch.scss +4 -4
  256. package/lib/cjs/core-react/tree/ExpansionToggle.d.ts.map +1 -1
  257. package/lib/cjs/core-react/tree/ExpansionToggle.js +3 -3
  258. package/lib/cjs/core-react/tree/ExpansionToggle.js.map +1 -1
  259. package/lib/cjs/core-react/tree/Node.d.ts.map +1 -1
  260. package/lib/cjs/core-react/tree/Node.js +11 -8
  261. package/lib/cjs/core-react/tree/Node.js.map +1 -1
  262. package/lib/cjs/core-react/tree/Node.scss +9 -9
  263. package/lib/cjs/core-react/tree/Placeholder.js +5 -5
  264. package/lib/cjs/core-react/tree/Placeholder.js.map +1 -1
  265. package/lib/cjs/core-react/tree/Tree.d.ts.map +1 -1
  266. package/lib/cjs/core-react/tree/Tree.js +20 -11
  267. package/lib/cjs/core-react/tree/Tree.js.map +1 -1
  268. package/lib/cjs/core-react/uistate/LocalStateStorage.d.ts.map +1 -1
  269. package/lib/cjs/core-react/uistate/LocalStateStorage.js +7 -4
  270. package/lib/cjs/core-react/uistate/LocalStateStorage.js.map +1 -1
  271. package/lib/cjs/core-react/uistate/UiStateEntry.d.ts.map +1 -1
  272. package/lib/cjs/core-react/uistate/UiStateEntry.js +3 -3
  273. package/lib/cjs/core-react/uistate/UiStateEntry.js.map +1 -1
  274. package/lib/cjs/core-react/uistate/UiStateStorage.d.ts.map +1 -1
  275. package/lib/cjs/core-react/uistate/UiStateStorage.js +3 -3
  276. package/lib/cjs/core-react/uistate/UiStateStorage.js.map +1 -1
  277. package/lib/cjs/core-react/utils/IconHelper.d.ts +3 -1
  278. package/lib/cjs/core-react/utils/IconHelper.d.ts.map +1 -1
  279. package/lib/cjs/core-react/utils/IconHelper.js +35 -6
  280. package/lib/cjs/core-react/utils/IconHelper.js.map +1 -1
  281. package/lib/cjs/core-react/utils/IconWebComponent.d.ts.map +1 -1
  282. package/lib/cjs/core-react/utils/IconWebComponent.js +71 -41
  283. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  284. package/lib/cjs/core-react/utils/Point.d.ts.map +1 -1
  285. package/lib/cjs/core-react/utils/Point.js +3 -3
  286. package/lib/cjs/core-react/utils/Point.js.map +1 -1
  287. package/lib/cjs/core-react/utils/Props.d.ts.map +1 -1
  288. package/lib/cjs/core-react/utils/Props.js +3 -3
  289. package/lib/cjs/core-react/utils/Props.js.map +1 -1
  290. package/lib/cjs/core-react/utils/Rectangle.d.ts.map +1 -1
  291. package/lib/cjs/core-react/utils/Rectangle.js +15 -7
  292. package/lib/cjs/core-react/utils/Rectangle.js.map +1 -1
  293. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  294. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js +4 -2
  295. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  296. package/lib/cjs/core-react/utils/Size.d.ts.map +1 -1
  297. package/lib/cjs/core-react/utils/Size.js +4 -5
  298. package/lib/cjs/core-react/utils/Size.js.map +1 -1
  299. package/lib/cjs/core-react/utils/Timer.d.ts.map +1 -1
  300. package/lib/cjs/core-react/utils/Timer.js +3 -3
  301. package/lib/cjs/core-react/utils/Timer.js.map +1 -1
  302. package/lib/cjs/core-react/utils/UiGeometry.d.ts.map +1 -1
  303. package/lib/cjs/core-react/utils/UiGeometry.js +9 -5
  304. package/lib/cjs/core-react/utils/UiGeometry.js.map +1 -1
  305. package/lib/cjs/core-react/utils/flattenChildren.js +3 -3
  306. package/lib/cjs/core-react/utils/flattenChildren.js.map +1 -1
  307. package/lib/cjs/core-react/utils/getBestBWContrastColor.js +5 -5
  308. package/lib/cjs/core-react/utils/getBestBWContrastColor.js.map +1 -1
  309. package/lib/cjs/core-react/utils/getCssVariable.d.ts.map +1 -1
  310. package/lib/cjs/core-react/utils/getCssVariable.js +3 -3
  311. package/lib/cjs/core-react/utils/getCssVariable.js.map +1 -1
  312. package/lib/cjs/core-react/utils/getDisplayName.d.ts.map +1 -1
  313. package/lib/cjs/core-react/utils/getDisplayName.js +3 -3
  314. package/lib/cjs/core-react/utils/getDisplayName.js.map +1 -1
  315. package/lib/cjs/core-react/utils/getUserColor.d.ts.map +1 -1
  316. package/lib/cjs/core-react/utils/getUserColor.js +5 -4
  317. package/lib/cjs/core-react/utils/getUserColor.js.map +1 -1
  318. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  319. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js +4 -4
  320. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  321. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.d.ts.map +1 -1
  322. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js +21 -9
  323. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  324. package/lib/cjs/core-react/utils/hooks/useDisposable.d.ts.map +1 -1
  325. package/lib/cjs/core-react/utils/hooks/useDisposable.js +3 -3
  326. package/lib/cjs/core-react/utils/hooks/useDisposable.js.map +1 -1
  327. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.d.ts.map +1 -1
  328. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js +3 -3
  329. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  330. package/lib/cjs/core-react/utils/hooks/useEventListener.d.ts.map +1 -1
  331. package/lib/cjs/core-react/utils/hooks/useEventListener.js +3 -3
  332. package/lib/cjs/core-react/utils/hooks/useEventListener.js.map +1 -1
  333. package/lib/cjs/core-react/utils/hooks/useInterval.d.ts.map +1 -1
  334. package/lib/cjs/core-react/utils/hooks/useInterval.js +6 -4
  335. package/lib/cjs/core-react/utils/hooks/useInterval.js.map +1 -1
  336. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.d.ts.map +1 -1
  337. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js +7 -4
  338. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  339. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.d.ts.map +1 -1
  340. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js +15 -6
  341. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  342. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js +3 -3
  343. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  344. package/lib/cjs/core-react/utils/hooks/useRefEffect.d.ts +1 -1
  345. package/lib/cjs/core-react/utils/hooks/useRefEffect.d.ts.map +1 -1
  346. package/lib/cjs/core-react/utils/hooks/useRefEffect.js +3 -3
  347. package/lib/cjs/core-react/utils/hooks/useRefEffect.js.map +1 -1
  348. package/lib/cjs/core-react/utils/hooks/useRefState.js +3 -3
  349. package/lib/cjs/core-react/utils/hooks/useRefState.js.map +1 -1
  350. package/lib/cjs/core-react/utils/hooks/useRefs.d.ts.map +1 -1
  351. package/lib/cjs/core-react/utils/hooks/useRefs.js +8 -6
  352. package/lib/cjs/core-react/utils/hooks/useRefs.js.map +1 -1
  353. package/lib/cjs/core-react/utils/hooks/useResizeObserver.d.ts +8 -8
  354. package/lib/cjs/core-react/utils/hooks/useResizeObserver.d.ts.map +1 -1
  355. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js +37 -20
  356. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  357. package/lib/cjs/core-react/utils/hooks/useTargeted.d.ts.map +1 -1
  358. package/lib/cjs/core-react/utils/hooks/useTargeted.js +7 -4
  359. package/lib/cjs/core-react/utils/hooks/useTargeted.js.map +1 -1
  360. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js +3 -3
  361. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  362. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.d.ts.map +1 -1
  363. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js +3 -4
  364. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  365. package/lib/cjs/core-react/utils/isPromiseLike.d.ts.map +1 -1
  366. package/lib/cjs/core-react/utils/isPromiseLike.js +6 -4
  367. package/lib/cjs/core-react/utils/isPromiseLike.js.map +1 -1
  368. package/lib/cjs/core-react/utils/reuseOrCreatePromise.d.ts +14 -0
  369. package/lib/cjs/core-react/utils/reuseOrCreatePromise.d.ts.map +1 -0
  370. package/lib/cjs/core-react/utils/reuseOrCreatePromise.js +33 -0
  371. package/lib/cjs/core-react/utils/reuseOrCreatePromise.js.map +1 -0
  372. package/lib/cjs/core-react/utils/shallowDiffers.d.ts.map +1 -1
  373. package/lib/cjs/core-react/utils/shallowDiffers.js +3 -3
  374. package/lib/cjs/core-react/utils/shallowDiffers.js.map +1 -1
  375. package/lib/cjs/core-react/utils/typeUtils.js +3 -3
  376. package/lib/cjs/core-react/utils/typeUtils.js.map +1 -1
  377. package/lib/cjs/core-react.d.ts +3 -3
  378. package/lib/cjs/core-react.d.ts.map +1 -1
  379. package/lib/cjs/core-react.js +3 -3
  380. package/lib/cjs/core-react.js.map +1 -1
  381. package/lib/esm/core-react/UiCore.d.ts.map +1 -1
  382. package/lib/esm/core-react/UiCore.js +9 -5
  383. package/lib/esm/core-react/UiCore.js.map +1 -1
  384. package/lib/esm/core-react/_helpers.scss +9 -8
  385. package/lib/esm/core-react/_scrollbar.scss +8 -4
  386. package/lib/esm/core-react/_z-index.scss +15 -33
  387. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts +1 -1
  388. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  389. package/lib/esm/core-react/autosuggest/AutoSuggest.js +14 -15
  390. package/lib/esm/core-react/autosuggest/AutoSuggest.js.map +1 -1
  391. package/lib/esm/core-react/badge/Badge.d.ts +1 -1
  392. package/lib/esm/core-react/badge/Badge.d.ts.map +1 -1
  393. package/lib/esm/core-react/badge/Badge.js +3 -3
  394. package/lib/esm/core-react/badge/Badge.js.map +1 -1
  395. package/lib/esm/core-react/badge/BadgeUtilities.d.ts.map +1 -1
  396. package/lib/esm/core-react/badge/BadgeUtilities.js +3 -3
  397. package/lib/esm/core-react/badge/BadgeUtilities.js.map +1 -1
  398. package/lib/esm/core-react/badge/BetaBadge.d.ts.map +1 -1
  399. package/lib/esm/core-react/badge/BetaBadge.js +3 -3
  400. package/lib/esm/core-react/badge/BetaBadge.js.map +1 -1
  401. package/lib/esm/core-react/badge/NewBadge.d.ts.map +1 -1
  402. package/lib/esm/core-react/badge/NewBadge.js +4 -4
  403. package/lib/esm/core-react/badge/NewBadge.js.map +1 -1
  404. package/lib/esm/core-react/base/Centered.js +3 -3
  405. package/lib/esm/core-react/base/Centered.js.map +1 -1
  406. package/lib/esm/core-react/base/Div.d.ts.map +1 -1
  407. package/lib/esm/core-react/base/Div.js +3 -3
  408. package/lib/esm/core-react/base/Div.js.map +1 -1
  409. package/lib/esm/core-react/base/DivWithOutsideClick.d.ts.map +1 -1
  410. package/lib/esm/core-react/base/DivWithOutsideClick.js +4 -4
  411. package/lib/esm/core-react/base/DivWithOutsideClick.js.map +1 -1
  412. package/lib/esm/core-react/base/FillCentered.js +3 -3
  413. package/lib/esm/core-react/base/FillCentered.js.map +1 -1
  414. package/lib/esm/core-react/base/FlexWrapContainer.js +3 -3
  415. package/lib/esm/core-react/base/FlexWrapContainer.js.map +1 -1
  416. package/lib/esm/core-react/base/Gap.d.ts.map +1 -1
  417. package/lib/esm/core-react/base/Gap.js +4 -4
  418. package/lib/esm/core-react/base/Gap.js.map +1 -1
  419. package/lib/esm/core-react/base/PointerEvents.js +3 -3
  420. package/lib/esm/core-react/base/PointerEvents.js.map +1 -1
  421. package/lib/esm/core-react/base/ScrollView.js +3 -3
  422. package/lib/esm/core-react/base/ScrollView.js.map +1 -1
  423. package/lib/esm/core-react/base/classes.scss +24 -10
  424. package/lib/esm/core-react/button/UnderlinedButton.d.ts.map +1 -1
  425. package/lib/esm/core-react/button/UnderlinedButton.js +3 -3
  426. package/lib/esm/core-react/button/UnderlinedButton.js.map +1 -1
  427. package/lib/esm/core-react/button/UnderlinedButton.scss +4 -5
  428. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  429. package/lib/esm/core-react/checklistbox/CheckListBox.js +4 -4
  430. package/lib/esm/core-react/checklistbox/CheckListBox.js.map +1 -1
  431. package/lib/esm/core-react/checklistbox/CheckListBox.scss +4 -4
  432. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts +7 -7
  433. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  434. package/lib/esm/core-react/contextmenu/ContextMenu.js +42 -23
  435. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  436. package/lib/esm/core-react/contextmenu/ContextMenuDirection.d.ts.map +1 -1
  437. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js +3 -3
  438. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  439. package/lib/esm/core-react/contextmenu/ContextMenuDivider.d.ts +1 -1
  440. package/lib/esm/core-react/contextmenu/ContextMenuDivider.d.ts.map +1 -1
  441. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js +3 -3
  442. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  443. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts +1 -1
  444. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  445. package/lib/esm/core-react/contextmenu/ContextMenuItem.js +16 -12
  446. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  447. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts +2 -2
  448. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  449. package/lib/esm/core-react/contextmenu/ContextSubMenu.js +37 -15
  450. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  451. package/lib/esm/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  452. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js +11 -7
  453. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  454. package/lib/esm/core-react/contextmenu/PopupContextMenu.d.ts.map +1 -1
  455. package/lib/esm/core-react/contextmenu/PopupContextMenu.js +3 -3
  456. package/lib/esm/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  457. package/lib/esm/core-react/contextmenu/TildeFinder.d.ts.map +1 -1
  458. package/lib/esm/core-react/contextmenu/TildeFinder.js +15 -7
  459. package/lib/esm/core-react/contextmenu/TildeFinder.js.map +1 -1
  460. package/lib/esm/core-react/dialog/Dialog.d.ts +6 -5
  461. package/lib/esm/core-react/dialog/Dialog.d.ts.map +1 -1
  462. package/lib/esm/core-react/dialog/Dialog.js +94 -86
  463. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  464. package/lib/esm/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  465. package/lib/esm/core-react/dialog/GlobalDialog.js +10 -6
  466. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  467. package/lib/esm/core-react/dialog/SimpleDialog.d.ts +68 -0
  468. package/lib/esm/core-react/dialog/SimpleDialog.d.ts.map +1 -0
  469. package/lib/esm/core-react/dialog/SimpleDialog.js +47 -0
  470. package/lib/esm/core-react/dialog/SimpleDialog.js.map +1 -0
  471. package/lib/esm/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  472. package/lib/esm/core-react/elementseparator/ElementSeparator.js +14 -8
  473. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  474. package/lib/esm/core-react/elementseparator/ElementSeparator.scss +19 -10
  475. package/lib/esm/core-react/enums/Alignment.js +3 -3
  476. package/lib/esm/core-react/enums/Alignment.js.map +1 -1
  477. package/lib/esm/core-react/enums/CheckBoxState.js +3 -3
  478. package/lib/esm/core-react/enums/CheckBoxState.js.map +1 -1
  479. package/lib/esm/core-react/enums/Orientation.js +3 -3
  480. package/lib/esm/core-react/enums/Orientation.js.map +1 -1
  481. package/lib/esm/core-react/enums/SortDirection.js +3 -3
  482. package/lib/esm/core-react/enums/SortDirection.js.map +1 -1
  483. package/lib/esm/core-react/enums/TimeFormat.js +3 -3
  484. package/lib/esm/core-react/enums/TimeFormat.js.map +1 -1
  485. package/lib/esm/core-react/expandable/ExpandableList.d.ts +1 -1
  486. package/lib/esm/core-react/expandable/ExpandableList.d.ts.map +1 -1
  487. package/lib/esm/core-react/expandable/ExpandableList.js +8 -5
  488. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  489. package/lib/esm/core-react/expandable/ExpandableList.scss +4 -4
  490. package/lib/esm/core-react/expandable/classes.scss +6 -4
  491. package/lib/esm/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  492. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js +38 -15
  493. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  494. package/lib/esm/core-react/focustrap/FocusTrap.d.ts.map +1 -1
  495. package/lib/esm/core-react/focustrap/FocusTrap.js +33 -16
  496. package/lib/esm/core-react/focustrap/FocusTrap.js.map +1 -1
  497. package/lib/esm/core-react/hocs/withIsPressed.d.ts.map +1 -1
  498. package/lib/esm/core-react/hocs/withIsPressed.js +4 -7
  499. package/lib/esm/core-react/hocs/withIsPressed.js.map +1 -1
  500. package/lib/esm/core-react/hocs/withOnOutsideClick.d.ts.map +1 -1
  501. package/lib/esm/core-react/hocs/withOnOutsideClick.js +16 -11
  502. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  503. package/lib/esm/core-react/hocs/withTimeout.d.ts.map +1 -1
  504. package/lib/esm/core-react/hocs/withTimeout.js +6 -8
  505. package/lib/esm/core-react/hocs/withTimeout.js.map +1 -1
  506. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts +5 -1
  507. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  508. package/lib/esm/core-react/icons/ConditionalIconItem.js +26 -9
  509. package/lib/esm/core-react/icons/ConditionalIconItem.js.map +1 -1
  510. package/lib/esm/core-react/icons/IconComponent.d.ts +1 -1
  511. package/lib/esm/core-react/icons/IconComponent.d.ts.map +1 -1
  512. package/lib/esm/core-react/icons/IconComponent.js +21 -11
  513. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  514. package/lib/esm/core-react/icons/IconComponent.scss +5 -6
  515. package/lib/esm/core-react/icons/SvgPath.d.ts.map +1 -1
  516. package/lib/esm/core-react/icons/SvgPath.js +4 -4
  517. package/lib/esm/core-react/icons/SvgPath.js.map +1 -1
  518. package/lib/esm/core-react/icons/WebFontIcon.js +3 -3
  519. package/lib/esm/core-react/icons/WebFontIcon.js.map +1 -1
  520. package/lib/esm/core-react/icons/classes.scss +15 -7
  521. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  522. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js +6 -4
  523. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  524. package/lib/esm/core-react/inputs/Input.d.ts +1 -1
  525. package/lib/esm/core-react/inputs/Input.d.ts.map +1 -1
  526. package/lib/esm/core-react/inputs/Input.js +6 -7
  527. package/lib/esm/core-react/inputs/Input.js.map +1 -1
  528. package/lib/esm/core-react/inputs/InputLabel.d.ts +1 -1
  529. package/lib/esm/core-react/inputs/InputLabel.d.ts.map +1 -1
  530. package/lib/esm/core-react/inputs/InputLabel.js +11 -14
  531. package/lib/esm/core-react/inputs/InputLabel.js.map +1 -1
  532. package/lib/esm/core-react/inputs/InputStatus.js +3 -3
  533. package/lib/esm/core-react/inputs/InputStatus.js.map +1 -1
  534. package/lib/esm/core-react/inputs/LabeledComponentProps.js +3 -3
  535. package/lib/esm/core-react/inputs/LabeledComponentProps.js.map +1 -1
  536. package/lib/esm/core-react/inputs/classes.scss +9 -5
  537. package/lib/esm/core-react/inputs/iconinput/IconInput.d.ts +1 -1
  538. package/lib/esm/core-react/inputs/iconinput/IconInput.d.ts.map +1 -1
  539. package/lib/esm/core-react/inputs/iconinput/IconInput.js +3 -4
  540. package/lib/esm/core-react/inputs/iconinput/IconInput.js.map +1 -1
  541. package/lib/esm/core-react/inputs/iconinput/IconInput.scss +11 -12
  542. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts +2 -2
  543. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  544. package/lib/esm/core-react/inputs/numberinput/NumberInput.js +26 -17
  545. package/lib/esm/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  546. package/lib/esm/core-react/layout-variables.scss +5 -7
  547. package/lib/esm/core-react/listbox/Listbox.d.ts +2 -2
  548. package/lib/esm/core-react/listbox/Listbox.d.ts.map +1 -1
  549. package/lib/esm/core-react/listbox/Listbox.js +19 -12
  550. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  551. package/lib/esm/core-react/loading/LoadingBar.d.ts.map +1 -1
  552. package/lib/esm/core-react/loading/LoadingBar.js +4 -4
  553. package/lib/esm/core-react/loading/LoadingBar.js.map +1 -1
  554. package/lib/esm/core-react/loading/LoadingBar.scss +6 -6
  555. package/lib/esm/core-react/loading/LoadingPrompt.d.ts.map +1 -1
  556. package/lib/esm/core-react/loading/LoadingPrompt.js +9 -9
  557. package/lib/esm/core-react/loading/LoadingPrompt.js.map +1 -1
  558. package/lib/esm/core-react/loading/LoadingSpinner.d.ts +3 -3
  559. package/lib/esm/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  560. package/lib/esm/core-react/loading/LoadingSpinner.js +5 -5
  561. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  562. package/lib/esm/core-react/loading/LoadingStatus.d.ts.map +1 -1
  563. package/lib/esm/core-react/loading/LoadingStatus.js +3 -3
  564. package/lib/esm/core-react/loading/LoadingStatus.js.map +1 -1
  565. package/lib/esm/core-react/loading/LoadingStatus.scss +4 -4
  566. package/lib/esm/core-react/messagebox/MessageBox.d.ts +3 -3
  567. package/lib/esm/core-react/messagebox/MessageBox.d.ts.map +1 -1
  568. package/lib/esm/core-react/messagebox/MessageBox.js +6 -6
  569. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  570. package/lib/esm/core-react/notification/MessageRenderer.d.ts.map +1 -1
  571. package/lib/esm/core-react/notification/MessageRenderer.js +18 -12
  572. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  573. package/lib/esm/core-react/notification/MessageType.d.ts.map +1 -1
  574. package/lib/esm/core-react/notification/MessageType.js +3 -3
  575. package/lib/esm/core-react/notification/MessageType.js.map +1 -1
  576. package/lib/esm/core-react/popup/Popup.d.ts.map +1 -1
  577. package/lib/esm/core-react/popup/Popup.js +46 -23
  578. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  579. package/lib/esm/core-react/radialmenu/Annulus.d.ts.map +1 -1
  580. package/lib/esm/core-react/radialmenu/Annulus.js +4 -4
  581. package/lib/esm/core-react/radialmenu/Annulus.js.map +1 -1
  582. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts +2 -2
  583. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  584. package/lib/esm/core-react/radialmenu/RadialMenu.js +26 -11
  585. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  586. package/lib/esm/core-react/searchbox/SearchBox.d.ts.map +1 -1
  587. package/lib/esm/core-react/searchbox/SearchBox.js +17 -7
  588. package/lib/esm/core-react/searchbox/SearchBox.js.map +1 -1
  589. package/lib/esm/core-react/settings/SettingsContainer.d.ts +1 -1
  590. package/lib/esm/core-react/settings/SettingsContainer.d.ts.map +1 -1
  591. package/lib/esm/core-react/settings/SettingsContainer.js +54 -19
  592. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  593. package/lib/esm/core-react/settings/SettingsManager.d.ts +3 -3
  594. package/lib/esm/core-react/settings/SettingsManager.d.ts.map +1 -1
  595. package/lib/esm/core-react/settings/SettingsManager.js +7 -8
  596. package/lib/esm/core-react/settings/SettingsManager.js.map +1 -1
  597. package/lib/esm/core-react/style/breakpoints.scss +30 -12
  598. package/lib/esm/core-react/style/colors.scss +52 -52
  599. package/lib/esm/core-react/style/mixins.scss +7 -11
  600. package/lib/esm/core-react/style/themecolors.scss +116 -106
  601. package/lib/esm/core-react/tabs/Tabs.d.ts +4 -4
  602. package/lib/esm/core-react/tabs/Tabs.d.ts.map +1 -1
  603. package/lib/esm/core-react/tabs/Tabs.js +13 -11
  604. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  605. package/lib/esm/core-react/tabs/VerticalTabs.d.ts.map +1 -1
  606. package/lib/esm/core-react/tabs/VerticalTabs.js +3 -3
  607. package/lib/esm/core-react/tabs/VerticalTabs.js.map +1 -1
  608. package/lib/esm/core-react/tabs/classes.scss +6 -4
  609. package/lib/esm/core-react/text/BlockText.js +4 -4
  610. package/lib/esm/core-react/text/BlockText.js.map +1 -1
  611. package/lib/esm/core-react/text/BodyText.js +4 -4
  612. package/lib/esm/core-react/text/BodyText.js.map +1 -1
  613. package/lib/esm/core-react/text/DisabledText.js +4 -4
  614. package/lib/esm/core-react/text/DisabledText.js.map +1 -1
  615. package/lib/esm/core-react/text/FilteredText.d.ts.map +1 -1
  616. package/lib/esm/core-react/text/FilteredText.js +5 -5
  617. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  618. package/lib/esm/core-react/text/MutedText.js +4 -4
  619. package/lib/esm/core-react/text/MutedText.js.map +1 -1
  620. package/lib/esm/core-react/text/StyledText.js +3 -3
  621. package/lib/esm/core-react/text/StyledText.js.map +1 -1
  622. package/lib/esm/core-react/text/TextProps.d.ts.map +1 -1
  623. package/lib/esm/core-react/text/TextProps.js +3 -3
  624. package/lib/esm/core-react/text/TextProps.js.map +1 -1
  625. package/lib/esm/core-react/text/classes.scss +15 -7
  626. package/lib/esm/core-react/text/disabled.scss +4 -5
  627. package/lib/esm/core-react/text/muted.scss +4 -5
  628. package/lib/esm/core-react/tree/Branch.d.ts.map +1 -1
  629. package/lib/esm/core-react/tree/Branch.js +3 -3
  630. package/lib/esm/core-react/tree/Branch.js.map +1 -1
  631. package/lib/esm/core-react/tree/Branch.scss +4 -4
  632. package/lib/esm/core-react/tree/ExpansionToggle.d.ts.map +1 -1
  633. package/lib/esm/core-react/tree/ExpansionToggle.js +3 -3
  634. package/lib/esm/core-react/tree/ExpansionToggle.js.map +1 -1
  635. package/lib/esm/core-react/tree/Node.d.ts.map +1 -1
  636. package/lib/esm/core-react/tree/Node.js +11 -8
  637. package/lib/esm/core-react/tree/Node.js.map +1 -1
  638. package/lib/esm/core-react/tree/Node.scss +9 -9
  639. package/lib/esm/core-react/tree/Placeholder.js +5 -5
  640. package/lib/esm/core-react/tree/Placeholder.js.map +1 -1
  641. package/lib/esm/core-react/tree/Tree.d.ts.map +1 -1
  642. package/lib/esm/core-react/tree/Tree.js +20 -11
  643. package/lib/esm/core-react/tree/Tree.js.map +1 -1
  644. package/lib/esm/core-react/uistate/LocalStateStorage.d.ts.map +1 -1
  645. package/lib/esm/core-react/uistate/LocalStateStorage.js +7 -4
  646. package/lib/esm/core-react/uistate/LocalStateStorage.js.map +1 -1
  647. package/lib/esm/core-react/uistate/UiStateEntry.d.ts.map +1 -1
  648. package/lib/esm/core-react/uistate/UiStateEntry.js +3 -3
  649. package/lib/esm/core-react/uistate/UiStateEntry.js.map +1 -1
  650. package/lib/esm/core-react/uistate/UiStateStorage.d.ts.map +1 -1
  651. package/lib/esm/core-react/uistate/UiStateStorage.js +3 -3
  652. package/lib/esm/core-react/uistate/UiStateStorage.js.map +1 -1
  653. package/lib/esm/core-react/utils/IconHelper.d.ts +3 -1
  654. package/lib/esm/core-react/utils/IconHelper.d.ts.map +1 -1
  655. package/lib/esm/core-react/utils/IconHelper.js +35 -6
  656. package/lib/esm/core-react/utils/IconHelper.js.map +1 -1
  657. package/lib/esm/core-react/utils/IconWebComponent.d.ts.map +1 -1
  658. package/lib/esm/core-react/utils/IconWebComponent.js +71 -41
  659. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  660. package/lib/esm/core-react/utils/Point.d.ts.map +1 -1
  661. package/lib/esm/core-react/utils/Point.js +3 -3
  662. package/lib/esm/core-react/utils/Point.js.map +1 -1
  663. package/lib/esm/core-react/utils/Props.d.ts.map +1 -1
  664. package/lib/esm/core-react/utils/Props.js +3 -3
  665. package/lib/esm/core-react/utils/Props.js.map +1 -1
  666. package/lib/esm/core-react/utils/Rectangle.d.ts.map +1 -1
  667. package/lib/esm/core-react/utils/Rectangle.js +15 -7
  668. package/lib/esm/core-react/utils/Rectangle.js.map +1 -1
  669. package/lib/esm/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  670. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js +4 -2
  671. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  672. package/lib/esm/core-react/utils/Size.d.ts.map +1 -1
  673. package/lib/esm/core-react/utils/Size.js +4 -5
  674. package/lib/esm/core-react/utils/Size.js.map +1 -1
  675. package/lib/esm/core-react/utils/Timer.d.ts.map +1 -1
  676. package/lib/esm/core-react/utils/Timer.js +3 -3
  677. package/lib/esm/core-react/utils/Timer.js.map +1 -1
  678. package/lib/esm/core-react/utils/UiGeometry.d.ts.map +1 -1
  679. package/lib/esm/core-react/utils/UiGeometry.js +9 -5
  680. package/lib/esm/core-react/utils/UiGeometry.js.map +1 -1
  681. package/lib/esm/core-react/utils/flattenChildren.js +3 -3
  682. package/lib/esm/core-react/utils/flattenChildren.js.map +1 -1
  683. package/lib/esm/core-react/utils/getBestBWContrastColor.js +5 -5
  684. package/lib/esm/core-react/utils/getBestBWContrastColor.js.map +1 -1
  685. package/lib/esm/core-react/utils/getCssVariable.d.ts.map +1 -1
  686. package/lib/esm/core-react/utils/getCssVariable.js +3 -3
  687. package/lib/esm/core-react/utils/getCssVariable.js.map +1 -1
  688. package/lib/esm/core-react/utils/getDisplayName.d.ts.map +1 -1
  689. package/lib/esm/core-react/utils/getDisplayName.js +3 -3
  690. package/lib/esm/core-react/utils/getDisplayName.js.map +1 -1
  691. package/lib/esm/core-react/utils/getUserColor.d.ts.map +1 -1
  692. package/lib/esm/core-react/utils/getUserColor.js +5 -4
  693. package/lib/esm/core-react/utils/getUserColor.js.map +1 -1
  694. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  695. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js +4 -4
  696. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  697. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.d.ts.map +1 -1
  698. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js +21 -9
  699. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  700. package/lib/esm/core-react/utils/hooks/useDisposable.d.ts.map +1 -1
  701. package/lib/esm/core-react/utils/hooks/useDisposable.js +3 -3
  702. package/lib/esm/core-react/utils/hooks/useDisposable.js.map +1 -1
  703. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.d.ts.map +1 -1
  704. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js +3 -3
  705. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  706. package/lib/esm/core-react/utils/hooks/useEventListener.d.ts.map +1 -1
  707. package/lib/esm/core-react/utils/hooks/useEventListener.js +3 -3
  708. package/lib/esm/core-react/utils/hooks/useEventListener.js.map +1 -1
  709. package/lib/esm/core-react/utils/hooks/useInterval.d.ts.map +1 -1
  710. package/lib/esm/core-react/utils/hooks/useInterval.js +6 -4
  711. package/lib/esm/core-react/utils/hooks/useInterval.js.map +1 -1
  712. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.d.ts.map +1 -1
  713. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js +7 -4
  714. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  715. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.d.ts.map +1 -1
  716. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js +15 -6
  717. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  718. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js +3 -3
  719. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  720. package/lib/esm/core-react/utils/hooks/useRefEffect.d.ts +1 -1
  721. package/lib/esm/core-react/utils/hooks/useRefEffect.d.ts.map +1 -1
  722. package/lib/esm/core-react/utils/hooks/useRefEffect.js +3 -3
  723. package/lib/esm/core-react/utils/hooks/useRefEffect.js.map +1 -1
  724. package/lib/esm/core-react/utils/hooks/useRefState.js +3 -3
  725. package/lib/esm/core-react/utils/hooks/useRefState.js.map +1 -1
  726. package/lib/esm/core-react/utils/hooks/useRefs.d.ts.map +1 -1
  727. package/lib/esm/core-react/utils/hooks/useRefs.js +8 -6
  728. package/lib/esm/core-react/utils/hooks/useRefs.js.map +1 -1
  729. package/lib/esm/core-react/utils/hooks/useResizeObserver.d.ts +8 -8
  730. package/lib/esm/core-react/utils/hooks/useResizeObserver.d.ts.map +1 -1
  731. package/lib/esm/core-react/utils/hooks/useResizeObserver.js +37 -20
  732. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  733. package/lib/esm/core-react/utils/hooks/useTargeted.d.ts.map +1 -1
  734. package/lib/esm/core-react/utils/hooks/useTargeted.js +7 -4
  735. package/lib/esm/core-react/utils/hooks/useTargeted.js.map +1 -1
  736. package/lib/esm/core-react/utils/hooks/useThrottledFn.js +3 -3
  737. package/lib/esm/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  738. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.d.ts.map +1 -1
  739. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js +3 -4
  740. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  741. package/lib/esm/core-react/utils/isPromiseLike.d.ts.map +1 -1
  742. package/lib/esm/core-react/utils/isPromiseLike.js +6 -4
  743. package/lib/esm/core-react/utils/isPromiseLike.js.map +1 -1
  744. package/lib/esm/core-react/utils/reuseOrCreatePromise.d.ts +14 -0
  745. package/lib/esm/core-react/utils/reuseOrCreatePromise.d.ts.map +1 -0
  746. package/lib/esm/core-react/utils/reuseOrCreatePromise.js +29 -0
  747. package/lib/esm/core-react/utils/reuseOrCreatePromise.js.map +1 -0
  748. package/lib/esm/core-react/utils/shallowDiffers.d.ts.map +1 -1
  749. package/lib/esm/core-react/utils/shallowDiffers.js +3 -3
  750. package/lib/esm/core-react/utils/shallowDiffers.js.map +1 -1
  751. package/lib/esm/core-react/utils/typeUtils.js +3 -3
  752. package/lib/esm/core-react/utils/typeUtils.js.map +1 -1
  753. package/lib/esm/core-react.d.ts +3 -3
  754. package/lib/esm/core-react.d.ts.map +1 -1
  755. package/lib/esm/core-react.js +6 -6
  756. package/lib/esm/core-react.js.map +1 -1
  757. package/lib/public/locales/en/UiCore.json +1 -1
  758. package/package.json +8 -17
@@ -1,7 +1,7 @@
1
1
  /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
5
  /** @packageDocumentation
6
6
  * @module Popup
7
7
  */
@@ -51,7 +51,8 @@ class Popup extends React.Component {
51
51
  return;
52
52
  if (this.props.isPinned)
53
53
  return;
54
- if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target))
54
+ if (!this.props.closeOnNestedPopupOutsideClick &&
55
+ this.isInCorePopup(event.target))
55
56
  return;
56
57
  if (this.props.onOutsideClick)
57
58
  return this.props.onOutsideClick(event);
@@ -64,7 +65,9 @@ class Popup extends React.Component {
64
65
  return;
65
66
  if (this.props.onContextMenu)
66
67
  return this.props.onContextMenu(event);
67
- const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;
68
+ const closeOnContextMenu = this.props.closeOnContextMenu !== undefined
69
+ ? this.props.closeOnContextMenu
70
+ : true;
68
71
  if (closeOnContextMenu)
69
72
  this._hide();
70
73
  };
@@ -102,7 +105,7 @@ class Popup extends React.Component {
102
105
  this._getPosition = (position) => {
103
106
  const activeWindow = this.getParentWindow();
104
107
  const { target, offset, top, left } = this.props;
105
- const offsetArrow = (this.props.showArrow) ? 6 : 0;
108
+ const offsetArrow = this.props.showArrow ? 6 : 0;
106
109
  // absolute position
107
110
  if (this._isPositionAbsolute())
108
111
  return { x: left, y: top };
@@ -118,7 +121,8 @@ class Popup extends React.Component {
118
121
  switch (position) {
119
122
  case RelativePosition.Top:
120
123
  point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
121
- point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
124
+ point.x =
125
+ scrollX + targetRect.left + targetRect.width / 2 - popupWidth / 2;
122
126
  break;
123
127
  case RelativePosition.TopLeft:
124
128
  point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
@@ -130,7 +134,8 @@ class Popup extends React.Component {
130
134
  break;
131
135
  case RelativePosition.Bottom:
132
136
  point.y = scrollY + targetRect.bottom + offset + offsetArrow;
133
- point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
137
+ point.x =
138
+ scrollX + targetRect.left + targetRect.width / 2 - popupWidth / 2;
134
139
  break;
135
140
  case RelativePosition.BottomLeft:
136
141
  point.y = scrollY + targetRect.bottom + offset + offsetArrow;
@@ -141,7 +146,8 @@ class Popup extends React.Component {
141
146
  point.x = scrollX + targetRect.right - popupWidth;
142
147
  break;
143
148
  case RelativePosition.Left:
144
- point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
149
+ point.y =
150
+ scrollY + targetRect.top + targetRect.height / 2 - popupHeight / 2;
145
151
  point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
146
152
  break;
147
153
  case RelativePosition.LeftTop:
@@ -149,7 +155,8 @@ class Popup extends React.Component {
149
155
  point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
150
156
  break;
151
157
  case RelativePosition.Right:
152
- point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
158
+ point.y =
159
+ scrollY + targetRect.top + targetRect.height / 2 - popupHeight / 2;
153
160
  point.x = scrollX + targetRect.right + offset + offsetArrow;
154
161
  break;
155
162
  case RelativePosition.RightTop:
@@ -230,8 +237,8 @@ class Popup extends React.Component {
230
237
  if (this.props.isOpen) {
231
238
  const position = this._toggleRelativePosition();
232
239
  const point = this._fitPopup(this._getPosition(position));
233
- if ((Math.abs(this.state.left - point.x) < 3) &&
234
- (Math.abs(this.state.top - point.y) < 3) &&
240
+ if (Math.abs(this.state.left - point.x) < 3 &&
241
+ Math.abs(this.state.top - point.y) < 3 &&
235
242
  this.state.position === position)
236
243
  return;
237
244
  this.setState({
@@ -287,7 +294,7 @@ class Popup extends React.Component {
287
294
  });
288
295
  }
289
296
  _isPositionAbsolute() {
290
- return (this.props.top !== -1 && this.props.left !== -1);
297
+ return this.props.top !== -1 && this.props.left !== -1;
291
298
  }
292
299
  _getClassNameByPosition(position) {
293
300
  if (!this._isPositionAbsolute()) {
@@ -328,7 +335,8 @@ class Popup extends React.Component {
328
335
  const borderTopWidth = parsePxString(style.borderTopWidth);
329
336
  const borderBottomWidth = parsePxString(style.borderBottomWidth);
330
337
  popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;
331
- popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;
338
+ popupHeight =
339
+ this._popup.clientHeight + borderTopWidth + borderBottomWidth;
332
340
  }
333
341
  return { popupWidth, popupHeight };
334
342
  }
@@ -342,13 +350,21 @@ class Popup extends React.Component {
342
350
  let newPosition = position;
343
351
  const activeWindow = this.getParentWindow();
344
352
  // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)
345
- const viewportRect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };
353
+ const viewportRect = {
354
+ left: activeWindow.scrollX,
355
+ top: activeWindow.scrollY,
356
+ right: activeWindow.scrollX + activeWindow.innerWidth,
357
+ bottom: activeWindow.scrollY + activeWindow.innerHeight,
358
+ };
346
359
  const targetRect = target.getBoundingClientRect();
347
360
  const { popupWidth, popupHeight } = this._getPopupDimensions();
348
361
  const containerStyle = activeWindow.getComputedStyle(target);
349
- const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;
362
+ const offsetArrow = this.props.showArrow
363
+ ? /* istanbul ignore next */ 10
364
+ : 2;
350
365
  const bottomMargin = parseMargin(containerStyle.marginBottom);
351
- if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {
366
+ if (targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset >
367
+ viewportRect.bottom) {
352
368
  if (newPosition === RelativePosition.Bottom)
353
369
  newPosition = RelativePosition.Top;
354
370
  else if (newPosition === RelativePosition.BottomLeft)
@@ -357,7 +373,8 @@ class Popup extends React.Component {
357
373
  newPosition = RelativePosition.TopRight;
358
374
  }
359
375
  const topMargin = parseMargin(containerStyle.marginTop);
360
- if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {
376
+ if (targetRect.top - popupHeight - topMargin - offsetArrow - offset <
377
+ viewportRect.top) {
361
378
  if (newPosition === RelativePosition.Top)
362
379
  newPosition = RelativePosition.Bottom;
363
380
  else if (newPosition === RelativePosition.TopLeft)
@@ -366,14 +383,16 @@ class Popup extends React.Component {
366
383
  newPosition = RelativePosition.BottomRight;
367
384
  }
368
385
  const leftMargin = parseMargin(containerStyle.marginLeft);
369
- if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {
386
+ if (targetRect.left - popupWidth - leftMargin - offsetArrow - offset <
387
+ viewportRect.left) {
370
388
  if (newPosition === RelativePosition.Left)
371
389
  newPosition = RelativePosition.Right;
372
390
  else if (newPosition === RelativePosition.LeftTop)
373
391
  newPosition = RelativePosition.RightTop;
374
392
  }
375
393
  const rightMargin = parseMargin(containerStyle.marginRight);
376
- if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {
394
+ if (targetRect.right + popupWidth + rightMargin + offsetArrow + offset >
395
+ viewportRect.right) {
377
396
  if (newPosition === RelativePosition.Right)
378
397
  newPosition = RelativePosition.Left;
379
398
  else if (newPosition === RelativePosition.RightTop)
@@ -384,7 +403,9 @@ class Popup extends React.Component {
384
403
  render() {
385
404
  var _a;
386
405
  const animate = this.props.animate !== undefined ? this.props.animate : true;
387
- const className = classnames("core-popup", this._getClassNameByPosition(this.state.position), this.props.showShadow && "core-popup-shadow", this.props.showArrow && "arrow", !animate && "core-popup-animation-none", this.props.className, this.state.animationEnded && "core-animation-ended", (!this.props.isOpen && this.props.keepContentsMounted) && "core-popup-hidden");
406
+ const className = classnames("core-popup", this._getClassNameByPosition(this.state.position), this.props.showShadow && "core-popup-shadow", this.props.showArrow && "arrow", !animate && "core-popup-animation-none", this.props.className, this.state.animationEnded && "core-animation-ended", !this.props.isOpen &&
407
+ this.props.keepContentsMounted &&
408
+ "core-popup-hidden");
388
409
  const style = {
389
410
  top: this.state.top,
390
411
  left: this.state.left,
@@ -394,8 +415,10 @@ class Popup extends React.Component {
394
415
  if (!this.props.isOpen && !this.props.keepContentsMounted) {
395
416
  return null;
396
417
  }
397
- return ReactDOM.createPortal((React.createElement("div", { className: className, "data-testid": "core-popup", ref: (element) => { this._popup = element; }, style: style, role: role, "aria-modal": true, tabIndex: -1, "aria-label": this.props.ariaLabel, onAnimationEnd: this._handleAnimationEnd },
398
- React.createElement(FocusTrap, { active: !!this.props.moveFocus, initialFocusElement: this.props.focusTarget, returnFocusOnDeactivate: true }, this.props.children))),
418
+ return ReactDOM.createPortal(React.createElement("div", { className: className, "data-testid": "core-popup", ref: (element) => {
419
+ this._popup = element;
420
+ }, style: style, role: role, "aria-modal": true, tabIndex: -1, "aria-label": this.props.ariaLabel, onAnimationEnd: this._handleAnimationEnd },
421
+ React.createElement(FocusTrap, { active: !!this.props.moveFocus, initialFocusElement: this.props.focusTarget, returnFocusOnDeactivate: true }, this.props.children)),
399
422
  // istanbul ignore next
400
423
  (_a = this.state.parentDocument.body.querySelector('[data-root-container="iui-root-id"]')) !== null && _a !== void 0 ? _a : this.state.parentDocument.body);
401
424
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,cAAc,CAAC;AACtB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAuFnD;;GAEG;AACH,MAAa,KAAM,SAAQ,KAAK,CAAC,SAAiC;IAGhE,YAAY,KAAiB;;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAC;QAHP,WAAM,GAAuB,IAAI,CAAC;QAkFlC,sBAAiB,GAAG,GAAG,EAAE;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACvE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1D,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,YAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC1E,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,YAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzE,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBAC3D,OAAO;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBACpB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5F,IAAI,YAAY;gBACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAgBM,wBAAmB,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACxD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBAC3D,OAAO;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACrB,OAAO;YAET,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAqB,CAAC;gBAC/F,OAAO;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;gBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBACvE,OAAO;YAET,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBAC3D,OAAO;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa;gBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9G,IAAI,kBAAkB;gBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAEM,oBAAe,GAAG,CAAC,KAAoB,EAAQ,EAAE;YACvD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACrB,OAAO;YAET,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,EAAE;gBACrE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5F,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,EAAE;oBAClC,IAAI,YAAY;wBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;wBAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBAC9C;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;QACH,CAAC,CAAC;QAEM,YAAO,GAAG,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC1D;iBAAM;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB;aACjC;QACH,CAAC,CAAC;QAEM,UAAK,GAAG,GAAG,EAAE;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACrB,OAAO;YAET,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC;QA8EM,iBAAY,GAAG,CAAC,QAA0B,EAAE,EAAE;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACjD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,oBAAoB;YACpB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAE7B,eAAe;YACf,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAC;YAEf,oBAAoB;YACpB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAErC,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAElD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE/D,QAAQ,QAAQ,EAAE;gBAChB,KAAK,gBAAgB,CAAC,GAAG;oBACvB,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;oBACxE,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBAChF,MAAM;gBAER,KAAK,gBAAgB,CAAC,OAAO;oBAC3B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;oBACxE,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;oBACpC,MAAM;gBAER,KAAK,gBAAgB,CAAC,QAAQ;oBAC5B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;oBACxE,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;oBAClD,MAAM;gBAER,KAAK,gBAAgB,CAAC,MAAM;oBAC1B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;oBAC7D,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBAChF,MAAM;gBAER,KAAK,gBAAgB,CAAC,UAAU;oBAC9B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;oBAC7D,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;oBACpC,MAAM;gBAER,KAAK,gBAAgB,CAAC,WAAW;oBAC/B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;oBAC7D,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;oBAClD,MAAM;gBAER,KAAK,gBAAgB,CAAC,IAAI;oBACxB,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;oBACjF,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;oBACxE,MAAM;gBAER,KAAK,gBAAgB,CAAC,OAAO;oBAC3B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;oBACnC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;oBACxE,MAAM;gBAER,KAAK,gBAAgB,CAAC,KAAK;oBACzB,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;oBACjF,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;oBAC5D,MAAM;gBAER,KAAK,gBAAgB,CAAC,QAAQ;oBAC5B,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;oBACnC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;oBAC5D,MAAM;aACT;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAqEF,oDAAoD;QAC5C,cAAS,GAAG,CAAC,KAAiB,EAAE,EAAE;YACxC,MAAM,WAAW,GAAG,KAAK,CAAC;YAE1B,qBAAqB;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO,WAAW,CAAC;aACpB;YAED,yDAAyD;YACzD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/D,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAE3C,qBAAqB;YACrB,IAAI,WAAW,CAAC,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE;gBAC7C,WAAW,CAAC,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;aAC3C;YAED,qBAAqB;YACrB,IAAI,WAAW,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU,EAAE;gBAC3C,WAAW,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;aACzC;YAED,qBAAqB;YACrB,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE;gBACrB,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;aACnB;YAED,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE;gBACrB,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;aACnB;YAED,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,KAA2C,EAAE,EAAE;YAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;aACzC;QACH,CAAC,CAAC;QAhcA,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,aAAa,mCAAI,QAAQ,CAAC;QAEpE,IAAI,CAAC,KAAK,GAAG;YACX,cAAc,EAAE,KAAK;YACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,cAAc;SACf,CAAC;IACJ,CAAC;IAYe,iBAAiB;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAEO,eAAe;;QACrB,uBAAuB;QACvB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,mCAAI,MAAM,CAAC;IACzD,CAAC;IAEe,kBAAkB,CAAC,aAAyB,EAAE,SAAqB;;QACjF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;SAC3C;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;YAC9C,uBAAuB;YACvB;gBACE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,aAAa,mCAAI,QAAQ,CAAC;gBACpE,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;oBAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;iBACnC;aACF;SACF;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAChC,OAAO;gBAET,IAAI,CAAC,QAAQ,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,CAAC;oBACb,GAAG,EAAE,KAAK,CAAC,CAAC;oBACZ,QAAQ;iBACT,CAAC,CAAC;aACJ;YACD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAkCO,aAAa,CAAC,OAAoB;QACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC9B,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;gBACpE,OAAO,IAAI,CAAC;SACf;aAAM;YACL,uBAAuB;YACvB,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;gBACpE,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAmEO,OAAO;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE;YAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;gBACnB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,QAAkB;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YACpB,OAAO;QAET,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YACpC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAChC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,uBAAuB,CAAC,QAA0B;QACxD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC/B,QAAQ,QAAQ,EAAE;gBAChB,KAAK,gBAAgB,CAAC,OAAO;oBAC3B,OAAO,qBAAqB,CAAC;gBAC/B,KAAK,gBAAgB,CAAC,QAAQ;oBAC5B,OAAO,sBAAsB,CAAC;gBAChC,KAAK,gBAAgB,CAAC,UAAU;oBAC9B,OAAO,wBAAwB,CAAC;gBAClC,KAAK,gBAAgB,CAAC,WAAW;oBAC/B,OAAO,yBAAyB,CAAC;gBACnC,KAAK,gBAAgB,CAAC,GAAG;oBACvB,OAAO,gBAAgB,CAAC;gBAC1B,KAAK,gBAAgB,CAAC,IAAI;oBACxB,OAAO,iBAAiB,CAAC;gBAC3B,KAAK,gBAAgB,CAAC,KAAK;oBACzB,OAAO,kBAAkB,CAAC;gBAC5B,KAAK,gBAAgB,CAAC,MAAM;oBAC1B,OAAO,mBAAmB,CAAC;gBAC7B,KAAK,gBAAgB,CAAC,OAAO;oBAC3B,OAAO,qBAAqB,CAAC;gBAC/B,KAAK,gBAAgB,CAAC,QAAQ;oBAC5B,OAAO,sBAAsB,CAAC;aACjC;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,mBAAmB;QACzB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC3D,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC;YAC1E,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,cAAc,GAAG,iBAAiB,CAAC;SAC7E;QAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IA+EO,uBAAuB;QAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YACzB,OAAO,QAAQ,CAAC;QAElB,qBAAqB;QACrB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,QAAQ,CAAC;QAElB,IAAI,WAAW,GAAG,QAAQ,CAAC;QAS3B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,qGAAqG;QACrG,MAAM,YAAY,GAAS,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACrM,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAClD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;YACjG,IAAI,WAAW,KAAK,gBAAgB,CAAC,MAAM;gBACzC,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC;iBAChC,IAAI,WAAW,KAAK,gBAAgB,CAAC,UAAU;gBAClD,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;iBACpC,IAAI,WAAW,KAAK,gBAAgB,CAAC,WAAW;gBACnD,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC;SAC3C;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE;YACxF,IAAI,WAAW,KAAK,gBAAgB,CAAC,GAAG;gBACtC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;iBACnC,IAAI,WAAW,KAAK,gBAAgB,CAAC,OAAO;gBAC/C,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC;iBACvC,IAAI,WAAW,KAAK,gBAAgB,CAAC,QAAQ;gBAChD,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC;SAC9C;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE;YAC1F,IAAI,WAAW,KAAK,gBAAgB,CAAC,IAAI;gBACvC,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC;iBAClC,IAAI,WAAW,KAAK,gBAAgB,CAAC,OAAO;gBAC/C,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC;SAC3C;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE;YAC7F,IAAI,WAAW,KAAK,gBAAgB,CAAC,KAAK;gBACxC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;iBACjC,IAAI,WAAW,KAAK,gBAAgB,CAAC,QAAQ;gBAChD,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC1C;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IA2Ce,MAAM;;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,SAAS,GAAG,UAAU,CAC1B,YAAY,EACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EACjD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,mBAAmB,EAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,EAC/B,CAAC,OAAO,IAAI,2BAA2B,EACvC,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,sBAAsB,EACnD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,CAC9E,CAAC;QAEF,MAAM,KAAK,GAAwB;YACjC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;SACpB,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAE,yBAAyB;QAErF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,QAAQ,CAAC,YAAY,CAC1B,CACE,6BACE,SAAS,EAAE,SAAS,iBAAc,YAAY,EAC9C,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,gBACE,IAAI,EAChB,QAAQ,EAAE,CAAC,CAAC,gBACA,IAAI,CAAC,KAAK,CAAC,SAAS,EAChC,cAAc,EAAE,IAAI,CAAC,mBAAmB;YAExC,oBAAC,SAAS,IAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,uBAAuB,EAAE,IAAI,IAClH,IAAI,CAAC,KAAK,CAAC,QAAQ,CACV,CACR,CACP;QACD,uBAAuB;QACvB,MAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAC1C,qCAAqC,CACtC,mCAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CACpC,CAAC;IACJ,CAAC;;AArea,kBAAY,GAAwB;IAChD,QAAQ,EAAE,gBAAgB,CAAC,MAAM;IACjC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC,CAAC;IACP,IAAI,EAAE,CAAC,CAAC;CACT,AARyB,CAQxB;SAzBS,KAAK;AAyflB,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO,MAAM,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC","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 Popup\n */\n\nimport \"./Popup.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\nimport { FocusTrap } from \"../focustrap/FocusTrap\";\nimport type { CommonProps } from \"../utils/Props\";\n\n// cSpell:ignore focustrap focusable alertdialog\n\n/** @internal */\ninterface PopupPoint {\n x: number;\n y: number;\n}\n\n/** Properties for the [[Popup]] component\n * @public\n */\nexport interface PopupProps extends CommonProps {\n /** Show or hide the box shadow (defaults to true) */\n showShadow: boolean;\n /** Show or hide the arrow (defaults to false) */\n showArrow: boolean;\n /** Indicates whether the popup is shown or not (defaults to false) */\n isOpen: boolean;\n /** Direction (relative to the target) to which the popup is expanded (defaults to Bottom) */\n position: RelativePosition;\n /** Top position (absolute positioning - defaults to 0) */\n top: number;\n /** Left position (absolute positioning - defaults to 0) */\n left: number;\n /** Function called when the popup is opened */\n onOpen?: () => void;\n /** Function called when user clicks outside the popup */\n onOutsideClick?: (e: MouseEvent) => void;\n /** Function called when the popup is closed */\n onClose?: () => void;\n /** Function called when the popup is closed on Enter */\n onEnter?: () => void;\n /** Function called when the wheel is used */\n onWheel?: (e: WheelEvent) => void;\n /** Function called when the right mouse button is pressed */\n onContextMenu?: (e: MouseEvent) => void;\n /** Offset from the parent (defaults to 4) */\n offset: number;\n /** Target element to position popup */\n target?: HTMLElement | null;\n /** Role - if not specified \"dialog\" is used */\n role?: \"dialog\" | \"alert\" | \"alertdialog\";\n /** accessibility label */\n ariaLabel?: string;\n /** set focus to popup - default to not set focus */\n moveFocus?: boolean;\n /** Element to receive focus, specified by React.RefObject or CSS selector string. If undefined and moveFocus is true then focus is moved to first focusable element. */\n focusTarget?: React.RefObject<HTMLElement> | string;\n /** Indicates whether the popup is pinned. */\n isPinned?: boolean;\n /** Indicates whether to use animation for open/close (defaults to true) */\n animate?: boolean;\n /** Indicates whether to close the popup when Enter is pressed (defaults to true) */\n closeOnEnter?: boolean;\n /** Indicates whether to close the popup when the wheel is used (defaults to true) */\n closeOnWheel?: boolean;\n /** Indicates whether to close the popup when the right mouse button is pressed (defaults to true) */\n closeOnContextMenu?: boolean;\n /** If false outside click processing and closing are skipped if click occurs in another Popup component, default to false. */\n closeOnNestedPopupOutsideClick?: boolean;\n /** If true the children are mounted once and unmounted when this component is unmounted. If false the\n * children are unmounted each time the popup is closed. */\n keepContentsMounted?: boolean;\n\n /**\n * If true the popup will remain open and will be repositioned when window resize events occur, default to false.\n * @beta\n * */\n repositionOnResize?: boolean;\n\n /** Content */\n children?: React.ReactNode;\n}\n\n/** @internal */\ninterface PopupState {\n isOpen: boolean;\n top: number;\n left: number;\n position: RelativePosition;\n parentDocument: Document;\n animationEnded: boolean;\n}\n\n/** Popup React component displays a popup relative to an optional target element.\n * @public\n */\nexport class Popup extends React.Component<PopupProps, PopupState> {\n private _popup: HTMLElement | null = null;\n\n constructor(props: PopupProps) {\n super(props);\n const parentDocument = this.props.target?.ownerDocument ?? document;\n\n this.state = {\n animationEnded: false,\n isOpen: this.props.isOpen,\n top: 0,\n left: 0,\n position: this.props.position,\n parentDocument,\n };\n }\n\n public static defaultProps: Partial<PopupProps> = {\n position: RelativePosition.Bottom,\n showShadow: true,\n showArrow: false,\n isOpen: false,\n offset: 4,\n top: -1,\n left: -1,\n };\n\n public override componentDidMount() {\n if (this.props.isOpen) {\n this._onShow();\n }\n }\n\n private getParentWindow() {\n // istanbul ignore next\n return this.state.parentDocument.defaultView ?? window;\n }\n\n public override componentDidUpdate(previousProps: PopupProps, prevState: PopupState) {\n if (this.state.position !== prevState.position) {\n this.setState( { animationEnded: false });\n }\n\n if (this.props.target !== previousProps.target) {\n // istanbul ignore next\n {\n const parentDocument = this.props.target?.ownerDocument ?? document;\n if (parentDocument !== this.state.parentDocument) {\n this._unBindWindowEvents();\n this.setState({ parentDocument });\n }\n }\n }\n\n if (this.props.isOpen === previousProps.isOpen) {\n if (this.props.isOpen) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n if ((Math.abs(this.state.left - point.x) < 3) &&\n (Math.abs(this.state.top - point.y) < 3) &&\n this.state.position === position)\n return;\n\n this.setState({\n left: point.x,\n top: point.y,\n position,\n });\n }\n return;\n }\n\n if (this.props.isOpen) {\n this._onShow();\n } else {\n this._onClose();\n }\n }\n\n public override componentWillUnmount() {\n this._unBindWindowEvents();\n }\n\n private _bindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.addEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.addEventListener(\"resize\", this._resize);\n activeWindow.addEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.addEventListener(\"scroll\", this._hide);\n activeWindow.addEventListener(\"wheel\", this._handleWheel);\n activeWindow.addEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _unBindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.removeEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.removeEventListener(\"resize\", this._resize);\n activeWindow.removeEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.removeEventListener(\"scroll\", this._hide);\n activeWindow.removeEventListener(\"wheel\", this._handleWheel);\n activeWindow.removeEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _handleWheel = (event: WheelEvent) => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.onWheel)\n return this.props.onWheel(event);\n\n const closeOnWheel = this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;\n if (closeOnWheel)\n this._hide();\n };\n\n private isInCorePopup(element: HTMLElement): boolean {\n if (element.nodeName === \"DIV\") {\n if (element.classList && element.classList.contains(\"core-popup\"))\n return true;\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n } else {\n // istanbul ignore else\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n }\n return false;\n }\n\n private _handleOutsideClick = (event: MouseEvent): void => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.isPinned)\n return;\n\n if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target as HTMLElement))\n return;\n\n if (this.props.onOutsideClick)\n return this.props.onOutsideClick(event);\n\n if (this.props.target && this.props.target.contains(event.target as Node))\n return;\n\n this._onClose();\n };\n\n private _handleContextMenu = (event: MouseEvent) => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.onContextMenu)\n return this.props.onContextMenu(event);\n\n const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;\n if (closeOnContextMenu)\n this._hide();\n };\n\n private _handleKeyboard = (event: KeyboardEvent): void => {\n if (this.props.isPinned)\n return;\n\n if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {\n const closeOnEnter = this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;\n if (event.key === SpecialKey.Enter) {\n if (closeOnEnter)\n this._onClose(true);\n else\n this.props.onEnter && this.props.onEnter();\n } else {\n this._onClose(false);\n }\n }\n };\n\n private _resize = () => {\n if (this.props.repositionOnResize) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n this.setState({ left: point.x, top: point.y, position });\n } else {\n this._hide(); // legacy behavior\n }\n };\n\n private _hide = () => {\n if (this.props.isPinned)\n return;\n\n this._onClose();\n };\n\n private _onShow() {\n this._bindWindowEvents();\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n\n this.setState({ left: point.x, top: point.y, isOpen: true, position }, () => {\n if (this.props.onOpen)\n this.props.onOpen();\n });\n }\n\n private _onClose(enterKey?: boolean) {\n if (!this.state.isOpen)\n return;\n\n this._unBindWindowEvents();\n\n this.setState({ isOpen: false }, () => {\n if (enterKey && this.props.onEnter)\n this.props.onEnter();\n if (this.props.onClose)\n this.props.onClose();\n });\n }\n\n private _isPositionAbsolute(): boolean {\n return (this.props.top !== -1 && this.props.left !== -1);\n }\n\n private _getClassNameByPosition(position: RelativePosition): string {\n if (!this._isPositionAbsolute()) {\n switch (position) {\n case RelativePosition.TopLeft:\n return \"core-popup-top-left\";\n case RelativePosition.TopRight:\n return \"core-popup-top-right\";\n case RelativePosition.BottomLeft:\n return \"core-popup-bottom-left\";\n case RelativePosition.BottomRight:\n return \"core-popup-bottom-right\";\n case RelativePosition.Top:\n return \"core-popup-top\";\n case RelativePosition.Left:\n return \"core-popup-left\";\n case RelativePosition.Right:\n return \"core-popup-right\";\n case RelativePosition.Bottom:\n return \"core-popup-bottom\";\n case RelativePosition.LeftTop:\n return \"core-popup-left-top\";\n case RelativePosition.RightTop:\n return \"core-popup-right-top\";\n }\n }\n\n return \"\";\n }\n\n private _getPopupDimensions(): { popupWidth: number, popupHeight: number } {\n let popupWidth = 0;\n let popupHeight = 0;\n // istanbul ignore else\n if (this._popup) {\n const activeWindow = this.getParentWindow();\n const style = activeWindow.getComputedStyle(this._popup);\n const borderLeftWidth = parsePxString(style.borderLeftWidth);\n const borderRightWidth = parsePxString(style.borderRightWidth);\n const borderTopWidth = parsePxString(style.borderTopWidth);\n const borderBottomWidth = parsePxString(style.borderBottomWidth);\n popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;\n popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;\n }\n\n return { popupWidth, popupHeight };\n }\n\n private _getPosition = (position: RelativePosition) => {\n const activeWindow = this.getParentWindow();\n const { target, offset, top, left } = this.props;\n const offsetArrow = (this.props.showArrow) ? 6 : 0;\n\n // absolute position\n if (this._isPositionAbsolute())\n return { x: left, y: top };\n\n // sanity check\n const point = { x: 0, y: 0 };\n if (!this._popup || !target)\n return point;\n\n // relative position\n const scrollY = activeWindow.scrollY;\n const scrollX = activeWindow.scrollX;\n\n const targetRect = target.getBoundingClientRect();\n\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n\n switch (position) {\n case RelativePosition.Top:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\n break;\n\n case RelativePosition.TopLeft:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.TopRight:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Bottom:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\n break;\n\n case RelativePosition.BottomLeft:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.BottomRight:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Left:\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.LeftTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.Right:\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n\n case RelativePosition.RightTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n }\n\n return point;\n };\n\n private _toggleRelativePosition(): RelativePosition {\n const { target, position, offset } = this.props;\n\n if (!this._popup || !target)\n return position;\n\n // istanbul ignore if\n if (this._isPositionAbsolute())\n return position;\n\n let newPosition = position;\n\n interface Rect {\n left: number;\n top: number;\n right: number;\n bottom: number;\n }\n\n const activeWindow = this.getParentWindow();\n\n // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)\n const viewportRect: Rect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };\n const targetRect = target.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const containerStyle = activeWindow.getComputedStyle(target);\n const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;\n\n const bottomMargin = parseMargin(containerStyle.marginBottom);\n if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {\n if (newPosition === RelativePosition.Bottom)\n newPosition = RelativePosition.Top;\n else if (newPosition === RelativePosition.BottomLeft)\n newPosition = RelativePosition.TopLeft;\n else if (newPosition === RelativePosition.BottomRight)\n newPosition = RelativePosition.TopRight;\n }\n\n const topMargin = parseMargin(containerStyle.marginTop);\n if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {\n if (newPosition === RelativePosition.Top)\n newPosition = RelativePosition.Bottom;\n else if (newPosition === RelativePosition.TopLeft)\n newPosition = RelativePosition.BottomLeft;\n else if (newPosition === RelativePosition.TopRight)\n newPosition = RelativePosition.BottomRight;\n }\n\n const leftMargin = parseMargin(containerStyle.marginLeft);\n if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {\n if (newPosition === RelativePosition.Left)\n newPosition = RelativePosition.Right;\n else if (newPosition === RelativePosition.LeftTop)\n newPosition = RelativePosition.RightTop;\n }\n\n const rightMargin = parseMargin(containerStyle.marginRight);\n if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {\n if (newPosition === RelativePosition.Right)\n newPosition = RelativePosition.Left;\n else if (newPosition === RelativePosition.RightTop)\n newPosition = RelativePosition.LeftTop;\n }\n\n return newPosition;\n }\n\n // fit the popup within the extents of the view port\n private _fitPopup = (point: PopupPoint) => {\n const fittedPoint = point;\n\n // istanbul ignore if\n if (!this._popup) {\n return fittedPoint;\n }\n\n // const popupRect = this._popup.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const { innerWidth, innerHeight } = window;\n\n // istanbul ignore if\n if (fittedPoint.y + popupHeight > innerHeight) {\n fittedPoint.y = innerHeight - popupHeight;\n }\n\n // istanbul ignore if\n if (fittedPoint.x + popupWidth > innerWidth) {\n fittedPoint.x = innerWidth - popupWidth;\n }\n\n // istanbul ignore if\n if (fittedPoint.y < 0) {\n fittedPoint.y = 0;\n }\n\n if (fittedPoint.x < 0) {\n fittedPoint.x = 0;\n }\n\n return fittedPoint;\n };\n\n private _handleAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n if (event.target === this._popup) {\n this.setState({ animationEnded: true });\n }\n };\n\n public override render() {\n const animate = this.props.animate !== undefined ? this.props.animate : true;\n const className = classnames(\n \"core-popup\",\n this._getClassNameByPosition(this.state.position),\n this.props.showShadow && \"core-popup-shadow\",\n this.props.showArrow && \"arrow\",\n !animate && \"core-popup-animation-none\",\n this.props.className,\n this.state.animationEnded && \"core-animation-ended\",\n (!this.props.isOpen && this.props.keepContentsMounted) && \"core-popup-hidden\"\n );\n\n const style: React.CSSProperties = {\n top: this.state.top,\n left: this.state.left,\n ...this.props.style,\n };\n\n const role = this.props.role ? this.props.role : \"dialog\"; // accessibility property\n\n if (!this.props.isOpen && !this.props.keepContentsMounted) {\n return null;\n }\n\n return ReactDOM.createPortal(\n (\n <div\n className={className} data-testid=\"core-popup\"\n ref={(element) => { this._popup = element; }}\n style={style}\n role={role}\n aria-modal={true}\n tabIndex={-1}\n aria-label={this.props.ariaLabel}\n onAnimationEnd={this._handleAnimationEnd}\n >\n <FocusTrap active={!!this.props.moveFocus} initialFocusElement={this.props.focusTarget} returnFocusOnDeactivate={true}>\n {this.props.children}\n </FocusTrap>\n </div>\n ),\n // istanbul ignore next\n this.state.parentDocument.body.querySelector(\n '[data-root-container=\"iui-root-id\"]'\n ) ?? this.state.parentDocument.body\n );\n }\n}\n\nfunction parsePxString(pxStr: string): number {\n const parsed = parseInt(pxStr, 10);\n return parsed || 0;\n}\n\nfunction parseMargin(value: string) {\n return value ? /* istanbul ignore next */ parseFloat(value) : 0;\n}\n"]}
1
+ {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.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 Popup\n */\n\nimport \"./Popup.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\nimport { FocusTrap } from \"../focustrap/FocusTrap\";\nimport type { CommonProps } from \"../utils/Props\";\n\n// cSpell:ignore focustrap focusable alertdialog\n\n/** @internal */\ninterface PopupPoint {\n x: number;\n y: number;\n}\n\n/** Properties for the [[Popup]] component\n * @public\n */\nexport interface PopupProps extends CommonProps {\n /** Show or hide the box shadow (defaults to true) */\n showShadow: boolean;\n /** Show or hide the arrow (defaults to false) */\n showArrow: boolean;\n /** Indicates whether the popup is shown or not (defaults to false) */\n isOpen: boolean;\n /** Direction (relative to the target) to which the popup is expanded (defaults to Bottom) */\n position: RelativePosition;\n /** Top position (absolute positioning - defaults to 0) */\n top: number;\n /** Left position (absolute positioning - defaults to 0) */\n left: number;\n /** Function called when the popup is opened */\n onOpen?: () => void;\n /** Function called when user clicks outside the popup */\n onOutsideClick?: (e: MouseEvent) => void;\n /** Function called when the popup is closed */\n onClose?: () => void;\n /** Function called when the popup is closed on Enter */\n onEnter?: () => void;\n /** Function called when the wheel is used */\n onWheel?: (e: WheelEvent) => void;\n /** Function called when the right mouse button is pressed */\n onContextMenu?: (e: MouseEvent) => void;\n /** Offset from the parent (defaults to 4) */\n offset: number;\n /** Target element to position popup */\n target?: HTMLElement | null;\n /** Role - if not specified \"dialog\" is used */\n role?: \"dialog\" | \"alert\" | \"alertdialog\";\n /** accessibility label */\n ariaLabel?: string;\n /** set focus to popup - default to not set focus */\n moveFocus?: boolean;\n /** Element to receive focus, specified by React.RefObject or CSS selector string. If undefined and moveFocus is true then focus is moved to first focusable element. */\n focusTarget?: React.RefObject<HTMLElement> | string;\n /** Indicates whether the popup is pinned. */\n isPinned?: boolean;\n /** Indicates whether to use animation for open/close (defaults to true) */\n animate?: boolean;\n /** Indicates whether to close the popup when Enter is pressed (defaults to true) */\n closeOnEnter?: boolean;\n /** Indicates whether to close the popup when the wheel is used (defaults to true) */\n closeOnWheel?: boolean;\n /** Indicates whether to close the popup when the right mouse button is pressed (defaults to true) */\n closeOnContextMenu?: boolean;\n /** If false outside click processing and closing are skipped if click occurs in another Popup component, default to false. */\n closeOnNestedPopupOutsideClick?: boolean;\n /** If true the children are mounted once and unmounted when this component is unmounted. If false the\n * children are unmounted each time the popup is closed. */\n keepContentsMounted?: boolean;\n\n /**\n * If true the popup will remain open and will be repositioned when window resize events occur, default to false.\n * @beta\n * */\n repositionOnResize?: boolean;\n\n /** Content */\n children?: React.ReactNode;\n}\n\n/** @internal */\ninterface PopupState {\n isOpen: boolean;\n top: number;\n left: number;\n position: RelativePosition;\n parentDocument: Document;\n animationEnded: boolean;\n}\n\n/** Popup React component displays a popup relative to an optional target element.\n * @public\n */\nexport class Popup extends React.Component<PopupProps, PopupState> {\n private _popup: HTMLElement | null = null;\n\n constructor(props: PopupProps) {\n super(props);\n const parentDocument = this.props.target?.ownerDocument ?? document;\n\n this.state = {\n animationEnded: false,\n isOpen: this.props.isOpen,\n top: 0,\n left: 0,\n position: this.props.position,\n parentDocument,\n };\n }\n\n public static defaultProps: Partial<PopupProps> = {\n position: RelativePosition.Bottom,\n showShadow: true,\n showArrow: false,\n isOpen: false,\n offset: 4,\n top: -1,\n left: -1,\n };\n\n public override componentDidMount() {\n if (this.props.isOpen) {\n this._onShow();\n }\n }\n\n private getParentWindow() {\n // istanbul ignore next\n return this.state.parentDocument.defaultView ?? window;\n }\n\n public override componentDidUpdate(\n previousProps: PopupProps,\n prevState: PopupState\n ) {\n if (this.state.position !== prevState.position) {\n this.setState({ animationEnded: false });\n }\n\n if (this.props.target !== previousProps.target) {\n // istanbul ignore next\n {\n const parentDocument = this.props.target?.ownerDocument ?? document;\n if (parentDocument !== this.state.parentDocument) {\n this._unBindWindowEvents();\n this.setState({ parentDocument });\n }\n }\n }\n\n if (this.props.isOpen === previousProps.isOpen) {\n if (this.props.isOpen) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n if (\n Math.abs(this.state.left - point.x) < 3 &&\n Math.abs(this.state.top - point.y) < 3 &&\n this.state.position === position\n )\n return;\n\n this.setState({\n left: point.x,\n top: point.y,\n position,\n });\n }\n return;\n }\n\n if (this.props.isOpen) {\n this._onShow();\n } else {\n this._onClose();\n }\n }\n\n public override componentWillUnmount() {\n this._unBindWindowEvents();\n }\n\n private _bindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.addEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.addEventListener(\"resize\", this._resize);\n activeWindow.addEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.addEventListener(\"scroll\", this._hide);\n activeWindow.addEventListener(\"wheel\", this._handleWheel);\n activeWindow.addEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _unBindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.removeEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.removeEventListener(\"resize\", this._resize);\n activeWindow.removeEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.removeEventListener(\"scroll\", this._hide);\n activeWindow.removeEventListener(\"wheel\", this._handleWheel);\n activeWindow.removeEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _handleWheel = (event: WheelEvent) => {\n if (this._popup && this._popup.contains(event.target as Node)) return;\n\n if (this.props.onWheel) return this.props.onWheel(event);\n\n const closeOnWheel =\n this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;\n if (closeOnWheel) this._hide();\n };\n\n private isInCorePopup(element: HTMLElement): boolean {\n if (element.nodeName === \"DIV\") {\n if (element.classList && element.classList.contains(\"core-popup\"))\n return true;\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n } else {\n // istanbul ignore else\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n }\n return false;\n }\n\n private _handleOutsideClick = (event: MouseEvent): void => {\n if (this._popup && this._popup.contains(event.target as Node)) return;\n\n if (this.props.isPinned) return;\n\n if (\n !this.props.closeOnNestedPopupOutsideClick &&\n this.isInCorePopup(event.target as HTMLElement)\n )\n return;\n\n if (this.props.onOutsideClick) return this.props.onOutsideClick(event);\n\n if (this.props.target && this.props.target.contains(event.target as Node))\n return;\n\n this._onClose();\n };\n\n private _handleContextMenu = (event: MouseEvent) => {\n if (this._popup && this._popup.contains(event.target as Node)) return;\n\n if (this.props.onContextMenu) return this.props.onContextMenu(event);\n\n const closeOnContextMenu =\n this.props.closeOnContextMenu !== undefined\n ? this.props.closeOnContextMenu\n : true;\n if (closeOnContextMenu) this._hide();\n };\n\n private _handleKeyboard = (event: KeyboardEvent): void => {\n if (this.props.isPinned) return;\n\n if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {\n const closeOnEnter =\n this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;\n if (event.key === SpecialKey.Enter) {\n if (closeOnEnter) this._onClose(true);\n else this.props.onEnter && this.props.onEnter();\n } else {\n this._onClose(false);\n }\n }\n };\n\n private _resize = () => {\n if (this.props.repositionOnResize) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n this.setState({ left: point.x, top: point.y, position });\n } else {\n this._hide(); // legacy behavior\n }\n };\n\n private _hide = () => {\n if (this.props.isPinned) return;\n\n this._onClose();\n };\n\n private _onShow() {\n this._bindWindowEvents();\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n\n this.setState(\n { left: point.x, top: point.y, isOpen: true, position },\n () => {\n if (this.props.onOpen) this.props.onOpen();\n }\n );\n }\n\n private _onClose(enterKey?: boolean) {\n if (!this.state.isOpen) return;\n\n this._unBindWindowEvents();\n\n this.setState({ isOpen: false }, () => {\n if (enterKey && this.props.onEnter) this.props.onEnter();\n if (this.props.onClose) this.props.onClose();\n });\n }\n\n private _isPositionAbsolute(): boolean {\n return this.props.top !== -1 && this.props.left !== -1;\n }\n\n private _getClassNameByPosition(position: RelativePosition): string {\n if (!this._isPositionAbsolute()) {\n switch (position) {\n case RelativePosition.TopLeft:\n return \"core-popup-top-left\";\n case RelativePosition.TopRight:\n return \"core-popup-top-right\";\n case RelativePosition.BottomLeft:\n return \"core-popup-bottom-left\";\n case RelativePosition.BottomRight:\n return \"core-popup-bottom-right\";\n case RelativePosition.Top:\n return \"core-popup-top\";\n case RelativePosition.Left:\n return \"core-popup-left\";\n case RelativePosition.Right:\n return \"core-popup-right\";\n case RelativePosition.Bottom:\n return \"core-popup-bottom\";\n case RelativePosition.LeftTop:\n return \"core-popup-left-top\";\n case RelativePosition.RightTop:\n return \"core-popup-right-top\";\n }\n }\n\n return \"\";\n }\n\n private _getPopupDimensions(): { popupWidth: number; popupHeight: number } {\n let popupWidth = 0;\n let popupHeight = 0;\n // istanbul ignore else\n if (this._popup) {\n const activeWindow = this.getParentWindow();\n const style = activeWindow.getComputedStyle(this._popup);\n const borderLeftWidth = parsePxString(style.borderLeftWidth);\n const borderRightWidth = parsePxString(style.borderRightWidth);\n const borderTopWidth = parsePxString(style.borderTopWidth);\n const borderBottomWidth = parsePxString(style.borderBottomWidth);\n popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;\n popupHeight =\n this._popup.clientHeight + borderTopWidth + borderBottomWidth;\n }\n\n return { popupWidth, popupHeight };\n }\n\n private _getPosition = (position: RelativePosition) => {\n const activeWindow = this.getParentWindow();\n const { target, offset, top, left } = this.props;\n const offsetArrow = this.props.showArrow ? 6 : 0;\n\n // absolute position\n if (this._isPositionAbsolute()) return { x: left, y: top };\n\n // sanity check\n const point = { x: 0, y: 0 };\n if (!this._popup || !target) return point;\n\n // relative position\n const scrollY = activeWindow.scrollY;\n const scrollX = activeWindow.scrollX;\n\n const targetRect = target.getBoundingClientRect();\n\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n\n switch (position) {\n case RelativePosition.Top:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x =\n scrollX + targetRect.left + targetRect.width / 2 - popupWidth / 2;\n break;\n\n case RelativePosition.TopLeft:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.TopRight:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Bottom:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x =\n scrollX + targetRect.left + targetRect.width / 2 - popupWidth / 2;\n break;\n\n case RelativePosition.BottomLeft:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.BottomRight:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Left:\n point.y =\n scrollY + targetRect.top + targetRect.height / 2 - popupHeight / 2;\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.LeftTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.Right:\n point.y =\n scrollY + targetRect.top + targetRect.height / 2 - popupHeight / 2;\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n\n case RelativePosition.RightTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n }\n\n return point;\n };\n\n private _toggleRelativePosition(): RelativePosition {\n const { target, position, offset } = this.props;\n\n if (!this._popup || !target) return position;\n\n // istanbul ignore if\n if (this._isPositionAbsolute()) return position;\n\n let newPosition = position;\n\n interface Rect {\n left: number;\n top: number;\n right: number;\n bottom: number;\n }\n\n const activeWindow = this.getParentWindow();\n\n // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)\n const viewportRect: Rect = {\n left: activeWindow.scrollX,\n top: activeWindow.scrollY,\n right: activeWindow.scrollX + activeWindow.innerWidth,\n bottom: activeWindow.scrollY + activeWindow.innerHeight,\n };\n const targetRect = target.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const containerStyle = activeWindow.getComputedStyle(target);\n const offsetArrow = this.props.showArrow\n ? /* istanbul ignore next */ 10\n : 2;\n\n const bottomMargin = parseMargin(containerStyle.marginBottom);\n if (\n targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset >\n viewportRect.bottom\n ) {\n if (newPosition === RelativePosition.Bottom)\n newPosition = RelativePosition.Top;\n else if (newPosition === RelativePosition.BottomLeft)\n newPosition = RelativePosition.TopLeft;\n else if (newPosition === RelativePosition.BottomRight)\n newPosition = RelativePosition.TopRight;\n }\n\n const topMargin = parseMargin(containerStyle.marginTop);\n if (\n targetRect.top - popupHeight - topMargin - offsetArrow - offset <\n viewportRect.top\n ) {\n if (newPosition === RelativePosition.Top)\n newPosition = RelativePosition.Bottom;\n else if (newPosition === RelativePosition.TopLeft)\n newPosition = RelativePosition.BottomLeft;\n else if (newPosition === RelativePosition.TopRight)\n newPosition = RelativePosition.BottomRight;\n }\n\n const leftMargin = parseMargin(containerStyle.marginLeft);\n if (\n targetRect.left - popupWidth - leftMargin - offsetArrow - offset <\n viewportRect.left\n ) {\n if (newPosition === RelativePosition.Left)\n newPosition = RelativePosition.Right;\n else if (newPosition === RelativePosition.LeftTop)\n newPosition = RelativePosition.RightTop;\n }\n\n const rightMargin = parseMargin(containerStyle.marginRight);\n if (\n targetRect.right + popupWidth + rightMargin + offsetArrow + offset >\n viewportRect.right\n ) {\n if (newPosition === RelativePosition.Right)\n newPosition = RelativePosition.Left;\n else if (newPosition === RelativePosition.RightTop)\n newPosition = RelativePosition.LeftTop;\n }\n\n return newPosition;\n }\n\n // fit the popup within the extents of the view port\n private _fitPopup = (point: PopupPoint) => {\n const fittedPoint = point;\n\n // istanbul ignore if\n if (!this._popup) {\n return fittedPoint;\n }\n\n // const popupRect = this._popup.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const { innerWidth, innerHeight } = window;\n\n // istanbul ignore if\n if (fittedPoint.y + popupHeight > innerHeight) {\n fittedPoint.y = innerHeight - popupHeight;\n }\n\n // istanbul ignore if\n if (fittedPoint.x + popupWidth > innerWidth) {\n fittedPoint.x = innerWidth - popupWidth;\n }\n\n // istanbul ignore if\n if (fittedPoint.y < 0) {\n fittedPoint.y = 0;\n }\n\n if (fittedPoint.x < 0) {\n fittedPoint.x = 0;\n }\n\n return fittedPoint;\n };\n\n private _handleAnimationEnd = (\n event: React.AnimationEvent<HTMLDivElement>\n ) => {\n if (event.target === this._popup) {\n this.setState({ animationEnded: true });\n }\n };\n\n public override render() {\n const animate =\n this.props.animate !== undefined ? this.props.animate : true;\n const className = classnames(\n \"core-popup\",\n this._getClassNameByPosition(this.state.position),\n this.props.showShadow && \"core-popup-shadow\",\n this.props.showArrow && \"arrow\",\n !animate && \"core-popup-animation-none\",\n this.props.className,\n this.state.animationEnded && \"core-animation-ended\",\n !this.props.isOpen &&\n this.props.keepContentsMounted &&\n \"core-popup-hidden\"\n );\n\n const style: React.CSSProperties = {\n top: this.state.top,\n left: this.state.left,\n ...this.props.style,\n };\n\n const role = this.props.role ? this.props.role : \"dialog\"; // accessibility property\n\n if (!this.props.isOpen && !this.props.keepContentsMounted) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <div\n className={className}\n data-testid=\"core-popup\"\n ref={(element) => {\n this._popup = element;\n }}\n style={style}\n role={role}\n aria-modal={true}\n tabIndex={-1}\n aria-label={this.props.ariaLabel}\n onAnimationEnd={this._handleAnimationEnd}\n >\n <FocusTrap\n active={!!this.props.moveFocus}\n initialFocusElement={this.props.focusTarget}\n returnFocusOnDeactivate={true}\n >\n {this.props.children}\n </FocusTrap>\n </div>,\n // istanbul ignore next\n this.state.parentDocument.body.querySelector(\n '[data-root-container=\"iui-root-id\"]'\n ) ?? this.state.parentDocument.body\n );\n }\n}\n\nfunction parsePxString(pxStr: string): number {\n const parsed = parseInt(pxStr, 10);\n return parsed || 0;\n}\n\nfunction parseMargin(value: string) {\n return value ? /* istanbul ignore next */ parseFloat(value) : 0;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Annulus.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/Annulus.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;;GAGG;AACH,qBAAa,IAAI;IACR,EAAE,EAAE,KAAK,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;gBAEL,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK;IAKlC,0EAA0E;IACnE,MAAM,SAAU,IAAI,aAAwD;CACpF;AAED;;GAEG;AACH,qBAAa,MAAM;IACV,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBACV,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM;CAI5C;AAED;;GAEG;AACH,qBAAa,OAAO;IACX,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;gBAET,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAMvE;AAED;;GAEG;AACH,qBAAa,aAAa;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;IAEjB;;;;;OAKG;gBACS,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAgClE"}
1
+ {"version":3,"file":"Annulus.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/Annulus.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;;GAGG;AACH,qBAAa,IAAI;IACR,EAAE,EAAE,KAAK,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;gBAEL,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK;IAKlC,0EAA0E;IACnE,MAAM,SAAU,IAAI,aAC0B;CACtD;AAED;;GAEG;AACH,qBAAa,MAAM;IACV,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBACV,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM;CAI5C;AAED;;GAEG;AACH,qBAAa,OAAO;IACX,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;gBAET,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAMvE;AAED;;GAEG;AACH,qBAAa,aAAa;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;IAEjB;;;;;OAKG;gBACS,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAiDlE"}
@@ -1,7 +1,7 @@
1
1
  /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
5
  /** @packageDocumentation
6
6
  * @module RadialMenu
7
7
  */
@@ -62,7 +62,7 @@ export class AnnularSector {
62
62
  this.innerEnd = new Point(cx + inner * Math.cos(endAngle), cy + inner * Math.sin(endAngle));
63
63
  this.end = new Line(this.outerEnd, this.innerEnd);
64
64
  const angleDiff = endAngle - startAngle;
65
- const largeArc = (angleDiff % (Math.PI * 2)) > Math.PI ? /* istanbul ignore next */ 1 : 0;
65
+ const largeArc = angleDiff % (Math.PI * 2) > Math.PI ? /* istanbul ignore next */ 1 : 0;
66
66
  const sectorCommands = [];
67
67
  sectorCommands.push(`M${this.innerStart.x},${this.innerStart.y}`); // moveTo
68
68
  sectorCommands.push(`L${this.outerStart.x},${this.outerStart.y}`); // lineTo
@@ -1 +1 @@
1
- {"version":3,"file":"Annulus.js","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/Annulus.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,IAAI;IAIf,YAAY,EAAU,EAAE,EAAU;QAKlC,0EAA0E;QACnE,WAAM,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QALjF,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;IAC9B,CAAC;CAIF;AAED;;GAEG;AACH,MAAM,OAAO,MAAM;IAGjB,YAAY,MAAc,EAAE,MAAe;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,OAAO;IAKlB,YAAY,MAAc,EAAE,WAAoB,EAAE,WAAoB;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAEpC,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAcxB;;;;;OAKG;IACH,YAAY,MAAe,EAAE,UAAkB,EAAE,QAAgB;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,0DAA0D;QAC1D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAElC,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1F,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5E,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5E,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;QACzG,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QACxE,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;QAC7G,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;QAEtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;CACF","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 RadialMenu\n */\n\nimport { Point } from \"../utils/Point\";\n\n/**\n * 2D Line consisting of a start point, and an end point\n * @internal\n */\nexport class Line {\n public p1: Point;\n public p2: Point;\n\n constructor(p1?: Point, p2?: Point) {\n this.p1 = p1 || new Point();\n this.p2 = p2 || new Point();\n }\n\n /** checks for equality with the components of this, and line parameter */\n public equals = (line: Line) => this.p1.equals(line.p1) && this.p2.equals(line.p2);\n}\n\n/** @internal\n * 2D Circle\n */\nexport class Circle {\n public center: Point;\n public radius: number;\n constructor(center?: Point, radius?: number) {\n this.center = center || new Point();\n this.radius = radius || 0;\n }\n}\n\n/** @internal\n * 2D Annulus (2D doughnut shape/flattened torus) defined by an inner and outer circle with a shared center point.\n */\nexport class Annulus {\n public center: Point;\n public inner: Circle;\n public outer: Circle;\n\n constructor(center?: Point, innerRadius?: number, outerRadius?: number) {\n this.center = center || new Point();\n\n this.inner = new Circle(center, innerRadius);\n this.outer = new Circle(center, outerRadius);\n }\n}\n\n/** @internal\n * 2D Sector of an Annulus, defined by both a parent annulus, a startAngle, and an endAngle.\n */\nexport class AnnularSector {\n public parent: Annulus;\n public startAngle: number;\n public endAngle: number;\n\n public path: string;\n\n public innerStart: Point;\n public outerStart: Point;\n public start: Line;\n public innerEnd: Point;\n public outerEnd: Point;\n public end: Line;\n\n /**\n * initialize AnnularSector on parent annulus, and generate SVG Path to store in this.path\n * @param parent parent annulus to initialize sector on.\n * @param startAngle angle to begin the annular sector on.\n * @param endAngle angle to end the annular sector on.\n */\n constructor(parent: Annulus, startAngle: number, endAngle: number) {\n this.parent = parent;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n\n // adapted from https://gist.github.com/buschtoens/4190516\n const { x: cx, y: cy } = parent.center;\n const inner = parent.inner.radius;\n const outer = parent.outer.radius;\n\n this.innerStart = new Point(cx + inner * Math.cos(startAngle), cy + inner * Math.sin(startAngle));\n this.outerStart = new Point(cx + outer * Math.cos(startAngle), cy + outer * Math.sin(startAngle));\n this.start = new Line(this.innerStart, this.outerStart);\n\n this.outerEnd = new Point(cx + outer * Math.cos(endAngle), cy + outer * Math.sin(endAngle));\n this.innerEnd = new Point(cx + inner * Math.cos(endAngle), cy + inner * Math.sin(endAngle));\n this.end = new Line(this.outerEnd, this.innerEnd);\n\n const angleDiff = endAngle - startAngle;\n const largeArc = (angleDiff % (Math.PI * 2)) > Math.PI ? /* istanbul ignore next */ 1 : 0;\n\n const sectorCommands = [];\n\n sectorCommands.push(`M${this.innerStart.x},${this.innerStart.y}`); // moveTo\n sectorCommands.push(`L${this.outerStart.x},${this.outerStart.y}`); // lineTo\n sectorCommands.push(`A${outer},${outer} 0 ${largeArc} 1 ${this.outerEnd.x},${this.outerEnd.y}`); // arcTo\n sectorCommands.push(`L${this.innerEnd.x},${this.innerEnd.y}`); // lineTo\n sectorCommands.push(`A${inner},${inner} 0 ${largeArc} 0 ${this.innerStart.x},${this.innerStart.y}`); // arcTo\n sectorCommands.push(`z`); // closePath\n\n this.path = sectorCommands.join(\" \");\n }\n}\n"]}
1
+ {"version":3,"file":"Annulus.js","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/Annulus.ts"],"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 RadialMenu\n */\n\nimport { Point } from \"../utils/Point\";\n\n/**\n * 2D Line consisting of a start point, and an end point\n * @internal\n */\nexport class Line {\n public p1: Point;\n public p2: Point;\n\n constructor(p1?: Point, p2?: Point) {\n this.p1 = p1 || new Point();\n this.p2 = p2 || new Point();\n }\n\n /** checks for equality with the components of this, and line parameter */\n public equals = (line: Line) =>\n this.p1.equals(line.p1) && this.p2.equals(line.p2);\n}\n\n/** @internal\n * 2D Circle\n */\nexport class Circle {\n public center: Point;\n public radius: number;\n constructor(center?: Point, radius?: number) {\n this.center = center || new Point();\n this.radius = radius || 0;\n }\n}\n\n/** @internal\n * 2D Annulus (2D doughnut shape/flattened torus) defined by an inner and outer circle with a shared center point.\n */\nexport class Annulus {\n public center: Point;\n public inner: Circle;\n public outer: Circle;\n\n constructor(center?: Point, innerRadius?: number, outerRadius?: number) {\n this.center = center || new Point();\n\n this.inner = new Circle(center, innerRadius);\n this.outer = new Circle(center, outerRadius);\n }\n}\n\n/** @internal\n * 2D Sector of an Annulus, defined by both a parent annulus, a startAngle, and an endAngle.\n */\nexport class AnnularSector {\n public parent: Annulus;\n public startAngle: number;\n public endAngle: number;\n\n public path: string;\n\n public innerStart: Point;\n public outerStart: Point;\n public start: Line;\n public innerEnd: Point;\n public outerEnd: Point;\n public end: Line;\n\n /**\n * initialize AnnularSector on parent annulus, and generate SVG Path to store in this.path\n * @param parent parent annulus to initialize sector on.\n * @param startAngle angle to begin the annular sector on.\n * @param endAngle angle to end the annular sector on.\n */\n constructor(parent: Annulus, startAngle: number, endAngle: number) {\n this.parent = parent;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n\n // adapted from https://gist.github.com/buschtoens/4190516\n const { x: cx, y: cy } = parent.center;\n const inner = parent.inner.radius;\n const outer = parent.outer.radius;\n\n this.innerStart = new Point(\n cx + inner * Math.cos(startAngle),\n cy + inner * Math.sin(startAngle)\n );\n this.outerStart = new Point(\n cx + outer * Math.cos(startAngle),\n cy + outer * Math.sin(startAngle)\n );\n this.start = new Line(this.innerStart, this.outerStart);\n\n this.outerEnd = new Point(\n cx + outer * Math.cos(endAngle),\n cy + outer * Math.sin(endAngle)\n );\n this.innerEnd = new Point(\n cx + inner * Math.cos(endAngle),\n cy + inner * Math.sin(endAngle)\n );\n this.end = new Line(this.outerEnd, this.innerEnd);\n\n const angleDiff = endAngle - startAngle;\n const largeArc =\n angleDiff % (Math.PI * 2) > Math.PI ? /* istanbul ignore next */ 1 : 0;\n\n const sectorCommands = [];\n\n sectorCommands.push(`M${this.innerStart.x},${this.innerStart.y}`); // moveTo\n sectorCommands.push(`L${this.outerStart.x},${this.outerStart.y}`); // lineTo\n sectorCommands.push(\n `A${outer},${outer} 0 ${largeArc} 1 ${this.outerEnd.x},${this.outerEnd.y}`\n ); // arcTo\n sectorCommands.push(`L${this.innerEnd.x},${this.innerEnd.y}`); // lineTo\n sectorCommands.push(\n `A${inner},${inner} 0 ${largeArc} 0 ${this.innerStart.x},${this.innerStart.y}`\n ); // arcTo\n sectorCommands.push(`z`); // closePath\n\n this.path = sectorCommands.join(\" \");\n }\n}\n"]}
@@ -48,7 +48,7 @@ export declare class RadialMenu extends React.Component<RadialMenuProps, RadialM
48
48
  /** @internal */
49
49
  readonly state: Readonly<RadialMenuState>;
50
50
  constructor(props: RadialMenuProps);
51
- render(): JSX.Element;
51
+ render(): React.ReactElement;
52
52
  componentDidMount(): void;
53
53
  componentWillUnmount(): void;
54
54
  componentDidUpdate(prevProps: RadialMenuProps): void;
@@ -87,7 +87,7 @@ export declare class RadialButton extends React.Component<RadialButtonProps, Rad
87
87
  /** @internal */
88
88
  readonly state: Readonly<RadialButtonState>;
89
89
  constructor(props: RadialButtonProps);
90
- render(): JSX.Element;
90
+ render(): React.ReactElement;
91
91
  /** Manually call this.props.onSelect */
92
92
  select: () => void;
93
93
  private _handleClick;
@@ -1 +1 @@
1
- {"version":3,"file":"RadialMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAW,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,sCAAsC;IACtC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5B,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC/E,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAc,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAGlD;IAEF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAIlB,MAAM,IAAI,GAAG,CAAC,OAAO;IAqDrB,iBAAiB;IASjB,oBAAoB;IAKpB,kBAAkB,CAAC,SAAS,EAAE,eAAe;IAM7D,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,oDAAoD;IAC7C,MAAM,aAIX;IAEF,OAAO,CAAC,uBAAuB,CAa7B;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAErF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAA2C;gBAE1F,KAAK,EAAE,iBAAiB;IAIpB,MAAM,IAAI,GAAG,CAAC,OAAO;IAwDrC,wCAAwC;IACjC,MAAM,aAIX;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,eAAe,CAErB;CACH"}
1
+ {"version":3,"file":"RadialMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAW,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,sCAAsC;IACtC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5B,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAC7C,eAAe,EACf,eAAe,CAChB;IACC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAc,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAGlD;IAEF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAIlB,MAAM,IAAI,KAAK,CAAC,YAAY;IAoE5B,iBAAiB;IASjB,oBAAoB;IAKpB,kBAAkB,CAAC,SAAS,EAAE,eAAe;IAS7D,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAQlB;IAEF,oDAAoD;IAC7C,MAAM,aAGX;IAEF,OAAO,CAAC,uBAAuB,CAmB7B;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,SAAS,CAC/C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAEzD;gBAEU,KAAK,EAAE,iBAAiB;IAIpB,MAAM,IAAI,KAAK,CAAC,YAAY;IAoE5C,wCAAwC;IACjC,MAAM,aAGX;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,eAAe,CAErB;CACH"}
@@ -1,7 +1,7 @@
1
1
  /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
5
  /** @packageDocumentation
6
6
  * @module RadialMenu
7
7
  */
@@ -30,7 +30,10 @@ class RadialMenu extends React.Component {
30
30
  this.props.onEsc(event);
31
31
  };
32
32
  this._handleClick = (event) => {
33
- if (event.target instanceof HTMLElement && this._root && !event.target.contains(this._root) && this.props.onBlur)
33
+ if (event.target instanceof HTMLElement &&
34
+ this._root &&
35
+ !event.target.contains(this._root) &&
36
+ this.props.onBlur)
34
37
  this.props.onBlur(event);
35
38
  };
36
39
  /** Manually call onSelect of highlighted button. */
@@ -41,7 +44,7 @@ class RadialMenu extends React.Component {
41
44
  };
42
45
  this._generateAnnularSectors = () => {
43
46
  const n = React.Children.count(this.props.children);
44
- const angle = 2 * Math.PI / n;
47
+ const angle = (2 * Math.PI) / n;
45
48
  const outer = this.props.outerRadius;
46
49
  const inner = this.props.innerRadius;
47
50
  const offset = -Math.PI / 8;
@@ -56,7 +59,10 @@ class RadialMenu extends React.Component {
56
59
  render() {
57
60
  const width = 2 * (this.props.outerRadius + 1);
58
61
  let x = this.props.left, y = this.props.top;
59
- if (this.props.left && this.props.top && typeof this.props.left === "number" && typeof this.props.top === "number") {
62
+ if (this.props.left &&
63
+ this.props.top &&
64
+ typeof this.props.left === "number" &&
65
+ typeof this.props.top === "number") {
60
66
  x = this.props.left;
61
67
  y = this.props.top;
62
68
  if (x < 0)
@@ -68,8 +74,14 @@ class RadialMenu extends React.Component {
68
74
  if (y > window.innerHeight - width)
69
75
  y = window.innerHeight - width;
70
76
  }
71
- const divStyle = { left: x, top: y, ...this.props.style };
72
- return (React.createElement("div", { ref: (el) => { this._root = el; }, className: classnames("core-radial-menu", { opened: this.props.opened }, this.props.className), style: divStyle, "data-testid": "core-radial-menu" },
77
+ const divStyle = {
78
+ left: x,
79
+ top: y,
80
+ ...this.props.style,
81
+ };
82
+ return (React.createElement("div", { ref: (el) => {
83
+ this._root = el;
84
+ }, className: classnames("core-radial-menu", { opened: this.props.opened }, this.props.className), style: divStyle, "data-testid": "core-radial-menu" },
73
85
  React.createElement("svg", { xmlns: "http://w3.org/2000/svg", version: "1.1", width: width, height: width, className: "core-radial-menu-container" }, React.Children.map(this.props.children, (child, index) => {
74
86
  // istanbul ignore next
75
87
  if (!child || typeof child !== "object" || !("props" in child))
@@ -99,7 +111,8 @@ class RadialMenu extends React.Component {
99
111
  window.removeEventListener("mouseup", this._handleClick);
100
112
  }
101
113
  componentDidUpdate(prevProps) {
102
- if (prevProps.innerRadius !== this.props.innerRadius || prevProps.outerRadius !== this.props.outerRadius) {
114
+ if (prevProps.innerRadius !== this.props.innerRadius ||
115
+ prevProps.outerRadius !== this.props.outerRadius) {
103
116
  this._generateAnnularSectors();
104
117
  }
105
118
  }
@@ -117,7 +130,9 @@ export class RadialButton extends React.Component {
117
130
  constructor(props) {
118
131
  super(props);
119
132
  /** @internal */
120
- this.state = { hover: this.props.selected || false };
133
+ this.state = {
134
+ hover: this.props.selected || false,
135
+ };
121
136
  /** Manually call this.props.onSelect */
122
137
  this.select = () => {
123
138
  // istanbul ignore else
@@ -151,7 +166,7 @@ export class RadialButton extends React.Component {
151
166
  const angle = (sector.startAngle + sector.endAngle) / 2;
152
167
  p = new Point(cx + r * Math.cos(angle), cy + r * Math.sin(angle));
153
168
  if (this.props.labelRotate) {
154
- let a = angle * 180 / Math.PI + 90;
169
+ let a = (angle * 180) / Math.PI + 90;
155
170
  while (a > 180)
156
171
  a -= 360;
157
172
  while (a < -180)