@itwin/components-react 3.0.0-dev.83 → 3.0.0-dev.87

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 (528) hide show
  1. package/CHANGELOG.md +1362 -1362
  2. package/README.md +11 -11
  3. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  4. package/lib/cjs/components-react/_target.scss +9 -9
  5. package/lib/cjs/components-react/breadcrumb/BeInspireTree.js.map +1 -1
  6. package/lib/cjs/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  7. package/lib/cjs/components-react/breadcrumb/Breadcrumb.scss +196 -196
  8. package/lib/cjs/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  9. package/lib/cjs/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  10. package/lib/cjs/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  11. package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
  12. package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
  13. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  14. package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
  15. package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
  16. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  17. package/lib/cjs/components-react/common/Links.js.map +1 -1
  18. package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
  19. package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
  20. package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
  21. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  22. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  23. package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
  24. package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
  25. package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
  26. package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
  27. package/lib/cjs/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  28. package/lib/cjs/components-react/common/showhide/ShowHideItem.js.map +1 -1
  29. package/lib/cjs/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  30. package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
  31. package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
  32. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  33. package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
  34. package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  35. package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  36. package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
  37. package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
  38. package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
  39. package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
  40. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  41. package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  42. package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
  43. package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
  44. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  45. package/lib/cjs/components-react/datepicker/DatePicker.scss +170 -170
  46. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  47. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  48. package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
  49. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  50. package/lib/cjs/components-react/datepicker/TimeField.scss +73 -73
  51. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  52. package/lib/cjs/components-react/editors/BooleanEditor.scss +24 -24
  53. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  54. package/lib/cjs/components-react/editors/CustomNumberEditor.scss +21 -21
  55. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  56. package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
  57. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  58. package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
  59. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  60. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +182 -182
  61. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  62. package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
  63. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
  65. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  66. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +23 -23
  67. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/NumericInputEditor.scss +17 -17
  69. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  70. package/lib/cjs/components-react/editors/PopupButton.scss +119 -119
  71. package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
  72. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  73. package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
  74. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  75. package/lib/cjs/components-react/editors/TextEditor.scss +21 -21
  76. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  77. package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
  78. package/lib/cjs/components-react/editors/ThemedEnumEditor.js.map +1 -1
  79. package/lib/cjs/components-react/editors/ThemedEnumEditor.scss +82 -82
  80. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  81. package/lib/cjs/components-react/editors/ToggleEditor.scss +25 -25
  82. package/lib/cjs/components-react/editors/variables.scss +6 -6
  83. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  84. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  85. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  86. package/lib/cjs/components-react/filtering/FilteringInput.scss +68 -68
  87. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  88. package/lib/cjs/components-react/filtering/ResultSelector.scss +72 -72
  89. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  90. package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +74 -74
  91. package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
  92. package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
  93. package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
  94. package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
  95. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  96. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  97. package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
  98. package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  99. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  100. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  101. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
  102. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  103. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  105. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  106. package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
  107. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  108. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  109. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  110. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
  111. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  112. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  113. package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  114. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  115. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  116. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  117. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  118. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  119. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  121. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  122. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
  123. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  124. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  127. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  128. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  129. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  130. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  131. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +75 -75
  132. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  133. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  134. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  136. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
  137. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  139. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  141. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  142. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  143. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  144. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  145. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  146. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  147. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  149. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  150. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  151. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  152. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  154. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  155. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  156. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  157. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  158. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  159. package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
  160. package/lib/cjs/components-react/selectable-content/SelectableContent.scss +19 -19
  161. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  162. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  163. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  164. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
  165. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  166. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
  167. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
  168. package/lib/cjs/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
  169. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  170. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  171. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  172. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  173. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
  174. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
  175. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
  176. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
  177. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
  178. package/lib/cjs/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
  179. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
  180. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
  181. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
  182. package/lib/cjs/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
  183. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  184. package/lib/cjs/components-react/table/component/DragDropHeaderCell.js.map +1 -1
  185. package/lib/cjs/components-react/table/component/Table.d.ts +8 -8
  186. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  187. package/lib/cjs/components-react/table/component/Table.js +3 -2
  188. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  189. package/lib/cjs/components-react/table/component/Table.scss +200 -200
  190. package/lib/cjs/components-react/table/component/TableCell.d.ts +5 -5
  191. package/lib/cjs/components-react/table/component/TableCell.d.ts.map +1 -1
  192. package/lib/cjs/components-react/table/component/TableCell.js +3 -2
  193. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  194. package/lib/cjs/components-react/table/component/TableCell.scss +48 -48
  195. package/lib/cjs/components-react/table/component/TableColumn.d.ts +1 -1
  196. package/lib/cjs/components-react/table/component/TableColumn.d.ts.map +1 -1
  197. package/lib/cjs/components-react/table/component/TableColumn.js +1 -0
  198. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  199. package/lib/cjs/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  200. package/lib/cjs/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  201. package/lib/cjs/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  202. package/lib/cjs/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  203. package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
  204. package/lib/cjs/components-react/toolbar/Item.scss +122 -122
  205. package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
  206. package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
  207. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  208. package/lib/cjs/components-react/toolbar/Items.scss +94 -94
  209. package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
  210. package/lib/cjs/components-react/toolbar/Overflow.scss +48 -48
  211. package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
  212. package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
  213. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  214. package/lib/cjs/components-react/toolbar/PopupItem.scss +75 -75
  215. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  216. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  217. package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
  218. package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
  219. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  220. package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
  221. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  222. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  223. package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
  224. package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
  225. package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  226. package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
  227. package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  228. package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +17 -17
  229. package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
  230. package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +34 -34
  231. package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
  232. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  233. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  234. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  235. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
  236. package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  237. package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
  238. package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
  239. package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
  240. package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
  241. package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
  242. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  243. package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
  244. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  245. package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
  246. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  247. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  248. package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  249. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  250. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  251. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  252. package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  253. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  254. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  255. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  256. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  257. package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +28 -28
  258. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  259. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  260. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  261. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  262. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  263. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  264. package/lib/cjs/components-react.js.map +1 -1
  265. package/lib/esm/components-react/UiComponents.js.map +1 -1
  266. package/lib/esm/components-react/_target.scss +9 -9
  267. package/lib/esm/components-react/breadcrumb/BeInspireTree.js.map +1 -1
  268. package/lib/esm/components-react/breadcrumb/Breadcrumb.js.map +1 -1
  269. package/lib/esm/components-react/breadcrumb/Breadcrumb.scss +196 -196
  270. package/lib/esm/components-react/breadcrumb/BreadcrumbDetails.js.map +1 -1
  271. package/lib/esm/components-react/breadcrumb/BreadcrumbPath.js.map +1 -1
  272. package/lib/esm/components-react/breadcrumb/BreadcrumbTreeUtils.js.map +1 -1
  273. package/lib/esm/components-react/common/DateUtils.js.map +1 -1
  274. package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
  275. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  276. package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
  277. package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
  278. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  279. package/lib/esm/components-react/common/Links.js.map +1 -1
  280. package/lib/esm/components-react/common/PageOptions.js.map +1 -1
  281. package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
  282. package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
  283. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  284. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  285. package/lib/esm/components-react/common/UseRerender.js.map +1 -1
  286. package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
  287. package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
  288. package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
  289. package/lib/esm/components-react/common/showhide/ShowHideDialog.js.map +1 -1
  290. package/lib/esm/components-react/common/showhide/ShowHideItem.js.map +1 -1
  291. package/lib/esm/components-react/common/showhide/ShowHideMenu.js.map +1 -1
  292. package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
  293. package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
  294. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  295. package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
  296. package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  297. package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  298. package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
  299. package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
  300. package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
  301. package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
  302. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  303. package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  304. package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
  305. package/lib/esm/components-react/datepicker/DateField.scss +22 -22
  306. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  307. package/lib/esm/components-react/datepicker/DatePicker.scss +170 -170
  308. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  309. package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  310. package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
  311. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  312. package/lib/esm/components-react/datepicker/TimeField.scss +73 -73
  313. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  314. package/lib/esm/components-react/editors/BooleanEditor.scss +24 -24
  315. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  316. package/lib/esm/components-react/editors/CustomNumberEditor.scss +21 -21
  317. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  318. package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
  319. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  320. package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
  321. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  322. package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +182 -182
  323. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  324. package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
  325. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  326. package/lib/esm/components-react/editors/IconEditor.scss +16 -16
  327. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  328. package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +23 -23
  329. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  330. package/lib/esm/components-react/editors/NumericInputEditor.scss +17 -17
  331. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  332. package/lib/esm/components-react/editors/PopupButton.scss +119 -119
  333. package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
  334. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  335. package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
  336. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  337. package/lib/esm/components-react/editors/TextEditor.scss +21 -21
  338. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  339. package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
  340. package/lib/esm/components-react/editors/ThemedEnumEditor.js.map +1 -1
  341. package/lib/esm/components-react/editors/ThemedEnumEditor.scss +82 -82
  342. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  343. package/lib/esm/components-react/editors/ToggleEditor.scss +25 -25
  344. package/lib/esm/components-react/editors/variables.scss +6 -6
  345. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  346. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  347. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  348. package/lib/esm/components-react/filtering/FilteringInput.scss +68 -68
  349. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  350. package/lib/esm/components-react/filtering/ResultSelector.scss +72 -72
  351. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  352. package/lib/esm/components-react/iconpicker/IconPickerButton.scss +74 -74
  353. package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
  354. package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
  355. package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
  356. package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
  357. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  358. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  359. package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
  360. package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  361. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  362. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  363. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +16 -16
  364. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  365. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  366. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  367. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  368. package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
  369. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  370. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  371. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  372. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +87 -87
  373. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  374. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  375. package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  376. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  377. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  378. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  379. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  380. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  381. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  382. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  383. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  384. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.scss +10 -10
  385. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  386. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  387. package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  388. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  389. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  390. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  391. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  392. package/lib/esm/components-react/propertygrid/component/PropertyGrid.js.map +1 -1
  393. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +75 -75
  394. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  395. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  396. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  397. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  398. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +94 -94
  399. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  400. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  401. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  402. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  403. package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  404. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  405. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  406. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  407. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  408. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  409. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  410. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  411. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  412. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  413. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  414. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  415. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  416. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  417. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  418. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  419. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  420. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  421. package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
  422. package/lib/esm/components-react/selectable-content/SelectableContent.scss +19 -19
  423. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  424. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  425. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  426. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.scss +78 -78
  427. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  428. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.d.ts.map +1 -1
  429. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js +1 -0
  430. package/lib/esm/components-react/table/columnfiltering/DataGridFilterParser.js.map +1 -1
  431. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  432. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  433. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  434. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  435. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/AutoCompleteFilter.js.map +1 -1
  436. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/MultiSelectFilter.js.map +1 -1
  437. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.d.ts.map +1 -1
  438. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js +1 -0
  439. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/NumericFilter.js.map +1 -1
  440. package/lib/esm/components-react/table/columnfiltering/data-grid-addons/SingleSelectFilter.js.map +1 -1
  441. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.d.ts.map +1 -1
  442. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js +1 -0
  443. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.js.map +1 -1
  444. package/lib/esm/components-react/table/columnfiltering/multi-value-filter/MultiValueFilter.scss +35 -35
  445. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  446. package/lib/esm/components-react/table/component/DragDropHeaderCell.js.map +1 -1
  447. package/lib/esm/components-react/table/component/Table.d.ts +8 -8
  448. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  449. package/lib/esm/components-react/table/component/Table.js +3 -2
  450. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  451. package/lib/esm/components-react/table/component/Table.scss +200 -200
  452. package/lib/esm/components-react/table/component/TableCell.d.ts +5 -5
  453. package/lib/esm/components-react/table/component/TableCell.d.ts.map +1 -1
  454. package/lib/esm/components-react/table/component/TableCell.js +3 -2
  455. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  456. package/lib/esm/components-react/table/component/TableCell.scss +48 -48
  457. package/lib/esm/components-react/table/component/TableColumn.d.ts +1 -1
  458. package/lib/esm/components-react/table/component/TableColumn.d.ts.map +1 -1
  459. package/lib/esm/components-react/table/component/TableColumn.js +1 -0
  460. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  461. package/lib/esm/components-react/table/component/dragdrop/BeDragDropContext.js.map +1 -1
  462. package/lib/esm/components-react/table/component/dragdrop/DragDropDef.js.map +1 -1
  463. package/lib/esm/components-react/table/component/dragdrop/withDragSource.js.map +1 -1
  464. package/lib/esm/components-react/table/component/dragdrop/withDropTarget.js.map +1 -1
  465. package/lib/esm/components-react/toolbar/Item.js.map +1 -1
  466. package/lib/esm/components-react/toolbar/Item.scss +122 -122
  467. package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
  468. package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
  469. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  470. package/lib/esm/components-react/toolbar/Items.scss +94 -94
  471. package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
  472. package/lib/esm/components-react/toolbar/Overflow.scss +48 -48
  473. package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
  474. package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
  475. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  476. package/lib/esm/components-react/toolbar/PopupItem.scss +75 -75
  477. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  478. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  479. package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
  480. package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
  481. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  482. package/lib/esm/components-react/toolbar/_variables.scss +34 -34
  483. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  484. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  485. package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
  486. package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
  487. package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  488. package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
  489. package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  490. package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +17 -17
  491. package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
  492. package/lib/esm/components-react/toolbar/groupPanel/Title.scss +34 -34
  493. package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
  494. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  495. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  496. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  497. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +146 -146
  498. package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  499. package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
  500. package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
  501. package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
  502. package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
  503. package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
  504. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  505. package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
  506. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  507. package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
  508. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  509. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  510. package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  511. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  512. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  513. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  514. package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  515. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  516. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  517. package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  518. package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  519. package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +28 -28
  520. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  521. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  522. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  523. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  524. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  525. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  526. package/lib/esm/components-react.js.map +1 -1
  527. package/lib/public/locales/en/UiComponents.json +123 -123
  528. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"IImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/common/IImageLoader.ts"],"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 Common\n */\n\n/**\n * Type of loaded image source:\n * * \"svg\" will render svg strings inline with the rest of the DOM\n * * \"url\" will render a simple img tag with __url__ as it's source\n * * \"binary\" expects a HEX string for the value and will render raw image\n * * \"core-icon\" will render an icon bundled with @itwin/core-react\n * * \"webfont-icon\" will render web font icon from provided font-family. When no font-family given, defaults to \"bentley-icons-generic-webfont\".\n * @public\n */\nexport type ImageSourceType = \"svg\" | \"url\" | \"binary\" | \"core-icon\" | \"webfont-icon\";\n\n/** Type of raw image format\n * @public\n */\nexport type ImageFileFormat = \"png\" | \"jpg\" | \"jpge\";\n\n/** Image data for string based images\n * @public\n */\nexport interface LoadedImage {\n value: string;\n sourceType: ImageSourceType;\n}\n\n/** Image data for raw images\n * @public\n */\nexport interface LoadedBinaryImage extends LoadedImage {\n fileFormat: ImageFileFormat;\n}\n\n/** Image data returned by an [[IImageLoader]]\n * @public\n */\nexport type Image = LoadedImage | LoadedBinaryImage;\n\n/** Interface for an image loader.\n * @public\n */\nexport interface IImageLoader {\n /** Function that will load image data */\n load: (item: any) => Image | undefined;\n}\n"]}
