@itwin/core-react 4.0.0-dev.17 → 4.0.0-dev.19

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 (385) hide show
  1. package/CHANGELOG.md +29 -7
  2. package/lib/cjs/core-react/UiCore.js.map +1 -1
  3. package/lib/cjs/core-react/_geometry.scss +70 -70
  4. package/lib/cjs/core-react/_helpers.scss +51 -51
  5. package/lib/cjs/core-react/_math.scss +13 -13
  6. package/lib/cjs/core-react/_scrollbar.scss +51 -51
  7. package/lib/cjs/core-react/_typography.scss +44 -44
  8. package/lib/cjs/core-react/_z-index.scss +65 -65
  9. package/lib/cjs/core-react/autosuggest/AutoSuggest.js.map +1 -1
  10. package/lib/cjs/core-react/autosuggest/AutoSuggest.scss +79 -79
  11. package/lib/cjs/core-react/badge/Badge.js.map +1 -1
  12. package/lib/cjs/core-react/badge/Badge.scss +13 -13
  13. package/lib/cjs/core-react/badge/BadgeUtilities.js.map +1 -1
  14. package/lib/cjs/core-react/badge/BetaBadge.js.map +1 -1
  15. package/lib/cjs/core-react/badge/NewBadge.js.map +1 -1
  16. package/lib/cjs/core-react/badge/NewBadge.scss +9 -9
  17. package/lib/cjs/core-react/base/Centered.js.map +1 -1
  18. package/lib/cjs/core-react/base/Div.js.map +1 -1
  19. package/lib/cjs/core-react/base/DivWithOutsideClick.js.map +1 -1
  20. package/lib/cjs/core-react/base/FillCentered.js.map +1 -1
  21. package/lib/cjs/core-react/base/FlexWrapContainer.js.map +1 -1
  22. package/lib/cjs/core-react/base/Gap.js.map +1 -1
  23. package/lib/cjs/core-react/base/PointerEvents.js.map +1 -1
  24. package/lib/cjs/core-react/base/ScrollView.js.map +1 -1
  25. package/lib/cjs/core-react/base/base.scss +42 -42
  26. package/lib/cjs/core-react/base/classes.scss +13 -13
  27. package/lib/cjs/core-react/base/index.scss +5 -5
  28. package/lib/cjs/core-react/button/UnderlinedButton.js.map +1 -1
  29. package/lib/cjs/core-react/button/UnderlinedButton.scss +32 -32
  30. package/lib/cjs/core-react/checklistbox/CheckListBox.js.map +1 -1
  31. package/lib/cjs/core-react/checklistbox/CheckListBox.scss +21 -21
  32. package/lib/cjs/core-react/classes.scss +11 -11
  33. package/lib/cjs/core-react/colorthemes.scss +61 -61
  34. package/lib/cjs/core-react/colorvariables.scss +131 -131
  35. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  36. package/lib/cjs/core-react/contextmenu/ContextMenu.scss +236 -236
  37. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  38. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  39. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  40. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  41. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  42. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  43. package/lib/cjs/core-react/contextmenu/TildeFinder.js.map +1 -1
  44. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  45. package/lib/cjs/core-react/dialog/Dialog.scss +245 -245
  46. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  47. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  48. package/lib/cjs/core-react/elementseparator/ElementSeparator.scss +85 -85
  49. package/lib/cjs/core-react/enums/Alignment.js.map +1 -1
  50. package/lib/cjs/core-react/enums/CheckBoxState.js.map +1 -1
  51. package/lib/cjs/core-react/enums/Orientation.js.map +1 -1
  52. package/lib/cjs/core-react/enums/SortDirection.js.map +1 -1
  53. package/lib/cjs/core-react/enums/TimeFormat.js.map +1 -1
  54. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  55. package/lib/cjs/core-react/expandable/ExpandableList.scss +8 -8
  56. package/lib/cjs/core-react/expandable/classes.scss +7 -7
  57. package/lib/cjs/core-react/expandable/index.scss +5 -5
  58. package/lib/cjs/core-react/expandable/list.scss +35 -35
  59. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  60. package/lib/cjs/core-react/focustrap/FocusTrap.js.map +1 -1
  61. package/lib/cjs/core-react/hocs/withIsPressed.js.map +1 -1
  62. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  63. package/lib/cjs/core-react/hocs/withTimeout.js.map +1 -1
  64. package/lib/cjs/core-react/icons/ConditionalIconItem.js.map +1 -1
  65. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  66. package/lib/cjs/core-react/icons/IconComponent.scss +20 -20
  67. package/lib/cjs/core-react/icons/SvgPath.js.map +1 -1
  68. package/lib/cjs/core-react/icons/SvgPath.scss +15 -15
  69. package/lib/cjs/core-react/icons/WebFontIcon.js.map +1 -1
  70. package/lib/cjs/core-react/icons/WebFontIcon.scss +17 -17
  71. package/lib/cjs/core-react/icons/classes.scss +10 -10
  72. package/lib/cjs/core-react/icons/index.scss +6 -6
  73. package/lib/cjs/core-react/icons/mixins.scss +25 -25
  74. package/lib/cjs/core-react/icons/variables.scss +12 -12
  75. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  76. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  77. package/lib/cjs/core-react/index.scss +21 -21
  78. package/lib/cjs/core-react/inputs/Input.js.map +1 -1
  79. package/lib/cjs/core-react/inputs/InputLabel.js.map +1 -1
  80. package/lib/cjs/core-react/inputs/InputStatus.js.map +1 -1
  81. package/lib/cjs/core-react/inputs/LabeledComponentProps.js.map +1 -1
  82. package/lib/cjs/core-react/inputs/classes.scss +8 -8
  83. package/lib/cjs/core-react/inputs/iconinput/IconInput.js.map +1 -1
  84. package/lib/cjs/core-react/inputs/iconinput/IconInput.scss +35 -35
  85. package/lib/cjs/core-react/inputs/index.scss +9 -9
  86. package/lib/cjs/core-react/inputs/input-label.scss +90 -90
  87. package/lib/cjs/core-react/inputs/input.scss +58 -58
  88. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  89. package/lib/cjs/core-react/inputs/numberinput/NumberInput.scss +88 -88
  90. package/lib/cjs/core-react/inputs/variables.scss +38 -38
  91. package/lib/cjs/core-react/layout-variables.scss +17 -17
  92. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  93. package/lib/cjs/core-react/listbox/Listbox.scss +54 -54
  94. package/lib/cjs/core-react/loading/LoadingBar.js.map +1 -1
  95. package/lib/cjs/core-react/loading/LoadingBar.scss +29 -29
  96. package/lib/cjs/core-react/loading/LoadingPrompt.js.map +1 -1
  97. package/lib/cjs/core-react/loading/LoadingPrompt.scss +33 -33
  98. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  99. package/lib/cjs/core-react/loading/LoadingSpinner.scss +26 -26
  100. package/lib/cjs/core-react/loading/LoadingStatus.js.map +1 -1
  101. package/lib/cjs/core-react/loading/LoadingStatus.scss +20 -20
  102. package/lib/cjs/core-react/loading/index.scss +5 -5
  103. package/lib/cjs/core-react/loading/mixins.scss +57 -57
  104. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  105. package/lib/cjs/core-react/messagebox/MessageBox.scss +56 -56
  106. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  107. package/lib/cjs/core-react/notification/MessageType.js.map +1 -1
  108. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  109. package/lib/cjs/core-react/popup/Popup.scss +240 -240
  110. package/lib/cjs/core-react/radialmenu/Annulus.js.map +1 -1
  111. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  112. package/lib/cjs/core-react/radialmenu/RadialMenu.scss +55 -55
  113. package/lib/cjs/core-react/searchbox/SearchBox.js.map +1 -1
  114. package/lib/cjs/core-react/searchbox/SearchBox.scss +47 -47
  115. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  116. package/lib/cjs/core-react/settings/SettingsContainer.scss +68 -68
  117. package/lib/cjs/core-react/settings/SettingsManager.js.map +1 -1
  118. package/lib/cjs/core-react/style/baseline.scss +11 -11
  119. package/lib/cjs/core-react/style/breakpoints.scss +41 -41
  120. package/lib/cjs/core-react/style/colors.scss +77 -77
  121. package/lib/cjs/core-react/style/index.scss +10 -10
  122. package/lib/cjs/core-react/style/mixins.scss +27 -27
  123. package/lib/cjs/core-react/style/opacity.scss +16 -16
  124. package/lib/cjs/core-react/style/themecolors.scss +123 -123
  125. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  126. package/lib/cjs/core-react/tabs/VerticalTabs.js.map +1 -1
  127. package/lib/cjs/core-react/tabs/classes.scss +7 -7
  128. package/lib/cjs/core-react/tabs/index.scss +5 -5
  129. package/lib/cjs/core-react/tabs/tabs.scss +96 -96
  130. package/lib/cjs/core-react/tabs/vertical.scss +51 -51
  131. package/lib/cjs/core-react/text/BlockText.js.map +1 -1
  132. package/lib/cjs/core-react/text/BodyText.js.map +1 -1
  133. package/lib/cjs/core-react/text/DisabledText.js.map +1 -1
  134. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  135. package/lib/cjs/core-react/text/FilteredText.scss +10 -10
  136. package/lib/cjs/core-react/text/MutedText.js.map +1 -1
  137. package/lib/cjs/core-react/text/StyledText.js.map +1 -1
  138. package/lib/cjs/core-react/text/TextProps.js.map +1 -1
  139. package/lib/cjs/core-react/text/block.scss +15 -15
  140. package/lib/cjs/core-react/text/body.scss +13 -13
  141. package/lib/cjs/core-react/text/classes.scss +10 -10
  142. package/lib/cjs/core-react/text/disabled.scss +10 -10
  143. package/lib/cjs/core-react/text/index.scss +10 -10
  144. package/lib/cjs/core-react/text/mixins.scss +24 -24
  145. package/lib/cjs/core-react/text/muted.scss +10 -10
  146. package/lib/cjs/core-react/tree/Branch.js.map +1 -1
  147. package/lib/cjs/core-react/tree/Branch.scss +12 -12
  148. package/lib/cjs/core-react/tree/ExpansionToggle.js.map +1 -1
  149. package/lib/cjs/core-react/tree/ExpansionToggle.scss +32 -32
  150. package/lib/cjs/core-react/tree/Node.js.map +1 -1
  151. package/lib/cjs/core-react/tree/Node.scss +68 -68
  152. package/lib/cjs/core-react/tree/Placeholder.js.map +1 -1
  153. package/lib/cjs/core-react/tree/Placeholder.scss +17 -17
  154. package/lib/cjs/core-react/tree/Tree.js.map +1 -1
  155. package/lib/cjs/core-react/tree/Tree.scss +21 -21
  156. package/lib/cjs/core-react/uistate/LocalStateStorage.js.map +1 -1
  157. package/lib/cjs/core-react/uistate/UiStateEntry.js.map +1 -1
  158. package/lib/cjs/core-react/uistate/UiStateStorage.js.map +1 -1
  159. package/lib/cjs/core-react/utils/IconHelper.js.map +1 -1
  160. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  161. package/lib/cjs/core-react/utils/Point.js.map +1 -1
  162. package/lib/cjs/core-react/utils/Props.js.map +1 -1
  163. package/lib/cjs/core-react/utils/Rectangle.js.map +1 -1
  164. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  165. package/lib/cjs/core-react/utils/Size.js.map +1 -1
  166. package/lib/cjs/core-react/utils/Timer.js.map +1 -1
  167. package/lib/cjs/core-react/utils/UiGeometry.js.map +1 -1
  168. package/lib/cjs/core-react/utils/flattenChildren.js.map +1 -1
  169. package/lib/cjs/core-react/utils/getBestBWContrastColor.js.map +1 -1
  170. package/lib/cjs/core-react/utils/getCssVariable.js.map +1 -1
  171. package/lib/cjs/core-react/utils/getDisplayName.js.map +1 -1
  172. package/lib/cjs/core-react/utils/getUserColor.js.map +1 -1
  173. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  174. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  175. package/lib/cjs/core-react/utils/hooks/useDisposable.js.map +1 -1
  176. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  177. package/lib/cjs/core-react/utils/hooks/useEventListener.js.map +1 -1
  178. package/lib/cjs/core-react/utils/hooks/useInterval.js.map +1 -1
  179. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  180. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  181. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  182. package/lib/cjs/core-react/utils/hooks/useRefEffect.js.map +1 -1
  183. package/lib/cjs/core-react/utils/hooks/useRefState.js.map +1 -1
  184. package/lib/cjs/core-react/utils/hooks/useRefs.js.map +1 -1
  185. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  186. package/lib/cjs/core-react/utils/hooks/useTargeted.js.map +1 -1
  187. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  188. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  189. package/lib/cjs/core-react/utils/isPromiseLike.js.map +1 -1
  190. package/lib/cjs/core-react/utils/shallowDiffers.js.map +1 -1
  191. package/lib/cjs/core-react/utils/typeUtils.js.map +1 -1
  192. package/lib/cjs/core-react.js.map +1 -1
  193. package/lib/esm/core-react/UiCore.js.map +1 -1
  194. package/lib/esm/core-react/_geometry.scss +70 -70
  195. package/lib/esm/core-react/_helpers.scss +51 -51
  196. package/lib/esm/core-react/_math.scss +13 -13
  197. package/lib/esm/core-react/_scrollbar.scss +51 -51
  198. package/lib/esm/core-react/_typography.scss +44 -44
  199. package/lib/esm/core-react/_z-index.scss +65 -65
  200. package/lib/esm/core-react/autosuggest/AutoSuggest.js.map +1 -1
  201. package/lib/esm/core-react/autosuggest/AutoSuggest.scss +79 -79
  202. package/lib/esm/core-react/badge/Badge.js.map +1 -1
  203. package/lib/esm/core-react/badge/Badge.scss +13 -13
  204. package/lib/esm/core-react/badge/BadgeUtilities.js.map +1 -1
  205. package/lib/esm/core-react/badge/BetaBadge.js.map +1 -1
  206. package/lib/esm/core-react/badge/NewBadge.js.map +1 -1
  207. package/lib/esm/core-react/badge/NewBadge.scss +9 -9
  208. package/lib/esm/core-react/base/Centered.js.map +1 -1
  209. package/lib/esm/core-react/base/Div.js.map +1 -1
  210. package/lib/esm/core-react/base/DivWithOutsideClick.js.map +1 -1
  211. package/lib/esm/core-react/base/FillCentered.js.map +1 -1
  212. package/lib/esm/core-react/base/FlexWrapContainer.js.map +1 -1
  213. package/lib/esm/core-react/base/Gap.js.map +1 -1
  214. package/lib/esm/core-react/base/PointerEvents.js.map +1 -1
  215. package/lib/esm/core-react/base/ScrollView.js.map +1 -1
  216. package/lib/esm/core-react/base/base.scss +42 -42
  217. package/lib/esm/core-react/base/classes.scss +13 -13
  218. package/lib/esm/core-react/base/index.scss +5 -5
  219. package/lib/esm/core-react/button/UnderlinedButton.js.map +1 -1
  220. package/lib/esm/core-react/button/UnderlinedButton.scss +32 -32
  221. package/lib/esm/core-react/checklistbox/CheckListBox.js.map +1 -1
  222. package/lib/esm/core-react/checklistbox/CheckListBox.scss +21 -21
  223. package/lib/esm/core-react/classes.scss +11 -11
  224. package/lib/esm/core-react/colorthemes.scss +61 -61
  225. package/lib/esm/core-react/colorvariables.scss +131 -131
  226. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  227. package/lib/esm/core-react/contextmenu/ContextMenu.scss +236 -236
  228. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  229. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  230. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  231. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  232. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  233. package/lib/esm/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  234. package/lib/esm/core-react/contextmenu/TildeFinder.js.map +1 -1
  235. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  236. package/lib/esm/core-react/dialog/Dialog.scss +245 -245
  237. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  238. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  239. package/lib/esm/core-react/elementseparator/ElementSeparator.scss +85 -85
  240. package/lib/esm/core-react/enums/Alignment.js.map +1 -1
  241. package/lib/esm/core-react/enums/CheckBoxState.js.map +1 -1
  242. package/lib/esm/core-react/enums/Orientation.js.map +1 -1
  243. package/lib/esm/core-react/enums/SortDirection.js.map +1 -1
  244. package/lib/esm/core-react/enums/TimeFormat.js.map +1 -1
  245. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  246. package/lib/esm/core-react/expandable/ExpandableList.scss +8 -8
  247. package/lib/esm/core-react/expandable/classes.scss +7 -7
  248. package/lib/esm/core-react/expandable/index.scss +5 -5
  249. package/lib/esm/core-react/expandable/list.scss +35 -35
  250. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  251. package/lib/esm/core-react/focustrap/FocusTrap.js.map +1 -1
  252. package/lib/esm/core-react/hocs/withIsPressed.js.map +1 -1
  253. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  254. package/lib/esm/core-react/hocs/withTimeout.js.map +1 -1
  255. package/lib/esm/core-react/icons/ConditionalIconItem.js.map +1 -1
  256. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  257. package/lib/esm/core-react/icons/IconComponent.scss +20 -20
  258. package/lib/esm/core-react/icons/SvgPath.js.map +1 -1
  259. package/lib/esm/core-react/icons/SvgPath.scss +15 -15
  260. package/lib/esm/core-react/icons/WebFontIcon.js.map +1 -1
  261. package/lib/esm/core-react/icons/WebFontIcon.scss +17 -17
  262. package/lib/esm/core-react/icons/classes.scss +10 -10
  263. package/lib/esm/core-react/icons/index.scss +6 -6
  264. package/lib/esm/core-react/icons/mixins.scss +25 -25
  265. package/lib/esm/core-react/icons/variables.scss +12 -12
  266. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  267. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  268. package/lib/esm/core-react/index.scss +21 -21
  269. package/lib/esm/core-react/inputs/Input.js.map +1 -1
  270. package/lib/esm/core-react/inputs/InputLabel.js.map +1 -1
  271. package/lib/esm/core-react/inputs/InputStatus.js.map +1 -1
  272. package/lib/esm/core-react/inputs/LabeledComponentProps.js.map +1 -1
  273. package/lib/esm/core-react/inputs/classes.scss +8 -8
  274. package/lib/esm/core-react/inputs/iconinput/IconInput.js.map +1 -1
  275. package/lib/esm/core-react/inputs/iconinput/IconInput.scss +35 -35
  276. package/lib/esm/core-react/inputs/index.scss +9 -9
  277. package/lib/esm/core-react/inputs/input-label.scss +90 -90
  278. package/lib/esm/core-react/inputs/input.scss +58 -58
  279. package/lib/esm/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  280. package/lib/esm/core-react/inputs/numberinput/NumberInput.scss +88 -88
  281. package/lib/esm/core-react/inputs/variables.scss +38 -38
  282. package/lib/esm/core-react/layout-variables.scss +17 -17
  283. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  284. package/lib/esm/core-react/listbox/Listbox.scss +54 -54
  285. package/lib/esm/core-react/loading/LoadingBar.js.map +1 -1
  286. package/lib/esm/core-react/loading/LoadingBar.scss +29 -29
  287. package/lib/esm/core-react/loading/LoadingPrompt.js.map +1 -1
  288. package/lib/esm/core-react/loading/LoadingPrompt.scss +33 -33
  289. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  290. package/lib/esm/core-react/loading/LoadingSpinner.scss +26 -26
  291. package/lib/esm/core-react/loading/LoadingStatus.js.map +1 -1
  292. package/lib/esm/core-react/loading/LoadingStatus.scss +20 -20
  293. package/lib/esm/core-react/loading/index.scss +5 -5
  294. package/lib/esm/core-react/loading/mixins.scss +57 -57
  295. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  296. package/lib/esm/core-react/messagebox/MessageBox.scss +56 -56
  297. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  298. package/lib/esm/core-react/notification/MessageType.js.map +1 -1
  299. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  300. package/lib/esm/core-react/popup/Popup.scss +240 -240
  301. package/lib/esm/core-react/radialmenu/Annulus.js.map +1 -1
  302. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  303. package/lib/esm/core-react/radialmenu/RadialMenu.scss +55 -55
  304. package/lib/esm/core-react/searchbox/SearchBox.js.map +1 -1
  305. package/lib/esm/core-react/searchbox/SearchBox.scss +47 -47
  306. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  307. package/lib/esm/core-react/settings/SettingsContainer.scss +68 -68
  308. package/lib/esm/core-react/settings/SettingsManager.js.map +1 -1
  309. package/lib/esm/core-react/style/baseline.scss +11 -11
  310. package/lib/esm/core-react/style/breakpoints.scss +41 -41
  311. package/lib/esm/core-react/style/colors.scss +77 -77
  312. package/lib/esm/core-react/style/index.scss +10 -10
  313. package/lib/esm/core-react/style/mixins.scss +27 -27
  314. package/lib/esm/core-react/style/opacity.scss +16 -16
  315. package/lib/esm/core-react/style/themecolors.scss +123 -123
  316. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  317. package/lib/esm/core-react/tabs/VerticalTabs.js.map +1 -1
  318. package/lib/esm/core-react/tabs/classes.scss +7 -7
  319. package/lib/esm/core-react/tabs/index.scss +5 -5
  320. package/lib/esm/core-react/tabs/tabs.scss +96 -96
  321. package/lib/esm/core-react/tabs/vertical.scss +51 -51
  322. package/lib/esm/core-react/text/BlockText.js.map +1 -1
  323. package/lib/esm/core-react/text/BodyText.js.map +1 -1
  324. package/lib/esm/core-react/text/DisabledText.js.map +1 -1
  325. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  326. package/lib/esm/core-react/text/FilteredText.scss +10 -10
  327. package/lib/esm/core-react/text/MutedText.js.map +1 -1
  328. package/lib/esm/core-react/text/StyledText.js.map +1 -1
  329. package/lib/esm/core-react/text/TextProps.js.map +1 -1
  330. package/lib/esm/core-react/text/block.scss +15 -15
  331. package/lib/esm/core-react/text/body.scss +13 -13
  332. package/lib/esm/core-react/text/classes.scss +10 -10
  333. package/lib/esm/core-react/text/disabled.scss +10 -10
  334. package/lib/esm/core-react/text/index.scss +10 -10
  335. package/lib/esm/core-react/text/mixins.scss +24 -24
  336. package/lib/esm/core-react/text/muted.scss +10 -10
  337. package/lib/esm/core-react/tree/Branch.js.map +1 -1
  338. package/lib/esm/core-react/tree/Branch.scss +12 -12
  339. package/lib/esm/core-react/tree/ExpansionToggle.js.map +1 -1
  340. package/lib/esm/core-react/tree/ExpansionToggle.scss +32 -32
  341. package/lib/esm/core-react/tree/Node.js.map +1 -1
  342. package/lib/esm/core-react/tree/Node.scss +68 -68
  343. package/lib/esm/core-react/tree/Placeholder.js.map +1 -1
  344. package/lib/esm/core-react/tree/Placeholder.scss +17 -17
  345. package/lib/esm/core-react/tree/Tree.js.map +1 -1
  346. package/lib/esm/core-react/tree/Tree.scss +21 -21
  347. package/lib/esm/core-react/uistate/LocalStateStorage.js.map +1 -1
  348. package/lib/esm/core-react/uistate/UiStateEntry.js.map +1 -1
  349. package/lib/esm/core-react/uistate/UiStateStorage.js.map +1 -1
  350. package/lib/esm/core-react/utils/IconHelper.js.map +1 -1
  351. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  352. package/lib/esm/core-react/utils/Point.js.map +1 -1
  353. package/lib/esm/core-react/utils/Props.js.map +1 -1
  354. package/lib/esm/core-react/utils/Rectangle.js.map +1 -1
  355. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  356. package/lib/esm/core-react/utils/Size.js.map +1 -1
  357. package/lib/esm/core-react/utils/Timer.js.map +1 -1
  358. package/lib/esm/core-react/utils/UiGeometry.js.map +1 -1
  359. package/lib/esm/core-react/utils/flattenChildren.js.map +1 -1
  360. package/lib/esm/core-react/utils/getBestBWContrastColor.js.map +1 -1
  361. package/lib/esm/core-react/utils/getCssVariable.js.map +1 -1
  362. package/lib/esm/core-react/utils/getDisplayName.js.map +1 -1
  363. package/lib/esm/core-react/utils/getUserColor.js.map +1 -1
  364. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  365. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  366. package/lib/esm/core-react/utils/hooks/useDisposable.js.map +1 -1
  367. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  368. package/lib/esm/core-react/utils/hooks/useEventListener.js.map +1 -1
  369. package/lib/esm/core-react/utils/hooks/useInterval.js.map +1 -1
  370. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  371. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  372. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  373. package/lib/esm/core-react/utils/hooks/useRefEffect.js.map +1 -1
  374. package/lib/esm/core-react/utils/hooks/useRefState.js.map +1 -1
  375. package/lib/esm/core-react/utils/hooks/useRefs.js.map +1 -1
  376. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  377. package/lib/esm/core-react/utils/hooks/useTargeted.js.map +1 -1
  378. package/lib/esm/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  379. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  380. package/lib/esm/core-react/utils/isPromiseLike.js.map +1 -1
  381. package/lib/esm/core-react/utils/shallowDiffers.js.map +1 -1
  382. package/lib/esm/core-react/utils/typeUtils.js.map +1 -1
  383. package/lib/esm/core-react.js.map +1 -1
  384. package/lib/public/locales/en/UiCore.json +30 -30
  385. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ExpansionToggle.js","sourceRoot":"","sources":["../../../../src/core-react/tree/ExpansionToggle.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kCAAgC;AAChC,2CAAoC;AACpC,+BAA+B;AAE/B,sCAAmC;AACnC,0DAA8C;AAC9C,oEAA6D;AAW7D;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK,CAAC,aAAmC;IAC5D,MAAM;QACpB,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,2BAA2B,EAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,EACtC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAExF,OAAO;QACL,iEAAiE;QACjE,6BACE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,iBACV,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EACtC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,gBACA,KAAK;YAEjB,oBAAC,oBAAI,IAAC,SAAS,EAAC,aAAa,EAAC,QAAQ,EAAE,oBAAC,qCAAe,OAAG,GAAI,CAC3D,CACP,CAAC;IACJ,CAAC;CACF;AAvBD,0CAuBC","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 Tree\n */\n\nimport \"./ExpansionToggle.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CommonProps } from \"../utils/Props\";\nimport { UiCore } from \"../UiCore\";\nimport { Icon } from \"../icons/IconComponent\";\nimport { SvgChevronRight } from \"@itwin/itwinui-icons-react\";\n\n/** Properties for the [[ExpansionToggle]] component\n * @public\n */\nexport interface ExpansionToggleProps extends CommonProps {\n isExpanded?: boolean;\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n [\"data-testid\"]?: string;\n}\n\n/** ExpansionToggle React component used by the [[TreeNode]] component to show collapsed or expanded state\n * @public\n */\nexport class ExpansionToggle extends React.PureComponent<ExpansionToggleProps> {\n public override render() {\n const className = classnames(\n \"core-tree-expansionToggle\",\n this.props.isExpanded && \"is-expanded\",\n this.props.className);\n const label = UiCore.translate(this.props.isExpanded ? \"tree.collapse\" : \"tree.expand\");\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n onClick={this.props.onClick}\n className={className}\n style={this.props.style}\n data-testid={this.props[\"data-testid\"]}\n role=\"button\"\n tabIndex={-1}\n aria-label={label}\n >\n <Icon className=\"toggle icon\" iconSpec={<SvgChevronRight />} />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ExpansionToggle.js","sourceRoot":"","sources":["../../../../src/core-react/tree/ExpansionToggle.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kCAAgC;AAChC,2CAAoC;AACpC,+BAA+B;AAE/B,sCAAmC;AACnC,0DAA8C;AAC9C,oEAA6D;AAW7D;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK,CAAC,aAAmC;IAC5D,MAAM;QACpB,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,2BAA2B,EAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,EACtC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAExF,OAAO;QACL,iEAAiE;QACjE,6BACE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,iBACV,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EACtC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,gBACA,KAAK;YAEjB,oBAAC,oBAAI,IAAC,SAAS,EAAC,aAAa,EAAC,QAAQ,EAAE,oBAAC,qCAAe,OAAG,GAAI,CAC3D,CACP,CAAC;IACJ,CAAC;CACF;AAvBD,0CAuBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./ExpansionToggle.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { UiCore } from \"../UiCore\";\r\nimport { Icon } from \"../icons/IconComponent\";\r\nimport { SvgChevronRight } from \"@itwin/itwinui-icons-react\";\r\n\r\n/** Properties for the [[ExpansionToggle]] component\r\n * @public\r\n */\r\nexport interface ExpansionToggleProps extends CommonProps {\r\n isExpanded?: boolean;\r\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\r\n [\"data-testid\"]?: string;\r\n}\r\n\r\n/** ExpansionToggle React component used by the [[TreeNode]] component to show collapsed or expanded state\r\n * @public\r\n */\r\nexport class ExpansionToggle extends React.PureComponent<ExpansionToggleProps> {\r\n public override render() {\r\n const className = classnames(\r\n \"core-tree-expansionToggle\",\r\n this.props.isExpanded && \"is-expanded\",\r\n this.props.className);\r\n const label = UiCore.translate(this.props.isExpanded ? \"tree.collapse\" : \"tree.expand\");\r\n\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div\r\n onClick={this.props.onClick}\r\n className={className}\r\n style={this.props.style}\r\n data-testid={this.props[\"data-testid\"]}\r\n role=\"button\"\r\n tabIndex={-1}\r\n aria-label={label}\r\n >\r\n <Icon className=\"toggle icon\" iconSpec={<SvgChevronRight />} />\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,32 +1,32 @@
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
- *--------------------------------------------------------------------------------------------*/
5
-
6
- .core-tree-expansionToggle {
7
- &:focus {
8
- outline: none;
9
- }
10
-
11
- > .toggle {
12
- display: block;
13
- width: 24px;
14
- height: 24px;
15
- padding: 6px;
16
- font-size: 12px;
17
- box-sizing: border-box;
18
- transform: rotate(0);
19
- transition: transform 100ms ease;
20
- color: var(--iui-color-text);
21
-
22
- svg {
23
- display: block;
24
- width: 12px;
25
- height: 12px;
26
- }
27
- }
28
-
29
- &.is-expanded > .toggle {
30
- transform: rotate(90deg);
31
- }
32
- }
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
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .core-tree-expansionToggle {
7
+ &:focus {
8
+ outline: none;
9
+ }
10
+
11
+ > .toggle {
12
+ display: block;
13
+ width: 24px;
14
+ height: 24px;
15
+ padding: 6px;
16
+ font-size: 12px;
17
+ box-sizing: border-box;
18
+ transform: rotate(0);
19
+ transition: transform 100ms ease;
20
+ color: var(--iui-color-text);
21
+
22
+ svg {
23
+ display: block;
24
+ width: 12px;
25
+ height: 12px;
26
+ }
27
+ }
28
+
29
+ &.is-expanded > .toggle {
30
+ transform: rotate(90deg);
31
+ }
32
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Node.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 Tree\n */\n\nimport \"./Node.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Checkbox, CheckboxProps, ProgressRadial } from \"@itwin/itwinui-react\";\nimport { CheckBoxState } from \"../enums/CheckBoxState\";\nimport { CommonProps } from \"../utils/Props\";\nimport { Omit } from \"../utils/typeUtils\";\nimport { ExpansionToggle } from \"./ExpansionToggle\";\n\n/** Props for node Checkbox renderer\n * @public\n */\nexport type NodeCheckboxRenderProps = Omit<CheckboxProps, \"onChange\" | \"onClick\"> & {\n onChange: (checked: boolean) => void;\n onClick: (e: React.MouseEvent) => void;\n};\n\n/** Type for node Checkbox renderer\n * @public\n */\nexport type NodeCheckboxRenderer = (props: NodeCheckboxRenderProps) => React.ReactNode;\n\n/** Number of pixels the node gets offset per each hierarchy level\n * @internal\n */\nexport const LEVEL_OFFSET = 20;\n\nconst EXPANSION_TOGGLE_WIDTH = 24;\n\n/** Properties for Tree Node CheckBox\n * @public\n */\nexport interface NodeCheckboxProps {\n /** State of the checkbox */\n state?: CheckBoxState;\n /** Click event callback */\n onClick?: (newState: CheckBoxState) => void;\n /** Indicates whether checkbox is disabled */\n isDisabled?: boolean;\n /** Tooltip to be displayed when mouse is hovered over checkbox */\n tooltip?: string;\n}\n\n/** Properties for the [[TreeNode]] React component\n * @public\n */\nexport interface TreeNodeProps extends CommonProps {\n label: React.ReactNode;\n level: number;\n icon?: React.ReactChild;\n /** Properties for the checkbox.\n * @public */\n checkboxProps?: NodeCheckboxProps;\n isLeaf?: boolean;\n isLoading?: boolean;\n isExpanded?: boolean;\n isFocused?: boolean;\n isSelected?: boolean;\n isHoverDisabled?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n onContextMenu?: (e: React.MouseEvent) => void;\n onMouseMove?: (e: React.MouseEvent) => void;\n onMouseDown?: (e: React.MouseEvent) => void;\n onMouseUp?: (e: React.MouseEvent) => void;\n onClickExpansionToggle?: () => void;\n children?: React.ReactNode;\n\n /** Contains render overrides for different pieces of the node component. */\n renderOverrides?: {\n /** Callback to render a checkbox. Only called when checkbox is displayed. */\n renderCheckbox?: NodeCheckboxRenderer;\n };\n [\"data-testid\"]?: string;\n}\n\n/** Presentation React component for a Tree node\n * @public\n */\nexport class TreeNode extends React.Component<TreeNodeProps> {\n constructor(props: TreeNodeProps) {\n super(props);\n }\n\n public override render() {\n const className = classnames(\n \"core-tree-node\",\n this.props.isFocused && \"is-focused\",\n this.props.isSelected && \"is-selected\",\n this.props.isHoverDisabled && \"is-hover-disabled\",\n this.props.className);\n let offset = this.props.level * LEVEL_OFFSET;\n if (!this.props.isLoading && this.props.isLeaf)\n offset += EXPANSION_TOGGLE_WIDTH; // Add expansion toggle/loader width if they're not rendered\n\n let checkbox: React.ReactNode;\n if (this.props.checkboxProps) {\n const props: NodeCheckboxRenderProps = {\n label: \"\",\n checked: this.props.checkboxProps.state === CheckBoxState.On,\n indeterminate: this.props.checkboxProps.state === CheckBoxState.Partial,\n disabled: this.props.checkboxProps.isDisabled,\n title: this.props.checkboxProps.tooltip,\n onClick: this._onCheckboxClick,\n onChange: this._onCheckboxChange,\n };\n if (this.props.renderOverrides && this.props.renderOverrides.renderCheckbox) {\n checkbox = this.props.renderOverrides.renderCheckbox(props);\n } else {\n checkbox = (\n <Checkbox\n {...props}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => this._onCheckboxChange(e.target.checked)}\n data-testid={this.createSubComponentTestId(\"checkbox\")}\n />\n );\n }\n }\n\n const icon = this.props.icon ? (<div className=\"core-tree-node-icon\">{this.props.icon}</div>) : undefined;\n\n const toggle = (this.props.isLoading || this.props.isLeaf) ? undefined : (\n <ExpansionToggle\n className=\"expansion-toggle\"\n data-testid={this.createSubComponentTestId(\"expansion-toggle\")}\n onClick={this._onClickExpansionToggle}\n isExpanded={this.props.isExpanded}\n />\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n className={className}\n style={this.props.style}\n data-testid={this.props[\"data-testid\"]}\n onClick={this._onClick}\n onContextMenu={this.props.onContextMenu}\n onMouseDown={this.props.onMouseDown}\n onMouseUp={this.props.onMouseUp}\n onMouseMove={this.props.onMouseMove}\n role=\"treeitem\"\n aria-selected={(this.props.isSelected) ? \"true\" : \"false\"}\n tabIndex={-1}\n >\n <div\n className=\"contents\"\n style={{ marginLeft: offset }}\n data-testid={this.createSubComponentTestId(\"contents\")}\n >\n {this.props.isLoading && <ProgressRadial size=\"x-small\" indeterminate />}\n {toggle}\n {checkbox}\n {icon}\n {this.props.label}\n </div>\n {this.props.children}\n </div>\n );\n }\n\n private createSubComponentTestId(subId: string): string | undefined {\n if (!this.props[\"data-testid\"])\n return undefined;\n return `${this.props[\"data-testid\"]}-${subId}`;\n }\n\n private _onCheckboxChange = (checked: boolean) => {\n if (this.props.checkboxProps && this.props.checkboxProps.onClick && !this.props.checkboxProps.isDisabled)\n this.props.checkboxProps.onClick(checked ? CheckBoxState.On : CheckBoxState.Off);\n };\n\n private _onCheckboxClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n private _onClickExpansionToggle = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n if (this.props.onClickExpansionToggle)\n this.props.onClickExpansionToggle();\n };\n\n private _onClick = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n this.props.onClick?.(e);\n };\n}\n"]}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Node.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./Node.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Checkbox, CheckboxProps, ProgressRadial } from \"@itwin/itwinui-react\";\r\nimport { CheckBoxState } from \"../enums/CheckBoxState\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { Omit } from \"../utils/typeUtils\";\r\nimport { ExpansionToggle } from \"./ExpansionToggle\";\r\n\r\n/** Props for node Checkbox renderer\r\n * @public\r\n */\r\nexport type NodeCheckboxRenderProps = Omit<CheckboxProps, \"onChange\" | \"onClick\"> & {\r\n onChange: (checked: boolean) => void;\r\n onClick: (e: React.MouseEvent) => void;\r\n};\r\n\r\n/** Type for node Checkbox renderer\r\n * @public\r\n */\r\nexport type NodeCheckboxRenderer = (props: NodeCheckboxRenderProps) => React.ReactNode;\r\n\r\n/** Number of pixels the node gets offset per each hierarchy level\r\n * @internal\r\n */\r\nexport const LEVEL_OFFSET = 20;\r\n\r\nconst EXPANSION_TOGGLE_WIDTH = 24;\r\n\r\n/** Properties for Tree Node CheckBox\r\n * @public\r\n */\r\nexport interface NodeCheckboxProps {\r\n /** State of the checkbox */\r\n state?: CheckBoxState;\r\n /** Click event callback */\r\n onClick?: (newState: CheckBoxState) => void;\r\n /** Indicates whether checkbox is disabled */\r\n isDisabled?: boolean;\r\n /** Tooltip to be displayed when mouse is hovered over checkbox */\r\n tooltip?: string;\r\n}\r\n\r\n/** Properties for the [[TreeNode]] React component\r\n * @public\r\n */\r\nexport interface TreeNodeProps extends CommonProps {\r\n label: React.ReactNode;\r\n level: number;\r\n icon?: React.ReactChild;\r\n /** Properties for the checkbox.\r\n * @public */\r\n checkboxProps?: NodeCheckboxProps;\r\n isLeaf?: boolean;\r\n isLoading?: boolean;\r\n isExpanded?: boolean;\r\n isFocused?: boolean;\r\n isSelected?: boolean;\r\n isHoverDisabled?: boolean;\r\n onClick?: (e: React.MouseEvent) => void;\r\n onContextMenu?: (e: React.MouseEvent) => void;\r\n onMouseMove?: (e: React.MouseEvent) => void;\r\n onMouseDown?: (e: React.MouseEvent) => void;\r\n onMouseUp?: (e: React.MouseEvent) => void;\r\n onClickExpansionToggle?: () => void;\r\n children?: React.ReactNode;\r\n\r\n /** Contains render overrides for different pieces of the node component. */\r\n renderOverrides?: {\r\n /** Callback to render a checkbox. Only called when checkbox is displayed. */\r\n renderCheckbox?: NodeCheckboxRenderer;\r\n };\r\n [\"data-testid\"]?: string;\r\n}\r\n\r\n/** Presentation React component for a Tree node\r\n * @public\r\n */\r\nexport class TreeNode extends React.Component<TreeNodeProps> {\r\n constructor(props: TreeNodeProps) {\r\n super(props);\r\n }\r\n\r\n public override render() {\r\n const className = classnames(\r\n \"core-tree-node\",\r\n this.props.isFocused && \"is-focused\",\r\n this.props.isSelected && \"is-selected\",\r\n this.props.isHoverDisabled && \"is-hover-disabled\",\r\n this.props.className);\r\n let offset = this.props.level * LEVEL_OFFSET;\r\n if (!this.props.isLoading && this.props.isLeaf)\r\n offset += EXPANSION_TOGGLE_WIDTH; // Add expansion toggle/loader width if they're not rendered\r\n\r\n let checkbox: React.ReactNode;\r\n if (this.props.checkboxProps) {\r\n const props: NodeCheckboxRenderProps = {\r\n label: \"\",\r\n checked: this.props.checkboxProps.state === CheckBoxState.On,\r\n indeterminate: this.props.checkboxProps.state === CheckBoxState.Partial,\r\n disabled: this.props.checkboxProps.isDisabled,\r\n title: this.props.checkboxProps.tooltip,\r\n onClick: this._onCheckboxClick,\r\n onChange: this._onCheckboxChange,\r\n };\r\n if (this.props.renderOverrides && this.props.renderOverrides.renderCheckbox) {\r\n checkbox = this.props.renderOverrides.renderCheckbox(props);\r\n } else {\r\n checkbox = (\r\n <Checkbox\r\n {...props}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => this._onCheckboxChange(e.target.checked)}\r\n data-testid={this.createSubComponentTestId(\"checkbox\")}\r\n />\r\n );\r\n }\r\n }\r\n\r\n const icon = this.props.icon ? (<div className=\"core-tree-node-icon\">{this.props.icon}</div>) : undefined;\r\n\r\n const toggle = (this.props.isLoading || this.props.isLeaf) ? undefined : (\r\n <ExpansionToggle\r\n className=\"expansion-toggle\"\r\n data-testid={this.createSubComponentTestId(\"expansion-toggle\")}\r\n onClick={this._onClickExpansionToggle}\r\n isExpanded={this.props.isExpanded}\r\n />\r\n );\r\n\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <div\r\n className={className}\r\n style={this.props.style}\r\n data-testid={this.props[\"data-testid\"]}\r\n onClick={this._onClick}\r\n onContextMenu={this.props.onContextMenu}\r\n onMouseDown={this.props.onMouseDown}\r\n onMouseUp={this.props.onMouseUp}\r\n onMouseMove={this.props.onMouseMove}\r\n role=\"treeitem\"\r\n aria-selected={(this.props.isSelected) ? \"true\" : \"false\"}\r\n tabIndex={-1}\r\n >\r\n <div\r\n className=\"contents\"\r\n style={{ marginLeft: offset }}\r\n data-testid={this.createSubComponentTestId(\"contents\")}\r\n >\r\n {this.props.isLoading && <ProgressRadial size=\"x-small\" indeterminate />}\r\n {toggle}\r\n {checkbox}\r\n {icon}\r\n {this.props.label}\r\n </div>\r\n {this.props.children}\r\n </div>\r\n );\r\n }\r\n\r\n private createSubComponentTestId(subId: string): string | undefined {\r\n if (!this.props[\"data-testid\"])\r\n return undefined;\r\n return `${this.props[\"data-testid\"]}-${subId}`;\r\n }\r\n\r\n private _onCheckboxChange = (checked: boolean) => {\r\n if (this.props.checkboxProps && this.props.checkboxProps.onClick && !this.props.checkboxProps.isDisabled)\r\n this.props.checkboxProps.onClick(checked ? CheckBoxState.On : CheckBoxState.Off);\r\n };\r\n\r\n private _onCheckboxClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n };\r\n\r\n private _onClickExpansionToggle = (e: React.MouseEvent<HTMLDivElement>) => {\r\n e.stopPropagation();\r\n if (this.props.onClickExpansionToggle)\r\n this.props.onClickExpansionToggle();\r\n };\r\n\r\n private _onClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n e.stopPropagation();\r\n this.props.onClick?.(e);\r\n };\r\n}\r\n"]}
@@ -1,68 +1,68 @@
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
- *--------------------------------------------------------------------------------------------*/
5
-
6
- $node-font-size: var(--iui-font-size-1);
7
-
8
- .core-tree-node {
9
- /* Rules applied to the <be-tree-node> itself */
10
- display: flex;
11
- box-sizing: border-box;
12
- width: fit-content;
13
- min-width: 100%;
14
- font-family: var(--iui-font-sans);
15
- font-size: $node-font-size;
16
- color: var(--iui-color-text);
17
- white-space: nowrap;
18
- text-overflow: ellipsis;
19
- cursor: default;
20
- padding: 1px 1px 0px 1px;
21
-
22
- > .contents {
23
- display: flex;
24
- align-items: center;
25
- width: 100%;
26
-
27
- > .iui-progress-indicator-radial {
28
- margin: 0 4px;
29
- }
30
-
31
- > .expansion-toggle {
32
- display: inline-block;
33
- margin-top: auto;
34
- margin-bottom: auto;
35
- }
36
-
37
- > .core-image-checkbox {
38
- top: -1px;
39
- }
40
- }
41
-
42
- &-icon {
43
- width: 16px;
44
- margin: 0 5px;
45
-
46
- > .bui-webfont-icon {
47
- display: inline-block;
48
- width: 16px;
49
- text-align: center;
50
- vertical-align: middle;
51
- }
52
- }
53
-
54
- &.is-focused,
55
- &:focus {
56
- outline: 1px dotted #000;
57
- }
58
-
59
- &:not(.is-hover-disabled) {
60
- &:hover {
61
- background: var(--iui-color-background-hover);
62
- }
63
- }
64
-
65
- &.is-selected {
66
- background: var(--iui-color-background-accent-muted);
67
- }
68
- }
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
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ $node-font-size: var(--iui-font-size-1);
7
+
8
+ .core-tree-node {
9
+ /* Rules applied to the <be-tree-node> itself */
10
+ display: flex;
11
+ box-sizing: border-box;
12
+ width: fit-content;
13
+ min-width: 100%;
14
+ font-family: var(--iui-font-sans);
15
+ font-size: $node-font-size;
16
+ color: var(--iui-color-text);
17
+ white-space: nowrap;
18
+ text-overflow: ellipsis;
19
+ cursor: default;
20
+ padding: 1px 1px 0px 1px;
21
+
22
+ > .contents {
23
+ display: flex;
24
+ align-items: center;
25
+ width: 100%;
26
+
27
+ > .iui-progress-indicator-radial {
28
+ margin: 0 4px;
29
+ }
30
+
31
+ > .expansion-toggle {
32
+ display: inline-block;
33
+ margin-top: auto;
34
+ margin-bottom: auto;
35
+ }
36
+
37
+ > .core-image-checkbox {
38
+ top: -1px;
39
+ }
40
+ }
41
+
42
+ &-icon {
43
+ width: 16px;
44
+ margin: 0 5px;
45
+
46
+ > .bui-webfont-icon {
47
+ display: inline-block;
48
+ width: 16px;
49
+ text-align: center;
50
+ vertical-align: middle;
51
+ }
52
+ }
53
+
54
+ &.is-focused,
55
+ &:focus {
56
+ outline: 1px dotted #000;
57
+ }
58
+
59
+ &:not(.is-hover-disabled) {
60
+ &:hover {
61
+ background: var(--iui-color-background-hover);
62
+ }
63
+ }
64
+
65
+ &.is-selected {
66
+ background: var(--iui-color-background-accent-muted);
67
+ }
68
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Placeholder.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,8BAA4B;AAC5B,2CAAoC;AACpC,+BAA+B;AAE/B,iCAAsC;AAYtC;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,KAAK,CAAC,aAAuC;IACpE,MAAM;QACpB,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mBAAY,CAAC;QAC/C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAClE,OAAO,CACL,6BACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,iBACC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAEtC,6BAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,GAAI,CACxD,CACP,CAAC;IACJ,CAAC;CACF;AAlBD,kDAkBC","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 Tree\n */\n\nimport \"./Placeholder.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CommonProps } from \"../utils/Props\";\nimport { LEVEL_OFFSET } from \"./Node\";\n\n/** Properties for the [[TreeNodePlaceholder]] React component\n * @public\n */\nexport interface TreeNodePlaceholderProps extends CommonProps {\n level: number;\n minWidth?: number;\n maxWidth?: number;\n [\"data-testid\"]?: string;\n}\n\n/**\n * Presentation React component for a placeholder to be displayed instead of a node while it's being loaded\n * @public\n */\nexport class TreeNodePlaceholder extends React.PureComponent<TreeNodePlaceholderProps> {\n public override render() {\n const className = classnames(\"core-tree-placeholder\", this.props.className);\n const offset = this.props.level * LEVEL_OFFSET;\n const min = (this.props.minWidth || 50);\n const max = (this.props.maxWidth || 200);\n const width = Math.floor(min + Math.random() * (max - min));\n const style = { ...this.props.style, paddingLeft: `${offset}px` };\n return (\n <div\n className={className}\n style={style}\n data-testid={this.props[\"data-testid\"]}\n >\n <div className=\"contents\" style={{ width: `${width}px` }} />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Placeholder.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,8BAA4B;AAC5B,2CAAoC;AACpC,+BAA+B;AAE/B,iCAAsC;AAYtC;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,KAAK,CAAC,aAAuC;IACpE,MAAM;QACpB,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mBAAY,CAAC;QAC/C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAClE,OAAO,CACL,6BACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,iBACC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAEtC,6BAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,GAAI,CACxD,CACP,CAAC;IACJ,CAAC;CACF;AAlBD,kDAkBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./Placeholder.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { LEVEL_OFFSET } from \"./Node\";\r\n\r\n/** Properties for the [[TreeNodePlaceholder]] React component\r\n * @public\r\n */\r\nexport interface TreeNodePlaceholderProps extends CommonProps {\r\n level: number;\r\n minWidth?: number;\r\n maxWidth?: number;\r\n [\"data-testid\"]?: string;\r\n}\r\n\r\n/**\r\n * Presentation React component for a placeholder to be displayed instead of a node while it's being loaded\r\n * @public\r\n */\r\nexport class TreeNodePlaceholder extends React.PureComponent<TreeNodePlaceholderProps> {\r\n public override render() {\r\n const className = classnames(\"core-tree-placeholder\", this.props.className);\r\n const offset = this.props.level * LEVEL_OFFSET;\r\n const min = (this.props.minWidth || 50);\r\n const max = (this.props.maxWidth || 200);\r\n const width = Math.floor(min + Math.random() * (max - min));\r\n const style = { ...this.props.style, paddingLeft: `${offset}px` };\r\n return (\r\n <div\r\n className={className}\r\n style={style}\r\n data-testid={this.props[\"data-testid\"]}\r\n >\r\n <div className=\"contents\" style={{ width: `${width}px` }} />\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,17 +1,17 @@
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
- *--------------------------------------------------------------------------------------------*/
5
-
6
- .core-tree-placeholder {
7
- display: block;
8
- box-sizing: border-box;
9
- height: 24px;
10
- padding-top: 3px;
11
- padding-bottom: 3px;
12
- > .contents {
13
- margin-left: 24px; // offset for expander
14
- height: 18px;
15
- background-color: var(--iui-color-background-backdrop);
16
- }
17
- }
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
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .core-tree-placeholder {
7
+ display: block;
8
+ box-sizing: border-box;
9
+ height: 24px;
10
+ padding-top: 3px;
11
+ padding-bottom: 3px;
12
+ > .contents {
13
+ margin-left: 24px; // offset for expander
14
+ height: 18px;
15
+ background-color: var(--iui-color-background-backdrop);
16
+ }
17
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Tree.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 Tree\n */\n\nimport \"./Tree.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CommonProps } from \"../utils/Props\";\nimport { Rectangle } from \"../utils/Rectangle\";\n\n/** Properties for the [[Tree]] presentational React component\n * @public\n */\nexport interface TreeProps extends CommonProps {\n children?: React.ReactNode;\n onMouseDown?: React.MouseEventHandler<HTMLDivElement>;\n onMouseMove?: React.MouseEventHandler<HTMLDivElement>;\n onMouseUp?: React.MouseEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onKeyUp?: React.KeyboardEventHandler<HTMLDivElement>;\n}\n\n/** Presentation React component for a Tree\n * @public\n */\nexport class Tree extends React.PureComponent<TreeProps> {\n private _treeElement: React.RefObject<HTMLDivElement> = React.createRef();\n\n private get _scrollableContainer(): Element | undefined {\n if (!this._treeElement.current)\n return undefined;\n\n const isScrollable = (element: Element) => {\n const style = window.getComputedStyle(element);\n return style.overflow === \"auto\" || style.overflow === \"scroll\"\n || style.overflowY === \"auto\" || style.overflowY === \"scroll\"\n || style.overflowX === \"auto\" || style.overflowX === \"scroll\";\n };\n let scrollableContainer: Element | undefined = this._treeElement.current;\n while (scrollableContainer && !isScrollable(scrollableContainer))\n scrollableContainer = (scrollableContainer.children.length > 0) ? scrollableContainer.children[0] : undefined;\n\n return scrollableContainer;\n }\n\n public scrollToElement(element: Element) {\n const container = this._scrollableContainer;\n if (!container)\n return;\n\n // istanbul ignore next\n if (!Element.prototype.scrollTo) { // eslint-disable-line @typescript-eslint/unbound-method\n // workaround for Edge scrollTo issue https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/15534521/\n element.scrollIntoView();\n return;\n }\n\n const elementBox = element.getBoundingClientRect();\n const elementRange = Rectangle.createXYXY(elementBox.left, elementBox.top, elementBox.right, elementBox.bottom);\n const containerBox = container.getBoundingClientRect();\n const containerRange = Rectangle.createXYXY(containerBox.left - container.scrollLeft, containerBox.top - container.scrollTop,\n containerBox.right - container.scrollLeft, containerBox.bottom - container.scrollTop);\n\n let left: number;\n if (container.scrollLeft > 0 && elementRange.right <= containerRange.right) {\n // always attempt to keep horizontal scroll at 0\n left = 0;\n } else if (containerRange.left <= elementRange.left && containerRange.right >= elementRange.right) {\n // already visible - no need to scroll to\n left = container.scrollLeft;\n } else {\n left = elementRange.left - containerRange.left;\n }\n\n let top: number;\n if (containerRange.top <= elementRange.top && containerRange.bottom >= elementRange.bottom) {\n // already visible - no need to scroll to\n top = container.scrollTop;\n } else {\n top = elementRange.top - containerRange.top;\n }\n\n container.scrollTo({ left, top });\n }\n\n public getElementsByClassName(className: string): Element[] {\n if (!this._treeElement.current)\n return [];\n\n const elems = new Array<Element>();\n const collection = this._treeElement.current.getElementsByClassName(className);\n for (let i = 0; i < collection.length; ++i)\n elems.push(collection.item(i)!);\n return elems;\n }\n // istanbul ignore next\n public setFocusByClassName(selector: string): boolean {\n let status = false;\n if (this._treeElement.current) {\n const element = this._treeElement.current.querySelector(selector) as HTMLElement;\n // istanbul ignore else\n if (element && element.focus) {\n element.focus();\n status = true;\n }\n }\n return status;\n }\n\n public override render() {\n const className = classnames(\n \"core-tree\",\n this.props.className);\n\n return (\n <div ref={this._treeElement}\n className={className}\n style={this.props.style}\n onMouseDown={this.props.onMouseDown}\n onMouseMove={this.props.onMouseMove}\n onMouseUp={this.props.onMouseUp}\n onKeyDown={this.props.onKeyDown}\n onKeyUp={this.props.onKeyUp}\n role=\"tree\"\n tabIndex={-1}\n >\n {this.props.children}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/core-react/tree/Tree.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tree\r\n */\r\n\r\nimport \"./Tree.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { Rectangle } from \"../utils/Rectangle\";\r\n\r\n/** Properties for the [[Tree]] presentational React component\r\n * @public\r\n */\r\nexport interface TreeProps extends CommonProps {\r\n children?: React.ReactNode;\r\n onMouseDown?: React.MouseEventHandler<HTMLDivElement>;\r\n onMouseMove?: React.MouseEventHandler<HTMLDivElement>;\r\n onMouseUp?: React.MouseEventHandler<HTMLDivElement>;\r\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\r\n onKeyUp?: React.KeyboardEventHandler<HTMLDivElement>;\r\n}\r\n\r\n/** Presentation React component for a Tree\r\n * @public\r\n */\r\nexport class Tree extends React.PureComponent<TreeProps> {\r\n private _treeElement: React.RefObject<HTMLDivElement> = React.createRef();\r\n\r\n private get _scrollableContainer(): Element | undefined {\r\n if (!this._treeElement.current)\r\n return undefined;\r\n\r\n const isScrollable = (element: Element) => {\r\n const style = window.getComputedStyle(element);\r\n return style.overflow === \"auto\" || style.overflow === \"scroll\"\r\n || style.overflowY === \"auto\" || style.overflowY === \"scroll\"\r\n || style.overflowX === \"auto\" || style.overflowX === \"scroll\";\r\n };\r\n let scrollableContainer: Element | undefined = this._treeElement.current;\r\n while (scrollableContainer && !isScrollable(scrollableContainer))\r\n scrollableContainer = (scrollableContainer.children.length > 0) ? scrollableContainer.children[0] : undefined;\r\n\r\n return scrollableContainer;\r\n }\r\n\r\n public scrollToElement(element: Element) {\r\n const container = this._scrollableContainer;\r\n if (!container)\r\n return;\r\n\r\n // istanbul ignore next\r\n if (!Element.prototype.scrollTo) { // eslint-disable-line @typescript-eslint/unbound-method\r\n // workaround for Edge scrollTo issue https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/15534521/\r\n element.scrollIntoView();\r\n return;\r\n }\r\n\r\n const elementBox = element.getBoundingClientRect();\r\n const elementRange = Rectangle.createXYXY(elementBox.left, elementBox.top, elementBox.right, elementBox.bottom);\r\n const containerBox = container.getBoundingClientRect();\r\n const containerRange = Rectangle.createXYXY(containerBox.left - container.scrollLeft, containerBox.top - container.scrollTop,\r\n containerBox.right - container.scrollLeft, containerBox.bottom - container.scrollTop);\r\n\r\n let left: number;\r\n if (container.scrollLeft > 0 && elementRange.right <= containerRange.right) {\r\n // always attempt to keep horizontal scroll at 0\r\n left = 0;\r\n } else if (containerRange.left <= elementRange.left && containerRange.right >= elementRange.right) {\r\n // already visible - no need to scroll to\r\n left = container.scrollLeft;\r\n } else {\r\n left = elementRange.left - containerRange.left;\r\n }\r\n\r\n let top: number;\r\n if (containerRange.top <= elementRange.top && containerRange.bottom >= elementRange.bottom) {\r\n // already visible - no need to scroll to\r\n top = container.scrollTop;\r\n } else {\r\n top = elementRange.top - containerRange.top;\r\n }\r\n\r\n container.scrollTo({ left, top });\r\n }\r\n\r\n public getElementsByClassName(className: string): Element[] {\r\n if (!this._treeElement.current)\r\n return [];\r\n\r\n const elems = new Array<Element>();\r\n const collection = this._treeElement.current.getElementsByClassName(className);\r\n for (let i = 0; i < collection.length; ++i)\r\n elems.push(collection.item(i)!);\r\n return elems;\r\n }\r\n // istanbul ignore next\r\n public setFocusByClassName(selector: string): boolean {\r\n let status = false;\r\n if (this._treeElement.current) {\r\n const element = this._treeElement.current.querySelector(selector) as HTMLElement;\r\n // istanbul ignore else\r\n if (element && element.focus) {\r\n element.focus();\r\n status = true;\r\n }\r\n }\r\n return status;\r\n }\r\n\r\n public override render() {\r\n const className = classnames(\r\n \"core-tree\",\r\n this.props.className);\r\n\r\n return (\r\n <div ref={this._treeElement}\r\n className={className}\r\n style={this.props.style}\r\n onMouseDown={this.props.onMouseDown}\r\n onMouseMove={this.props.onMouseMove}\r\n onMouseUp={this.props.onMouseUp}\r\n onKeyDown={this.props.onKeyDown}\r\n onKeyUp={this.props.onKeyUp}\r\n role=\"tree\"\r\n tabIndex={-1}\r\n >\r\n {this.props.children}\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,21 +1,21 @@
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
- *--------------------------------------------------------------------------------------------*/
5
-
6
- .core-tree {
7
- user-select: none;
8
- box-sizing: border-box;
9
- width: 100%;
10
- height: 100%;
11
-
12
- &:focus {
13
- outline: none;
14
- }
15
-
16
- > * {
17
- position: relative;
18
- display: block;
19
- padding: 0;
20
- }
21
- }
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
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .core-tree {
7
+ user-select: none;
8
+ box-sizing: border-box;
9
+ width: 100%;
10
+ height: 100%;
11
+
12
+ &:focus {
13
+ outline: none;
14
+ }
15
+
16
+ > * {
17
+ position: relative;
18
+ display: block;
19
+ padding: 0;
20
+ }
21
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStateStorage.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/LocalStateStorage.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,qDAA8F;AAE9F,sIAAsI;AACtI,wDAAwD;AAExD;;;GAGG;AACH,MAAa,iBAAiB;IAE5B,YAAmB,IAAY,MAAM;QAAlB,MAAC,GAAD,CAAC,CAAiB;IAAI,CAAC;IAEnC,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,WAAmB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC;QAClF,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;;YAE9E,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,gBAAwB,EAAE,WAAmB,EAAE,OAAY;QAClF,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3F,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,WAAmB;QACnE,MAAM,IAAI,GAAG,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,gBAAwB,EAAE,WAAmB;QACtE,MAAM,IAAI,GAAG,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;CACF;AAjCD,8CAiCC","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 UiStateStorage\n */\n\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"./UiStateStorage\";\n\n// All of the Settings APIs that are available in core-react should be fully deprecated. However, some of the usage and implementation\n// of it from AppUI will continue to be supported there.\n\n/**\n * Implementation of [[UiStateStorage]] using Window.localStorage.\n * @public\n */\nexport class LocalStateStorage implements UiStateStorage {\n\n constructor(public w: Window = window) { }\n\n public async getSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult> {\n const setting = this.w.localStorage.getItem(`${settingNamespace}.${settingName}`);\n if (setting !== null)\n return { status: UiStateStorageStatus.Success, setting: JSON.parse(setting) };\n else\n return { status: UiStateStorageStatus.NotFound };\n }\n\n public async saveSetting(settingNamespace: string, settingName: string, setting: any): Promise<UiStateStorageResult> {\n this.w.localStorage.setItem(`${settingNamespace}.${settingName}`, JSON.stringify(setting));\n return { status: UiStateStorageStatus.Success };\n }\n\n public async hasSetting(settingNamespace: string, settingName: string): Promise<boolean> {\n const name = `${settingNamespace}.${settingName}`;\n const setting = this.w.localStorage.getItem(name);\n if (setting === null)\n return false;\n return true;\n }\n\n public async deleteSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult> {\n const name = `${settingNamespace}.${settingName}`;\n const setting = this.w.localStorage.getItem(name);\n if (setting === null)\n return { status: UiStateStorageStatus.NotFound };\n this.w.localStorage.removeItem(name);\n return { status: UiStateStorageStatus.Success };\n }\n}\n"]}
1
+ {"version":3,"file":"LocalStateStorage.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/LocalStateStorage.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,qDAA8F;AAE9F,sIAAsI;AACtI,wDAAwD;AAExD;;;GAGG;AACH,MAAa,iBAAiB;IAE5B,YAAmB,IAAY,MAAM;QAAlB,MAAC,GAAD,CAAC,CAAiB;IAAI,CAAC;IAEnC,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,WAAmB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC;QAClF,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;;YAE9E,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,gBAAwB,EAAE,WAAmB,EAAE,OAAY;QAClF,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3F,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,WAAmB;QACnE,MAAM,IAAI,GAAG,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,gBAAwB,EAAE,WAAmB;QACtE,MAAM,IAAI,GAAG,GAAG,gBAAgB,IAAI,WAAW,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI;YAClB,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;CACF;AAjCD,8CAiCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module UiStateStorage\r\n */\r\n\r\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"./UiStateStorage\";\r\n\r\n// All of the Settings APIs that are available in core-react should be fully deprecated. However, some of the usage and implementation\r\n// of it from AppUI will continue to be supported there.\r\n\r\n/**\r\n * Implementation of [[UiStateStorage]] using Window.localStorage.\r\n * @public\r\n */\r\nexport class LocalStateStorage implements UiStateStorage {\r\n\r\n constructor(public w: Window = window) { }\r\n\r\n public async getSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult> {\r\n const setting = this.w.localStorage.getItem(`${settingNamespace}.${settingName}`);\r\n if (setting !== null)\r\n return { status: UiStateStorageStatus.Success, setting: JSON.parse(setting) };\r\n else\r\n return { status: UiStateStorageStatus.NotFound };\r\n }\r\n\r\n public async saveSetting(settingNamespace: string, settingName: string, setting: any): Promise<UiStateStorageResult> {\r\n this.w.localStorage.setItem(`${settingNamespace}.${settingName}`, JSON.stringify(setting));\r\n return { status: UiStateStorageStatus.Success };\r\n }\r\n\r\n public async hasSetting(settingNamespace: string, settingName: string): Promise<boolean> {\r\n const name = `${settingNamespace}.${settingName}`;\r\n const setting = this.w.localStorage.getItem(name);\r\n if (setting === null)\r\n return false;\r\n return true;\r\n }\r\n\r\n public async deleteSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult> {\r\n const name = `${settingNamespace}.${settingName}`;\r\n const setting = this.w.localStorage.getItem(name);\r\n if (setting === null)\r\n return { status: UiStateStorageStatus.NotFound };\r\n this.w.localStorage.removeItem(name);\r\n return { status: UiStateStorageStatus.Success };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiStateEntry.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/UiStateEntry.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,qDAA8F;AAE9F;;GAEG;AACH,MAAa,YAAY;IACvB;;;;;;OAMG;IACH,YAA0B,gBAAwB,EAAS,WAAmB,EAAS,QAAiB,EAAS,UAA2B,EAAS,YAAgB;QAA3I,qBAAgB,GAAhB,gBAAgB,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAQ;QAAS,aAAQ,GAAR,QAAQ,CAAS;QAAS,eAAU,GAAV,UAAU,CAAiB;QAAS,iBAAY,GAAZ,YAAY,CAAI;IACrK,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,UAAU,CAAC,OAAuB;QAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,WAAW,CAAC,OAAuB;QAC9C,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,8CAA8C;IACvC,KAAK,CAAC,aAAa,CAAC,OAAuB;QAChD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,iGAAiG;IAC1F,KAAK,CAAC,uBAAuB,CAAC,OAAuB;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,qCAAoB,CAAC,OAAO,EAAE;gBAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACjC;iBAAM,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE;gBAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;gBACnC,MAAM,CAAC,MAAM,GAAG,qCAAoB,CAAC,OAAO,CAAC;aAC9C;YACD,OAAO,MAAM,CAAC;SACf;QACD,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,aAAa,EAAE,CAAC;IACxD,CAAC;CACF;AAzCD,oCAyCC","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 UiStateStorage\n */\n\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"./UiStateStorage\";\n\n/** A single UI State enter that is identified by namespace and setting name.\n * @public\n */\nexport class UiStateEntry<T> {\n /** Constructor\n * @param settingNamespace Namespace for the setting, passed to UiStateStorage.\n * @param settingName Name for the setting, passed to UiStateStorage.\n * @param getValue Function for getting the value from the application.\n * @param applyValue Function for applying the setting value to the application.\n * @param defaultValue Optional default value if not already stored.\n */\n public constructor(public settingNamespace: string, public settingName: string, public getValue: () => T, public applyValue?: (v: T) => void, public defaultValue?: T) {\n }\n\n /** Gets the setting from [[UiStateStorage]] */\n public async getSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\n return storage.getSetting(this.settingNamespace, this.settingName);\n }\n\n /** Saves the setting value from the `getValue` function to UiStateStorage */\n public async saveSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\n return storage.saveSetting(this.settingNamespace, this.settingName, this.getValue());\n }\n\n /** Deletes the setting from UiStateStorage */\n public async deleteSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\n return storage.deleteSetting(this.settingNamespace, this.settingName);\n }\n\n /** Gets the setting from UiStateStorage and applies the value using the `applyValue` function */\n public async getSettingAndApplyValue(storage: UiStateStorage): Promise<UiStateStorageResult> {\n if (this.applyValue) {\n const result = await this.getSetting(storage);\n if (result.status === UiStateStorageStatus.Success) {\n this.applyValue(result.setting);\n } else if (undefined !== this.defaultValue) {\n this.applyValue(this.defaultValue);\n result.setting = this.defaultValue;\n result.status = UiStateStorageStatus.Success;\n }\n return result;\n }\n return { status: UiStateStorageStatus.Uninitialized };\n }\n}\n"]}
1
+ {"version":3,"file":"UiStateEntry.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/UiStateEntry.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,qDAA8F;AAE9F;;GAEG;AACH,MAAa,YAAY;IACvB;;;;;;OAMG;IACH,YAA0B,gBAAwB,EAAS,WAAmB,EAAS,QAAiB,EAAS,UAA2B,EAAS,YAAgB;QAA3I,qBAAgB,GAAhB,gBAAgB,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAQ;QAAS,aAAQ,GAAR,QAAQ,CAAS;QAAS,eAAU,GAAV,UAAU,CAAiB;QAAS,iBAAY,GAAZ,YAAY,CAAI;IACrK,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,UAAU,CAAC,OAAuB;QAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,WAAW,CAAC,OAAuB;QAC9C,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,8CAA8C;IACvC,KAAK,CAAC,aAAa,CAAC,OAAuB;QAChD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,iGAAiG;IAC1F,KAAK,CAAC,uBAAuB,CAAC,OAAuB;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,qCAAoB,CAAC,OAAO,EAAE;gBAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACjC;iBAAM,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE;gBAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;gBACnC,MAAM,CAAC,MAAM,GAAG,qCAAoB,CAAC,OAAO,CAAC;aAC9C;YACD,OAAO,MAAM,CAAC;SACf;QACD,OAAO,EAAE,MAAM,EAAE,qCAAoB,CAAC,aAAa,EAAE,CAAC;IACxD,CAAC;CACF;AAzCD,oCAyCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module UiStateStorage\r\n */\r\n\r\nimport { UiStateStorage, UiStateStorageResult, UiStateStorageStatus } from \"./UiStateStorage\";\r\n\r\n/** A single UI State enter that is identified by namespace and setting name.\r\n * @public\r\n */\r\nexport class UiStateEntry<T> {\r\n /** Constructor\r\n * @param settingNamespace Namespace for the setting, passed to UiStateStorage.\r\n * @param settingName Name for the setting, passed to UiStateStorage.\r\n * @param getValue Function for getting the value from the application.\r\n * @param applyValue Function for applying the setting value to the application.\r\n * @param defaultValue Optional default value if not already stored.\r\n */\r\n public constructor(public settingNamespace: string, public settingName: string, public getValue: () => T, public applyValue?: (v: T) => void, public defaultValue?: T) {\r\n }\r\n\r\n /** Gets the setting from [[UiStateStorage]] */\r\n public async getSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\r\n return storage.getSetting(this.settingNamespace, this.settingName);\r\n }\r\n\r\n /** Saves the setting value from the `getValue` function to UiStateStorage */\r\n public async saveSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\r\n return storage.saveSetting(this.settingNamespace, this.settingName, this.getValue());\r\n }\r\n\r\n /** Deletes the setting from UiStateStorage */\r\n public async deleteSetting(storage: UiStateStorage): Promise<UiStateStorageResult> {\r\n return storage.deleteSetting(this.settingNamespace, this.settingName);\r\n }\r\n\r\n /** Gets the setting from UiStateStorage and applies the value using the `applyValue` function */\r\n public async getSettingAndApplyValue(storage: UiStateStorage): Promise<UiStateStorageResult> {\r\n if (this.applyValue) {\r\n const result = await this.getSetting(storage);\r\n if (result.status === UiStateStorageStatus.Success) {\r\n this.applyValue(result.setting);\r\n } else if (undefined !== this.defaultValue) {\r\n this.applyValue(this.defaultValue);\r\n result.setting = this.defaultValue;\r\n result.status = UiStateStorageStatus.Success;\r\n }\r\n return result;\r\n }\r\n return { status: UiStateStorageStatus.Uninitialized };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiStateStorage.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/UiStateStorage.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAWH;;GAEG;AACH,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,qEAAW,CAAA;IACX,uEAAY,CAAA;IACZ,+EAAgB,CAAA;IAChB,iFAAiB,CAAA;IACjB,2FAAsB,CAAA;AACxB,CAAC,EANW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAM/B","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 UiStateStorage\n */\n\n/** Interface for getting, saving and deleting settings.\n * @public\n */\nexport interface UiStateStorage {\n getSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult>;\n saveSetting(settingNamespace: string, settingName: string, setting: any): Promise<UiStateStorageResult>;\n deleteSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult>;\n}\n\n/** Enum for [[UiStateStorage]] status.\n * @public\n */\nexport enum UiStateStorageStatus {\n Success = 0,\n NotFound = 1,\n UnknownError = 2,\n Uninitialized = 3,\n AuthorizationError = 4,\n}\n\n/** Interface for result of accessing UI state setting in [[UiStateStorage]].\n * @public\n */\nexport interface UiStateStorageResult {\n status: UiStateStorageStatus;\n setting?: any;\n}\n"]}
1
+ {"version":3,"file":"UiStateStorage.js","sourceRoot":"","sources":["../../../../src/core-react/uistate/UiStateStorage.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAWH;;GAEG;AACH,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,qEAAW,CAAA;IACX,uEAAY,CAAA;IACZ,+EAAgB,CAAA;IAChB,iFAAiB,CAAA;IACjB,2FAAsB,CAAA;AACxB,CAAC,EANW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAM/B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module UiStateStorage\r\n */\r\n\r\n/** Interface for getting, saving and deleting settings.\r\n * @public\r\n */\r\nexport interface UiStateStorage {\r\n getSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult>;\r\n saveSetting(settingNamespace: string, settingName: string, setting: any): Promise<UiStateStorageResult>;\r\n deleteSetting(settingNamespace: string, settingName: string): Promise<UiStateStorageResult>;\r\n}\r\n\r\n/** Enum for [[UiStateStorage]] status.\r\n * @public\r\n */\r\nexport enum UiStateStorageStatus {\r\n Success = 0,\r\n NotFound = 1,\r\n UnknownError = 2,\r\n Uninitialized = 3,\r\n AuthorizationError = 4,\r\n}\r\n\r\n/** Interface for result of accessing UI state setting in [[UiStateStorage]].\r\n * @public\r\n */\r\nexport interface UiStateStorageResult {\r\n status: UiStateStorageStatus;\r\n setting?: any;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IconHelper.js","sourceRoot":"","sources":["../../../../src/core-react/utils/IconHelper.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAA+D;AAC/D,0DAAwD;AAExD;;GAEG;AACH,MAAa,UAAU;IACd,MAAM,KAAK,YAAY;QAC5B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAuD,EAAE,YAA+B;QACrH,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;YAC5B,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,IAAI,GAAI,CAAC;QAElC,qBAAqB;QACrB,IAAI,CAAC,CAAC,IAAI,YAAY,uCAAsB,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ;YACvE,OAAO,IAAI,CAAC;QAEd,MAAM,UAAU,GAAG,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU;YACb,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,UAAU,KAAK,UAAU,CAAC,YAAY,EAAE;YAC1C,uBAAuB;YACvB,IAAI,YAAY;gBACd,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAoB,GAAI,CAAC;YAC1F,OAAO,IAAI,CAAC;SACb;QACD,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,UAAU,GAAI,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,QAAkB,EAAE,YAA+B;QAC3E,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEnF,IAAI,YAAY,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,YAAY,EAAE;YAChF,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;SACrD;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,uCAAsB;YACpE,OAAO,IAAI,CAAC;QAEd,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AApDD,gCAoDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport { Icon, IconSpec } from \"../icons/IconComponent\";\n\n/** Icon Helper Class used to store the data needed to generate an <Icon> for use in any control that shows an icon.\n * @public\n */\nexport class IconHelper {\n public static get reactIconKey(): string {\n return \"#-react-iconspec-node-#\";\n }\n /** Returns an <Icon> ReactNode from the many ways an icon can be specified.\n * @param icon abstract icon specification.\n * @param internalData a map that may hold a React.ReactNode stored in an abstract item definition.\n */\n public static getIconReactNode(icon: string | ConditionalStringValue | React.ReactNode, internalData?: Map<string, any>): React.ReactNode {\n // istanbul ignore else\n if (!icon)\n return null;\n\n // istanbul ignore else\n if (React.isValidElement(icon))\n return <Icon iconSpec={icon} />;\n\n // istanbul ignore if\n if (!(icon instanceof ConditionalStringValue) && typeof icon !== \"string\")\n return null;\n\n const iconString = ConditionalStringValue.getValue(icon);\n if (!iconString)\n return null;\n\n // istanbul ignore else\n if (iconString === IconHelper.reactIconKey) {\n // istanbul ignore else\n if (internalData)\n return <Icon iconSpec={internalData.get(IconHelper.reactIconKey) as React.ReactNode} />;\n return null;\n }\n return <Icon iconSpec={iconString} />;\n }\n\n /** Returns an icon definition that can be stored in an abstract item definition. If the iconSpec specifies a ReactNode\n * then the react data is stored in the internalData map and the key to the react data is returned.\n * @param iconSpec any supported variations of how an icon can be defined in an abstract item or IconProps.\n * @param internalData a map supplied by the caller to store away react element if React.ReactNode\n */\n public static getIconData(iconSpec: IconSpec, internalData?: Map<string, any>): string | ConditionalStringValue {\n const icon = (React.isValidElement(iconSpec)) ? IconHelper.reactIconKey : iconSpec;\n\n if (internalData && typeof icon === \"string\" && icon === IconHelper.reactIconKey) {\n internalData.set(IconHelper.reactIconKey, iconSpec);\n }\n\n if (typeof icon === \"string\" || icon instanceof ConditionalStringValue)\n return icon;\n\n return \"\";\n }\n}\n"]}
1
+ {"version":3,"file":"IconHelper.js","sourceRoot":"","sources":["../../../../src/core-react/utils/IconHelper.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAA+D;AAC/D,0DAAwD;AAExD;;GAEG;AACH,MAAa,UAAU;IACd,MAAM,KAAK,YAAY;QAC5B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAuD,EAAE,YAA+B;QACrH,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;YAC5B,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,IAAI,GAAI,CAAC;QAElC,qBAAqB;QACrB,IAAI,CAAC,CAAC,IAAI,YAAY,uCAAsB,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ;YACvE,OAAO,IAAI,CAAC;QAEd,MAAM,UAAU,GAAG,uCAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU;YACb,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,UAAU,KAAK,UAAU,CAAC,YAAY,EAAE;YAC1C,uBAAuB;YACvB,IAAI,YAAY;gBACd,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAoB,GAAI,CAAC;YAC1F,OAAO,IAAI,CAAC;SACb;QACD,OAAO,oBAAC,oBAAI,IAAC,QAAQ,EAAE,UAAU,GAAI,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,QAAkB,EAAE,YAA+B;QAC3E,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEnF,IAAI,YAAY,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,YAAY,EAAE;YAChF,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;SACrD;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,uCAAsB;YACpE,OAAO,IAAI,CAAC;QAEd,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AApDD,gCAoDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\r\nimport { Icon, IconSpec } from \"../icons/IconComponent\";\r\n\r\n/** Icon Helper Class used to store the data needed to generate an <Icon> for use in any control that shows an icon.\r\n * @public\r\n */\r\nexport class IconHelper {\r\n public static get reactIconKey(): string {\r\n return \"#-react-iconspec-node-#\";\r\n }\r\n /** Returns an <Icon> ReactNode from the many ways an icon can be specified.\r\n * @param icon abstract icon specification.\r\n * @param internalData a map that may hold a React.ReactNode stored in an abstract item definition.\r\n */\r\n public static getIconReactNode(icon: string | ConditionalStringValue | React.ReactNode, internalData?: Map<string, any>): React.ReactNode {\r\n // istanbul ignore else\r\n if (!icon)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (React.isValidElement(icon))\r\n return <Icon iconSpec={icon} />;\r\n\r\n // istanbul ignore if\r\n if (!(icon instanceof ConditionalStringValue) && typeof icon !== \"string\")\r\n return null;\r\n\r\n const iconString = ConditionalStringValue.getValue(icon);\r\n if (!iconString)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (iconString === IconHelper.reactIconKey) {\r\n // istanbul ignore else\r\n if (internalData)\r\n return <Icon iconSpec={internalData.get(IconHelper.reactIconKey) as React.ReactNode} />;\r\n return null;\r\n }\r\n return <Icon iconSpec={iconString} />;\r\n }\r\n\r\n /** Returns an icon definition that can be stored in an abstract item definition. If the iconSpec specifies a ReactNode\r\n * then the react data is stored in the internalData map and the key to the react data is returned.\r\n * @param iconSpec any supported variations of how an icon can be defined in an abstract item or IconProps.\r\n * @param internalData a map supplied by the caller to store away react element if React.ReactNode\r\n */\r\n public static getIconData(iconSpec: IconSpec, internalData?: Map<string, any>): string | ConditionalStringValue {\r\n const icon = (React.isValidElement(iconSpec)) ? IconHelper.reactIconKey : iconSpec;\r\n\r\n if (internalData && typeof icon === \"string\" && icon === IconHelper.reactIconKey) {\r\n internalData.set(IconHelper.reactIconKey, iconSpec);\r\n }\r\n\r\n if (typeof icon === \"string\" || icon instanceof ConditionalStringValue)\r\n return icon;\r\n\r\n return \"\";\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IconWebComponent.js","sourceRoot":"","sources":["../../../../src/core-react/utils/IconWebComponent.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// istanbul ignore file\n// IconWebComponent requires in-browser testing\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiCore } from \"../UiCore\";\nimport DOMPurify, * as DOMPurifyNS from \"dompurify\";\n\n/**\n * IconWebComponent loads icon from an svg path\n */\nexport class IconWebComponent extends HTMLElement {\n private async connectedCallback() {\n await this.loadSvg();\n this.dispatchEvent(new CustomEvent(\"load\"));\n }\n\n private async loadSvg() {\n // if svg was already appended don't request it again\n if (this.childNodes.length)\n return;\n\n const src = this.getAttribute(\"src\") || \"\";\n\n if (src.startsWith(\"data:\")) {\n const dataUriParts = src.split(\",\");\n\n if (dataUriParts.length !== 2 || \"data:image/svg+xml;base64\" !== dataUriParts[0]) {\n Logger.logError(UiCore.loggerCategory(this), \"Unable to load icon.\");\n }\n\n // the esm build of dompurify has a default import but the cjs build does not\n // if there is a default export, use it (likely esm), otherwise use the namespace\n // istanbul ignore next\n const sanitizer = DOMPurify ?? DOMPurifyNS;\n // eslint-disable-next-line deprecation/deprecation\n const sanitizedSvg = sanitizer.sanitize(atob(dataUriParts[1]));\n\n const parsedSvg = new window.DOMParser().parseFromString(sanitizedSvg, \"text/xml\");\n const errorNode = parsedSvg.querySelector(\"parsererror\");\n if (errorNode || \"svg\" !== parsedSvg.documentElement.nodeName.toLowerCase()) {\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\n }\n\n !this.childNodes.length && this.append(parsedSvg.documentElement);\n return;\n }\n\n await fetch(src)\n .catch((_error) => {\n Logger.logError(UiCore.loggerCategory(this), \"Unable to load icon.\");\n })\n .then(async (response) => {\n if (response && response.ok) {\n return response.text();\n } else {\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\n }\n })\n .then((str) => {\n if (str !== undefined) {\n return (new window.DOMParser()).parseFromString(str, \"text/xml\");\n } else {\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\n }\n })\n .then((data) => !this.childNodes.length && this.append(data.documentElement));\n }\n}\n"]}
1
+ {"version":3,"file":"IconWebComponent.js","sourceRoot":"","sources":["../../../../src/core-react/utils/IconWebComponent.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n// istanbul ignore file\r\n// IconWebComponent requires in-browser testing\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { UiError } from \"@itwin/appui-abstract\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiCore } from \"../UiCore\";\r\nimport DOMPurify, * as DOMPurifyNS from \"dompurify\";\r\n\r\n/**\r\n * IconWebComponent loads icon from an svg path\r\n */\r\nexport class IconWebComponent extends HTMLElement {\r\n private async connectedCallback() {\r\n await this.loadSvg();\r\n this.dispatchEvent(new CustomEvent(\"load\"));\r\n }\r\n\r\n private async loadSvg() {\r\n // if svg was already appended don't request it again\r\n if (this.childNodes.length)\r\n return;\r\n\r\n const src = this.getAttribute(\"src\") || \"\";\r\n\r\n if (src.startsWith(\"data:\")) {\r\n const dataUriParts = src.split(\",\");\r\n\r\n if (dataUriParts.length !== 2 || \"data:image/svg+xml;base64\" !== dataUriParts[0]) {\r\n Logger.logError(UiCore.loggerCategory(this), \"Unable to load icon.\");\r\n }\r\n\r\n // the esm build of dompurify has a default import but the cjs build does not\r\n // if there is a default export, use it (likely esm), otherwise use the namespace\r\n // istanbul ignore next\r\n const sanitizer = DOMPurify ?? DOMPurifyNS;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const sanitizedSvg = sanitizer.sanitize(atob(dataUriParts[1]));\r\n\r\n const parsedSvg = new window.DOMParser().parseFromString(sanitizedSvg, \"text/xml\");\r\n const errorNode = parsedSvg.querySelector(\"parsererror\");\r\n if (errorNode || \"svg\" !== parsedSvg.documentElement.nodeName.toLowerCase()) {\r\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\r\n }\r\n\r\n !this.childNodes.length && this.append(parsedSvg.documentElement);\r\n return;\r\n }\r\n\r\n await fetch(src)\r\n .catch((_error) => {\r\n Logger.logError(UiCore.loggerCategory(this), \"Unable to load icon.\");\r\n })\r\n .then(async (response) => {\r\n if (response && response.ok) {\r\n return response.text();\r\n } else {\r\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\r\n }\r\n })\r\n .then((str) => {\r\n if (str !== undefined) {\r\n return (new window.DOMParser()).parseFromString(str, \"text/xml\");\r\n } else {\r\n throw new UiError (UiCore.loggerCategory(this), \"Unable to load icon.\");\r\n }\r\n })\r\n .then((data) => !this.childNodes.length && this.append(data.documentElement));\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/core-react/utils/Point.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;GAEG;AACH,MAAa,KAAK;IAChB,yCAAyC;IAClC,MAAM,CAAC,MAAM,CAAC,UAAsB;QACzC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,2BAA2B;IAC3B,YAAmC,IAAI,CAAC,EAAkB,IAAI,CAAC;QAA5B,MAAC,GAAD,CAAC,CAAI;QAAkB,MAAC,GAAD,CAAC,CAAI;IAC/D,CAAC;IAED,oDAAoD;IAC7C,aAAa,CAAC,KAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,oDAAoD;IAC7C,sBAAsB,CAAC,KAAiB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,kCAAkC;IAC3B,WAAW,CAAC,KAAiB;QAClC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,oEAAoE;IAC7D,MAAM,CAAC,MAAkB;QAC9B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IACvD,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,8DAA8D;IACvD,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,oEAAoE;IAC7D,MAAM,CAAC,KAAiB;QAC7B,OAAO,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,oDAAoD;IAC7C,IAAI,CAAC,CAAS;QACnB,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,oDAAoD;IAC7C,IAAI,CAAC,CAAS;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IACvE,QAAQ,CAAC,MAAc;QAC5B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,qDAAqD;IAC9C,OAAO;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;IACJ,CAAC;CACF;AApED,sBAoEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport { PointProps } from \"@itwin/appui-abstract\";\n\n/** Describes and provides methods to work with 2d points.\n * @internal\n */\nexport class Point implements PointProps {\n /** Creates point from [[PointProps]]. */\n public static create(pointProps: PointProps) {\n return new Point(pointProps.x, pointProps.y);\n }\n\n /** Creates a new point. */\n public constructor(public readonly x = 0, public readonly y = 0) {\n }\n\n /** Calculates Euclidean distance to other point. */\n public getDistanceTo(other: PointProps): number {\n const offset = this.getOffsetTo(other);\n return Math.sqrt(Math.pow(offset.x, 2) + Math.pow(offset.y, 2));\n }\n\n /** Calculates grid-like distance to other point. */\n public getManhattanDistanceTo(other: PointProps): number {\n return Math.abs(this.x - other.x) + Math.abs(this.y - other.y);\n }\n\n /** Gets offset to other point. */\n public getOffsetTo(other: PointProps) {\n return new Point(other.x - this.x, other.y - this.y);\n }\n\n /** @returns New [[Point]] that is offset along the X and Y axes. */\n public offset(offset: PointProps) {\n return new Point(this.x + offset.x, this.y + offset.y);\n }\n\n /** @returns New [[Point]] that is offset along the X axis. */\n public offsetX(offset: number) {\n return new Point(this.x + offset, this.y);\n }\n\n /** @returns New [[Point]] that is offset along the Y axis. */\n public offsetY(offset: number) {\n return new Point(this.x, this.y + offset);\n }\n\n /** @returns True if position of this and other points are equal. */\n public equals(other: PointProps) {\n return other.x === this.x && other.y === this.y;\n }\n\n /** @returns New [[Point]] with modified x value. */\n public setX(x: number) {\n return new Point(x, this.y);\n }\n\n /** @returns New [[Point]] with modified y value. */\n public setY(y: number) {\n return new Point(this.x, y);\n }\n\n /** @returns New [[Point]] with coordinates multiplied by specified factor. */\n public multiply(factor: number) {\n return new Point(this.x * factor, this.y * factor);\n }\n\n /** @returns [[PointProps]] object for this point. */\n public toProps(): PointProps {\n return {\n x: this.x,\n y: this.y,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/core-react/utils/Point.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;GAEG;AACH,MAAa,KAAK;IAChB,yCAAyC;IAClC,MAAM,CAAC,MAAM,CAAC,UAAsB;QACzC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,2BAA2B;IAC3B,YAAmC,IAAI,CAAC,EAAkB,IAAI,CAAC;QAA5B,MAAC,GAAD,CAAC,CAAI;QAAkB,MAAC,GAAD,CAAC,CAAI;IAC/D,CAAC;IAED,oDAAoD;IAC7C,aAAa,CAAC,KAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,oDAAoD;IAC7C,sBAAsB,CAAC,KAAiB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,kCAAkC;IAC3B,WAAW,CAAC,KAAiB;QAClC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,oEAAoE;IAC7D,MAAM,CAAC,MAAkB;QAC9B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IACvD,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,8DAA8D;IACvD,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,oEAAoE;IAC7D,MAAM,CAAC,KAAiB;QAC7B,OAAO,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,oDAAoD;IAC7C,IAAI,CAAC,CAAS;QACnB,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,oDAAoD;IAC7C,IAAI,CAAC,CAAS;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IACvE,QAAQ,CAAC,MAAc;QAC5B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,qDAAqD;IAC9C,OAAO;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;IACJ,CAAC;CACF;AApED,sBAoEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { PointProps } from \"@itwin/appui-abstract\";\r\n\r\n/** Describes and provides methods to work with 2d points.\r\n * @internal\r\n */\r\nexport class Point implements PointProps {\r\n /** Creates point from [[PointProps]]. */\r\n public static create(pointProps: PointProps) {\r\n return new Point(pointProps.x, pointProps.y);\r\n }\r\n\r\n /** Creates a new point. */\r\n public constructor(public readonly x = 0, public readonly y = 0) {\r\n }\r\n\r\n /** Calculates Euclidean distance to other point. */\r\n public getDistanceTo(other: PointProps): number {\r\n const offset = this.getOffsetTo(other);\r\n return Math.sqrt(Math.pow(offset.x, 2) + Math.pow(offset.y, 2));\r\n }\r\n\r\n /** Calculates grid-like distance to other point. */\r\n public getManhattanDistanceTo(other: PointProps): number {\r\n return Math.abs(this.x - other.x) + Math.abs(this.y - other.y);\r\n }\r\n\r\n /** Gets offset to other point. */\r\n public getOffsetTo(other: PointProps) {\r\n return new Point(other.x - this.x, other.y - this.y);\r\n }\r\n\r\n /** @returns New [[Point]] that is offset along the X and Y axes. */\r\n public offset(offset: PointProps) {\r\n return new Point(this.x + offset.x, this.y + offset.y);\r\n }\r\n\r\n /** @returns New [[Point]] that is offset along the X axis. */\r\n public offsetX(offset: number) {\r\n return new Point(this.x + offset, this.y);\r\n }\r\n\r\n /** @returns New [[Point]] that is offset along the Y axis. */\r\n public offsetY(offset: number) {\r\n return new Point(this.x, this.y + offset);\r\n }\r\n\r\n /** @returns True if position of this and other points are equal. */\r\n public equals(other: PointProps) {\r\n return other.x === this.x && other.y === this.y;\r\n }\r\n\r\n /** @returns New [[Point]] with modified x value. */\r\n public setX(x: number) {\r\n return new Point(x, this.y);\r\n }\r\n\r\n /** @returns New [[Point]] with modified y value. */\r\n public setY(y: number) {\r\n return new Point(this.x, y);\r\n }\r\n\r\n /** @returns New [[Point]] with coordinates multiplied by specified factor. */\r\n public multiply(factor: number) {\r\n return new Point(this.x * factor, this.y * factor);\r\n }\r\n\r\n /** @returns [[PointProps]] object for this point. */\r\n public toProps(): PointProps {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Props.js","sourceRoot":"","sources":["../../../../src/core-react/utils/Props.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\nimport * as React from \"react\";\nimport { Omit } from \"./typeUtils\";\n\n/** Props used by components that expect class name to be passed in.\n * @public\n */\nexport interface ClassNameProps {\n /** Custom CSS class name */\n className?: string;\n}\n\n/** Common props used by components.\n * @public\n */\nexport interface CommonProps extends ClassNameProps {\n /** Custom CSS style properties */\n style?: React.CSSProperties;\n /** Optional unique identifier for item. If defined it will be added to DOM Element attribute as data-item-id */\n itemId?: string;\n}\n\n/** Common properties using a div element.\n * @public\n */\nexport interface CommonDivProps extends React.AllHTMLAttributes<HTMLDivElement>, CommonProps { }\n\n/** Props used by components that do not expect children to be passed in.\n * @public\n */\nexport interface NoChildrenProps {\n children?: undefined;\n}\n\n/** Omit children property from T.\n * @public\n */\nexport type OmitChildrenProp<T extends { children?: React.ReactNode }> = Omit<T, \"children\">;\n"]}
1
+ {"version":3,"file":"Props.js","sourceRoot":"","sources":["../../../../src/core-react/utils/Props.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Omit } from \"./typeUtils\";\r\n\r\n/** Props used by components that expect class name to be passed in.\r\n * @public\r\n */\r\nexport interface ClassNameProps {\r\n /** Custom CSS class name */\r\n className?: string;\r\n}\r\n\r\n/** Common props used by components.\r\n * @public\r\n */\r\nexport interface CommonProps extends ClassNameProps {\r\n /** Custom CSS style properties */\r\n style?: React.CSSProperties;\r\n /** Optional unique identifier for item. If defined it will be added to DOM Element attribute as data-item-id */\r\n itemId?: string;\r\n}\r\n\r\n/** Common properties using a div element.\r\n * @public\r\n */\r\nexport interface CommonDivProps extends React.AllHTMLAttributes<HTMLDivElement>, CommonProps { }\r\n\r\n/** Props used by components that do not expect children to be passed in.\r\n * @public\r\n */\r\nexport interface NoChildrenProps {\r\n children?: undefined;\r\n}\r\n\r\n/** Omit children property from T.\r\n * @public\r\n */\r\nexport type OmitChildrenProp<T extends { children?: React.ReactNode }> = Omit<T, \"children\">;\r\n"]}