1
+ {"version":3,"file":"IImageLoader.js","sourceRoot":"","sources":["../../../../src/components-react/common/IImageLoader.ts"],"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 Common\r\n */\r\n\r\n/**\r\n * Type of loaded image source:\r\n * * \"svg\" will render svg strings inline with the rest of the DOM\r\n * * \"url\" will render a simple img tag with __url__ as it's source\r\n * * \"binary\" expects a HEX string for the value and will render raw image\r\n * * \"core-icon\" will render an icon bundled with @itwin/core-react\r\n * * \"webfont-icon\" will render web font icon from provided font-family. When no font-family given, defaults to \"bentley-icons-generic-webfont\".\r\n * @public\r\n */\r\nexport type ImageSourceType = \"svg\" | \"url\" | \"binary\" | \"core-icon\" | \"webfont-icon\";\r\n\r\n/** Type of raw image format\r\n * @public\r\n */\r\nexport type ImageFileFormat = \"png\" | \"jpg\" | \"jpge\";\r\n\r\n/** Image data for string based images\r\n * @public\r\n */\r\nexport interface LoadedImage {\r\n value: string;\r\n sourceType: ImageSourceType;\r\n}\r\n\r\n/** Image data for raw images\r\n * @public\r\n */\r\nexport interface LoadedBinaryImage extends LoadedImage {\r\n fileFormat: ImageFileFormat;\r\n}\r\n\r\n/** Image data returned by an [[IImageLoader]]\r\n * @public\r\n */\r\nexport type Image = LoadedImage | LoadedBinaryImage;\r\n\r\n/** Interface for an image loader.\r\n * @public\r\n */\r\nexport interface IImageLoader {\r\n /** Function that will load image data */\r\n load: (item: any) => Image | undefined;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRenderer.js","sourceRoot":"","sources":["../../../../src/components-react/common/ImageRenderer.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 Common\n */\n\nimport * as React from \"react\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { SvgSprite, WebFontIcon, WebFontIconProps } from \"@itwin/core-react\";\nimport { UiComponents } from \"../UiComponents\";\nimport { Image, ImageFileFormat, LoadedBinaryImage, LoadedImage } from \"./IImageLoader\";\n\n/** A class that renders images from data provided by an image loader\n * @internal\n */\nexport class ImageRenderer {\n private hexToBase64(hexstring: string) {\n const match = hexstring.match(/\\w{2}/g);\n // istanbul ignore next\n if (!match)\n return \"\";\n\n return btoa(match.map((a) => { // eslint-disable-line deprecation/deprecation\n return String.fromCharCode(parseInt(a, 16));\n }).join(\"\"));\n }\n\n /** Render raw binary image */\n private renderBinary(data: string, format: ImageFileFormat) {\n // Convert binary to base64\n const dataAsBase64 = this.hexToBase64(data);\n return (<img src={`data:image/${format};base64,${dataAsBase64}`} alt=\"\" />);\n }\n\n /** Render svg string into JSX */\n private renderSvg(svg: string) {\n return (\n <div><SvgSprite src={svg} /></div>\n );\n }\n\n /** Render image from an url */\n private renderUrl(url: string) {\n return (<img src={url} alt=\"\" />);\n }\n\n /** Render image as core-react icon */\n private renderCoreIcon(iconName: string) {\n return (<WebFontIcon iconName={iconName} />);\n }\n\n /** Replaces the escaped instances of \"\\:\" with \":\" */\n private normalizeEscapedIconString(escapedIconString: string) {\n return escapedIconString.replace(/\\\\:/g, \":\");\n }\n\n /**\n * Extract class and name from icon name, if the name follows format \"{className}:{fontName}\".\n * className and fontName can be escaped using \\ if : is needed.\n */\n private extractIconClassAndName(iconName: string): Pick<WebFontIconProps, \"iconClassName\" | \"iconName\"> {\n const matches = iconName.match(/(\\\\.|[^:])+/g);\n if (!matches || matches.length !== 2)\n return {\n iconClassName: undefined,\n iconName,\n };\n\n return {\n iconClassName: this.normalizeEscapedIconString(matches[0]),\n iconName: this.normalizeEscapedIconString(matches[1]),\n };\n }\n\n /**\n * Render image as provided webfont icon.\n * Defaults to core-react icon if iconName does not contain className.\n */\n private renderWebfontIcon(iconName: string) {\n const iconInfo = this.extractIconClassAndName(iconName);\n return (<WebFontIcon {...iconInfo} />);\n }\n\n /** Render image from data provided by an image loader */\n public render(loadedImage: Image): React.ReactNode {\n switch (loadedImage.sourceType) {\n case \"binary\":\n const image = loadedImage as LoadedBinaryImage;\n return this.renderBinary(image.value, image.fileFormat);\n\n case \"url\":\n return this.renderUrl((loadedImage as LoadedImage).value);\n\n case \"svg\":\n return this.renderSvg((loadedImage as LoadedImage).value);\n\n case \"core-icon\":\n return this.renderCoreIcon((loadedImage as LoadedImage).value);\n\n case \"webfont-icon\":\n return this.renderWebfontIcon((loadedImage as LoadedImage).value);\n\n default:\n const unhandledSourceType: never = loadedImage.sourceType; // Compile time check that all cases are handled\n throw new UiError(UiComponents.loggerCategory(this), `Can't handle sourceType: \"${unhandledSourceType}\"`);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ImageRenderer.js","sourceRoot":"","sources":["../../../../src/components-react/common/ImageRenderer.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 Common\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiError } from \"@itwin/appui-abstract\";\r\nimport { SvgSprite, WebFontIcon, WebFontIconProps } from \"@itwin/core-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { Image, ImageFileFormat, LoadedBinaryImage, LoadedImage } from \"./IImageLoader\";\r\n\r\n/** A class that renders images from data provided by an image loader\r\n * @internal\r\n */\r\nexport class ImageRenderer {\r\n private hexToBase64(hexstring: string) {\r\n const match = hexstring.match(/\\w{2}/g);\r\n // istanbul ignore next\r\n if (!match)\r\n return \"\";\r\n\r\n return btoa(match.map((a) => { // eslint-disable-line deprecation/deprecation\r\n return String.fromCharCode(parseInt(a, 16));\r\n }).join(\"\"));\r\n }\r\n\r\n /** Render raw binary image */\r\n private renderBinary(data: string, format: ImageFileFormat) {\r\n // Convert binary to base64\r\n const dataAsBase64 = this.hexToBase64(data);\r\n return (<img src={`data:image/${format};base64,${dataAsBase64}`} alt=\"\" />);\r\n }\r\n\r\n /** Render svg string into JSX */\r\n private renderSvg(svg: string) {\r\n return (\r\n <div><SvgSprite src={svg} /></div>\r\n );\r\n }\r\n\r\n /** Render image from an url */\r\n private renderUrl(url: string) {\r\n return (<img src={url} alt=\"\" />);\r\n }\r\n\r\n /** Render image as core-react icon */\r\n private renderCoreIcon(iconName: string) {\r\n return (<WebFontIcon iconName={iconName} />);\r\n }\r\n\r\n /** Replaces the escaped instances of \"\\:\" with \":\" */\r\n private normalizeEscapedIconString(escapedIconString: string) {\r\n return escapedIconString.replace(/\\\\:/g, \":\");\r\n }\r\n\r\n /**\r\n * Extract class and name from icon name, if the name follows format \"{className}:{fontName}\".\r\n * className and fontName can be escaped using \\ if : is needed.\r\n */\r\n private extractIconClassAndName(iconName: string): Pick<WebFontIconProps, \"iconClassName\" | \"iconName\"> {\r\n const matches = iconName.match(/(\\\\.|[^:])+/g);\r\n if (!matches || matches.length !== 2)\r\n return {\r\n iconClassName: undefined,\r\n iconName,\r\n };\r\n\r\n return {\r\n iconClassName: this.normalizeEscapedIconString(matches[0]),\r\n iconName: this.normalizeEscapedIconString(matches[1]),\r\n };\r\n }\r\n\r\n /**\r\n * Render image as provided webfont icon.\r\n * Defaults to core-react icon if iconName does not contain className.\r\n */\r\n private renderWebfontIcon(iconName: string) {\r\n const iconInfo = this.extractIconClassAndName(iconName);\r\n return (<WebFontIcon {...iconInfo} />);\r\n }\r\n\r\n /** Render image from data provided by an image loader */\r\n public render(loadedImage: Image): React.ReactNode {\r\n switch (loadedImage.sourceType) {\r\n case \"binary\":\r\n const image = loadedImage as LoadedBinaryImage;\r\n return this.renderBinary(image.value, image.fileFormat);\r\n\r\n case \"url\":\r\n return this.renderUrl((loadedImage as LoadedImage).value);\r\n\r\n case \"svg\":\r\n return this.renderSvg((loadedImage as LoadedImage).value);\r\n\r\n case \"core-icon\":\r\n return this.renderCoreIcon((loadedImage as LoadedImage).value);\r\n\r\n case \"webfont-icon\":\r\n return this.renderWebfontIcon((loadedImage as LoadedImage).value);\r\n\r\n default:\r\n const unhandledSourceType: never = loadedImage.sourceType; // Compile time check that all cases are handled\r\n throw new UiError(UiComponents.loggerCategory(this), `Can't handle sourceType: \"${unhandledSourceType}\"`);\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Links.js","sourceRoot":"","sources":["../../../../src/components-react/common/Links.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\n// cSpell:ignore linkify\n\nimport LinkifyIt from \"linkify-it\";\n\nconst linkify = new LinkifyIt({ fuzzyLink: false });\n\nlinkify\n .add(\"pw:\", {\n validate: (text: string, pos: number, self: LinkifyIt.LinkifyIt): number => {\n const tail = text.slice(pos);\n\n // istanbul ignore else\n if (!self.re.pw) {\n self.re.pw = new RegExp(\n `(//|\\\\\\\\\\\\\\\\)${self.re.src_host}:` +\n // Regex for path according to RFC 3986 standards plus the possibility to write '{}' brackets for ProjectWise monikers\n `([a-zA-Z0-9-._~!$&'()*+,;=@%{}]+/)+[a-zA-Z0-9-._~!$&'()*+,;=@%{}]*`,\n \"i\");\n }\n // istanbul ignore else\n if (self.re.pw.test(tail)) {\n const matches = tail.match(self.re.pw);\n // istanbul ignore else\n if (matches !== null)\n return matches[0].length;\n }\n // istanbul ignore next\n return 0;\n },\n })\n /* Adding a custom schema for links that start with `www.`.\n With fuzzyLink option set to true it matches text without `www.` as a prefix, which is not wanted in our case. */\n .add(\"www.\", {\n validate: (text: string, pos: number, self: LinkifyIt.LinkifyIt): number => {\n const tail = text.slice(pos);\n\n if (!self.re.www) {\n self.re.www = new RegExp(\n `^${self.re.src_auth}${self.re.src_host_port_strict}${self.re.src_path}`,\n \"i\");\n }\n // istanbul ignore else\n if (self.re.www.test(tail)) {\n const matches = tail.match(self.re.www);\n // istanbul ignore else\n if (matches !== null)\n return matches[0].length;\n }\n // istanbul ignore next\n return 0;\n },\n normalize: (match: LinkifyIt.Match) => {\n match.schema = \"http:\";\n match.url = `http://${match.url}`;\n },\n });\n\n/** Returns a list of links from a text\n * @public\n */\nexport const matchLinks = (text: string): Array<{ index: number, lastIndex: number, schema: string, url: string }> => {\n const head = text.slice(0, 5);\n if (head === \"pw://\" || head === \"pw:\\\\\\\\\")\n return Array({ index: 0, lastIndex: text.length, schema: \"pw:\", url: text });\n\n const matches = linkify.match(text);\n return matches ? matches as Array<{ index: number, lastIndex: number, schema: string, url: string }> : [];\n};\n"]}
1
+ {"version":3,"file":"Links.js","sourceRoot":"","sources":["../../../../src/components-react/common/Links.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/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\n// cSpell:ignore linkify\r\n\r\nimport LinkifyIt from \"linkify-it\";\r\n\r\nconst linkify = new LinkifyIt({ fuzzyLink: false });\r\n\r\nlinkify\r\n .add(\"pw:\", {\r\n validate: (text: string, pos: number, self: LinkifyIt.LinkifyIt): number => {\r\n const tail = text.slice(pos);\r\n\r\n // istanbul ignore else\r\n if (!self.re.pw) {\r\n self.re.pw = new RegExp(\r\n `(//|\\\\\\\\\\\\\\\\)${self.re.src_host}:` +\r\n // Regex for path according to RFC 3986 standards plus the possibility to write '{}' brackets for ProjectWise monikers\r\n `([a-zA-Z0-9-._~!$&'()*+,;=@%{}]+/)+[a-zA-Z0-9-._~!$&'()*+,;=@%{}]*`,\r\n \"i\");\r\n }\r\n // istanbul ignore else\r\n if (self.re.pw.test(tail)) {\r\n const matches = tail.match(self.re.pw);\r\n // istanbul ignore else\r\n if (matches !== null)\r\n return matches[0].length;\r\n }\r\n // istanbul ignore next\r\n return 0;\r\n },\r\n })\r\n /* Adding a custom schema for links that start with `www.`.\r\n With fuzzyLink option set to true it matches text without `www.` as a prefix, which is not wanted in our case. */\r\n .add(\"www.\", {\r\n validate: (text: string, pos: number, self: LinkifyIt.LinkifyIt): number => {\r\n const tail = text.slice(pos);\r\n\r\n if (!self.re.www) {\r\n self.re.www = new RegExp(\r\n `^${self.re.src_auth}${self.re.src_host_port_strict}${self.re.src_path}`,\r\n \"i\");\r\n }\r\n // istanbul ignore else\r\n if (self.re.www.test(tail)) {\r\n const matches = tail.match(self.re.www);\r\n // istanbul ignore else\r\n if (matches !== null)\r\n return matches[0].length;\r\n }\r\n // istanbul ignore next\r\n return 0;\r\n },\r\n normalize: (match: LinkifyIt.Match) => {\r\n match.schema = \"http:\";\r\n match.url = `http://${match.url}`;\r\n },\r\n });\r\n\r\n/** Returns a list of links from a text\r\n * @public\r\n */\r\nexport const matchLinks = (text: string): Array<{ index: number, lastIndex: number, schema: string, url: string }> => {\r\n const head = text.slice(0, 5);\r\n if (head === \"pw://\" || head === \"pw:\\\\\\\\\")\r\n return Array({ index: 0, lastIndex: text.length, schema: \"pw:\", url: text });\r\n\r\n const matches = linkify.match(text);\r\n return matches ? matches as Array<{ index: number, lastIndex: number, schema: string, url: string }> : [];\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PageOptions.js","sourceRoot":"","sources":["../../../../src/components-react/common/PageOptions.ts"],"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 Common\n */\n\n/** Paging options.\n * @public\n */\nexport interface PageOptions {\n size?: number;\n start?: number;\n}\n"]}
1
+ {"version":3,"file":"PageOptions.js","sourceRoot":"","sources":["../../../../src/components-react/common/PageOptions.ts"],"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 Common\r\n */\r\n\r\n/** Paging options.\r\n * @public\r\n */\r\nexport interface PageOptions {\r\n size?: number;\r\n start?: number;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionScheduler.js","sourceRoot":"","sources":["../../../../src/components-react/common/SubscriptionScheduler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,mEAAgE;AAGhE,0DAAuD;AACvD,+DAA4D;AAC5D,+DAA4D;AAC5D,iEAA8D;AAC9D,iFAA8E;AAC9E,6DAA0D;AAC1D,+DAA4D;AAC5D,qEAAkE;AAClE,iEAA8D;AAC9D,uDAA6D;AAC7D,yDAA+D;AAC/D,mDAAgD;AAEhD,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAa,qBAAqB;IAOhC;QANA,oDAAoD;QAC5C,0BAAqB,GAAG,IAAI,GAAG,EAAgC,CAAC;QAExE,uDAAuD;QAC/C,eAAU,GAAG,IAAI,iBAAO,EAA4B,CAAC;QAG3D,IAAI,CAAC,UAAU;aACZ,IAAI;QACH,iDAAiD;QACjD,IAAA,mBAAQ,EACN,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI;QACzC,yBAAyB;QACzB,IAAA,mBAAQ,GAAE;QACV,wEAAwE;QACxE,iEAAiE;QACjE,+CAA+C;QAC/C,IAAA,qBAAS,EAAC,sBAAc,CAAC;QACzB,sGAAsG;QACtG,IAAA,yBAAW,EAAC,oBAAa,CAAC;QAC1B,0GAA0G;QAC1G,IAAA,qCAAiB,GAAE,CACpB,EACD,4BAA4B,CAC7B,CACF;YACD,+DAA+D;aAC9D,SAAS,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,oBAAoB,CAAC,MAAqB;QAC/C,wDAAwD;QACxD,OAAO,IAAA,aAAK,EAAC,GAAG,EAAE;YAChB,iFAAiF;YACjF,IAAI,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAC;aAC5B;YAED,kDAAkD;YAClD,MAAM,aAAa,GAAG,IAAI,iCAAe,CAAgB,MAAM,CAAC,IAAI;YAClE,2EAA2E;YAC3E,IAAA,mBAAQ,EAAC,GAAG,EAAE;gBACZ,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC,CAAC,CACH,CAAC,CAAC;YAEH,6DAA6D;YAC7D,MAAM,qBAAqB,GAAG,IAAA,iBAAO,GAAK,CAAC,aAAa,CAAC,IAAI;YAC3D,0EAA0E;YAC1E,IAAA,qBAAS,GAAE,CACZ,CAAC,CAAC;YAEH,yDAAyD;YACzD,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAC9C,IAAA,mBAAQ,EAAC,GAAG,EAAE;gBACZ,yCAAyC;gBACzC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE1C,oDAAoD;gBACpD,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC,CAAC;YACF,mBAAmB;YACnB,IAAA,iBAAO,GAAE;YACT,qEAAqE;YACrE,IAAA,mBAAQ,GAAE,CACX,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAE5D,4BAA4B;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,mBAAmB,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtFD,sDAsFC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAI,SAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAFD,oDAEC","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 Common\n */\n\nimport { BehaviorSubject } from \"rxjs/internal/BehaviorSubject\";\nimport { Observable } from \"rxjs/internal/Observable\";\nimport { ConnectableObservable } from \"rxjs/internal/observable/ConnectableObservable\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { finalize } from \"rxjs/internal/operators/finalize\";\nimport { mergeMap } from \"rxjs/internal/operators/mergeMap\";\nimport { observeOn } from \"rxjs/internal/operators/observeOn\";\nimport { onErrorResumeNext } from \"rxjs/internal/operators/onErrorResumeNext\";\nimport { publish } from \"rxjs/internal/operators/publish\";\nimport { refCount } from \"rxjs/internal/operators/refCount\";\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\nimport { switchAll } from \"rxjs/internal/operators/switchAll\";\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\nimport { queueScheduler } from \"rxjs/internal/scheduler/queue\";\nimport { Subject } from \"rxjs/internal/Subject\";\n\nconst MAX_CONCURRENT_SUBSCRIPTIONS = 1;\n\n/**\n * Controls observable subscription order and timing.\n *\n * Scheduled observables are placed at the end of a queue. The scheduler always\n * subscribes to at most one observable from the queue and waits until observables\n * either complete or get unscheduled before removing them from the queue.\n *\n * To schedule an observable, subscribe to the result of `scheduleSubscription()` call.\n * @internal\n */\nexport class SubscriptionScheduler<T> {\n // Maps source observables to scheduled observables.\n private _scheduledObservables = new Map<Observable<T>, Observable<T>>();\n\n // Subject that does the actual subscription scheduling\n private _scheduler = new Subject<ConnectableObservable<T>>();\n\n constructor() {\n this._scheduler\n .pipe(\n // Process all observables one by one in sequence\n mergeMap(\n (sourceObservable) => sourceObservable.pipe(\n // Connect the observable\n refCount(),\n // Guard against stack overflow when a lot of observables are scheduled.\n // Without this operation `mergeMap` will process each observable\n // that is present in the pipeline recursively.\n observeOn(queueScheduler),\n // Make sure that there is enough time to subscribe to a scheduled observable multiple times if needed\n subscribeOn(asapScheduler),\n // On error, proceed to the next observable. Outside subscribers will still receive an error notification.\n onErrorResumeNext(),\n ),\n MAX_CONCURRENT_SUBSCRIPTIONS,\n ),\n )\n // Start the scheduler and wait for observables to be scheduled\n .subscribe();\n }\n\n /**\n * Schedules `source` for subscription in the current scheduler.\n *\n * The actual scheduling is performed when the returned observable is subscribed to.\n * To cancel, simply remove all subscribers from the returned observable.\n *\n * @param source Input observable for which to schedule a subscription.\n * @returns Multicast observable which mirrors `source`.\n */\n public scheduleSubscription(source: Observable<T>): Observable<T> {\n // On subscription, determine which observable to return\n return defer(() => {\n // If this observable has already been scheduled, return the scheduled observable\n let scheduledObservable = this._scheduledObservables.get(source);\n if (scheduledObservable) {\n return scheduledObservable;\n }\n\n // Create a subject which emits observable sources\n const sourceSubject = new BehaviorSubject<Observable<T>>(source.pipe(\n // When source completes, allow scheduler to move on to the next observable\n finalize(() => {\n sourceSubject.complete();\n }),\n ));\n\n // Create an observable which will be passed to the scheduler\n const connectableObservable = publish<T>()(sourceSubject.pipe(\n // Unsubscribe from previous observable before subscribing to the next one\n switchAll(),\n ));\n\n // Create an observable which will be cached and returned\n scheduledObservable = connectableObservable.pipe(\n finalize(() => {\n // Invalidate cached scheduled observable\n this._scheduledObservables.delete(source);\n\n // Allow scheduler to move on to the next observable\n sourceSubject.complete();\n }),\n // Multicast values\n publish(),\n // Dispose the shared subscription when there are no subscribers left\n refCount(),\n );\n\n // Cache the scheduled observable\n this._scheduledObservables.set(source, scheduledObservable);\n\n // Schedule the subscription\n this._scheduler.next(connectableObservable);\n return scheduledObservable;\n });\n }\n}\n\n/**\n * Helper function for use as a `pipe()` argument with `rxjs` observables.\n * @internal\n */\nexport function scheduleSubscription<T>(scheduler: SubscriptionScheduler<T>): (source: Observable<T>) => Observable<T> {\n return (source) => scheduler.scheduleSubscription(source);\n}\n"]}
1
+ {"version":3,"file":"SubscriptionScheduler.js","sourceRoot":"","sources":["../../../../src/components-react/common/SubscriptionScheduler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,mEAAgE;AAGhE,0DAAuD;AACvD,+DAA4D;AAC5D,+DAA4D;AAC5D,iEAA8D;AAC9D,iFAA8E;AAC9E,6DAA0D;AAC1D,+DAA4D;AAC5D,qEAAkE;AAClE,iEAA8D;AAC9D,uDAA6D;AAC7D,yDAA+D;AAC/D,mDAAgD;AAEhD,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAa,qBAAqB;IAOhC;QANA,oDAAoD;QAC5C,0BAAqB,GAAG,IAAI,GAAG,EAAgC,CAAC;QAExE,uDAAuD;QAC/C,eAAU,GAAG,IAAI,iBAAO,EAA4B,CAAC;QAG3D,IAAI,CAAC,UAAU;aACZ,IAAI;QACH,iDAAiD;QACjD,IAAA,mBAAQ,EACN,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI;QACzC,yBAAyB;QACzB,IAAA,mBAAQ,GAAE;QACV,wEAAwE;QACxE,iEAAiE;QACjE,+CAA+C;QAC/C,IAAA,qBAAS,EAAC,sBAAc,CAAC;QACzB,sGAAsG;QACtG,IAAA,yBAAW,EAAC,oBAAa,CAAC;QAC1B,0GAA0G;QAC1G,IAAA,qCAAiB,GAAE,CACpB,EACD,4BAA4B,CAC7B,CACF;YACD,+DAA+D;aAC9D,SAAS,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,oBAAoB,CAAC,MAAqB;QAC/C,wDAAwD;QACxD,OAAO,IAAA,aAAK,EAAC,GAAG,EAAE;YAChB,iFAAiF;YACjF,IAAI,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAC;aAC5B;YAED,kDAAkD;YAClD,MAAM,aAAa,GAAG,IAAI,iCAAe,CAAgB,MAAM,CAAC,IAAI;YAClE,2EAA2E;YAC3E,IAAA,mBAAQ,EAAC,GAAG,EAAE;gBACZ,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC,CAAC,CACH,CAAC,CAAC;YAEH,6DAA6D;YAC7D,MAAM,qBAAqB,GAAG,IAAA,iBAAO,GAAK,CAAC,aAAa,CAAC,IAAI;YAC3D,0EAA0E;YAC1E,IAAA,qBAAS,GAAE,CACZ,CAAC,CAAC;YAEH,yDAAyD;YACzD,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAC9C,IAAA,mBAAQ,EAAC,GAAG,EAAE;gBACZ,yCAAyC;gBACzC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE1C,oDAAoD;gBACpD,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC,CAAC;YACF,mBAAmB;YACnB,IAAA,iBAAO,GAAE;YACT,qEAAqE;YACrE,IAAA,mBAAQ,GAAE,CACX,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAE5D,4BAA4B;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,mBAAmB,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtFD,sDAsFC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAI,SAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAFD,oDAEC","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 Common\r\n */\r\n\r\nimport { BehaviorSubject } from \"rxjs/internal/BehaviorSubject\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { ConnectableObservable } from \"rxjs/internal/observable/ConnectableObservable\";\r\nimport { defer } from \"rxjs/internal/observable/defer\";\r\nimport { finalize } from \"rxjs/internal/operators/finalize\";\r\nimport { mergeMap } from \"rxjs/internal/operators/mergeMap\";\r\nimport { observeOn } from \"rxjs/internal/operators/observeOn\";\r\nimport { onErrorResumeNext } from \"rxjs/internal/operators/onErrorResumeNext\";\r\nimport { publish } from \"rxjs/internal/operators/publish\";\r\nimport { refCount } from \"rxjs/internal/operators/refCount\";\r\nimport { subscribeOn } from \"rxjs/internal/operators/subscribeOn\";\r\nimport { switchAll } from \"rxjs/internal/operators/switchAll\";\r\nimport { asapScheduler } from \"rxjs/internal/scheduler/asap\";\r\nimport { queueScheduler } from \"rxjs/internal/scheduler/queue\";\r\nimport { Subject } from \"rxjs/internal/Subject\";\r\n\r\nconst MAX_CONCURRENT_SUBSCRIPTIONS = 1;\r\n\r\n/**\r\n * Controls observable subscription order and timing.\r\n *\r\n * Scheduled observables are placed at the end of a queue. The scheduler always\r\n * subscribes to at most one observable from the queue and waits until observables\r\n * either complete or get unscheduled before removing them from the queue.\r\n *\r\n * To schedule an observable, subscribe to the result of `scheduleSubscription()` call.\r\n * @internal\r\n */\r\nexport class SubscriptionScheduler<T> {\r\n // Maps source observables to scheduled observables.\r\n private _scheduledObservables = new Map<Observable<T>, Observable<T>>();\r\n\r\n // Subject that does the actual subscription scheduling\r\n private _scheduler = new Subject<ConnectableObservable<T>>();\r\n\r\n constructor() {\r\n this._scheduler\r\n .pipe(\r\n // Process all observables one by one in sequence\r\n mergeMap(\r\n (sourceObservable) => sourceObservable.pipe(\r\n // Connect the observable\r\n refCount(),\r\n // Guard against stack overflow when a lot of observables are scheduled.\r\n // Without this operation `mergeMap` will process each observable\r\n // that is present in the pipeline recursively.\r\n observeOn(queueScheduler),\r\n // Make sure that there is enough time to subscribe to a scheduled observable multiple times if needed\r\n subscribeOn(asapScheduler),\r\n // On error, proceed to the next observable. Outside subscribers will still receive an error notification.\r\n onErrorResumeNext(),\r\n ),\r\n MAX_CONCURRENT_SUBSCRIPTIONS,\r\n ),\r\n )\r\n // Start the scheduler and wait for observables to be scheduled\r\n .subscribe();\r\n }\r\n\r\n /**\r\n * Schedules `source` for subscription in the current scheduler.\r\n *\r\n * The actual scheduling is performed when the returned observable is subscribed to.\r\n * To cancel, simply remove all subscribers from the returned observable.\r\n *\r\n * @param source Input observable for which to schedule a subscription.\r\n * @returns Multicast observable which mirrors `source`.\r\n */\r\n public scheduleSubscription(source: Observable<T>): Observable<T> {\r\n // On subscription, determine which observable to return\r\n return defer(() => {\r\n // If this observable has already been scheduled, return the scheduled observable\r\n let scheduledObservable = this._scheduledObservables.get(source);\r\n if (scheduledObservable) {\r\n return scheduledObservable;\r\n }\r\n\r\n // Create a subject which emits observable sources\r\n const sourceSubject = new BehaviorSubject<Observable<T>>(source.pipe(\r\n // When source completes, allow scheduler to move on to the next observable\r\n finalize(() => {\r\n sourceSubject.complete();\r\n }),\r\n ));\r\n\r\n // Create an observable which will be passed to the scheduler\r\n const connectableObservable = publish<T>()(sourceSubject.pipe(\r\n // Unsubscribe from previous observable before subscribing to the next one\r\n switchAll(),\r\n ));\r\n\r\n // Create an observable which will be cached and returned\r\n scheduledObservable = connectableObservable.pipe(\r\n finalize(() => {\r\n // Invalidate cached scheduled observable\r\n this._scheduledObservables.delete(source);\r\n\r\n // Allow scheduler to move on to the next observable\r\n sourceSubject.complete();\r\n }),\r\n // Multicast values\r\n publish(),\r\n // Dispose the shared subscription when there are no subscribers left\r\n refCount(),\r\n );\r\n\r\n // Cache the scheduled observable\r\n this._scheduledObservables.set(source, scheduledObservable);\r\n\r\n // Schedule the subscription\r\n this._scheduler.next(connectableObservable);\r\n return scheduledObservable;\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Helper function for use as a `pipe()` argument with `rxjs` observables.\r\n * @internal\r\n */\r\nexport function scheduleSubscription<T>(scheduler: SubscriptionScheduler<T>): (source: Observable<T>) => Observable<T> {\r\n return (source) => scheduler.scheduleSubscription(source);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UseAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseAsyncValue.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAC/B,wDAAqD;AACrD,iEAA8D;AAC9D,mDAAgD;AAChD,kDAAsE;AAEtE;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAgB,KAAyB,EAAiB,EAAE;IACvF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,EAAQ,EAAE,EAAE,CAAC,CAAC;IAC/D,yCAAyC;IACzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9C,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;YACxB,IAAA,WAAI,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACxG,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,+BAAkB,EAAC,GAAG,EAAE;QACtB,MAAM,WAAW,GAAG,CAAC,QAAW,EAAE,EAAE;YAClC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC/H,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACzC;QAED,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA7BW,QAAA,aAAa,iBA6BxB","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 Common\n */\n\nimport * as React from \"react\";\nimport { from } from \"rxjs/internal/observable/from\";\nimport { takeUntil } from \"rxjs/internal/operators/takeUntil\";\nimport { Subject } from \"rxjs/internal/Subject\";\nimport { isPromiseLike, useEffectSkipFirst } from \"@itwin/core-react\";\n\n/**\n * Custom hook for working with possibly async values.\n * @public\n */\nexport const useAsyncValue = <T extends any>(value: T | PromiseLike<T>): T | undefined => {\n const cancelled = React.useMemo(() => new Subject<void>(), []);\n // cancel any pending promises on unmount\n React.useEffect(() => () => cancelled.next(), [cancelled]);\n\n const [result, setResult] = React.useState(() => {\n if (isPromiseLike(value)) {\n from(value).pipe(takeUntil(cancelled)).subscribe({ next: (resolvedValue) => setResult(resolvedValue) });\n return undefined;\n }\n return value;\n });\n\n useEffectSkipFirst(() => {\n const updateValue = (newValue: T) => {\n cancelled.next();\n setResult(newValue);\n };\n\n if (isPromiseLike(value)) {\n const subscription = from(value).pipe(takeUntil(cancelled)).subscribe({ next: (resolvedValue) => updateValue(resolvedValue) });\n return () => subscription.unsubscribe();\n }\n\n updateValue(value);\n return undefined;\n }, [value, cancelled]);\n\n return result;\n};\n"]}
1
+ {"version":3,"file":"UseAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseAsyncValue.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAC/B,wDAAqD;AACrD,iEAA8D;AAC9D,mDAAgD;AAChD,kDAAsE;AAEtE;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAgB,KAAyB,EAAiB,EAAE;IACvF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,EAAQ,EAAE,EAAE,CAAC,CAAC;IAC/D,yCAAyC;IACzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9C,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;YACxB,IAAA,WAAI,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACxG,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,+BAAkB,EAAC,GAAG,EAAE;QACtB,MAAM,WAAW,GAAG,CAAC,QAAW,EAAE,EAAE;YAClC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC/H,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACzC;QAED,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA7BW,QAAA,aAAa,iBA6BxB","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 Common\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { from } from \"rxjs/internal/observable/from\";\r\nimport { takeUntil } from \"rxjs/internal/operators/takeUntil\";\r\nimport { Subject } from \"rxjs/internal/Subject\";\r\nimport { isPromiseLike, useEffectSkipFirst } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Custom hook for working with possibly async values.\r\n * @public\r\n */\r\nexport const useAsyncValue = <T extends any>(value: T | PromiseLike<T>): T | undefined => {\r\n const cancelled = React.useMemo(() => new Subject<void>(), []);\r\n // cancel any pending promises on unmount\r\n React.useEffect(() => () => cancelled.next(), [cancelled]);\r\n\r\n const [result, setResult] = React.useState(() => {\r\n if (isPromiseLike(value)) {\r\n from(value).pipe(takeUntil(cancelled)).subscribe({ next: (resolvedValue) => setResult(resolvedValue) });\r\n return undefined;\r\n }\r\n return value;\r\n });\r\n\r\n useEffectSkipFirst(() => {\r\n const updateValue = (newValue: T) => {\r\n cancelled.next();\r\n setResult(newValue);\r\n };\r\n\r\n if (isPromiseLike(value)) {\r\n const subscription = from(value).pipe(takeUntil(cancelled)).subscribe({ next: (resolvedValue) => updateValue(resolvedValue) });\r\n return () => subscription.unsubscribe();\r\n }\r\n\r\n updateValue(value);\r\n return undefined;\r\n }, [value, cancelled]);\r\n\r\n return result;\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UseContextWithMandatoryProvider.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseContextWithMandatoryProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;AAE/F,0DAA8D;AAC9D,kDAA+C;AAC/C,kDAA0B;AAE1B,gBAAgB;AAChB,SAAgB,kCAAkC,CAChD,WAAmB;IAMnB,MAAM,OAAO,GAAG,eAAK,CAAC,aAAa,CAAI,SAAqB,CAAC,CAAC;IAC9D,SAAS,6BAA6B,CAAI,kBAA0C;QAClF,MAAM,KAAK,GAAG,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,wBAAwB;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,wBAAO,CACf,2BAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC/C,IAAI,IAAA,6BAAY,EAAC,kBAAkB,CAAC,iCAAiC,WAAW,aAAa,CAC9F,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAC7E,CAAC;AApBD,gFAoBC","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\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\nimport { UiComponents } from \"../UiComponents\";\nimport React from \"react\";\n\n/** @internal */\nexport function createContextWithMandatoryProvider<T>(\n contextName: string,\n): [\n React.ProviderExoticComponent<React.ProviderProps<T>>,\n React.ExoticComponent<React.ConsumerProps<T>>,\n <P>(component: React.ComponentType<P>) => T,\n ] {\n const context = React.createContext<T>(undefined as any as T);\n function useContextWithoutDefaultValue<P>(ConsumingComponent: React.ComponentType<P>) {\n const value = React.useContext(context);\n /* istanbul ignore if */\n if (value === undefined) {\n throw new UiError(\n UiComponents.loggerCategory(ConsumingComponent),\n `'${getClassName(ConsumingComponent)}' expects to be wrapped by a '${contextName}' provider.`,\n );\n }\n return value;\n }\n return [context.Provider, context.Consumer, useContextWithoutDefaultValue];\n}\n"]}
1
+ {"version":3,"file":"UseContextWithMandatoryProvider.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseContextWithMandatoryProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;AAE/F,0DAA8D;AAC9D,kDAA+C;AAC/C,kDAA0B;AAE1B,gBAAgB;AAChB,SAAgB,kCAAkC,CAChD,WAAmB;IAMnB,MAAM,OAAO,GAAG,eAAK,CAAC,aAAa,CAAI,SAAqB,CAAC,CAAC;IAC9D,SAAS,6BAA6B,CAAI,kBAA0C;QAClF,MAAM,KAAK,GAAG,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,wBAAwB;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,wBAAO,CACf,2BAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC/C,IAAI,IAAA,6BAAY,EAAC,kBAAkB,CAAC,iCAAiC,WAAW,aAAa,CAC9F,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAC7E,CAAC;AApBD,gFAoBC","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\r\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport React from \"react\";\r\n\r\n/** @internal */\r\nexport function createContextWithMandatoryProvider<T>(\r\n contextName: string,\r\n): [\r\n React.ProviderExoticComponent<React.ProviderProps<T>>,\r\n React.ExoticComponent<React.ConsumerProps<T>>,\r\n <P>(component: React.ComponentType<P>) => T,\r\n ] {\r\n const context = React.createContext<T>(undefined as any as T);\r\n function useContextWithoutDefaultValue<P>(ConsumingComponent: React.ComponentType<P>) {\r\n const value = React.useContext(context);\r\n /* istanbul ignore if */\r\n if (value === undefined) {\r\n throw new UiError(\r\n UiComponents.loggerCategory(ConsumingComponent),\r\n `'${getClassName(ConsumingComponent)}' expects to be wrapped by a '${contextName}' provider.`,\r\n );\r\n }\r\n return value;\r\n }\r\n return [context.Provider, context.Consumer, useContextWithoutDefaultValue];\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UseDebouncedAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseDebouncedAsyncValue.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,iCAAqD;AACrD,6DAA0D;AAC1D,+DAA4D;AAC5D,0DAAuD;AACvD,mEAAsF;AAEtF;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAU,iBAAuD;IACrG,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,6CAAqB,EAAW,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE7H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAW,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,EAAE;YACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;SACR;QAED,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,yFAAyF;QACzF,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,iBAAiB,CAAC;aAC1C,IAAI,CACH,IAAA,iBAAO,GAAE,EACT,IAAA,mBAAQ,GAAE,EACV,IAAA,4CAAoB,EAAC,SAAS,CAAC,CAChC;aACA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAhCD,wDAgCC","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\nimport { useEffect, useMemo, useState } from \"react\";\nimport { publish } from \"rxjs/internal/operators/publish\";\nimport { refCount } from \"rxjs/internal/operators/refCount\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { scheduleSubscription, SubscriptionScheduler } from \"./SubscriptionScheduler\";\n\n/**\n * Custom hook for working with promise values.\n * Promises are debounced using trailing and leading edge.\n * The first promise will always be executed.\n * Any promises following the first while it is executing will be scheduled (and unscheduled), leaving only the last promise to be resolved.\n * Once the first promise finishes resolving, the last passed promise starts resolving.\n * @alpha\n */\nexport function useDebouncedAsyncValue<TReturn>(valueToBeResolved: undefined | (() => Promise<TReturn>)) {\n const scheduler = useMemo(() => new SubscriptionScheduler<TReturn>(), []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const [value, setValue] = useState<TReturn>();\n const [inProgress, setInProgress] = useState(false);\n\n useEffect(() => {\n if (!valueToBeResolved) {\n setValue(undefined);\n setInProgress(false);\n return;\n }\n\n setInProgress(true);\n // schedule and subscribe to the observable emitting value from valueToBeResolved promise\n const subscription = defer(valueToBeResolved)\n .pipe(\n publish(),\n refCount(),\n scheduleSubscription(scheduler),\n )\n .subscribe({\n next: (data) => {\n setValue(data);\n setInProgress(false);\n },\n });\n\n return () => { subscription.unsubscribe(); };\n }, [valueToBeResolved, scheduler]);\n\n return { value, inProgress };\n}\n"]}
1
+ {"version":3,"file":"UseDebouncedAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseDebouncedAsyncValue.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,iCAAqD;AACrD,6DAA0D;AAC1D,+DAA4D;AAC5D,0DAAuD;AACvD,mEAAsF;AAEtF;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAU,iBAAuD;IACrG,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,6CAAqB,EAAW,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE7H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAW,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,EAAE;YACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;SACR;QAED,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,yFAAyF;QACzF,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,iBAAiB,CAAC;aAC1C,IAAI,CACH,IAAA,iBAAO,GAAE,EACT,IAAA,mBAAQ,GAAE,EACV,IAAA,4CAAoB,EAAC,SAAS,CAAC,CAChC;aACA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAhCD,wDAgCC","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\r\nimport { useEffect, useMemo, useState } from \"react\";\r\nimport { publish } from \"rxjs/internal/operators/publish\";\r\nimport { refCount } from \"rxjs/internal/operators/refCount\";\r\nimport { defer } from \"rxjs/internal/observable/defer\";\r\nimport { scheduleSubscription, SubscriptionScheduler } from \"./SubscriptionScheduler\";\r\n\r\n/**\r\n * Custom hook for working with promise values.\r\n * Promises are debounced using trailing and leading edge.\r\n * The first promise will always be executed.\r\n * Any promises following the first while it is executing will be scheduled (and unscheduled), leaving only the last promise to be resolved.\r\n * Once the first promise finishes resolving, the last passed promise starts resolving.\r\n * @alpha\r\n */\r\nexport function useDebouncedAsyncValue<TReturn>(valueToBeResolved: undefined | (() => Promise<TReturn>)) {\r\n const scheduler = useMemo(() => new SubscriptionScheduler<TReturn>(), []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const [value, setValue] = useState<TReturn>();\r\n const [inProgress, setInProgress] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!valueToBeResolved) {\r\n setValue(undefined);\r\n setInProgress(false);\r\n return;\r\n }\r\n\r\n setInProgress(true);\r\n // schedule and subscribe to the observable emitting value from valueToBeResolved promise\r\n const subscription = defer(valueToBeResolved)\r\n .pipe(\r\n publish(),\r\n refCount(),\r\n scheduleSubscription(scheduler),\r\n )\r\n .subscribe({\r\n next: (data) => {\r\n setValue(data);\r\n setInProgress(false);\r\n },\r\n });\r\n\r\n return () => { subscription.unsubscribe(); };\r\n }, [valueToBeResolved, scheduler]);\r\n\r\n return { value, inProgress };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UseRerender.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseRerender.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,iCAAyC;AAuBzC,gBAAgB;AAChB,SAAgB,WAAW,CAAI,cAAkB;IAC/C,MAAM,IAAI,GAAG,IAAA,cAAM,EAAC,EAAE,YAAY,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC;IACpG,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC1B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;SAAM;QACL,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;IAED,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACnC,OAAO;QACL,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;YAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AApBD,kCAoBC","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\nimport { useRef, useState } from \"react\";\n\n/** @internal */\ninterface RerenderData<T extends (arg: any) => void> {\n /** Data specific to the current rerender cycle. */\n rerenderContext: Parameters<T>[0];\n /** Identifies the current rerender cycle. Starts at 0. */\n numRerenders: number;\n /** Rerenders component with new `rerenderContext`, if one is provided. */\n rerender: T;\n}\n\n/**\n * @internal\n * Makes component able to rerender itself.\n */\nexport function useRerender(): RerenderData<() => void>;\n/**\n * @internal\n * Makes component able to rerender itself while preserving some data between rerenders.\n * @param initialContext Data that component receives on first render cycle.\n */\nexport function useRerender<T>(initialContext: T): RerenderData<(newContext: T) => void>;\n/** @internal */\nexport function useRerender<T>(initialContext?: T): RerenderData<(newContext?: T) => void> {\n const data = useRef({ numRerenders: 0, rerenderRequested: false, context: initialContext }).current;\n if (data.rerenderRequested) {\n data.numRerenders += 1;\n data.rerenderRequested = false;\n } else {\n data.context = initialContext;\n data.numRerenders = 0;\n }\n\n const [_, setState] = useState({});\n return {\n rerenderContext: data.context,\n numRerenders: data.numRerenders,\n rerender: (newContext) => {\n data.rerenderRequested = true;\n data.context = newContext;\n setState({});\n },\n };\n}\n"]}
1
+ {"version":3,"file":"UseRerender.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseRerender.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,iCAAyC;AAuBzC,gBAAgB;AAChB,SAAgB,WAAW,CAAI,cAAkB;IAC/C,MAAM,IAAI,GAAG,IAAA,cAAM,EAAC,EAAE,YAAY,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC;IACpG,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC1B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;SAAM;QACL,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;IAED,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACnC,OAAO;QACL,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;YAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AApBD,kCAoBC","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\r\nimport { useRef, useState } from \"react\";\r\n\r\n/** @internal */\r\ninterface RerenderData<T extends (arg: any) => void> {\r\n /** Data specific to the current rerender cycle. */\r\n rerenderContext: Parameters<T>[0];\r\n /** Identifies the current rerender cycle. Starts at 0. */\r\n numRerenders: number;\r\n /** Rerenders component with new `rerenderContext`, if one is provided. */\r\n rerender: T;\r\n}\r\n\r\n/**\r\n * @internal\r\n * Makes component able to rerender itself.\r\n */\r\nexport function useRerender(): RerenderData<() => void>;\r\n/**\r\n * @internal\r\n * Makes component able to rerender itself while preserving some data between rerenders.\r\n * @param initialContext Data that component receives on first render cycle.\r\n */\r\nexport function useRerender<T>(initialContext: T): RerenderData<(newContext: T) => void>;\r\n/** @internal */\r\nexport function useRerender<T>(initialContext?: T): RerenderData<(newContext?: T) => void> {\r\n const data = useRef({ numRerenders: 0, rerenderRequested: false, context: initialContext }).current;\r\n if (data.rerenderRequested) {\r\n data.numRerenders += 1;\r\n data.rerenderRequested = false;\r\n } else {\r\n data.context = initialContext;\r\n data.numRerenders = 0;\r\n }\r\n\r\n const [_, setState] = useState({});\r\n return {\r\n rerenderContext: data.context,\r\n numRerenders: data.numRerenders,\r\n rerender: (newContext) => {\r\n data.rerenderRequested = true;\r\n data.context = newContext;\r\n setState({});\r\n },\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"countMatchesInString.js","sourceRoot":"","sources":["../../../../src/components-react/common/countMatchesInString.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F,gEAAgE;;;AAEhE;;GAEG;AAEH;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAW,EAAE,MAAc;IAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;QAC/B,OAAO,CAAC,CAAC;IAEX,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3B,OAAO,IAAI,EAAE;QACX,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,EAAE;YACZ,EAAE,CAAC,CAAC;YACJ,GAAG,IAAI,IAAI,CAAC;SACb;;YACC,MAAM;KACT;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAhBD,oDAgBC","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/* @author Vitim.us https://gist.github.com/victornpb/7736865 */\n\n/** @packageDocumentation\n * @module Common\n */\n\n/** Counts how many times string 'lookup' is repeated in string 'str'.\n * @internal\n */\nexport function countMatchesInString(str: string, lookup: string) {\n if (!str.length || !lookup.length)\n return 0;\n\n let n = 0, pos = 0;\n const step = lookup.length;\n\n while (true) {\n pos = str.indexOf(lookup, pos);\n if (pos >= 0) {\n ++n;\n pos += step;\n } else\n break;\n }\n return n;\n}\n"]}
1
+ {"version":3,"file":"countMatchesInString.js","sourceRoot":"","sources":["../../../../src/components-react/common/countMatchesInString.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F,gEAAgE;;;AAEhE;;GAEG;AAEH;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAW,EAAE,MAAc;IAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;QAC/B,OAAO,CAAC,CAAC;IAEX,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3B,OAAO,IAAI,EAAE;QACX,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,EAAE;YACZ,EAAE,CAAC,CAAC;YACJ,GAAG,IAAI,IAAI,CAAC;SACb;;YACC,MAAM;KACT;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAhBD,oDAgBC","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/* @author Vitim.us https://gist.github.com/victornpb/7736865 */\r\n\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\n/** Counts how many times string 'lookup' is repeated in string 'str'.\r\n * @internal\r\n */\r\nexport function countMatchesInString(str: string, lookup: string) {\r\n if (!str.length || !lookup.length)\r\n return 0;\r\n\r\n let n = 0, pos = 0;\r\n const step = lookup.length;\r\n\r\n while (true) {\r\n pos = str.indexOf(lookup, pos);\r\n if (pos >= 0) {\r\n ++n;\r\n pos += step;\r\n } else\r\n break;\r\n }\r\n return n;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionHandler.js","sourceRoot":"","sources":["../../../../../src/components-react/common/selection/SelectionHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Common\n */\n\nimport { Rectangle } from \"@itwin/core-react\";\nimport { hasSelectionModeFlag, SelectionMode, SelectionModeFlags } from \"./SelectionModes\";\n\n/** Prototype for a Selection Changed handler\n * @public\n */\nexport declare type OnSelectionChanged = (shiftDown?: boolean, ctrlDown?: boolean) => void;\n\n/**\n * Contains single item specific methods required by selection handler.\n * @internal\n */\nexport interface SingleSelectionHandler<TItem> {\n /**\n * Callback for before an item is selected.\n */\n preselect: () => void;\n\n /**\n * Selects the item.\n */\n select: () => void;\n\n /**\n * Deselects the item.\n */\n deselect: () => void;\n\n /**\n * Returns true if item is selected.\n */\n isSelected: () => boolean;\n\n /**\n * Returns the item.\n */\n item: () => TItem;\n}\n\n/**\n * Contains multi-selection methods required by selection handler.\n * @internal\n */\nexport interface MultiSelectionHandler<TItem> {\n /**\n * Shift selects between two items.\n * Returns items that were selected.\n */\n selectBetween: (item1: TItem, item2: TItem) => TItem[];\n\n /**\n * Updates selection.\n * @param selections Items to be added to selection.\n * @param deselections Items to be removed from selection.\n */\n updateSelection: (selections: TItem[], deselections: TItem[]) => void;\n\n /**\n * Deselects all items.\n */\n deselectAll: () => void;\n\n /**\n * Returns true if items are equal.\n */\n areEqual: (item1: TItem, item2: TItem) => boolean;\n}\n\n/**\n * Called after items were selected.\n * @param items Items that were selected.\n * @param replace Should replace current selection.\n * @public\n */\nexport declare type OnItemsSelectedCallback<TItem> = (items: TItem[], replace: boolean) => void | boolean;\n\n/**\n * Called after items were deselected.\n * @param items Items that were deselected.\n * @public\n */\nexport declare type OnItemsDeselectedCallback<Item> = (items: Item[]) => void | boolean;\n\nclass BatchSelectionOperation<Item> {\n public readonly selections = new Array<Item>();\n public readonly deselections = new Array<Item>();\n public readonly shouldReplace: boolean;\n\n private _componentSelectionHandler: MultiSelectionHandler<Item>;\n\n public constructor(componentSelectionHandler: MultiSelectionHandler<Item>, shouldReplace: boolean) {\n this.shouldReplace = shouldReplace;\n this._componentSelectionHandler = componentSelectionHandler;\n }\n\n public select(node: Item | Item[]) {\n this.addNodes(node, this.selections, this.shouldReplace ? undefined : this.deselections);\n }\n\n public deselect(node: Item | Item[]) {\n this.addNodes(node, this.deselections, this.shouldReplace ? undefined : this.selections);\n }\n\n private addNodes(node: Item | Item[], addTo: Item[], removeFrom?: Item[]) {\n if (Array.isArray(node)) {\n for (const n of node) {\n if (removeFrom) {\n const index = removeFrom.findIndex((x) => this._componentSelectionHandler.areEqual(x, n));\n if (index > -1) {\n removeFrom.splice(index, 1);\n continue;\n }\n }\n addTo.push(n);\n }\n } else {\n this.addNodes([node], addTo, removeFrom);\n }\n }\n}\n\n/** @internal */\nexport class DragAction<Item> {\n private _itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>;\n private _componentSelectionHandler: MultiSelectionHandler<Item>;\n private _previousRow: number;\n private _previousColumn: number;\n private _firstItemRow: number;\n private _firstItemColumn: number;\n private _firstItemSelected: boolean;\n\n public constructor(componentSelectionHandler: MultiSelectionHandler<Item>, itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>, firstItem: Item) {\n this._itemSelectionHandlers = itemSelectionHandlers;\n this._componentSelectionHandler = componentSelectionHandler;\n const itemPos = this.findItem(this._itemSelectionHandlers, firstItem);\n this._previousRow = itemPos.y;\n this._previousColumn = itemPos.x;\n this._firstItemRow = itemPos.y;\n this._firstItemColumn = itemPos.x;\n this._firstItemSelected = false;\n }\n\n public updateDragAction(latestItem: Item): { selections: Item[], deselections: Item[] } {\n const currentPos = this.findItem(this._itemSelectionHandlers, latestItem);\n if (currentPos.y === this._previousRow && currentPos.x === this._previousColumn || currentPos.x < 0 || currentPos.y < 0)\n return { selections: [], deselections: [] };\n\n const currentRange = Rectangle.createXYXY(this._firstItemColumn, this._firstItemRow, currentPos.x, currentPos.y);\n const previousRange = Rectangle.createXYXY(this._firstItemColumn, this._firstItemRow, this._previousColumn, this._previousRow);\n const wholeRange = Rectangle.createXYXY(\n currentRange.right > previousRange.right ? currentRange.right : previousRange.right,\n currentRange.bottom > previousRange.bottom ? currentRange.bottom : previousRange.bottom,\n currentRange.left < previousRange.left ? currentRange.left : previousRange.left,\n currentRange.top < previousRange.top ? currentRange.top : previousRange.top,\n );\n const selections = [];\n const deselections = [];\n\n // have to select first item separately since it is will always be in both previous and current ranges.\n if (!this._firstItemSelected) {\n const handler = this._itemSelectionHandlers[this._firstItemRow][this._firstItemColumn];\n if (handler.isSelected())\n deselections.push(handler.item());\n else\n selections.push(handler.item());\n this._firstItemSelected = true;\n }\n\n for (let r = wholeRange.top; r <= wholeRange.bottom; r++) {\n for (let c = wholeRange.left; c <= wholeRange.right; c++) {\n const insidePrevious = previousRange.containsXY(c, r);\n const insideCurrent = currentRange.containsXY(c, r);\n // If item is in only one of the ranges that means it's selection needs to be toggled.\n if ((insidePrevious || insideCurrent) && insideCurrent !== insidePrevious) {\n const itemHandler = this._itemSelectionHandlers[r][c];\n if (itemHandler.isSelected())\n deselections.push(itemHandler.item());\n else\n selections.push(itemHandler.item());\n }\n }\n }\n\n this._previousRow = currentPos.y;\n this._previousColumn = currentPos.x;\n return { selections, deselections };\n }\n\n private findItem(itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>, item: Item): { x: number, y: number } {\n if (this._previousRow !== undefined && this._previousRow !== -1 && this._previousColumn !== undefined && this._previousColumn !== -1 &&\n this._componentSelectionHandler.areEqual(itemSelectionHandlers[this._previousRow][this._previousColumn].item(), item)) {\n return { y: this._previousRow, x: this._previousColumn };\n }\n for (let row = 0; row < itemSelectionHandlers.length; row++) {\n for (let column = 0; column < itemSelectionHandlers[row].length; column++) {\n if (this._componentSelectionHandler.areEqual(itemSelectionHandlers[row][column].item(), item))\n return { x: column, y: row };\n }\n }\n return { x: -1, y: -1 };\n }\n\n}\n\n/** @internal */\nexport class SelectionHandler<Item> {\n\n /** Selection mode. */\n public selectionMode: SelectionMode;\n public onItemsSelectedCallback?: OnItemsSelectedCallback<Item>;\n public onItemsDeselectedCallback?: OnItemsDeselectedCallback<Item>;\n\n private _currentOperation?: BatchSelectionOperation<Item>;\n private _lastItem?: Item; // keeps track of last item interacted with for shift selection\n private _processedItem?: Item; // last item interacted with\n private _dragAction?: DragAction<Item>;\n private _componentSelectionHandler?: MultiSelectionHandler<Item>; // needed for drag selection\n\n constructor(selectionMode: SelectionMode, onItemsSelectedCallback?: OnItemsSelectedCallback<Item>, onItemsDeselectedCallback?: OnItemsDeselectedCallback<Item>) {\n this.selectionMode = selectionMode;\n this.onItemsSelectedCallback = onItemsSelectedCallback;\n this.onItemsDeselectedCallback = onItemsDeselectedCallback;\n }\n\n /** Get the onSelectionChange processed item */\n public get processedItem(): Item | undefined { return this._processedItem; }\n\n /** Creates a function that should be called when selection changes. */\n public createSelectionFunction(componentHandler: MultiSelectionHandler<Item>, itemHandler: SingleSelectionHandler<Item>): OnSelectionChanged {\n const onSelectionChange: OnSelectionChanged = (shiftDown, ctrlDown) => {\n this._processedItem = itemHandler.item();\n\n if (this.selectionMode === SelectionMode.None) {\n return;\n }\n\n let operationCreated = false;\n let shiftSelected = false;\n if (!this._currentOperation) {\n // will replace selection if it is limited to one or keys are enabled but ctrl is not down\n const shouldReplace = (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.KeysEnabled) && !ctrlDown)\n || hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.SelectionLimitOne);\n this._currentOperation = new BatchSelectionOperation<Item>(componentHandler, shouldReplace);\n operationCreated = true;\n }\n\n if (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.KeysEnabled)) {\n if (!ctrlDown)\n componentHandler.deselectAll();\n if (shiftDown && this._lastItem !== undefined) {\n const selected = componentHandler.selectBetween(this._lastItem, itemHandler.item());\n this._currentOperation.select(selected);\n shiftSelected = true;\n }\n }\n\n if (!shiftSelected) {\n itemHandler.preselect();\n\n if (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.SelectionLimitOne)\n && !(hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.ToggleEnabled) && itemHandler.isSelected())) {\n componentHandler.deselectAll();\n }\n\n if (itemHandler.isSelected()) {\n itemHandler.deselect();\n this._currentOperation.deselect(itemHandler.item());\n } else {\n itemHandler.select();\n this._currentOperation.select(itemHandler.item());\n }\n this._lastItem = itemHandler.item();\n }\n\n if (operationCreated)\n this.completeOperation();\n };\n return onSelectionChange.bind(this);\n }\n\n private completeOperation(): void {\n if (!this._currentOperation)\n return;\n\n if (0 !== this._currentOperation.selections.length) {\n if (this.onItemsSelectedCallback) {\n this.onItemsSelectedCallback(this._currentOperation.selections, this._currentOperation.shouldReplace);\n if (this._currentOperation.shouldReplace) {\n this._currentOperation = undefined;\n return;\n }\n }\n }\n if (0 !== this._currentOperation.deselections.length) {\n if (this.onItemsDeselectedCallback)\n this.onItemsDeselectedCallback(this._currentOperation.deselections);\n }\n this._currentOperation = undefined;\n }\n\n /**\n * Creates drag action.\n * @param componentSelectionHandler Component selection handler.\n * @param items Ordered item selection handlers separated into arrays by rows.\n * @param firstItem Item on which drag action was started.\n */\n public createDragAction(componentSelectionHandler: MultiSelectionHandler<Item>, items: Array<Array<SingleSelectionHandler<Item>>>, firstItem: Item): void {\n if (!hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.DragEnabled))\n return;\n\n this._dragAction = new DragAction(componentSelectionHandler, items, firstItem);\n this._componentSelectionHandler = componentSelectionHandler;\n }\n\n /**\n * Updates existing drag action.\n * @param latestItem Latest item in drag action.\n */\n public updateDragAction(latestItem: Item): void {\n if (!hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.DragEnabled))\n return;\n\n if (!this._dragAction || !this._componentSelectionHandler)\n return;\n\n this._lastItem = latestItem;\n const selectionChanges = this._dragAction.updateDragAction(latestItem);\n\n if (selectionChanges.deselections.length !== 0 || selectionChanges.selections.length !== 0) {\n if (!this._currentOperation)\n this._currentOperation = new BatchSelectionOperation(this._componentSelectionHandler, false);\n this._currentOperation.select(selectionChanges.selections);\n this._currentOperation.deselect(selectionChanges.deselections);\n this._componentSelectionHandler.updateSelection(selectionChanges.selections, selectionChanges.deselections);\n }\n }\n\n /**\n * Completes drag action.\n */\n public completeDragAction() {\n this._dragAction = undefined;\n this._componentSelectionHandler = undefined;\n this.completeOperation();\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionHandler.js","sourceRoot":"","sources":["../../../../../src/components-react/common/selection/SelectionHandler.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/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\nimport { Rectangle } from \"@itwin/core-react\";\r\nimport { hasSelectionModeFlag, SelectionMode, SelectionModeFlags } from \"./SelectionModes\";\r\n\r\n/** Prototype for a Selection Changed handler\r\n * @public\r\n */\r\nexport declare type OnSelectionChanged = (shiftDown?: boolean, ctrlDown?: boolean) => void;\r\n\r\n/**\r\n * Contains single item specific methods required by selection handler.\r\n * @internal\r\n */\r\nexport interface SingleSelectionHandler<TItem> {\r\n /**\r\n * Callback for before an item is selected.\r\n */\r\n preselect: () => void;\r\n\r\n /**\r\n * Selects the item.\r\n */\r\n select: () => void;\r\n\r\n /**\r\n * Deselects the item.\r\n */\r\n deselect: () => void;\r\n\r\n /**\r\n * Returns true if item is selected.\r\n */\r\n isSelected: () => boolean;\r\n\r\n /**\r\n * Returns the item.\r\n */\r\n item: () => TItem;\r\n}\r\n\r\n/**\r\n * Contains multi-selection methods required by selection handler.\r\n * @internal\r\n */\r\nexport interface MultiSelectionHandler<TItem> {\r\n /**\r\n * Shift selects between two items.\r\n * Returns items that were selected.\r\n */\r\n selectBetween: (item1: TItem, item2: TItem) => TItem[];\r\n\r\n /**\r\n * Updates selection.\r\n * @param selections Items to be added to selection.\r\n * @param deselections Items to be removed from selection.\r\n */\r\n updateSelection: (selections: TItem[], deselections: TItem[]) => void;\r\n\r\n /**\r\n * Deselects all items.\r\n */\r\n deselectAll: () => void;\r\n\r\n /**\r\n * Returns true if items are equal.\r\n */\r\n areEqual: (item1: TItem, item2: TItem) => boolean;\r\n}\r\n\r\n/**\r\n * Called after items were selected.\r\n * @param items Items that were selected.\r\n * @param replace Should replace current selection.\r\n * @public\r\n */\r\nexport declare type OnItemsSelectedCallback<TItem> = (items: TItem[], replace: boolean) => void | boolean;\r\n\r\n/**\r\n * Called after items were deselected.\r\n * @param items Items that were deselected.\r\n * @public\r\n */\r\nexport declare type OnItemsDeselectedCallback<Item> = (items: Item[]) => void | boolean;\r\n\r\nclass BatchSelectionOperation<Item> {\r\n public readonly selections = new Array<Item>();\r\n public readonly deselections = new Array<Item>();\r\n public readonly shouldReplace: boolean;\r\n\r\n private _componentSelectionHandler: MultiSelectionHandler<Item>;\r\n\r\n public constructor(componentSelectionHandler: MultiSelectionHandler<Item>, shouldReplace: boolean) {\r\n this.shouldReplace = shouldReplace;\r\n this._componentSelectionHandler = componentSelectionHandler;\r\n }\r\n\r\n public select(node: Item | Item[]) {\r\n this.addNodes(node, this.selections, this.shouldReplace ? undefined : this.deselections);\r\n }\r\n\r\n public deselect(node: Item | Item[]) {\r\n this.addNodes(node, this.deselections, this.shouldReplace ? undefined : this.selections);\r\n }\r\n\r\n private addNodes(node: Item | Item[], addTo: Item[], removeFrom?: Item[]) {\r\n if (Array.isArray(node)) {\r\n for (const n of node) {\r\n if (removeFrom) {\r\n const index = removeFrom.findIndex((x) => this._componentSelectionHandler.areEqual(x, n));\r\n if (index > -1) {\r\n removeFrom.splice(index, 1);\r\n continue;\r\n }\r\n }\r\n addTo.push(n);\r\n }\r\n } else {\r\n this.addNodes([node], addTo, removeFrom);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DragAction<Item> {\r\n private _itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>;\r\n private _componentSelectionHandler: MultiSelectionHandler<Item>;\r\n private _previousRow: number;\r\n private _previousColumn: number;\r\n private _firstItemRow: number;\r\n private _firstItemColumn: number;\r\n private _firstItemSelected: boolean;\r\n\r\n public constructor(componentSelectionHandler: MultiSelectionHandler<Item>, itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>, firstItem: Item) {\r\n this._itemSelectionHandlers = itemSelectionHandlers;\r\n this._componentSelectionHandler = componentSelectionHandler;\r\n const itemPos = this.findItem(this._itemSelectionHandlers, firstItem);\r\n this._previousRow = itemPos.y;\r\n this._previousColumn = itemPos.x;\r\n this._firstItemRow = itemPos.y;\r\n this._firstItemColumn = itemPos.x;\r\n this._firstItemSelected = false;\r\n }\r\n\r\n public updateDragAction(latestItem: Item): { selections: Item[], deselections: Item[] } {\r\n const currentPos = this.findItem(this._itemSelectionHandlers, latestItem);\r\n if (currentPos.y === this._previousRow && currentPos.x === this._previousColumn || currentPos.x < 0 || currentPos.y < 0)\r\n return { selections: [], deselections: [] };\r\n\r\n const currentRange = Rectangle.createXYXY(this._firstItemColumn, this._firstItemRow, currentPos.x, currentPos.y);\r\n const previousRange = Rectangle.createXYXY(this._firstItemColumn, this._firstItemRow, this._previousColumn, this._previousRow);\r\n const wholeRange = Rectangle.createXYXY(\r\n currentRange.right > previousRange.right ? currentRange.right : previousRange.right,\r\n currentRange.bottom > previousRange.bottom ? currentRange.bottom : previousRange.bottom,\r\n currentRange.left < previousRange.left ? currentRange.left : previousRange.left,\r\n currentRange.top < previousRange.top ? currentRange.top : previousRange.top,\r\n );\r\n const selections = [];\r\n const deselections = [];\r\n\r\n // have to select first item separately since it is will always be in both previous and current ranges.\r\n if (!this._firstItemSelected) {\r\n const handler = this._itemSelectionHandlers[this._firstItemRow][this._firstItemColumn];\r\n if (handler.isSelected())\r\n deselections.push(handler.item());\r\n else\r\n selections.push(handler.item());\r\n this._firstItemSelected = true;\r\n }\r\n\r\n for (let r = wholeRange.top; r <= wholeRange.bottom; r++) {\r\n for (let c = wholeRange.left; c <= wholeRange.right; c++) {\r\n const insidePrevious = previousRange.containsXY(c, r);\r\n const insideCurrent = currentRange.containsXY(c, r);\r\n // If item is in only one of the ranges that means it's selection needs to be toggled.\r\n if ((insidePrevious || insideCurrent) && insideCurrent !== insidePrevious) {\r\n const itemHandler = this._itemSelectionHandlers[r][c];\r\n if (itemHandler.isSelected())\r\n deselections.push(itemHandler.item());\r\n else\r\n selections.push(itemHandler.item());\r\n }\r\n }\r\n }\r\n\r\n this._previousRow = currentPos.y;\r\n this._previousColumn = currentPos.x;\r\n return { selections, deselections };\r\n }\r\n\r\n private findItem(itemSelectionHandlers: Array<Array<SingleSelectionHandler<Item>>>, item: Item): { x: number, y: number } {\r\n if (this._previousRow !== undefined && this._previousRow !== -1 && this._previousColumn !== undefined && this._previousColumn !== -1 &&\r\n this._componentSelectionHandler.areEqual(itemSelectionHandlers[this._previousRow][this._previousColumn].item(), item)) {\r\n return { y: this._previousRow, x: this._previousColumn };\r\n }\r\n for (let row = 0; row < itemSelectionHandlers.length; row++) {\r\n for (let column = 0; column < itemSelectionHandlers[row].length; column++) {\r\n if (this._componentSelectionHandler.areEqual(itemSelectionHandlers[row][column].item(), item))\r\n return { x: column, y: row };\r\n }\r\n }\r\n return { x: -1, y: -1 };\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport class SelectionHandler<Item> {\r\n\r\n /** Selection mode. */\r\n public selectionMode: SelectionMode;\r\n public onItemsSelectedCallback?: OnItemsSelectedCallback<Item>;\r\n public onItemsDeselectedCallback?: OnItemsDeselectedCallback<Item>;\r\n\r\n private _currentOperation?: BatchSelectionOperation<Item>;\r\n private _lastItem?: Item; // keeps track of last item interacted with for shift selection\r\n private _processedItem?: Item; // last item interacted with\r\n private _dragAction?: DragAction<Item>;\r\n private _componentSelectionHandler?: MultiSelectionHandler<Item>; // needed for drag selection\r\n\r\n constructor(selectionMode: SelectionMode, onItemsSelectedCallback?: OnItemsSelectedCallback<Item>, onItemsDeselectedCallback?: OnItemsDeselectedCallback<Item>) {\r\n this.selectionMode = selectionMode;\r\n this.onItemsSelectedCallback = onItemsSelectedCallback;\r\n this.onItemsDeselectedCallback = onItemsDeselectedCallback;\r\n }\r\n\r\n /** Get the onSelectionChange processed item */\r\n public get processedItem(): Item | undefined { return this._processedItem; }\r\n\r\n /** Creates a function that should be called when selection changes. */\r\n public createSelectionFunction(componentHandler: MultiSelectionHandler<Item>, itemHandler: SingleSelectionHandler<Item>): OnSelectionChanged {\r\n const onSelectionChange: OnSelectionChanged = (shiftDown, ctrlDown) => {\r\n this._processedItem = itemHandler.item();\r\n\r\n if (this.selectionMode === SelectionMode.None) {\r\n return;\r\n }\r\n\r\n let operationCreated = false;\r\n let shiftSelected = false;\r\n if (!this._currentOperation) {\r\n // will replace selection if it is limited to one or keys are enabled but ctrl is not down\r\n const shouldReplace = (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.KeysEnabled) && !ctrlDown)\r\n || hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.SelectionLimitOne);\r\n this._currentOperation = new BatchSelectionOperation<Item>(componentHandler, shouldReplace);\r\n operationCreated = true;\r\n }\r\n\r\n if (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.KeysEnabled)) {\r\n if (!ctrlDown)\r\n componentHandler.deselectAll();\r\n if (shiftDown && this._lastItem !== undefined) {\r\n const selected = componentHandler.selectBetween(this._lastItem, itemHandler.item());\r\n this._currentOperation.select(selected);\r\n shiftSelected = true;\r\n }\r\n }\r\n\r\n if (!shiftSelected) {\r\n itemHandler.preselect();\r\n\r\n if (hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.SelectionLimitOne)\r\n && !(hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.ToggleEnabled) && itemHandler.isSelected())) {\r\n componentHandler.deselectAll();\r\n }\r\n\r\n if (itemHandler.isSelected()) {\r\n itemHandler.deselect();\r\n this._currentOperation.deselect(itemHandler.item());\r\n } else {\r\n itemHandler.select();\r\n this._currentOperation.select(itemHandler.item());\r\n }\r\n this._lastItem = itemHandler.item();\r\n }\r\n\r\n if (operationCreated)\r\n this.completeOperation();\r\n };\r\n return onSelectionChange.bind(this);\r\n }\r\n\r\n private completeOperation(): void {\r\n if (!this._currentOperation)\r\n return;\r\n\r\n if (0 !== this._currentOperation.selections.length) {\r\n if (this.onItemsSelectedCallback) {\r\n this.onItemsSelectedCallback(this._currentOperation.selections, this._currentOperation.shouldReplace);\r\n if (this._currentOperation.shouldReplace) {\r\n this._currentOperation = undefined;\r\n return;\r\n }\r\n }\r\n }\r\n if (0 !== this._currentOperation.deselections.length) {\r\n if (this.onItemsDeselectedCallback)\r\n this.onItemsDeselectedCallback(this._currentOperation.deselections);\r\n }\r\n this._currentOperation = undefined;\r\n }\r\n\r\n /**\r\n * Creates drag action.\r\n * @param componentSelectionHandler Component selection handler.\r\n * @param items Ordered item selection handlers separated into arrays by rows.\r\n * @param firstItem Item on which drag action was started.\r\n */\r\n public createDragAction(componentSelectionHandler: MultiSelectionHandler<Item>, items: Array<Array<SingleSelectionHandler<Item>>>, firstItem: Item): void {\r\n if (!hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.DragEnabled))\r\n return;\r\n\r\n this._dragAction = new DragAction(componentSelectionHandler, items, firstItem);\r\n this._componentSelectionHandler = componentSelectionHandler;\r\n }\r\n\r\n /**\r\n * Updates existing drag action.\r\n * @param latestItem Latest item in drag action.\r\n */\r\n public updateDragAction(latestItem: Item): void {\r\n if (!hasSelectionModeFlag(this.selectionMode, SelectionModeFlags.DragEnabled))\r\n return;\r\n\r\n if (!this._dragAction || !this._componentSelectionHandler)\r\n return;\r\n\r\n this._lastItem = latestItem;\r\n const selectionChanges = this._dragAction.updateDragAction(latestItem);\r\n\r\n if (selectionChanges.deselections.length !== 0 || selectionChanges.selections.length !== 0) {\r\n if (!this._currentOperation)\r\n this._currentOperation = new BatchSelectionOperation(this._componentSelectionHandler, false);\r\n this._currentOperation.select(selectionChanges.selections);\r\n this._currentOperation.deselect(selectionChanges.deselections);\r\n this._componentSelectionHandler.updateSelection(selectionChanges.selections, selectionChanges.deselections);\r\n }\r\n }\r\n\r\n /**\r\n * Completes drag action.\r\n */\r\n public completeDragAction() {\r\n this._dragAction = undefined;\r\n this._componentSelectionHandler = undefined;\r\n this.completeOperation();\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionModes.js","sourceRoot":"","sources":["../../../../../src/components-react/common/selection/SelectionModes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qFAA0B,CAAA;IAC1B,yEAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4DAAa,CAAA;AACf,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AAED;;GAEG;AACH,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,wCAAwC;IACxC,qDAA6C,CAAA;IAC7C,mDAAmD;IACnD,yDAA4E,CAAA;IAC5E,oEAAoE;IACpE,0DAA4E,CAAA;IAC5E,iEAAiE;IACjE,+EAA6F,CAAA;IAC7F,uCAAuC;IACvC,kDAA8B,CAAA;AAChC,CAAC,EAXW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAWxB;AAED;;GAEG;AACI,MAAM,oBAAoB,GAAG,CAAC,aAA4B,EAAE,IAAwB,EAAW,EAAE;IACtG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/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 Common\n */\n\n/** Selection mode flags for Table and Tree row selection\n * @public\n */\nexport enum SelectionModeFlags {\n SelectionLimitOne = 1 << 0,\n DragEnabled = 1 << 1,\n ToggleEnabled = 1 << 2,\n KeysEnabled = 1 << 3,\n None = 1 << 4,\n}\n\n/** Selection modes for Table and Tree row selection\n * @public\n */\nexport enum SelectionMode {\n /** Only one item selected at a time. */\n Single = SelectionModeFlags.SelectionLimitOne,\n /** Toggles items; drag only applies to desktop. */\n Multiple = SelectionModeFlags.DragEnabled | SelectionModeFlags.ToggleEnabled,\n /** Allows the use of Ctrl & Shift Keys in a desktop environment. */\n Extended = SelectionModeFlags.KeysEnabled | SelectionModeFlags.ToggleEnabled,\n /** Only one item selected at a time; also allows deselecting. */\n SingleAllowDeselect = SelectionModeFlags.SelectionLimitOne | SelectionModeFlags.ToggleEnabled,\n /** Do not allow (disable) selection */\n None = SelectionModeFlags.None,\n}\n\n/** Determines if a SelectionMode is active\n * @public\n */\nexport const hasSelectionModeFlag = (selectionMode: SelectionMode, flag: SelectionModeFlags): boolean => {\n return (selectionMode & flag) !== 0;\n};\n"]}
1
+ {"version":3,"file":"SelectionModes.js","sourceRoot":"","sources":["../../../../../src/components-react/common/selection/SelectionModes.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qFAA0B,CAAA;IAC1B,yEAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4DAAa,CAAA;AACf,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AAED;;GAEG;AACH,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,wCAAwC;IACxC,qDAA6C,CAAA;IAC7C,mDAAmD;IACnD,yDAA4E,CAAA;IAC5E,oEAAoE;IACpE,0DAA4E,CAAA;IAC5E,iEAAiE;IACjE,+EAA6F,CAAA;IAC7F,uCAAuC;IACvC,kDAA8B,CAAA;AAChC,CAAC,EAXW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAWxB;AAED;;GAEG;AACI,MAAM,oBAAoB,GAAG,CAAC,aAA4B,EAAE,IAAwB,EAAW,EAAE;IACtG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/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 Common\r\n */\r\n\r\n/** Selection mode flags for Table and Tree row selection\r\n * @public\r\n */\r\nexport enum SelectionModeFlags {\r\n SelectionLimitOne = 1 << 0,\r\n DragEnabled = 1 << 1,\r\n ToggleEnabled = 1 << 2,\r\n KeysEnabled = 1 << 3,\r\n None = 1 << 4,\r\n}\r\n\r\n/** Selection modes for Table and Tree row selection\r\n * @public\r\n */\r\nexport enum SelectionMode {\r\n /** Only one item selected at a time. */\r\n Single = SelectionModeFlags.SelectionLimitOne,\r\n /** Toggles items; drag only applies to desktop. */\r\n Multiple = SelectionModeFlags.DragEnabled | SelectionModeFlags.ToggleEnabled,\r\n /** Allows the use of Ctrl & Shift Keys in a desktop environment. */\r\n Extended = SelectionModeFlags.KeysEnabled | SelectionModeFlags.ToggleEnabled,\r\n /** Only one item selected at a time; also allows deselecting. */\r\n SingleAllowDeselect = SelectionModeFlags.SelectionLimitOne | SelectionModeFlags.ToggleEnabled,\r\n /** Do not allow (disable) selection */\r\n None = SelectionModeFlags.None,\r\n}\r\n\r\n/** Determines if a SelectionMode is active\r\n * @public\r\n */\r\nexport const hasSelectionModeFlag = (selectionMode: SelectionMode, flag: SelectionModeFlags): boolean => {\r\n return (selectionMode & flag) !== 0;\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShowHideDialog.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideDialog.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 Common\n */\n\nimport * as React from \"react\";\nimport { GlobalDialog, GlobalDialogProps } from \"@itwin/core-react\";\nimport { UiComponents } from \"../../UiComponents\";\nimport { ShowHideID, ShowHideItem } from \"./ShowHideItem\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport { Checkbox } from \"@itwin/itwinui-react\";\n\n/** Properties for the [[ShowHideDialog]] component\n * @public\n */\nexport interface ShowHideDialogProps<T extends ShowHideID> extends GlobalDialogProps {\n /** key-label pair list for id's to be shown/hidden, and an accompanying label. */\n items: Array<ShowHideItem<T>>;\n /** Hidden list to start with */\n initialHidden?: T[];\n /** Called when item is shown/hidden */\n onShowHideChange?: (cols: T[]) => boolean | undefined;\n}\n\n/** @internal */\ninterface ShowHideDialogState<T extends ShowHideID> {\n hiddenColumns: T[];\n}\n\n/**\n * [Dialog]($core-react) Component used to toggle show/hide items, given through items prop, through a list of checkboxes.\n * @public\n */\nexport class ShowHideDialog<T extends ShowHideID> extends React.PureComponent<ShowHideDialogProps<T>, ShowHideDialogState<T>> {\n /** @internal */\n public override readonly state: ShowHideDialogState<T>;\n constructor(props: ShowHideDialogProps<T>) {\n super(props);\n this.state = {\n hiddenColumns: props.initialHidden || [],\n };\n }\n\n /** @internal */\n public override componentDidUpdate(oldProps: ShowHideDialogProps<T>) {\n if (this.props.initialHidden && oldProps.initialHidden !== this.props.initialHidden) {\n this.setState((_, props) => ({ hiddenColumns: props.initialHidden || /* istanbul ignore next */[] }));\n }\n }\n\n private _toggleItem = (item: ShowHideItem<T>) => {\n if (this.state.hiddenColumns.indexOf(item.id) !== -1)\n this._show(item);\n else\n this._hide(item);\n };\n\n private _hide = (item: ShowHideItem<T>) => {\n this.setState(\n (prevState) => ({ hiddenColumns: [...prevState.hiddenColumns, item.id] }),\n () => {\n if (this.props.onShowHideChange)\n this.props.onShowHideChange(this.state.hiddenColumns);\n });\n };\n\n private _show = (item: ShowHideItem<T>) => {\n const hiddenColumns = this.state.hiddenColumns.filter((value) => {\n return value !== item.id;\n });\n\n this.setState({ hiddenColumns }, () => {\n if (this.props.onShowHideChange)\n this.props.onShowHideChange(this.state.hiddenColumns);\n });\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n const { opened, items, initialHidden, onClose, onShowHideChange, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n return (\n <GlobalDialog\n opened={opened}\n resizable={true}\n movable={true}\n modal={false}\n minWidth={300}\n minHeight={250}\n width={300}\n onClose={onClose}\n onEscape={onClose}\n onOutsideClick={onClose}\n buttonCluster={onClose && [{ onClick: onClose, type: DialogButtonType.Close }]}\n {...props}>\n {this.props.items.map((item, index) => {\n const visible = this.state.hiddenColumns.indexOf(item.id) === -1;\n const sel = () => {\n this._toggleItem(item);\n };\n const label = item.label || UiComponents.translate(\"showhide.noLabel\");\n const id = `show-hide-dialog-input-${index}`;\n return (\n <div key={index}>\n <Checkbox data-testid={id} id={id} checked={visible} onChange={() => undefined} onClick={sel} />\n <label htmlFor={id}>{label}</label>\n </div>\n );\n })}\n </GlobalDialog>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ShowHideDialog.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideDialog.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 Common\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { GlobalDialog, GlobalDialogProps } from \"@itwin/core-react\";\r\nimport { UiComponents } from \"../../UiComponents\";\r\nimport { ShowHideID, ShowHideItem } from \"./ShowHideItem\";\r\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\r\nimport { Checkbox } from \"@itwin/itwinui-react\";\r\n\r\n/** Properties for the [[ShowHideDialog]] component\r\n * @public\r\n */\r\nexport interface ShowHideDialogProps<T extends ShowHideID> extends GlobalDialogProps {\r\n /** key-label pair list for id's to be shown/hidden, and an accompanying label. */\r\n items: Array<ShowHideItem<T>>;\r\n /** Hidden list to start with */\r\n initialHidden?: T[];\r\n /** Called when item is shown/hidden */\r\n onShowHideChange?: (cols: T[]) => boolean | undefined;\r\n}\r\n\r\n/** @internal */\r\ninterface ShowHideDialogState<T extends ShowHideID> {\r\n hiddenColumns: T[];\r\n}\r\n\r\n/**\r\n * [Dialog]($core-react) Component used to toggle show/hide items, given through items prop, through a list of checkboxes.\r\n * @public\r\n */\r\nexport class ShowHideDialog<T extends ShowHideID> extends React.PureComponent<ShowHideDialogProps<T>, ShowHideDialogState<T>> {\r\n /** @internal */\r\n public override readonly state: ShowHideDialogState<T>;\r\n constructor(props: ShowHideDialogProps<T>) {\r\n super(props);\r\n this.state = {\r\n hiddenColumns: props.initialHidden || [],\r\n };\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(oldProps: ShowHideDialogProps<T>) {\r\n if (this.props.initialHidden && oldProps.initialHidden !== this.props.initialHidden) {\r\n this.setState((_, props) => ({ hiddenColumns: props.initialHidden || /* istanbul ignore next */[] }));\r\n }\r\n }\r\n\r\n private _toggleItem = (item: ShowHideItem<T>) => {\r\n if (this.state.hiddenColumns.indexOf(item.id) !== -1)\r\n this._show(item);\r\n else\r\n this._hide(item);\r\n };\r\n\r\n private _hide = (item: ShowHideItem<T>) => {\r\n this.setState(\r\n (prevState) => ({ hiddenColumns: [...prevState.hiddenColumns, item.id] }),\r\n () => {\r\n if (this.props.onShowHideChange)\r\n this.props.onShowHideChange(this.state.hiddenColumns);\r\n });\r\n };\r\n\r\n private _show = (item: ShowHideItem<T>) => {\r\n const hiddenColumns = this.state.hiddenColumns.filter((value) => {\r\n return value !== item.id;\r\n });\r\n\r\n this.setState({ hiddenColumns }, () => {\r\n if (this.props.onShowHideChange)\r\n this.props.onShowHideChange(this.state.hiddenColumns);\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const { opened, items, initialHidden, onClose, onShowHideChange, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <GlobalDialog\r\n opened={opened}\r\n resizable={true}\r\n movable={true}\r\n modal={false}\r\n minWidth={300}\r\n minHeight={250}\r\n width={300}\r\n onClose={onClose}\r\n onEscape={onClose}\r\n onOutsideClick={onClose}\r\n buttonCluster={onClose && [{ onClick: onClose, type: DialogButtonType.Close }]}\r\n {...props}>\r\n {this.props.items.map((item, index) => {\r\n const visible = this.state.hiddenColumns.indexOf(item.id) === -1;\r\n const sel = () => {\r\n this._toggleItem(item);\r\n };\r\n const label = item.label || UiComponents.translate(\"showhide.noLabel\");\r\n const id = `show-hide-dialog-input-${index}`;\r\n return (\r\n <div key={index}>\r\n <Checkbox data-testid={id} id={id} checked={visible} onChange={() => undefined} onClick={sel} />\r\n <label htmlFor={id}>{label}</label>\r\n </div>\r\n );\r\n })}\r\n </GlobalDialog>\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShowHideItem.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideItem.ts"],"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 Common\n */\n\n/** Interface for ShowHide items\n * @public\n */\nexport interface ShowHideItem<T extends ShowHideID> {\n id: T;\n label: string;\n}\n\n/** Union type for all possible ShowHide IDs\n * @public\n */\nexport type ShowHideID = string | number | symbol;\n"]}
1
+ {"version":3,"file":"ShowHideItem.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideItem.ts"],"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 Common\r\n */\r\n\r\n/** Interface for ShowHide items\r\n * @public\r\n */\r\nexport interface ShowHideItem<T extends ShowHideID> {\r\n id: T;\r\n label: string;\r\n}\r\n\r\n/** Union type for all possible ShowHide IDs\r\n * @public\r\n */\r\nexport type ShowHideID = string | number | symbol;\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShowHideMenu.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideMenu.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 Common\n */\n\nimport * as React from \"react\";\nimport { ContextMenuDivider, ContextMenuItem, GlobalContextMenu, GlobalContextMenuProps } from \"@itwin/core-react\";\nimport { UiComponents } from \"../../UiComponents\";\nimport { ShowHideDialog } from \"./ShowHideDialog\";\nimport { ShowHideID, ShowHideItem } from \"./ShowHideItem\";\nimport { Checkbox } from \"@itwin/itwinui-react\";\n\n/** Properties for the [[ShowHideMenu]] component\n * @public\n */\nexport interface ShowHideMenuProps<T extends ShowHideID> extends GlobalContextMenuProps {\n /** key-label pair list for id's to be shown/hidden, and an accompanying label. */\n items: Array<ShowHideItem<T>>;\n /** X position to place menu */\n x: number;\n /** Y position to place menu */\n y: number;\n /** Whether dialog is opened or closed */\n opened: boolean;\n /** Hidden list to start with */\n initialHidden?: T[];\n /** Called when close button is clicked */\n onClose?: () => void;\n /** Called when item is shown/hidden */\n onShowHideChange?: (cols: T[]) => boolean | undefined;\n}\n\n/** @internal */\ninterface ShowHideMenuState<T extends ShowHideID> {\n hiddenColumns: T[];\n dialogOpened: boolean;\n}\n\n/**\n * [ContextMenu]($core-react) Component used to toggle show/hide items, given through items prop, through a list of checkboxes.\n * Component includes a \"list\" button that displays a dialog with the same checkboxes.\n * @public\n */\nexport class ShowHideMenu<T extends ShowHideID> extends React.PureComponent<ShowHideMenuProps<T>, ShowHideMenuState<T>> {\n /** @internal */\n public override readonly state: ShowHideMenuState<T>;\n\n /** @internal */\n constructor(props: ShowHideMenuProps<T>) {\n super(props);\n this.state = {\n hiddenColumns: props.initialHidden || [],\n dialogOpened: false,\n };\n }\n\n /** @internal */\n public override componentDidUpdate(oldProps: ShowHideMenuProps<T>) {\n if (this.props.initialHidden && oldProps.initialHidden !== this.props.initialHidden) {\n this.setState((_, props) => ({ hiddenColumns: props.initialHidden || /* istanbul ignore next */[] }));\n }\n }\n\n private _toggleItem = (item: ShowHideItem<T>) => {\n if (this.state.hiddenColumns.indexOf(item.id) !== -1)\n this._show(item);\n else\n this._hide(item);\n if (this.props.onClose)\n this.props.onClose();\n };\n\n private _hide = (item: ShowHideItem<T>) => {\n this.setState(\n (prevState) => ({ hiddenColumns: [...prevState.hiddenColumns, item.id] }),\n () => {\n if (this.props.onShowHideChange)\n this.props.onShowHideChange(this.state.hiddenColumns);\n });\n };\n\n private _show = (item: ShowHideItem<T>) => {\n const hiddenColumns = this.state.hiddenColumns.filter((value) => {\n return value !== item.id;\n });\n\n this.setState({ hiddenColumns }, () => {\n if (this.props.onShowHideChange)\n this.props.onShowHideChange(this.state.hiddenColumns);\n });\n };\n\n private _showAll = () => {\n this.setState({ hiddenColumns: [] }, () => {\n // istanbul ignore next\n if (this.props.onShowHideChange)\n this.props.onShowHideChange(this.state.hiddenColumns);\n });\n if (this.props.onClose)\n this.props.onClose();\n };\n private _showDialog = () => {\n if (this.props.onClose)\n this.props.onClose();\n this.setState({\n dialogOpened: true,\n });\n };\n\n private _closeDialog = () => {\n this.setState({\n dialogOpened: false,\n });\n };\n\n private _defaultContextMenu = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n /** @internal */\n public override render(): React.ReactNode {\n const { items, x, y, opened, initialHidden, onClose, onShowHideChange, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n return (\n <GlobalContextMenu\n x={x}\n y={y}\n opened={opened}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n {...props}>\n {this.props.items.map((item, index) => {\n const visible = this.state.hiddenColumns.indexOf(item.id) === -1;\n const sel = () => this._toggleItem(item);\n const label = item.label || UiComponents.translate(\"showhide.noLabel\");\n const id = `show-hide-menu-input-${index}`;\n return (\n <ContextMenuItem key={index}\n onSelect={sel}\n icon={<Checkbox data-testid={id} id={id} checked={visible} onChange={() => undefined} />} >\n {label}\n </ContextMenuItem>\n );\n })}\n <ContextMenuDivider />\n <ContextMenuItem onSelect={this._showAll}><span data-testid=\"show-hide-showall\">{UiComponents.translate(\"showhide.showAll\")}</span></ContextMenuItem>\n <ContextMenuItem onSelect={this._showDialog}><span data-testid=\"show-hide-list\">{UiComponents.translate(\"showhide.list\")}</span></ContextMenuItem>\n <ShowHideDialog\n items={items}\n title={UiComponents.translate(\"showhide.title\")}\n opened={this.state.dialogOpened}\n onClose={this._closeDialog}\n initialHidden={this.state.hiddenColumns}\n onContextMenu={this._defaultContextMenu}\n onShowHideChange={onShowHideChange} />\n </GlobalContextMenu>\n );\n }\n}\n\n// cspell:ignore showall\n"]}
1
+ {"version":3,"file":"ShowHideMenu.js","sourceRoot":"","sources":["../../../../../src/components-react/common/showhide/ShowHideMenu.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 Common\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ContextMenuDivider, ContextMenuItem, GlobalContextMenu, GlobalContextMenuProps } from \"@itwin/core-react\";\r\nimport { UiComponents } from \"../../UiComponents\";\r\nimport { ShowHideDialog } from \"./ShowHideDialog\";\r\nimport { ShowHideID, ShowHideItem } from \"./ShowHideItem\";\r\nimport { Checkbox } from \"@itwin/itwinui-react\";\r\n\r\n/** Properties for the [[ShowHideMenu]] component\r\n * @public\r\n */\r\nexport interface ShowHideMenuProps<T extends ShowHideID> extends GlobalContextMenuProps {\r\n /** key-label pair list for id's to be shown/hidden, and an accompanying label. */\r\n items: Array<ShowHideItem<T>>;\r\n /** X position to place menu */\r\n x: number;\r\n /** Y position to place menu */\r\n y: number;\r\n /** Whether dialog is opened or closed */\r\n opened: boolean;\r\n /** Hidden list to start with */\r\n initialHidden?: T[];\r\n /** Called when close button is clicked */\r\n onClose?: () => void;\r\n /** Called when item is shown/hidden */\r\n onShowHideChange?: (cols: T[]) => boolean | undefined;\r\n}\r\n\r\n/** @internal */\r\ninterface ShowHideMenuState<T extends ShowHideID> {\r\n hiddenColumns: T[];\r\n dialogOpened: boolean;\r\n}\r\n\r\n/**\r\n * [ContextMenu]($core-react) Component used to toggle show/hide items, given through items prop, through a list of checkboxes.\r\n * Component includes a \"list\" button that displays a dialog with the same checkboxes.\r\n * @public\r\n */\r\nexport class ShowHideMenu<T extends ShowHideID> extends React.PureComponent<ShowHideMenuProps<T>, ShowHideMenuState<T>> {\r\n /** @internal */\r\n public override readonly state: ShowHideMenuState<T>;\r\n\r\n /** @internal */\r\n constructor(props: ShowHideMenuProps<T>) {\r\n super(props);\r\n this.state = {\r\n hiddenColumns: props.initialHidden || [],\r\n dialogOpened: false,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(oldProps: ShowHideMenuProps<T>) {\r\n if (this.props.initialHidden && oldProps.initialHidden !== this.props.initialHidden) {\r\n this.setState((_, props) => ({ hiddenColumns: props.initialHidden || /* istanbul ignore next */[] }));\r\n }\r\n }\r\n\r\n private _toggleItem = (item: ShowHideItem<T>) => {\r\n if (this.state.hiddenColumns.indexOf(item.id) !== -1)\r\n this._show(item);\r\n else\r\n this._hide(item);\r\n if (this.props.onClose)\r\n this.props.onClose();\r\n };\r\n\r\n private _hide = (item: ShowHideItem<T>) => {\r\n this.setState(\r\n (prevState) => ({ hiddenColumns: [...prevState.hiddenColumns, item.id] }),\r\n () => {\r\n if (this.props.onShowHideChange)\r\n this.props.onShowHideChange(this.state.hiddenColumns);\r\n });\r\n };\r\n\r\n private _show = (item: ShowHideItem<T>) => {\r\n const hiddenColumns = this.state.hiddenColumns.filter((value) => {\r\n return value !== item.id;\r\n });\r\n\r\n this.setState({ hiddenColumns }, () => {\r\n if (this.props.onShowHideChange)\r\n this.props.onShowHideChange(this.state.hiddenColumns);\r\n });\r\n };\r\n\r\n private _showAll = () => {\r\n this.setState({ hiddenColumns: [] }, () => {\r\n // istanbul ignore next\r\n if (this.props.onShowHideChange)\r\n this.props.onShowHideChange(this.state.hiddenColumns);\r\n });\r\n if (this.props.onClose)\r\n this.props.onClose();\r\n };\r\n private _showDialog = () => {\r\n if (this.props.onClose)\r\n this.props.onClose();\r\n this.setState({\r\n dialogOpened: true,\r\n });\r\n };\r\n\r\n private _closeDialog = () => {\r\n this.setState({\r\n dialogOpened: false,\r\n });\r\n };\r\n\r\n private _defaultContextMenu = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const { items, x, y, opened, initialHidden, onClose, onShowHideChange, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <GlobalContextMenu\r\n x={x}\r\n y={y}\r\n opened={opened}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n {...props}>\r\n {this.props.items.map((item, index) => {\r\n const visible = this.state.hiddenColumns.indexOf(item.id) === -1;\r\n const sel = () => this._toggleItem(item);\r\n const label = item.label || UiComponents.translate(\"showhide.noLabel\");\r\n const id = `show-hide-menu-input-${index}`;\r\n return (\r\n <ContextMenuItem key={index}\r\n onSelect={sel}\r\n icon={<Checkbox data-testid={id} id={id} checked={visible} onChange={() => undefined} />} >\r\n {label}\r\n </ContextMenuItem>\r\n );\r\n })}\r\n <ContextMenuDivider />\r\n <ContextMenuItem onSelect={this._showAll}><span data-testid=\"show-hide-showall\">{UiComponents.translate(\"showhide.showAll\")}</span></ContextMenuItem>\r\n <ContextMenuItem onSelect={this._showDialog}><span data-testid=\"show-hide-list\">{UiComponents.translate(\"showhide.list\")}</span></ContextMenuItem>\r\n <ShowHideDialog\r\n items={items}\r\n title={UiComponents.translate(\"showhide.title\")}\r\n opened={this.state.dialogOpened}\r\n onClose={this._closeDialog}\r\n initialHidden={this.state.hiddenColumns}\r\n onContextMenu={this._defaultContextMenu}\r\n onShowHideChange={onShowHideChange} />\r\n </GlobalContextMenu>\r\n );\r\n }\r\n}\r\n\r\n// cspell:ignore showall\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/BooleanTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAsE;AACtE,kDAA+C;AAC/C,mDAAgD;AAChD,iEAA8D;AAE9D;;GAEG;AACH,MAAa,oBAAqB,SAAQ,6BAAa;IAMrD,gBAAgB;IACT,MAAM,CAAC,qBAAqB;QACjC,IAAI,CAAC,oBAAoB,CAAC,SAAS;YACjC,oBAAoB,CAAC,SAAS,GAAG,2BAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,CAAC,UAAU;YAClC,oBAAoB,CAAC,UAAU,GAAG,2BAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;IAEe,eAAe,CAAC,KAA0B;QACxD,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;QAE7C,IAAI,KAAK,KAAK,oBAAoB,CAAC,SAAS,IAAI,KAAK,KAAK,oBAAoB,CAAC,UAAU;YACvF,OAAO,KAAe,CAAC;QAEzB,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAClF,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzH,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,WAAW,CAAC,CAAqB,EAAE,CAAqB,EAAE,WAAqB;QACpF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACX,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAoB,aAAa,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;;AAzC/D,oDA0CC;AAzCC,gBAAgB;AACF,8BAAS,GAAW,EAAE,CAAC;AACrC,gBAAgB;AACF,+BAAU,GAAW,EAAE,CAAC;AAwCxC,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACxF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module TypeConverters\n */\n\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { UiComponents } from \"../UiComponents\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/** Boolean Type Converter.\n * @public\n */\nexport class BooleanTypeConverter extends TypeConverter {\n /** @internal */\n public static sl10nTrue: string = \"\";\n /** @internal */\n public static sl10nFalse: string = \"\";\n\n /** @internal */\n public static getLocalizedTrueFalse() {\n if (!BooleanTypeConverter.sl10nTrue)\n BooleanTypeConverter.sl10nTrue = UiComponents.translate(\"general.true\");\n if (!BooleanTypeConverter.sl10nFalse)\n BooleanTypeConverter.sl10nFalse = UiComponents.translate(\"general.false\");\n }\n\n public override convertToString(value?: Primitives.Boolean) {\n if (value === undefined)\n return \"\";\n\n BooleanTypeConverter.getLocalizedTrueFalse();\n\n if (value === BooleanTypeConverter.sl10nTrue || value === BooleanTypeConverter.sl10nFalse)\n return value as string;\n\n return value ? BooleanTypeConverter.sl10nTrue : BooleanTypeConverter.sl10nFalse;\n }\n\n public override convertFromString(value: string) {\n BooleanTypeConverter.getLocalizedTrueFalse();\n\n const booleanValue = (0 === value.toLocaleLowerCase().localeCompare(BooleanTypeConverter.sl10nTrue.toLocaleLowerCase()));\n return booleanValue;\n }\n\n public sortCompare(a: Primitives.Boolean, b: Primitives.Boolean, _ignoreCase?: boolean): number {\n if (!!a === !!b)\n return 0;\n if (!!a && !b)\n return 1;\n return -1;\n }\n\n public override get isBooleanType(): boolean { return true; }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Boolean, BooleanTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Bool, BooleanTypeConverter);\n"]}
1
+ {"version":3,"file":"BooleanTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/BooleanTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAsE;AACtE,kDAA+C;AAC/C,mDAAgD;AAChD,iEAA8D;AAE9D;;GAEG;AACH,MAAa,oBAAqB,SAAQ,6BAAa;IAMrD,gBAAgB;IACT,MAAM,CAAC,qBAAqB;QACjC,IAAI,CAAC,oBAAoB,CAAC,SAAS;YACjC,oBAAoB,CAAC,SAAS,GAAG,2BAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,CAAC,UAAU;YAClC,oBAAoB,CAAC,UAAU,GAAG,2BAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;IAEe,eAAe,CAAC,KAA0B;QACxD,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;QAE7C,IAAI,KAAK,KAAK,oBAAoB,CAAC,SAAS,IAAI,KAAK,KAAK,oBAAoB,CAAC,UAAU;YACvF,OAAO,KAAe,CAAC;QAEzB,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC;IAClF,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzH,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,WAAW,CAAC,CAAqB,EAAE,CAAqB,EAAE,WAAqB;QACpF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACX,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAoB,aAAa,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;;AAzC/D,oDA0CC;AAzCC,gBAAgB;AACF,8BAAS,GAAW,EAAE,CAAC;AACrC,gBAAgB;AACF,+BAAU,GAAW,EAAE,CAAC;AAwCxC,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACxF,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC","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 TypeConverters\r\n */\r\n\r\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/** Boolean Type Converter.\r\n * @public\r\n */\r\nexport class BooleanTypeConverter extends TypeConverter {\r\n /** @internal */\r\n public static sl10nTrue: string = \"\";\r\n /** @internal */\r\n public static sl10nFalse: string = \"\";\r\n\r\n /** @internal */\r\n public static getLocalizedTrueFalse() {\r\n if (!BooleanTypeConverter.sl10nTrue)\r\n BooleanTypeConverter.sl10nTrue = UiComponents.translate(\"general.true\");\r\n if (!BooleanTypeConverter.sl10nFalse)\r\n BooleanTypeConverter.sl10nFalse = UiComponents.translate(\"general.false\");\r\n }\r\n\r\n public override convertToString(value?: Primitives.Boolean) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n BooleanTypeConverter.getLocalizedTrueFalse();\r\n\r\n if (value === BooleanTypeConverter.sl10nTrue || value === BooleanTypeConverter.sl10nFalse)\r\n return value as string;\r\n\r\n return value ? BooleanTypeConverter.sl10nTrue : BooleanTypeConverter.sl10nFalse;\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n BooleanTypeConverter.getLocalizedTrueFalse();\r\n\r\n const booleanValue = (0 === value.toLocaleLowerCase().localeCompare(BooleanTypeConverter.sl10nTrue.toLocaleLowerCase()));\r\n return booleanValue;\r\n }\r\n\r\n public sortCompare(a: Primitives.Boolean, b: Primitives.Boolean, _ignoreCase?: boolean): number {\r\n if (!!a === !!b)\r\n return 0;\r\n if (!!a && !b)\r\n return 1;\r\n return -1;\r\n }\r\n\r\n public override get isBooleanType(): boolean { return true; }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Boolean, BooleanTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Bool, BooleanTypeConverter);\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/CompositeTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAsE;AACtE,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,6BAAa;IACvC,eAAe,CAAC,KAA4B;QAC1D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,MAA4B,EAAE,MAA4B,EAAE,UAAgC;QAC7G,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;gBAClH,CAAC,CAAC,2CAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxG,IAAI,aAAa,KAAK,CAAC;gBACrB,OAAO,aAAa,CAAC;YAEvB,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC;gBACtC,OAAO,mBAAmB,CAAC;SAC9B;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;YAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAEnD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA3BD,wDA2BC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE5F,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,UAAoB,EAAE,EAAE;IACxE,IAAI,UAAU;QACZ,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;;QAEtE,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,cAAoC,EAAmB,EAAE;IACzF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;QACvC,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;YACjC,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAgC,CAAC,CAAC;SAC/E;aAAM;YACL,WAAW,GAAG,MAAM,2CAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrG;QAED,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzB;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module TypeConverters\n */\n\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Composite type converter\n * @public\n */\nexport class CompositeTypeConverter extends TypeConverter {\n public override convertToString(value?: Primitives.Composite): string | Promise<string> {\n if (value === undefined)\n return \"\";\n return createDisplayValue(value);\n }\n\n public sortCompare(valueA: Primitives.Composite, valueB: Primitives.Composite, ignoreCase?: boolean | undefined): number {\n const length = Math.min(valueA.parts.length, valueB.parts.length);\n const separatorComparison = compareStrings(valueA.separator, valueB.separator, ignoreCase);\n for (let i = 0; i < length; i++) {\n const lhs = valueA.parts[i];\n const rhs = valueB.parts[i];\n const compareResult = lhs.typeName !== rhs.typeName ? compareStrings(lhs.displayValue, rhs.displayValue, ignoreCase)\n : TypeConverterManager.getConverter(lhs.typeName).sortCompare(lhs.rawValue, rhs.rawValue, ignoreCase);\n if (compareResult !== 0)\n return compareResult;\n\n if (i === 0 && separatorComparison !== 0)\n return separatorComparison;\n }\n\n if (valueA.parts.length !== valueB.parts.length)\n return valueA.parts.length - valueB.parts.length;\n\n return 0;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Composite, CompositeTypeConverter);\n\nconst compareStrings = (lhs: string, rhs: string, ignoreCase?: boolean) => {\n if (ignoreCase)\n return lhs.toLocaleLowerCase().localeCompare(rhs.toLocaleLowerCase());\n else\n return lhs.localeCompare(rhs);\n};\n\nconst createDisplayValue = async (compositeValue: Primitives.Composite): Promise<string> => {\n const parts: string[] = [];\n for (const part of compositeValue.parts) {\n let valueString: string;\n if (part.typeName === \"composite\") {\n valueString = await createDisplayValue(part.rawValue as Primitives.Composite);\n } else {\n valueString = await TypeConverterManager.getConverter(part.typeName).convertToString(part.rawValue);\n }\n\n parts.push(valueString);\n }\n\n return parts.join(compositeValue.separator);\n};\n"]}
1
+ {"version":3,"file":"CompositeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/CompositeTypeConverter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAsE;AACtE,mDAAgD;AAChD,iEAA8D;AAE9D;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,6BAAa;IACvC,eAAe,CAAC,KAA4B;QAC1D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QACZ,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,MAA4B,EAAE,MAA4B,EAAE,UAAgC;QAC7G,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;gBAClH,CAAC,CAAC,2CAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxG,IAAI,aAAa,KAAK,CAAC;gBACrB,OAAO,aAAa,CAAC;YAEvB,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC;gBACtC,OAAO,mBAAmB,CAAC;SAC9B;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;YAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAEnD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA3BD,wDA2BC;AAED,2CAAoB,CAAC,iBAAiB,CAAC,kCAAiB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE5F,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,UAAoB,EAAE,EAAE;IACxE,IAAI,UAAU;QACZ,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;;QAEtE,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,cAAoC,EAAmB,EAAE;IACzF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;QACvC,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;YACjC,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAgC,CAAC,CAAC;SAC/E;aAAM;YACL,WAAW,GAAG,MAAM,2CAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrG;QAED,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzB;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC,CAAC","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 TypeConverters\r\n */\r\n\r\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Composite type converter\r\n * @public\r\n */\r\nexport class CompositeTypeConverter extends TypeConverter {\r\n public override convertToString(value?: Primitives.Composite): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n return createDisplayValue(value);\r\n }\r\n\r\n public sortCompare(valueA: Primitives.Composite, valueB: Primitives.Composite, ignoreCase?: boolean | undefined): number {\r\n const length = Math.min(valueA.parts.length, valueB.parts.length);\r\n const separatorComparison = compareStrings(valueA.separator, valueB.separator, ignoreCase);\r\n for (let i = 0; i < length; i++) {\r\n const lhs = valueA.parts[i];\r\n const rhs = valueB.parts[i];\r\n const compareResult = lhs.typeName !== rhs.typeName ? compareStrings(lhs.displayValue, rhs.displayValue, ignoreCase)\r\n : TypeConverterManager.getConverter(lhs.typeName).sortCompare(lhs.rawValue, rhs.rawValue, ignoreCase);\r\n if (compareResult !== 0)\r\n return compareResult;\r\n\r\n if (i === 0 && separatorComparison !== 0)\r\n return separatorComparison;\r\n }\r\n\r\n if (valueA.parts.length !== valueB.parts.length)\r\n return valueA.parts.length - valueB.parts.length;\r\n\r\n return 0;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Composite, CompositeTypeConverter);\r\n\r\nconst compareStrings = (lhs: string, rhs: string, ignoreCase?: boolean) => {\r\n if (ignoreCase)\r\n return lhs.toLocaleLowerCase().localeCompare(rhs.toLocaleLowerCase());\r\n else\r\n return lhs.localeCompare(rhs);\r\n};\r\n\r\nconst createDisplayValue = async (compositeValue: Primitives.Composite): Promise<string> => {\r\n const parts: string[] = [];\r\n for (const part of compositeValue.parts) {\r\n let valueString: string;\r\n if (part.typeName === \"composite\") {\r\n valueString = await createDisplayValue(part.rawValue as Primitives.Composite);\r\n } else {\r\n valueString = await TypeConverterManager.getConverter(part.typeName).convertToString(part.rawValue);\r\n }\r\n\r\n parts.push(valueString);\r\n }\r\n\r\n return parts.join(compositeValue.separator);\r\n};\r\n"]}