@itwin/components-react 4.0.0-dev.19 → 4.0.0-dev.20

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 (440) hide show
  1. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  2. package/lib/cjs/components-react/_target.scss +9 -9
  3. package/lib/cjs/components-react/common/DateUtils.js.map +1 -1
  4. package/lib/cjs/components-react/common/DelayedSpinner.js.map +1 -1
  5. package/lib/cjs/components-react/common/HighlightedText.js.map +1 -1
  6. package/lib/cjs/components-react/common/HighlightingComponentProps.js.map +1 -1
  7. package/lib/cjs/components-react/common/IImageLoader.js.map +1 -1
  8. package/lib/cjs/components-react/common/ImageRenderer.js.map +1 -1
  9. package/lib/cjs/components-react/common/Links.js.map +1 -1
  10. package/lib/cjs/components-react/common/PageOptions.js.map +1 -1
  11. package/lib/cjs/components-react/common/SubscriptionScheduler.js.map +1 -1
  12. package/lib/cjs/components-react/common/UseAsyncValue.js.map +1 -1
  13. package/lib/cjs/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  14. package/lib/cjs/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  15. package/lib/cjs/components-react/common/UseRerender.js.map +1 -1
  16. package/lib/cjs/components-react/common/countMatchesInString.js.map +1 -1
  17. package/lib/cjs/components-react/common/selection/SelectionHandler.js.map +1 -1
  18. package/lib/cjs/components-react/common/selection/SelectionModes.js.map +1 -1
  19. package/lib/cjs/components-react/converters/BooleanTypeConverter.js.map +1 -1
  20. package/lib/cjs/components-react/converters/CompositeTypeConverter.js.map +1 -1
  21. package/lib/cjs/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  22. package/lib/cjs/components-react/converters/EnumTypeConverter.js.map +1 -1
  23. package/lib/cjs/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  24. package/lib/cjs/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  25. package/lib/cjs/components-react/converters/NumericTypeConverter.js.map +1 -1
  26. package/lib/cjs/components-react/converters/PointTypeConverter.js.map +1 -1
  27. package/lib/cjs/components-react/converters/StringTypeConverter.js.map +1 -1
  28. package/lib/cjs/components-react/converters/TypeConverter.js.map +1 -1
  29. package/lib/cjs/components-react/converters/TypeConverterManager.js.map +1 -1
  30. package/lib/cjs/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  31. package/lib/cjs/components-react/datepicker/DateField.js.map +1 -1
  32. package/lib/cjs/components-react/datepicker/DateField.scss +22 -22
  33. package/lib/cjs/components-react/datepicker/DatePicker.js.map +1 -1
  34. package/lib/cjs/components-react/datepicker/DatePicker.scss +176 -176
  35. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  36. package/lib/cjs/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  37. package/lib/cjs/components-react/datepicker/IntlFormatter.js.map +1 -1
  38. package/lib/cjs/components-react/datepicker/TimeField.js.map +1 -1
  39. package/lib/cjs/components-react/datepicker/TimeField.scss +76 -76
  40. package/lib/cjs/components-react/editors/BooleanEditor.js.map +1 -1
  41. package/lib/cjs/components-react/editors/BooleanEditor.scss +22 -22
  42. package/lib/cjs/components-react/editors/CustomNumberEditor.js.map +1 -1
  43. package/lib/cjs/components-react/editors/CustomNumberEditor.scss +20 -20
  44. package/lib/cjs/components-react/editors/DateTimeEditor.js.map +1 -1
  45. package/lib/cjs/components-react/editors/DateTimeEditor.scss +9 -9
  46. package/lib/cjs/components-react/editors/EditorContainer.js.map +1 -1
  47. package/lib/cjs/components-react/editors/EditorContainer.scss +6 -6
  48. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  49. package/lib/cjs/components-react/editors/EnumButtonGroupEditor.scss +141 -141
  50. package/lib/cjs/components-react/editors/EnumEditor.js.map +1 -1
  51. package/lib/cjs/components-react/editors/EnumEditor.scss +22 -22
  52. package/lib/cjs/components-react/editors/IconEditor.js.map +1 -1
  53. package/lib/cjs/components-react/editors/IconEditor.scss +16 -16
  54. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  55. package/lib/cjs/components-react/editors/ImageCheckBoxEditor.scss +24 -24
  56. package/lib/cjs/components-react/editors/NumericInputEditor.js.map +1 -1
  57. package/lib/cjs/components-react/editors/NumericInputEditor.scss +16 -16
  58. package/lib/cjs/components-react/editors/PopupButton.js.map +1 -1
  59. package/lib/cjs/components-react/editors/PopupButton.scss +116 -116
  60. package/lib/cjs/components-react/editors/PropertyEditorManager.js.map +1 -1
  61. package/lib/cjs/components-react/editors/SliderEditor.js.map +1 -1
  62. package/lib/cjs/components-react/editors/SliderEditor.scss +13 -13
  63. package/lib/cjs/components-react/editors/TextEditor.js.map +1 -1
  64. package/lib/cjs/components-react/editors/TextEditor.scss +20 -20
  65. package/lib/cjs/components-react/editors/TextareaEditor.js.map +1 -1
  66. package/lib/cjs/components-react/editors/TextareaEditor.scss +14 -14
  67. package/lib/cjs/components-react/editors/ToggleEditor.js.map +1 -1
  68. package/lib/cjs/components-react/editors/ToggleEditor.scss +23 -23
  69. package/lib/cjs/components-react/editors/variables.scss +7 -7
  70. package/lib/cjs/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  71. package/lib/cjs/components-react/favorite/FavoritePropertyList.js.map +1 -1
  72. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  73. package/lib/cjs/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  74. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  75. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.scss +38 -38
  76. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  77. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
  78. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  79. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  80. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  81. package/lib/cjs/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  82. package/lib/cjs/components-react/filter-builder/Operators.js.map +1 -1
  83. package/lib/cjs/components-react/filter-builder/Types.js.map +1 -1
  84. package/lib/cjs/components-react/filtering/FilteringInput.js.map +1 -1
  85. package/lib/cjs/components-react/filtering/FilteringInput.scss +58 -58
  86. package/lib/cjs/components-react/filtering/ResultSelector.js.map +1 -1
  87. package/lib/cjs/components-react/filtering/ResultSelector.scss +68 -68
  88. package/lib/cjs/components-react/iconpicker/IconPickerButton.js.map +1 -1
  89. package/lib/cjs/components-react/iconpicker/IconPickerButton.scss +75 -75
  90. package/lib/cjs/components-react/inputs/ParsedInput.js.map +1 -1
  91. package/lib/cjs/components-react/inputs/ParsedInput.scss +23 -23
  92. package/lib/cjs/components-react/properties/ItemStyle.js.map +1 -1
  93. package/lib/cjs/components-react/properties/LinkHandler.js.map +1 -1
  94. package/lib/cjs/components-react/properties/ValueRendererManager.js.map +1 -1
  95. package/lib/cjs/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  96. package/lib/cjs/components-react/properties/renderers/ActionButtonList.scss +25 -25
  97. package/lib/cjs/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  98. package/lib/cjs/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  99. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  100. package/lib/cjs/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
  101. package/lib/cjs/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  102. package/lib/cjs/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  103. package/lib/cjs/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  104. package/lib/cjs/components-react/properties/renderers/PropertyView.js.map +1 -1
  105. package/lib/cjs/components-react/properties/renderers/PropertyView.scss +106 -106
  106. package/lib/cjs/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  107. package/lib/cjs/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  108. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  109. package/lib/cjs/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
  110. package/lib/cjs/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  111. package/lib/cjs/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  112. package/lib/cjs/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  113. package/lib/cjs/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  114. package/lib/cjs/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  115. package/lib/cjs/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  116. package/lib/cjs/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  117. package/lib/cjs/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  118. package/lib/cjs/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  119. package/lib/cjs/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  120. package/lib/cjs/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  121. package/lib/cjs/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  122. package/lib/cjs/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  123. package/lib/cjs/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  124. package/lib/cjs/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  125. package/lib/cjs/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  126. package/lib/cjs/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  127. package/lib/cjs/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  128. package/lib/cjs/components-react/propertygrid/component/PropertyGrid.scss +73 -73
  129. package/lib/cjs/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  130. package/lib/cjs/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  131. package/lib/cjs/components-react/propertygrid/component/PropertyList.js.map +1 -1
  132. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  133. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
  134. package/lib/cjs/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  135. package/lib/cjs/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  136. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  137. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  138. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  139. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  140. package/lib/cjs/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  141. package/lib/cjs/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  142. package/lib/cjs/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  143. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  144. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  145. package/lib/cjs/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  146. package/lib/cjs/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  147. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  148. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  149. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  150. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  151. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  152. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  153. package/lib/cjs/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  154. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  155. package/lib/cjs/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  156. package/lib/cjs/components-react/selectable-content/SelectableContent.js.map +1 -1
  157. package/lib/cjs/components-react/selectable-content/SelectableContent.scss +20 -20
  158. package/lib/cjs/components-react/toolbar/Item.js.map +1 -1
  159. package/lib/cjs/components-react/toolbar/Item.scss +91 -91
  160. package/lib/cjs/components-react/toolbar/ItemWrapper.js.map +1 -1
  161. package/lib/cjs/components-react/toolbar/ItemWrapper.scss +10 -10
  162. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  163. package/lib/cjs/components-react/toolbar/Items.scss +96 -96
  164. package/lib/cjs/components-react/toolbar/Overflow.js.map +1 -1
  165. package/lib/cjs/components-react/toolbar/Overflow.scss +57 -57
  166. package/lib/cjs/components-react/toolbar/OverflowPanel.js.map +1 -1
  167. package/lib/cjs/components-react/toolbar/OverflowPanel.scss +37 -37
  168. package/lib/cjs/components-react/toolbar/PopupItem.js.map +1 -1
  169. package/lib/cjs/components-react/toolbar/PopupItem.scss +88 -88
  170. package/lib/cjs/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  171. package/lib/cjs/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  172. package/lib/cjs/components-react/toolbar/Toolbar.js.map +1 -1
  173. package/lib/cjs/components-react/toolbar/Toolbar.scss +18 -18
  174. package/lib/cjs/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  175. package/lib/cjs/components-react/toolbar/_variables.scss +34 -34
  176. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  177. package/lib/cjs/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  178. package/lib/cjs/components-react/toolbar/groupPanel/Column.js.map +1 -1
  179. package/lib/cjs/components-react/toolbar/groupPanel/Column.scss +9 -9
  180. package/lib/cjs/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  181. package/lib/cjs/components-react/toolbar/groupPanel/Columns.scss +10 -10
  182. package/lib/cjs/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  183. package/lib/cjs/components-react/toolbar/groupPanel/Panel.scss +15 -15
  184. package/lib/cjs/components-react/toolbar/groupPanel/Title.js.map +1 -1
  185. package/lib/cjs/components-react/toolbar/groupPanel/Title.scss +33 -33
  186. package/lib/cjs/components-react/toolbar/groupPanel/_variables.scss +16 -16
  187. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  188. package/lib/cjs/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  189. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  190. package/lib/cjs/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
  191. package/lib/cjs/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  192. package/lib/cjs/components-react/toolbar/useDragInteraction.js.map +1 -1
  193. package/lib/cjs/components-react/toolbar/utilities/Direction.js.map +1 -1
  194. package/lib/cjs/components-react/tree/HighlightingEngine.js.map +1 -1
  195. package/lib/cjs/components-react/tree/HighlightingEngine.scss +7 -7
  196. package/lib/cjs/components-react/tree/ImageLoader.js.map +1 -1
  197. package/lib/cjs/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  198. package/lib/cjs/components-react/tree/TreeComponentTestId.js.map +1 -1
  199. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  200. package/lib/cjs/components-react/tree/controlled/Observable.js.map +1 -1
  201. package/lib/cjs/components-react/tree/controlled/TreeActions.js.map +1 -1
  202. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  203. package/lib/cjs/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  204. package/lib/cjs/components-react/tree/controlled/TreeEvents.js.map +1 -1
  205. package/lib/cjs/components-react/tree/controlled/TreeHooks.js.map +1 -1
  206. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  207. package/lib/cjs/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  208. package/lib/cjs/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  209. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  210. package/lib/cjs/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  211. package/lib/cjs/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  212. package/lib/cjs/components-react/tree/controlled/component/NodeContent.scss +27 -27
  213. package/lib/cjs/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  214. package/lib/cjs/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  215. package/lib/cjs/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  216. package/lib/cjs/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  217. package/lib/cjs/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  218. package/lib/cjs/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  219. package/lib/cjs/components-react.js.map +1 -1
  220. package/lib/esm/components-react/UiComponents.js.map +1 -1
  221. package/lib/esm/components-react/_target.scss +9 -9
  222. package/lib/esm/components-react/common/DateUtils.js.map +1 -1
  223. package/lib/esm/components-react/common/DelayedSpinner.js.map +1 -1
  224. package/lib/esm/components-react/common/HighlightedText.js.map +1 -1
  225. package/lib/esm/components-react/common/HighlightingComponentProps.js.map +1 -1
  226. package/lib/esm/components-react/common/IImageLoader.js.map +1 -1
  227. package/lib/esm/components-react/common/ImageRenderer.js.map +1 -1
  228. package/lib/esm/components-react/common/Links.js.map +1 -1
  229. package/lib/esm/components-react/common/PageOptions.js.map +1 -1
  230. package/lib/esm/components-react/common/SubscriptionScheduler.js.map +1 -1
  231. package/lib/esm/components-react/common/UseAsyncValue.js.map +1 -1
  232. package/lib/esm/components-react/common/UseContextWithMandatoryProvider.js.map +1 -1
  233. package/lib/esm/components-react/common/UseDebouncedAsyncValue.js.map +1 -1
  234. package/lib/esm/components-react/common/UseRerender.js.map +1 -1
  235. package/lib/esm/components-react/common/countMatchesInString.js.map +1 -1
  236. package/lib/esm/components-react/common/selection/SelectionHandler.js.map +1 -1
  237. package/lib/esm/components-react/common/selection/SelectionModes.js.map +1 -1
  238. package/lib/esm/components-react/converters/BooleanTypeConverter.js.map +1 -1
  239. package/lib/esm/components-react/converters/CompositeTypeConverter.js.map +1 -1
  240. package/lib/esm/components-react/converters/DateTimeTypeConverter.js.map +1 -1
  241. package/lib/esm/components-react/converters/EnumTypeConverter.js.map +1 -1
  242. package/lib/esm/components-react/converters/HexadecimalTypeConverter.js.map +1 -1
  243. package/lib/esm/components-react/converters/NavigationPropertyTypeConverter.js.map +1 -1
  244. package/lib/esm/components-react/converters/NumericTypeConverter.js.map +1 -1
  245. package/lib/esm/components-react/converters/PointTypeConverter.js.map +1 -1
  246. package/lib/esm/components-react/converters/StringTypeConverter.js.map +1 -1
  247. package/lib/esm/components-react/converters/TypeConverter.js.map +1 -1
  248. package/lib/esm/components-react/converters/TypeConverterManager.js.map +1 -1
  249. package/lib/esm/components-react/converters/valuetypes/ConvertedTypes.js.map +1 -1
  250. package/lib/esm/components-react/datepicker/DateField.js.map +1 -1
  251. package/lib/esm/components-react/datepicker/DateField.scss +22 -22
  252. package/lib/esm/components-react/datepicker/DatePicker.js.map +1 -1
  253. package/lib/esm/components-react/datepicker/DatePicker.scss +176 -176
  254. package/lib/esm/components-react/datepicker/DatePickerPopupButton.js.map +1 -1
  255. package/lib/esm/components-react/datepicker/DatePickerPopupButton.scss +57 -57
  256. package/lib/esm/components-react/datepicker/IntlFormatter.js.map +1 -1
  257. package/lib/esm/components-react/datepicker/TimeField.js.map +1 -1
  258. package/lib/esm/components-react/datepicker/TimeField.scss +76 -76
  259. package/lib/esm/components-react/editors/BooleanEditor.js.map +1 -1
  260. package/lib/esm/components-react/editors/BooleanEditor.scss +22 -22
  261. package/lib/esm/components-react/editors/CustomNumberEditor.js.map +1 -1
  262. package/lib/esm/components-react/editors/CustomNumberEditor.scss +20 -20
  263. package/lib/esm/components-react/editors/DateTimeEditor.js.map +1 -1
  264. package/lib/esm/components-react/editors/DateTimeEditor.scss +9 -9
  265. package/lib/esm/components-react/editors/EditorContainer.js.map +1 -1
  266. package/lib/esm/components-react/editors/EditorContainer.scss +6 -6
  267. package/lib/esm/components-react/editors/EnumButtonGroupEditor.js.map +1 -1
  268. package/lib/esm/components-react/editors/EnumButtonGroupEditor.scss +141 -141
  269. package/lib/esm/components-react/editors/EnumEditor.js.map +1 -1
  270. package/lib/esm/components-react/editors/EnumEditor.scss +22 -22
  271. package/lib/esm/components-react/editors/IconEditor.js.map +1 -1
  272. package/lib/esm/components-react/editors/IconEditor.scss +16 -16
  273. package/lib/esm/components-react/editors/ImageCheckBoxEditor.js.map +1 -1
  274. package/lib/esm/components-react/editors/ImageCheckBoxEditor.scss +24 -24
  275. package/lib/esm/components-react/editors/NumericInputEditor.js.map +1 -1
  276. package/lib/esm/components-react/editors/NumericInputEditor.scss +16 -16
  277. package/lib/esm/components-react/editors/PopupButton.js.map +1 -1
  278. package/lib/esm/components-react/editors/PopupButton.scss +116 -116
  279. package/lib/esm/components-react/editors/PropertyEditorManager.js.map +1 -1
  280. package/lib/esm/components-react/editors/SliderEditor.js.map +1 -1
  281. package/lib/esm/components-react/editors/SliderEditor.scss +13 -13
  282. package/lib/esm/components-react/editors/TextEditor.js.map +1 -1
  283. package/lib/esm/components-react/editors/TextEditor.scss +20 -20
  284. package/lib/esm/components-react/editors/TextareaEditor.js.map +1 -1
  285. package/lib/esm/components-react/editors/TextareaEditor.scss +14 -14
  286. package/lib/esm/components-react/editors/ToggleEditor.js.map +1 -1
  287. package/lib/esm/components-react/editors/ToggleEditor.scss +23 -23
  288. package/lib/esm/components-react/editors/variables.scss +7 -7
  289. package/lib/esm/components-react/favorite/FavoritePropertiesRenderer.js.map +1 -1
  290. package/lib/esm/components-react/favorite/FavoritePropertyList.js.map +1 -1
  291. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  292. package/lib/esm/components-react/filter-builder/FilterBuilderContext.js.map +1 -1
  293. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  294. package/lib/esm/components-react/filter-builder/FilterBuilderRule.scss +38 -38
  295. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.js.map +1 -1
  296. package/lib/esm/components-react/filter-builder/FilterBuilderRuleGroup.scss +68 -68
  297. package/lib/esm/components-react/filter-builder/FilterBuilderRuleOperator.js.map +1 -1
  298. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  299. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  300. package/lib/esm/components-react/filter-builder/FilterBuilderState.js.map +1 -1
  301. package/lib/esm/components-react/filter-builder/Operators.js.map +1 -1
  302. package/lib/esm/components-react/filter-builder/Types.js.map +1 -1
  303. package/lib/esm/components-react/filtering/FilteringInput.js.map +1 -1
  304. package/lib/esm/components-react/filtering/FilteringInput.scss +58 -58
  305. package/lib/esm/components-react/filtering/ResultSelector.js.map +1 -1
  306. package/lib/esm/components-react/filtering/ResultSelector.scss +68 -68
  307. package/lib/esm/components-react/iconpicker/IconPickerButton.js.map +1 -1
  308. package/lib/esm/components-react/iconpicker/IconPickerButton.scss +75 -75
  309. package/lib/esm/components-react/inputs/ParsedInput.js.map +1 -1
  310. package/lib/esm/components-react/inputs/ParsedInput.scss +23 -23
  311. package/lib/esm/components-react/properties/ItemStyle.js.map +1 -1
  312. package/lib/esm/components-react/properties/LinkHandler.js.map +1 -1
  313. package/lib/esm/components-react/properties/ValueRendererManager.js.map +1 -1
  314. package/lib/esm/components-react/properties/renderers/ActionButtonList.js.map +1 -1
  315. package/lib/esm/components-react/properties/renderers/ActionButtonList.scss +25 -25
  316. package/lib/esm/components-react/properties/renderers/ActionButtonRenderer.js.map +1 -1
  317. package/lib/esm/components-react/properties/renderers/CommonPropertyRenderer.js.map +1 -1
  318. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.js.map +1 -1
  319. package/lib/esm/components-react/properties/renderers/NonPrimitivePropertyRenderer.scss +17 -17
  320. package/lib/esm/components-react/properties/renderers/PrimitivePropertyRenderer.js.map +1 -1
  321. package/lib/esm/components-react/properties/renderers/PropertyGridColumns.js.map +1 -1
  322. package/lib/esm/components-react/properties/renderers/PropertyRenderer.js.map +1 -1
  323. package/lib/esm/components-react/properties/renderers/PropertyView.js.map +1 -1
  324. package/lib/esm/components-react/properties/renderers/PropertyView.scss +106 -106
  325. package/lib/esm/components-react/properties/renderers/label/NonPrimitivePropertyLabelRenderer.js.map +1 -1
  326. package/lib/esm/components-react/properties/renderers/label/PrimitivePropertyLabelRenderer.js.map +1 -1
  327. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.js.map +1 -1
  328. package/lib/esm/components-react/properties/renderers/label/PropertyLabelRenderer.scss +88 -88
  329. package/lib/esm/components-react/properties/renderers/value/ArrayPropertyValueRenderer.js.map +1 -1
  330. package/lib/esm/components-react/properties/renderers/value/DoublePropertyValueRenderer.js.map +1 -1
  331. package/lib/esm/components-react/properties/renderers/value/MergedPropertyValueRenderer.js.map +1 -1
  332. package/lib/esm/components-react/properties/renderers/value/MultilineTextPropertyValueRenderer.js.map +1 -1
  333. package/lib/esm/components-react/properties/renderers/value/NavigationPropertyValueRenderer.js.map +1 -1
  334. package/lib/esm/components-react/properties/renderers/value/PrimitivePropertyValueRenderer.js.map +1 -1
  335. package/lib/esm/components-react/properties/renderers/value/StructPropertyValueRenderer.js.map +1 -1
  336. package/lib/esm/components-react/properties/renderers/value/UrlPropertyValueRenderer.js.map +1 -1
  337. package/lib/esm/components-react/properties/renderers/value/WithContextStyle.js.map +1 -1
  338. package/lib/esm/components-react/properties/renderers/value/table/ArrayValueRenderer.js.map +1 -1
  339. package/lib/esm/components-react/properties/renderers/value/table/NonPrimitiveValueRenderer.js.map +1 -1
  340. package/lib/esm/components-react/properties/renderers/value/table/StructValueRenderer.js.map +1 -1
  341. package/lib/esm/components-react/propertygrid/PropertyCategoryRendererManager.js.map +1 -1
  342. package/lib/esm/components-react/propertygrid/PropertyDataProvider.js.map +1 -1
  343. package/lib/esm/components-react/propertygrid/SimplePropertyDataProvider.js.map +1 -1
  344. package/lib/esm/components-react/propertygrid/component/ColumnResizingPropertyListPropsSupplier.js.map +1 -1
  345. package/lib/esm/components-react/propertygrid/component/FlatItemNestedBorderWrapper.js.map +1 -1
  346. package/lib/esm/components-react/propertygrid/component/PropertyCategoryBlock.js.map +1 -1
  347. package/lib/esm/components-react/propertygrid/component/PropertyGrid.scss +73 -73
  348. package/lib/esm/components-react/propertygrid/component/PropertyGridCommons.js.map +1 -1
  349. package/lib/esm/components-react/propertygrid/component/PropertyGridEventsRelatedPropsSupplier.js.map +1 -1
  350. package/lib/esm/components-react/propertygrid/component/PropertyList.js.map +1 -1
  351. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.js.map +1 -1
  352. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGrid.scss +101 -101
  353. package/lib/esm/components-react/propertygrid/component/VirtualizedPropertyGridWithDataProvider.js.map +1 -1
  354. package/lib/esm/components-react/propertygrid/dataproviders/FilteringDataProvider.js.map +1 -1
  355. package/lib/esm/components-react/propertygrid/dataproviders/filterers/CompositePropertyDataFilterer.js.map +1 -1
  356. package/lib/esm/components-react/propertygrid/dataproviders/filterers/DisplayValuePropertyDataFilterer.js.map +1 -1
  357. package/lib/esm/components-react/propertygrid/dataproviders/filterers/LabelPropertyDataFilterer.js.map +1 -1
  358. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyCategoryLabelFilterer.js.map +1 -1
  359. package/lib/esm/components-react/propertygrid/dataproviders/filterers/PropertyDataFiltererBase.js.map +1 -1
  360. package/lib/esm/components-react/propertygrid/internal/PropertyGridEventHandler.js.map +1 -1
  361. package/lib/esm/components-react/propertygrid/internal/PropertyGridHooks.js.map +1 -1
  362. package/lib/esm/components-react/propertygrid/internal/PropertyGridModel.js.map +1 -1
  363. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelChangeEvent.js.map +1 -1
  364. package/lib/esm/components-react/propertygrid/internal/PropertyGridModelSource.js.map +1 -1
  365. package/lib/esm/components-react/propertygrid/internal/flat-items/FlatGridItem.js.map +1 -1
  366. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedArrayProperty.js.map +1 -1
  367. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedPrimitiveProperty.js.map +1 -1
  368. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCategorizedStructProperty.js.map +1 -1
  369. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableCustomGridCategory.js.map +1 -1
  370. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableFlatGridItem.js.map +1 -1
  371. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridCategory.js.map +1 -1
  372. package/lib/esm/components-react/propertygrid/internal/flat-items/MutableGridItemFactory.js.map +1 -1
  373. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatNonPrimitivePropertyRenderer.js.map +1 -1
  374. package/lib/esm/components-react/propertygrid/internal/flat-properties/FlatPropertyRenderer.js.map +1 -1
  375. package/lib/esm/components-react/selectable-content/SelectableContent.js.map +1 -1
  376. package/lib/esm/components-react/selectable-content/SelectableContent.scss +20 -20
  377. package/lib/esm/components-react/toolbar/Item.js.map +1 -1
  378. package/lib/esm/components-react/toolbar/Item.scss +91 -91
  379. package/lib/esm/components-react/toolbar/ItemWrapper.js.map +1 -1
  380. package/lib/esm/components-react/toolbar/ItemWrapper.scss +10 -10
  381. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  382. package/lib/esm/components-react/toolbar/Items.scss +96 -96
  383. package/lib/esm/components-react/toolbar/Overflow.js.map +1 -1
  384. package/lib/esm/components-react/toolbar/Overflow.scss +57 -57
  385. package/lib/esm/components-react/toolbar/OverflowPanel.js.map +1 -1
  386. package/lib/esm/components-react/toolbar/OverflowPanel.scss +37 -37
  387. package/lib/esm/components-react/toolbar/PopupItem.js.map +1 -1
  388. package/lib/esm/components-react/toolbar/PopupItem.scss +88 -88
  389. package/lib/esm/components-react/toolbar/PopupItemWithDrag.js.map +1 -1
  390. package/lib/esm/components-react/toolbar/PopupItemsPanel.js.map +1 -1
  391. package/lib/esm/components-react/toolbar/Toolbar.js.map +1 -1
  392. package/lib/esm/components-react/toolbar/Toolbar.scss +18 -18
  393. package/lib/esm/components-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  394. package/lib/esm/components-react/toolbar/_variables.scss +34 -34
  395. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.js.map +1 -1
  396. package/lib/esm/components-react/toolbar/groupPanel/BackArrow.scss +44 -44
  397. package/lib/esm/components-react/toolbar/groupPanel/Column.js.map +1 -1
  398. package/lib/esm/components-react/toolbar/groupPanel/Column.scss +9 -9
  399. package/lib/esm/components-react/toolbar/groupPanel/Columns.js.map +1 -1
  400. package/lib/esm/components-react/toolbar/groupPanel/Columns.scss +10 -10
  401. package/lib/esm/components-react/toolbar/groupPanel/Panel.js.map +1 -1
  402. package/lib/esm/components-react/toolbar/groupPanel/Panel.scss +15 -15
  403. package/lib/esm/components-react/toolbar/groupPanel/Title.js.map +1 -1
  404. package/lib/esm/components-react/toolbar/groupPanel/Title.scss +33 -33
  405. package/lib/esm/components-react/toolbar/groupPanel/_variables.scss +16 -16
  406. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.js.map +1 -1
  407. package/lib/esm/components-react/toolbar/groupPanel/tool/Expander.scss +29 -29
  408. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.js.map +1 -1
  409. package/lib/esm/components-react/toolbar/groupPanel/tool/Tool.scss +117 -117
  410. package/lib/esm/components-react/toolbar/groupPanel/tool/_variables.scss +12 -12
  411. package/lib/esm/components-react/toolbar/useDragInteraction.js.map +1 -1
  412. package/lib/esm/components-react/toolbar/utilities/Direction.js.map +1 -1
  413. package/lib/esm/components-react/tree/HighlightingEngine.js.map +1 -1
  414. package/lib/esm/components-react/tree/HighlightingEngine.scss +7 -7
  415. package/lib/esm/components-react/tree/ImageLoader.js.map +1 -1
  416. package/lib/esm/components-react/tree/SimpleTreeDataProvider.js.map +1 -1
  417. package/lib/esm/components-react/tree/TreeComponentTestId.js.map +1 -1
  418. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  419. package/lib/esm/components-react/tree/controlled/Observable.js.map +1 -1
  420. package/lib/esm/components-react/tree/controlled/TreeActions.js.map +1 -1
  421. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  422. package/lib/esm/components-react/tree/controlled/TreeEventHandler.js.map +1 -1
  423. package/lib/esm/components-react/tree/controlled/TreeEvents.js.map +1 -1
  424. package/lib/esm/components-react/tree/controlled/TreeHooks.js.map +1 -1
  425. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  426. package/lib/esm/components-react/tree/controlled/TreeModelSource.js.map +1 -1
  427. package/lib/esm/components-react/tree/controlled/TreeNodeLoader.js.map +1 -1
  428. package/lib/esm/components-react/tree/controlled/component/ControlledTree.js.map +1 -1
  429. package/lib/esm/components-react/tree/controlled/component/ControlledTree.scss +102 -102
  430. package/lib/esm/components-react/tree/controlled/component/NodeContent.js.map +1 -1
  431. package/lib/esm/components-react/tree/controlled/component/NodeContent.scss +27 -27
  432. package/lib/esm/components-react/tree/controlled/component/TreeNodeEditor.js.map +1 -1
  433. package/lib/esm/components-react/tree/controlled/component/TreeNodeRenderer.js.map +1 -1
  434. package/lib/esm/components-react/tree/controlled/component/TreeRenderer.js.map +1 -1
  435. package/lib/esm/components-react/tree/controlled/internal/SparseTree.js.map +1 -1
  436. package/lib/esm/components-react/tree/controlled/internal/TreeModelMutator.js.map +1 -1
  437. package/lib/esm/components-react/tree/controlled/internal/TreeSelectionManager.js.map +1 -1
  438. package/lib/esm/components-react.js.map +1 -1
  439. package/lib/public/locales/en/UiComponents.json +139 -139
  440. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionScheduler.js","sourceRoot":"","sources":["../../../../src/components-react/common/SubscriptionScheduler.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IAGhC;QAFQ,eAAU,GAAG,IAAI,OAAO,EAA4B,CAAC;QAG3D,IAAI,CAAC,UAAU;aACZ,IAAI,CACH,QAAQ,CACN,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI;QACzC,yBAAyB;QACzB,QAAQ,EAAE;QACV,0GAA0G;QAC1G,4EAA4E;QAC5E,SAAS,CAAC,cAAc,CAAC;QACzB,qDAAqD;QACrD,WAAW,CAAC,aAAa,CAAC;QAC1B,gFAAgF;QAChF,iBAAiB,EAAE,CACpB,EACD,4BAA4B,CAC7B,CACF;YACD,wCAAwC;aACvC,SAAS,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,oBAAoB,CAAC,MAAqB;QAC/C,OAAO,KAAK,CAAC,GAAG,EAAE;YAChB,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,4GAA4G;YAC5G,MAAM,qBAAqB,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAA6B,CAAC;YACjH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAI,SAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC5D,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 Common\r\n */\r\n\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 { EMPTY } from \"rxjs/internal/observable/empty\";\r\nimport { iif } from \"rxjs/internal/observable/iif\";\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 { 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 * Limits concurrent observable subscriptions to one.\r\n *\r\n * Scheduled observables are placed at the end of a queue. Each queued observable is subscribed to and awaited until the\r\n * completion.\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 private _scheduler = new Subject<ConnectableObservable<T>>();\r\n\r\n constructor() {\r\n this._scheduler\r\n .pipe(\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. Without this operation `mergeMap`\r\n // will process each observable that is present in the pipeline recursively.\r\n observeOn(queueScheduler),\r\n // Delay the connection until another event loop task\r\n subscribeOn(asapScheduler),\r\n // Ignore errors in this pipeline without suppressing them for other subscribers\r\n onErrorResumeNext(),\r\n ),\r\n MAX_CONCURRENT_SUBSCRIPTIONS,\r\n ),\r\n )\r\n // Start consuming scheduled observables\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. To cancel, remove all subscribers\r\n * from the returned observable.\r\n *\r\n * @param source Input observable for which to schedule a subscription.\r\n * @returns Hot observable which starts emitting `source` values after subscription.\r\n */\r\n public scheduleSubscription(source: Observable<T>): Observable<T> {\r\n return defer(() => {\r\n let unsubscribed = false;\r\n // Do not subscribe to source observable if it was unsubscribed from before being processed by the scheduler\r\n const connectableObservable = iif(() => unsubscribed, EMPTY, source).pipe(publish()) as ConnectableObservable<T>;\r\n this._scheduler.next(connectableObservable);\r\n return connectableObservable.pipe(finalize(() => unsubscribed = true));\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
+ {"version":3,"file":"SubscriptionScheduler.js","sourceRoot":"","sources":["../../../../src/components-react/common/SubscriptionScheduler.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IAGhC;QAFQ,eAAU,GAAG,IAAI,OAAO,EAA4B,CAAC;QAG3D,IAAI,CAAC,UAAU;aACZ,IAAI,CACH,QAAQ,CACN,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI;QACzC,yBAAyB;QACzB,QAAQ,EAAE;QACV,0GAA0G;QAC1G,4EAA4E;QAC5E,SAAS,CAAC,cAAc,CAAC;QACzB,qDAAqD;QACrD,WAAW,CAAC,aAAa,CAAC;QAC1B,gFAAgF;QAChF,iBAAiB,EAAE,CACpB,EACD,4BAA4B,CAC7B,CACF;YACD,wCAAwC;aACvC,SAAS,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,oBAAoB,CAAC,MAAqB;QAC/C,OAAO,KAAK,CAAC,GAAG,EAAE;YAChB,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,4GAA4G;YAC5G,MAAM,qBAAqB,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAA6B,CAAC;YACjH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAI,SAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC5D,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 Common\n */\n\nimport { Observable } from \"rxjs/internal/Observable\";\nimport { ConnectableObservable } from \"rxjs/internal/observable/ConnectableObservable\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { EMPTY } from \"rxjs/internal/observable/empty\";\nimport { iif } from \"rxjs/internal/observable/iif\";\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 { 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 * Limits concurrent observable subscriptions to one.\n *\n * Scheduled observables are placed at the end of a queue. Each queued observable is subscribed to and awaited until the\n * completion.\n *\n * To schedule an observable, subscribe to the result of `scheduleSubscription()` call.\n * @internal\n */\nexport class SubscriptionScheduler<T> {\n private _scheduler = new Subject<ConnectableObservable<T>>();\n\n constructor() {\n this._scheduler\n .pipe(\n mergeMap(\n (sourceObservable) => sourceObservable.pipe(\n // Connect the observable\n refCount(),\n // Guard against stack overflow when a lot of observables are scheduled. Without this operation `mergeMap`\n // will process each observable that is present in the pipeline recursively.\n observeOn(queueScheduler),\n // Delay the connection until another event loop task\n subscribeOn(asapScheduler),\n // Ignore errors in this pipeline without suppressing them for other subscribers\n onErrorResumeNext(),\n ),\n MAX_CONCURRENT_SUBSCRIPTIONS,\n ),\n )\n // Start consuming scheduled observables\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. To cancel, remove all subscribers\n * from the returned observable.\n *\n * @param source Input observable for which to schedule a subscription.\n * @returns Hot observable which starts emitting `source` values after subscription.\n */\n public scheduleSubscription(source: Observable<T>): Observable<T> {\n return defer(() => {\n let unsubscribed = false;\n // Do not subscribe to source observable if it was unsubscribed from before being processed by the scheduler\n const connectableObservable = iif(() => unsubscribed, EMPTY, source).pipe(publish()) as ConnectableObservable<T>;\n this._scheduler.next(connectableObservable);\n return connectableObservable.pipe(finalize(() => unsubscribed = true));\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 +1 @@
1
- {"version":3,"file":"UseAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseAsyncValue.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,KAAyB;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,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,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,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,kBAAkB,CAAC,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,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,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","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 function useAsyncValue<T>(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
+ {"version":3,"file":"UseAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseAsyncValue.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,KAAyB;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,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,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,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,kBAAkB,CAAC,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,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,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","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 function useAsyncValue<T>(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 +1 @@
1
- {"version":3,"file":"UseContextWithMandatoryProvider.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseContextWithMandatoryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,gBAAgB;AAChB,MAAM,UAAU,kCAAkC,CAChD,WAAmB;IAMnB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAI,SAAqB,CAAC,CAAC;IAC9D,SAAS,6BAA6B,CAAI,kBAA0C;QAClF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,wBAAwB;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,OAAO,CACf,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC/C,IAAI,YAAY,CAAC,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","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
+ {"version":3,"file":"UseContextWithMandatoryProvider.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseContextWithMandatoryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,gBAAgB;AAChB,MAAM,UAAU,kCAAkC,CAChD,WAAmB;IAMnB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAI,SAAqB,CAAC,CAAC;IAC9D,SAAS,6BAA6B,CAAI,kBAA0C;QAClF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,wBAAwB;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,OAAO,CACf,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC/C,IAAI,YAAY,CAAC,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","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 +1 @@
1
- {"version":3,"file":"UseDebouncedAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseDebouncedAsyncValue.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAU,iBAAuD;IACrG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAW,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE7H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAGzC;QACD,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,SAAS,CAAC,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,KAAK,CAAC,iBAAiB,CAAC;aAC1C,IAAI,CACH,OAAO,EAAE,EACT,QAAQ,EAAE,EACV,oBAAoB,CAAC,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;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,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,IAAI,UAAU,CAAC,QAAQ;QACrB,MAAM,UAAU,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAE/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,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 Common\r\n */\r\n\r\nimport { useEffect, useMemo, useState } from \"react\";\r\nimport { defer } from \"rxjs/internal/observable/defer\";\r\nimport { publish } from \"rxjs/internal/operators/publish\";\r\nimport { refCount } from \"rxjs/internal/operators/refCount\";\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 * @throws if/when `valueToBeResolved` promise is rejected. The error is thrown in the React's render loop, so it can be caught using an error boundary.\r\n * @beta\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 const [errorState, setErrorState] = useState<{\r\n error: Error | undefined;\r\n hasError: boolean;\r\n }>({\r\n error: undefined,\r\n hasError: false,\r\n });\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 error: (err) => {\r\n setErrorState({ error: err, hasError: true });\r\n setInProgress(false);\r\n },\r\n });\r\n\r\n return () => { subscription.unsubscribe(); };\r\n }, [valueToBeResolved, scheduler]);\r\n\r\n if (errorState.hasError)\r\n throw errorState.error ?? new Error(\"Exception in `useDebouncedAsyncValue`\");\r\n\r\n return { value, inProgress };\r\n}\r\n"]}
1
+ {"version":3,"file":"UseDebouncedAsyncValue.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseDebouncedAsyncValue.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAU,iBAAuD;IACrG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAW,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE7H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAGzC;QACD,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,SAAS,CAAC,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,KAAK,CAAC,iBAAiB,CAAC;aAC1C,IAAI,CACH,OAAO,EAAE,EACT,QAAQ,EAAE,EACV,oBAAoB,CAAC,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;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,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,IAAI,UAAU,CAAC,QAAQ;QACrB,MAAM,UAAU,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAE/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,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 Common\n */\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { defer } from \"rxjs/internal/observable/defer\";\nimport { publish } from \"rxjs/internal/operators/publish\";\nimport { refCount } from \"rxjs/internal/operators/refCount\";\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 * @throws if/when `valueToBeResolved` promise is rejected. The error is thrown in the React's render loop, so it can be caught using an error boundary.\n * @beta\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 const [errorState, setErrorState] = useState<{\n error: Error | undefined;\n hasError: boolean;\n }>({\n error: undefined,\n hasError: false,\n });\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 error: (err) => {\n setErrorState({ error: err, hasError: true });\n setInProgress(false);\n },\n });\n\n return () => { subscription.unsubscribe(); };\n }, [valueToBeResolved, scheduler]);\n\n if (errorState.hasError)\n throw errorState.error ?? new Error(\"Exception in `useDebouncedAsyncValue`\");\n\n return { value, inProgress };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UseRerender.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseRerender.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAuBzC,gBAAgB;AAChB,MAAM,UAAU,WAAW,CAAI,cAAkB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,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,QAAQ,CAAC,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","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
+ {"version":3,"file":"UseRerender.js","sourceRoot":"","sources":["../../../../src/components-react/common/UseRerender.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAuBzC,gBAAgB;AAChB,MAAM,UAAU,WAAW,CAAI,cAAkB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,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,QAAQ,CAAC,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","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 +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,MAAM,UAAU,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","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
+ {"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,MAAM,UAAU,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","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 +1 @@
1
- {"version":3,"file":"SelectionHandler.js","sourceRoot":"","sources":["../../../../../src/components-react/common/selection/SelectionHandler.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAkF3F,MAAM,uBAAuB;IAO3B,YAAmB,yBAAsD,EAAE,aAAsB;QANjF,eAAU,GAAG,IAAI,KAAK,EAAQ,CAAC;QAC/B,iBAAY,GAAG,IAAI,KAAK,EAAQ,CAAC;QAM/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,IAAmB;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3F,CAAC;IAEM,QAAQ,CAAC,IAAmB;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAEO,QAAQ,CAAC,IAAmB,EAAE,KAAa,EAAE,UAAmB;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;gBACpB,IAAI,UAAU,EAAE;oBACd,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1F,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACd,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC5B,SAAS;qBACV;iBACF;gBACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACf;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;SAC1C;IACH,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,UAAU;IASrB,YAAmB,yBAAsD,EAAE,qBAAiE,EAAE,SAAe;QAC3J,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,CAAC;QACpD,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAEM,gBAAgB,CAAC,UAAgB;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC;YACrH,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAE9C,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/H,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CACrC,YAAY,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EACnF,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EACvF,YAAY,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAC/E,YAAY,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAC5E,CAAC;QACF,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,uGAAuG;QACvG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvF,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAElC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QAED,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACxD,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,sFAAsF;gBACtF,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,IAAI,aAAa,KAAK,cAAc,EAAE;oBACzE,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,WAAW,CAAC,UAAU,EAAE;wBAC1B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;;wBAEtC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF;QAED,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IACtC,CAAC;IAEO,QAAQ,CAAC,qBAAiE,EAAE,IAAU;QAC5F,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC;YAClI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE;YACvH,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1D;QACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3D,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACzE,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC3F,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;aAChC;SACF;QACD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;CAEF;AAED,gBAAgB;AAChB,MAAM,OAAO,gBAAgB;IAa3B,YAAY,aAA4B,EAAE,uBAAuD,EAAE,yBAA2D;QAC5J,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IAC7D,CAAC;IAED,+CAA+C;IAC/C,IAAW,aAAa,KAAuB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAE5E,uEAAuE;IAChE,uBAAuB,CAAC,gBAA6C,EAAE,WAAyC;QACrH,MAAM,iBAAiB,GAAuB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACpE,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YAEzC,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,EAAE;gBAC7C,OAAO;aACR;YAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,0FAA0F;gBAC1F,MAAM,aAAa,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;uBACxG,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBACpF,IAAI,CAAC,iBAAiB,GAAG,IAAI,uBAAuB,CAAO,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBAC5F,gBAAgB,GAAG,IAAI,CAAC;aACzB;YAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE;gBAC5E,IAAI,CAAC,QAAQ;oBACX,gBAAgB,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;oBAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBACpF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACxC,aAAa,GAAG,IAAI,CAAC;iBACtB;aACF;YAED,IAAI,CAAC,aAAa,EAAE;gBAClB,WAAW,CAAC,SAAS,EAAE,CAAC;gBAExB,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;uBAC7E,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE;oBAC9G,gBAAgB,CAAC,WAAW,EAAE,CAAC;iBAChC;gBAED,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE;oBAC5B,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;iBACrD;qBAAM;oBACL,WAAW,CAAC,MAAM,EAAE,CAAC;oBACrB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;aACrC;YAED,IAAI,gBAAgB;gBAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC;QACF,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,iBAAiB;YACzB,OAAO;QAET,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE;YAClD,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAChC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBACtG,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;oBACxC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oBACnC,OAAO;iBACR;aACF;SACF;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;YACpD,IAAI,IAAI,CAAC,yBAAyB;gBAChC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,yBAAsD,EAAE,KAAiD,EAAE,SAAe;QAChJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC;YAC3E,OAAO;QAET,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,yBAAyB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/E,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,UAAgB;QACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC;YAC3E,OAAO;QAET,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,0BAA0B;YACvD,OAAO;QAET,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvE,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1F,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC/F,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;SAC7G;IACH,CAAC;IAED;;OAEG;IACI,kBAAkB;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;CACF","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
+ {"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 +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,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qFAA0B,CAAA;IAC1B,yEAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4DAAa,CAAA;AACf,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED;;GAEG;AACH,MAAM,CAAN,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,KAAb,aAAa,QAWxB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAA4B,EAAE,IAAwB,EAAW,EAAE;IACtG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,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 Common\r\n */\r\n\r\n/** Selection mode flags for 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 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
+ {"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,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qFAA0B,CAAA;IAC1B,yEAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4DAAa,CAAA;AACf,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED;;GAEG;AACH,MAAM,CAAN,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,KAAb,aAAa,QAWxB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAA4B,EAAE,IAAwB,EAAW,EAAE;IACtG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,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 Common\n */\n\n/** Selection mode flags for 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 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 +1 @@
1
- {"version":3,"file":"BooleanTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/BooleanTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAa,oBAAqB,SAAQ,aAAa;IAMrD,gBAAgB;IACT,MAAM,CAAC,qBAAqB;QACjC,IAAI,CAAC,oBAAoB,CAAC,SAAS;YACjC,oBAAoB,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,CAAC,UAAU;YAClC,oBAAoB,CAAC,UAAU,GAAG,YAAY,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,KAAK,CAAC;QAEf,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;;AAxC7D,gBAAgB;AACF,8BAAS,GAAW,EAAE,CAAC;AACrC,gBAAgB;AACF,+BAAU,GAAW,EAAE,CAAC;SAJ3B,oBAAoB;AA4CjC,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACxF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,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;\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
+ {"version":3,"file":"BooleanTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/BooleanTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAa,oBAAqB,SAAQ,aAAa;IAMrD,gBAAgB;IACT,MAAM,CAAC,qBAAqB;QACjC,IAAI,CAAC,oBAAoB,CAAC,SAAS;YACjC,oBAAoB,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,CAAC,UAAU;YAClC,oBAAoB,CAAC,UAAU,GAAG,YAAY,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,KAAK,CAAC;QAEf,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;;AAxC7D,gBAAgB;AACF,8BAAS,GAAW,EAAE,CAAC;AACrC,gBAAgB;AACF,+BAAU,GAAW,EAAE,CAAC;SAJ3B,oBAAoB;AA4CjC,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACxF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,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;\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 +1 @@
1
- {"version":3,"file":"CompositeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/CompositeTypeConverter.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 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"]}
1
+ {"version":3,"file":"CompositeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/CompositeTypeConverter.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 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 +1 @@
1
- {"version":3,"file":"DateTimeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/DateTimeTypeConverter.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 TypeConverters\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { AlternateDateFormats, Primitives, StandardTypeNames, TimeDisplay } from \"@itwin/appui-abstract\";\r\nimport { TimeFormat } from \"@itwin/core-react\";\r\nimport { formatInputDate } from \"../datepicker/DateField\";\r\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { LessGreaterOperatorProcessor, TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\nimport { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\r\n\r\n// cSpell:ignore datepicker valuetypes\r\n\r\n/**\r\n * DateTime Type Converter.\r\n * @public\r\n */\r\nexport abstract class DateTimeTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\r\n public override convertToString(value?: Primitives.Value) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (typeof value === \"string\")\r\n value = new Date(value);\r\n\r\n // istanbul ignore else\r\n if (value instanceof Date) {\r\n switch (this.getTimeFormat()) {\r\n case TimeFormat.Short: return value.toLocaleDateString();\r\n case TimeFormat.Long: return value.toLocaleString();\r\n }\r\n return value.toISOString();\r\n }\r\n\r\n // istanbul ignore next\r\n return value.toString();\r\n }\r\n\r\n public static isValidTimeDisplay(type: TimeDisplay): boolean {\r\n return Object.keys(TimeDisplay).some((key) => (TimeDisplay as any)[key] === type);\r\n }\r\n\r\n public static isAlternateDateFormats(type: AlternateDateFormats): boolean {\r\n return Object.keys(AlternateDateFormats).some((key) => (AlternateDateFormats as any)[key] === type);\r\n }\r\n\r\n // supported options:\r\n // timeDisplay?: TimeDisplay\r\n // alternateDateFormat?: AlternateDateFormats\r\n public override convertToStringWithOptions(value?: Primitives.Value, options?: { [key: string]: any }): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (options) {\r\n let timeDisplay: TimeDisplay | undefined = (this.getTimeFormat() === TimeFormat.Long) ? TimeDisplay.H12MC : undefined;\r\n let alternateDateFormat = AlternateDateFormats.None;\r\n\r\n // istanbul ignore else\r\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\r\n alternateDateFormat = options.alternateDateFormat;\r\n }\r\n\r\n if (this.getTimeFormat() === TimeFormat.Long) {\r\n // istanbul ignore else\r\n if (\"timeDisplay\" in options) {\r\n // istanbul ignore if\r\n if (alternateDateFormat) {\r\n Logger.logInfo(UiComponents.loggerCategory(this), `Invalid specification of timeDisplay with alternateDateFormat specification`);\r\n } else {\r\n // istanbul ignore else\r\n if (DateTimeTypeConverterBase.isValidTimeDisplay(options.timeDisplay))\r\n timeDisplay = options.timeDisplay;\r\n }\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (typeof value === \"string\") {\r\n value = new Date(value); // this value will be based on local time zone\r\n // istanbul ignore else\r\n if (value instanceof Date && alternateDateFormat) {\r\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\r\n value = adjustDateToTimezone(value, value.getTimezoneOffset() * -1);\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (value instanceof Date) {\r\n // Ensure if alternateDateFormat is specified make sure it matches proper Long/Short format.\r\n if (this.getTimeFormat() === TimeFormat.Long) {\r\n if (alternateDateFormat === AlternateDateFormats.IsoShort)\r\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\r\n if (alternateDateFormat === AlternateDateFormats.UtcShort)\r\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\r\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay)\r\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\r\n } else {\r\n // short time format\r\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\r\n alternateDateFormat = AlternateDateFormats.IsoShort;\r\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\r\n alternateDateFormat = AlternateDateFormats.UtcShort;\r\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\r\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\r\n }\r\n\r\n const formattedDateTime = formatInputDate(value, timeDisplay, undefined, alternateDateFormat);\r\n // istanbul ignore else\r\n if (formattedDateTime)\r\n return formattedDateTime;\r\n }\r\n }\r\n\r\n return this.convertToString(value);\r\n }\r\n\r\n /** Default implementation just calls convertFromString with no options */\r\n public override convertFromStringWithOptions(value: string, options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\r\n if (!value)\r\n return undefined;\r\n\r\n if (options) {\r\n let alternateDateFormat = AlternateDateFormats.None;\r\n\r\n // istanbul ignore else\r\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\r\n alternateDateFormat = options.alternateDateFormat;\r\n }\r\n\r\n // istanbul ignore else\r\n let date = new Date(value); // this value will be based on local time zone\r\n // istanbul ignore else\r\n if (date instanceof Date && alternateDateFormat) {\r\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\r\n date = adjustDateToTimezone(date, date.getTimezoneOffset() * -1);\r\n }\r\n }\r\n\r\n return this.convertFromString(value);\r\n }\r\n\r\n private isDateValid(date: Date) {\r\n return date instanceof Date && !isNaN(+date);\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n if (!value)\r\n return undefined;\r\n\r\n const dateValue = new Date(value);\r\n\r\n if (!this.isDateValid(dateValue))\r\n return undefined;\r\n\r\n return dateValue;\r\n }\r\n\r\n protected abstract getTimeFormat(): TimeFormat;\r\n\r\n public override get isLessGreaterType(): boolean { return true; }\r\n\r\n public sortCompare(valueA: Date, valueB: Date, _ignoreCase?: boolean): number {\r\n return valueA.valueOf() - valueB.valueOf();\r\n }\r\n\r\n public override isEqualTo(valueA: Date, valueB: Date): boolean {\r\n return valueA.valueOf() === valueB.valueOf();\r\n }\r\n\r\n public override isNotEqualTo(valueA: Date, valueB: Date): boolean {\r\n return valueA.valueOf() !== valueB.valueOf();\r\n }\r\n\r\n public isLessThan(a: Date, b: Date): boolean {\r\n return a.valueOf() < b.valueOf();\r\n }\r\n\r\n public isLessThanOrEqualTo(a: Date, b: Date): boolean {\r\n return a.valueOf() <= b.valueOf();\r\n }\r\n\r\n public isGreaterThan(a: Date, b: Date): boolean {\r\n return a.valueOf() > b.valueOf();\r\n }\r\n\r\n public isGreaterThanOrEqualTo(a: Date, b: Date): boolean {\r\n return a.valueOf() >= b.valueOf();\r\n }\r\n}\r\n\r\n/**\r\n * Short Date Type Converter.\r\n * @public\r\n */\r\nexport class ShortDateTypeConverter extends DateTimeTypeConverterBase {\r\n protected getTimeFormat(): TimeFormat { return TimeFormat.Short; }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.ShortDate, ShortDateTypeConverter);\r\n\r\n/**\r\n * Date Time Type Converter.\r\n * @public\r\n */\r\nexport class DateTimeTypeConverter extends DateTimeTypeConverterBase {\r\n protected getTimeFormat(): TimeFormat { return TimeFormat.Long; }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.DateTime, DateTimeTypeConverter);\r\n"]}
1
+ {"version":3,"file":"DateTimeTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/DateTimeTypeConverter.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 TypeConverters\n */\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { AlternateDateFormats, Primitives, StandardTypeNames, TimeDisplay } from \"@itwin/appui-abstract\";\nimport { TimeFormat } from \"@itwin/core-react\";\nimport { formatInputDate } from \"../datepicker/DateField\";\nimport { adjustDateToTimezone } from \"../common/DateUtils\";\nimport { UiComponents } from \"../UiComponents\";\nimport { LessGreaterOperatorProcessor, TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\nimport { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\n\n// cSpell:ignore datepicker valuetypes\n\n/**\n * DateTime Type Converter.\n * @public\n */\nexport abstract class DateTimeTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\n public override convertToString(value?: Primitives.Value) {\n if (value === undefined)\n return \"\";\n\n if (typeof value === \"string\")\n value = new Date(value);\n\n // istanbul ignore else\n if (value instanceof Date) {\n switch (this.getTimeFormat()) {\n case TimeFormat.Short: return value.toLocaleDateString();\n case TimeFormat.Long: return value.toLocaleString();\n }\n return value.toISOString();\n }\n\n // istanbul ignore next\n return value.toString();\n }\n\n public static isValidTimeDisplay(type: TimeDisplay): boolean {\n return Object.keys(TimeDisplay).some((key) => (TimeDisplay as any)[key] === type);\n }\n\n public static isAlternateDateFormats(type: AlternateDateFormats): boolean {\n return Object.keys(AlternateDateFormats).some((key) => (AlternateDateFormats as any)[key] === type);\n }\n\n // supported options:\n // timeDisplay?: TimeDisplay\n // alternateDateFormat?: AlternateDateFormats\n public override convertToStringWithOptions(value?: Primitives.Value, options?: { [key: string]: any }): string | Promise<string> {\n if (value === undefined)\n return \"\";\n\n if (options) {\n let timeDisplay: TimeDisplay | undefined = (this.getTimeFormat() === TimeFormat.Long) ? TimeDisplay.H12MC : undefined;\n let alternateDateFormat = AlternateDateFormats.None;\n\n // istanbul ignore else\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\n alternateDateFormat = options.alternateDateFormat;\n }\n\n if (this.getTimeFormat() === TimeFormat.Long) {\n // istanbul ignore else\n if (\"timeDisplay\" in options) {\n // istanbul ignore if\n if (alternateDateFormat) {\n Logger.logInfo(UiComponents.loggerCategory(this), `Invalid specification of timeDisplay with alternateDateFormat specification`);\n } else {\n // istanbul ignore else\n if (DateTimeTypeConverterBase.isValidTimeDisplay(options.timeDisplay))\n timeDisplay = options.timeDisplay;\n }\n }\n }\n\n // istanbul ignore else\n if (typeof value === \"string\") {\n value = new Date(value); // this value will be based on local time zone\n // istanbul ignore else\n if (value instanceof Date && alternateDateFormat) {\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\n value = adjustDateToTimezone(value, value.getTimezoneOffset() * -1);\n }\n }\n\n // istanbul ignore else\n if (value instanceof Date) {\n // Ensure if alternateDateFormat is specified make sure it matches proper Long/Short format.\n if (this.getTimeFormat() === TimeFormat.Long) {\n if (alternateDateFormat === AlternateDateFormats.IsoShort)\n alternateDateFormat = AlternateDateFormats.IsoDateTime;\n if (alternateDateFormat === AlternateDateFormats.UtcShort)\n alternateDateFormat = AlternateDateFormats.UtcDateTime;\n if (alternateDateFormat === AlternateDateFormats.UtcShortWithDay)\n alternateDateFormat = AlternateDateFormats.UtcDateTimeWithDay;\n } else {\n // short time format\n if (alternateDateFormat === AlternateDateFormats.IsoDateTime)\n alternateDateFormat = AlternateDateFormats.IsoShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTime)\n alternateDateFormat = AlternateDateFormats.UtcShort;\n if (alternateDateFormat === AlternateDateFormats.UtcDateTimeWithDay)\n alternateDateFormat = AlternateDateFormats.UtcShortWithDay;\n }\n\n const formattedDateTime = formatInputDate(value, timeDisplay, undefined, alternateDateFormat);\n // istanbul ignore else\n if (formattedDateTime)\n return formattedDateTime;\n }\n }\n\n return this.convertToString(value);\n }\n\n /** Default implementation just calls convertFromString with no options */\n public override convertFromStringWithOptions(value: string, options?: { [key: string]: any }): ConvertedPrimitives.Value | undefined | Promise<ConvertedPrimitives.Value | undefined> {\n if (!value)\n return undefined;\n\n if (options) {\n let alternateDateFormat = AlternateDateFormats.None;\n\n // istanbul ignore else\n if (\"alternateDateFormat\" in options && DateTimeTypeConverterBase.isAlternateDateFormats(options.alternateDateFormat)) {\n alternateDateFormat = options.alternateDateFormat;\n }\n\n // istanbul ignore else\n let date = new Date(value); // this value will be based on local time zone\n // istanbul ignore else\n if (date instanceof Date && alternateDateFormat) {\n // alternateDateFormat displays UTC time, so assume string is specifying UTC Date and Time\n date = adjustDateToTimezone(date, date.getTimezoneOffset() * -1);\n }\n }\n\n return this.convertFromString(value);\n }\n\n private isDateValid(date: Date) {\n return date instanceof Date && !isNaN(+date);\n }\n\n public override convertFromString(value: string) {\n if (!value)\n return undefined;\n\n const dateValue = new Date(value);\n\n if (!this.isDateValid(dateValue))\n return undefined;\n\n return dateValue;\n }\n\n protected abstract getTimeFormat(): TimeFormat;\n\n public override get isLessGreaterType(): boolean { return true; }\n\n public sortCompare(valueA: Date, valueB: Date, _ignoreCase?: boolean): number {\n return valueA.valueOf() - valueB.valueOf();\n }\n\n public override isEqualTo(valueA: Date, valueB: Date): boolean {\n return valueA.valueOf() === valueB.valueOf();\n }\n\n public override isNotEqualTo(valueA: Date, valueB: Date): boolean {\n return valueA.valueOf() !== valueB.valueOf();\n }\n\n public isLessThan(a: Date, b: Date): boolean {\n return a.valueOf() < b.valueOf();\n }\n\n public isLessThanOrEqualTo(a: Date, b: Date): boolean {\n return a.valueOf() <= b.valueOf();\n }\n\n public isGreaterThan(a: Date, b: Date): boolean {\n return a.valueOf() > b.valueOf();\n }\n\n public isGreaterThanOrEqualTo(a: Date, b: Date): boolean {\n return a.valueOf() >= b.valueOf();\n }\n}\n\n/**\n * Short Date Type Converter.\n * @public\n */\nexport class ShortDateTypeConverter extends DateTimeTypeConverterBase {\n protected getTimeFormat(): TimeFormat { return TimeFormat.Short; }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.ShortDate, ShortDateTypeConverter);\n\n/**\n * Date Time Type Converter.\n * @public\n */\nexport class DateTimeTypeConverter extends DateTimeTypeConverterBase {\n protected getTimeFormat(): TimeFormat { return TimeFormat.Long; }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.DateTime, DateTimeTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/EnumTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAA8E,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClC,uBAAuB,CAAC,mBAAwC,EAAE,KAAuB;QACvG,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAA+B,EAAE,KAAsB;QAC1F,IAAI,OAAO,GAAwB,EAAE,CAAC;QAEtC,IAAI,OAAO,CAAC,OAAO,YAAY,OAAO,EAAE;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,GAAG;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAE5B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,WAAW,CAAC,OAA4B,EAAE,KAAsB;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAC5B,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,CAAkB,EAAE,CAAkB,EAAE,UAAoB;QAC7E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1B,OAAO,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAClF;QAED,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,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 { EnumerationChoice, EnumerationChoicesInfo, Primitives, PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Enum Type Converter.\r\n * @public\r\n */\r\nexport class EnumTypeConverter extends TypeConverter {\r\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Enum): string | Promise<string> {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n if (propertyDescription.enum) {\r\n return this.getMatchingStringValue(propertyDescription.enum, value);\r\n }\r\n\r\n return super.convertToString(value);\r\n }\r\n\r\n private async getMatchingStringValue(enumVal: EnumerationChoicesInfo, value: Primitives.Enum) {\r\n let choices: EnumerationChoice[] = [];\r\n\r\n if (enumVal.choices instanceof Promise) {\r\n choices = await enumVal.choices;\r\n } else {\r\n choices = enumVal.choices;\r\n }\r\n\r\n const pos = this.getPosition(choices, value);\r\n if (-1 !== pos)\r\n return choices[pos].label;\r\n\r\n return this.convertToString(value);\r\n }\r\n\r\n private getPosition(choices: EnumerationChoice[], value: Primitives.Enum): number {\r\n for (let i = 0; i < choices.length; ++i) {\r\n if (choices[i].value === value)\r\n return i;\r\n }\r\n return -1;\r\n }\r\n\r\n public sortCompare(a: Primitives.Enum, b: Primitives.Enum, ignoreCase?: boolean): number {\r\n if (isNaN(+a) || isNaN(+b)) {\r\n return TypeConverterManager.getConverter(\"string\").sortCompare(a, b, ignoreCase);\r\n }\r\n\r\n return (+a) - (+b);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Enum, EnumTypeConverter);\r\n"]}
1
+ {"version":3,"file":"EnumTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/EnumTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAA8E,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClC,uBAAuB,CAAC,mBAAwC,EAAE,KAAuB;QACvG,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAA+B,EAAE,KAAsB;QAC1F,IAAI,OAAO,GAAwB,EAAE,CAAC;QAEtC,IAAI,OAAO,CAAC,OAAO,YAAY,OAAO,EAAE;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,GAAG;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAE5B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,WAAW,CAAC,OAA4B,EAAE,KAAsB;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAC5B,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,CAAkB,EAAE,CAAkB,EAAE,UAAoB;QAC7E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1B,OAAO,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAClF;QAED,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,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 { EnumerationChoice, EnumerationChoicesInfo, Primitives, PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Enum Type Converter.\n * @public\n */\nexport class EnumTypeConverter extends TypeConverter {\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Enum): string | Promise<string> {\n if (value === undefined)\n return \"\";\n\n if (propertyDescription.enum) {\n return this.getMatchingStringValue(propertyDescription.enum, value);\n }\n\n return super.convertToString(value);\n }\n\n private async getMatchingStringValue(enumVal: EnumerationChoicesInfo, value: Primitives.Enum) {\n let choices: EnumerationChoice[] = [];\n\n if (enumVal.choices instanceof Promise) {\n choices = await enumVal.choices;\n } else {\n choices = enumVal.choices;\n }\n\n const pos = this.getPosition(choices, value);\n if (-1 !== pos)\n return choices[pos].label;\n\n return this.convertToString(value);\n }\n\n private getPosition(choices: EnumerationChoice[], value: Primitives.Enum): number {\n for (let i = 0; i < choices.length; ++i) {\n if (choices[i].value === value)\n return i;\n }\n return -1;\n }\n\n public sortCompare(a: Primitives.Enum, b: Primitives.Enum, ignoreCase?: boolean): number {\n if (isNaN(+a) || isNaN(+b)) {\n return TypeConverterManager.getConverter(\"string\").sortCompare(a, b, ignoreCase);\n }\n\n return (+a) - (+b);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Enum, EnumTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HexadecimalTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/HexadecimalTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzC,eAAe,CAAC,KAA8B;QAC5D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI;YAChC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAEvB,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,CAAC;QAEf,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,WAAW,CAAC,CAAyB,EAAE,CAAyB;QACrE,wBAAwB;QACxB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC;YACT,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC;YACP,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AACxF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,EAAE,wBAAwB,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 { Id64 } from \"@itwin/core-bentley\";\r\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/** Hexadecimal Type Converter.\r\n * @public\r\n */\r\nexport class HexadecimalTypeConverter extends TypeConverter {\r\n public override convertToString(value?: Primitives.Hexadecimal) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n // Need to Uppercase without changing 0x part\r\n const hexString = value.toString();\r\n return `0x${hexString.substring(2, hexString.length).toUpperCase()}`;\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n if (value.substring(0, 2) !== \"0x\")\r\n value = `0x${value}`;\r\n\r\n value = Id64.fromString(value);\r\n if (Id64.isValidId64(value))\r\n return value;\r\n\r\n return undefined;\r\n }\r\n\r\n public sortCompare(a: Primitives.Hexadecimal, b: Primitives.Hexadecimal): number {\r\n // Normalize the strings\r\n a = Id64.fromString(a);\r\n b = Id64.fromString(b);\r\n\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\r\nTypeConverterManager.registerConverter(StandardTypeNames.Hex, HexadecimalTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Hexadecimal, HexadecimalTypeConverter);\r\n"]}
1
+ {"version":3,"file":"HexadecimalTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/HexadecimalTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzC,eAAe,CAAC,KAA8B;QAC5D,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI;YAChC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAEvB,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,CAAC;QAEf,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,WAAW,CAAC,CAAyB,EAAE,CAAyB;QACrE,wBAAwB;QACxB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC;YACT,OAAO,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC;YACP,OAAO,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AACxF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,EAAE,wBAAwB,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 { Id64 } from \"@itwin/core-bentley\";\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/** Hexadecimal Type Converter.\n * @public\n */\nexport class HexadecimalTypeConverter extends TypeConverter {\n public override convertToString(value?: Primitives.Hexadecimal) {\n if (value === undefined)\n return \"\";\n\n // Need to Uppercase without changing 0x part\n const hexString = value.toString();\n return `0x${hexString.substring(2, hexString.length).toUpperCase()}`;\n }\n\n public override convertFromString(value: string) {\n if (value.substring(0, 2) !== \"0x\")\n value = `0x${value}`;\n\n value = Id64.fromString(value);\n if (Id64.isValidId64(value))\n return value;\n\n return undefined;\n }\n\n public sortCompare(a: Primitives.Hexadecimal, b: Primitives.Hexadecimal): number {\n // Normalize the strings\n a = Id64.fromString(a);\n b = Id64.fromString(b);\n\n if (a === b)\n return 0;\n if (a > b)\n return 1;\n return -1;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Hex, HexadecimalTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Hexadecimal, HexadecimalTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationPropertyTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NavigationPropertyTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;;GAGG;AAEH,OAAO,EAAmC,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,aAAa;IAChD,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;QACxG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,CAAmB,EAAE,CAAmB,EAAE,UAAoB;QAC/E,OAAO,oBAAoB;aACxB,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC;aAC3C,WAAW,CAAE,CAA4B,CAAC,EAAE,EAAG,CAA4B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,+BAA+B,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/**\r\n * @packageDocumentation\r\n * @module TypeConverters\r\n */\r\n\r\nimport { Primitives, PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Navigation property type converter.\r\n * @public\r\n */\r\nexport class NavigationPropertyTypeConverter extends TypeConverter {\r\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value) {\r\n return value === undefined ? \"\" : propertyDescription.displayLabel;\r\n }\r\n\r\n public sortCompare(a: Primitives.Value, b: Primitives.Value, ignoreCase?: boolean): number {\r\n return TypeConverterManager\r\n .getConverter(StandardTypeNames.Hexadecimal)\r\n .sortCompare((a as Primitives.InstanceKey).id, (b as Primitives.InstanceKey).id, ignoreCase);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Navigation, NavigationPropertyTypeConverter);\r\n"]}
1
+ {"version":3,"file":"NavigationPropertyTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NavigationPropertyTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;;GAGG;AAEH,OAAO,EAAmC,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,aAAa;IAChD,uBAAuB,CAAC,mBAAwC,EAAE,KAAwB;QACxG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,CAAmB,EAAE,CAAmB,EAAE,UAAoB;QAC/E,OAAO,oBAAoB;aACxB,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC;aAC3C,WAAW,CAAE,CAA4B,CAAC,EAAE,EAAG,CAA4B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,+BAA+B,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/**\n * @packageDocumentation\n * @module TypeConverters\n */\n\nimport { Primitives, PropertyDescription, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Navigation property type converter.\n * @public\n */\nexport class NavigationPropertyTypeConverter extends TypeConverter {\n public override convertPropertyToString(propertyDescription: PropertyDescription, value?: Primitives.Value) {\n return value === undefined ? \"\" : propertyDescription.displayLabel;\n }\n\n public sortCompare(a: Primitives.Value, b: Primitives.Value, ignoreCase?: boolean): number {\n return TypeConverterManager\n .getConverter(StandardTypeNames.Hexadecimal)\n .sortCompare((a as Primitives.InstanceKey).id, (b as Primitives.InstanceKey).id, ignoreCase);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Navigation, NavigationPropertyTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NumericTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAgC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAgB,wBAAyB,SAAQ,aAAa;IAClE,IAAoB,iBAAiB,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1D,UAAU,CAAC,CAAqB,EAAE,CAAqB;QAC5D,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEM,mBAAmB,CAAC,CAAqB,EAAE,CAAqB;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,aAAa,CAAC,CAAqB,EAAE,CAAqB;QAC/D,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEM,sBAAsB,CAAC,CAAqB,EAAE,CAAqB;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,CAAqB,EAAE,CAAqB,EAAE,WAAqB;QACpF,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,wBAAwB;IACtD,MAAM,CAAC,WAAW,CAAC,KAAa;QACtC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7D,CAAC;IAEe,eAAe,CAAC,KAAwB;QACtD,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE;gBACvE,sCAAsC;gBACtC,YAAY,GAAG,CAAC,CAAC;aAClB;iBAAM;gBACL,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3D;SACF;aAAM;YACL,YAAY,GAAG,KAAK,CAAC;SACtB;QACD,wEAAwE;QACxE,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpE,yFAAyF;QACzF,8BAA8B;QAC9B,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,WAAW,IAAI,IAAI,CAAC;QACtB,OAAO,WAAW,CAAC;IACrB,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,OAAO,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF;AACD,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACpF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACrF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,wBAAwB;IACpD,MAAM,CAAC,WAAW,CAAC,KAAa;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7D,CAAC;IAEe,eAAe,CAAC,KAAsB;QACpD,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC;QAEZ,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnD,sCAAsC;gBACtC,YAAY,GAAG,CAAC,CAAC;aAClB;iBAAM;gBACL,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACzD;SACF;aAAM;YACL,YAAY,GAAG,KAAK,CAAC;SACtB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,OAAO,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAChF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,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 { LessGreaterOperatorProcessor, TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\n\r\n/**\r\n * Base Numeric Type Converter.\r\n * @public\r\n */\r\nexport abstract class NumericTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\r\n public override get isLessGreaterType(): boolean { return true; }\r\n\r\n public isLessThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a < b;\r\n }\r\n\r\n public isLessThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a <= b;\r\n }\r\n\r\n public isGreaterThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a > b;\r\n }\r\n\r\n public isGreaterThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\r\n return a >= b;\r\n }\r\n\r\n public sortCompare(a: Primitives.Numeric, b: Primitives.Numeric, _ignoreCase?: boolean): number {\r\n return (+a) - (+b);\r\n }\r\n}\r\n\r\n/**\r\n * Float Type Converter.\r\n * @public\r\n */\r\nexport class FloatTypeConverter extends NumericTypeConverterBase {\r\n private static parseString(value: string): number | undefined {\r\n const parsedValue = parseFloat(value);\r\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\r\n }\r\n\r\n public override convertToString(value?: Primitives.Float) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n let numericValue = 0;\r\n if (typeof value === \"string\") {\r\n if (value === \"-\" || value === \"\" || value === \"-0.0\" || value === \"-0\") {\r\n // handle these semi-valid values as 0\r\n numericValue = 0;\r\n } else {\r\n numericValue = FloatTypeConverter.parseString(value) ?? 0;\r\n }\r\n } else {\r\n numericValue = value;\r\n }\r\n // this is close to calling `toFixed(2)`, but cuts of any trailing zeros\r\n let stringValue = (Math.round(100 * numericValue) / 100).toString();\r\n // because this is a _float_ converter, we want to emphasize the number is a float - make\r\n // sure there's a decimal part\r\n if (stringValue.indexOf(\".\") === -1)\r\n stringValue += \".0\";\r\n return stringValue;\r\n }\r\n\r\n public override convertFromString(value: string): number | undefined {\r\n return FloatTypeConverter.parseString(value);\r\n }\r\n}\r\nTypeConverterManager.registerConverter(StandardTypeNames.Float, FloatTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Double, FloatTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Number, FloatTypeConverter);\r\n\r\n/**\r\n * Int Type Converter.\r\n * @public\r\n */\r\nexport class IntTypeConverter extends NumericTypeConverterBase {\r\n private static parseString(value: string): number | undefined {\r\n const parsedValue = parseInt(value, 10);\r\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\r\n }\r\n\r\n public override convertToString(value?: Primitives.Int) {\r\n if (value === undefined)\r\n return \"\";\r\n\r\n let numericValue = 0;\r\n if (typeof value === \"string\") {\r\n if (value === \"-\" || value === \"\" || value === \"-0\") {\r\n // handle these semi-valid values as 0\r\n numericValue = 0;\r\n } else {\r\n numericValue = IntTypeConverter.parseString(value) ?? 0;\r\n }\r\n } else {\r\n numericValue = value;\r\n }\r\n return Math.round(numericValue).toString();\r\n }\r\n\r\n public override convertFromString(value: string): number | undefined {\r\n return IntTypeConverter.parseString(value);\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Int, IntTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.Integer, IntTypeConverter);\r\n"]}
1
+ {"version":3,"file":"NumericTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/NumericTypeConverter.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 TypeConverters\n */\n\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { LessGreaterOperatorProcessor, TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\n\n/**\n * Base Numeric Type Converter.\n * @public\n */\nexport abstract class NumericTypeConverterBase extends TypeConverter implements LessGreaterOperatorProcessor {\n public override get isLessGreaterType(): boolean { return true; }\n\n public isLessThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a < b;\n }\n\n public isLessThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a <= b;\n }\n\n public isGreaterThan(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a > b;\n }\n\n public isGreaterThanOrEqualTo(a: Primitives.Numeric, b: Primitives.Numeric): boolean {\n return a >= b;\n }\n\n public sortCompare(a: Primitives.Numeric, b: Primitives.Numeric, _ignoreCase?: boolean): number {\n return (+a) - (+b);\n }\n}\n\n/**\n * Float Type Converter.\n * @public\n */\nexport class FloatTypeConverter extends NumericTypeConverterBase {\n private static parseString(value: string): number | undefined {\n const parsedValue = parseFloat(value);\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\n }\n\n public override convertToString(value?: Primitives.Float) {\n if (value === undefined)\n return \"\";\n\n let numericValue = 0;\n if (typeof value === \"string\") {\n if (value === \"-\" || value === \"\" || value === \"-0.0\" || value === \"-0\") {\n // handle these semi-valid values as 0\n numericValue = 0;\n } else {\n numericValue = FloatTypeConverter.parseString(value) ?? 0;\n }\n } else {\n numericValue = value;\n }\n // this is close to calling `toFixed(2)`, but cuts of any trailing zeros\n let stringValue = (Math.round(100 * numericValue) / 100).toString();\n // because this is a _float_ converter, we want to emphasize the number is a float - make\n // sure there's a decimal part\n if (stringValue.indexOf(\".\") === -1)\n stringValue += \".0\";\n return stringValue;\n }\n\n public override convertFromString(value: string): number | undefined {\n return FloatTypeConverter.parseString(value);\n }\n}\nTypeConverterManager.registerConverter(StandardTypeNames.Float, FloatTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Double, FloatTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Number, FloatTypeConverter);\n\n/**\n * Int Type Converter.\n * @public\n */\nexport class IntTypeConverter extends NumericTypeConverterBase {\n private static parseString(value: string): number | undefined {\n const parsedValue = parseInt(value, 10);\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\n }\n\n public override convertToString(value?: Primitives.Int) {\n if (value === undefined)\n return \"\";\n\n let numericValue = 0;\n if (typeof value === \"string\") {\n if (value === \"-\" || value === \"\" || value === \"-0\") {\n // handle these semi-valid values as 0\n numericValue = 0;\n } else {\n numericValue = IntTypeConverter.parseString(value) ?? 0;\n }\n } else {\n numericValue = value;\n }\n return Math.round(numericValue).toString();\n }\n\n public override convertFromString(value: string): number | undefined {\n return IntTypeConverter.parseString(value);\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Int, IntTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.Integer, IntTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PointTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/PointTypeConverter.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 TypeConverters\r\n */\r\n\r\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { isPromiseLike } from \"@itwin/core-react\";\r\nimport { TypeConverter } from \"./TypeConverter\";\r\nimport { TypeConverterManager } from \"./TypeConverterManager\";\r\nimport { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\r\n\r\n// cSpell:ignore valuetypes\r\n\r\n/**\r\n * Point type converter.\r\n * @public\r\n */\r\nexport abstract class BasePointTypeConverter extends TypeConverter {\r\n\r\n public componentConverterName: string;\r\n\r\n public constructor(componentConverterName: string = StandardTypeNames.Double) {\r\n super();\r\n this.componentConverterName = componentConverterName;\r\n }\r\n\r\n private formatValue(value: number | string): string | Promise<string> {\r\n if (typeof value === \"string\")\r\n value = parseFloat(value);\r\n return TypeConverterManager.getConverter(this.componentConverterName).convertToString(value);\r\n }\r\n\r\n public override convertToString(value?: Primitives.Point): string | Promise<string> {\r\n if (!value)\r\n return \"\";\r\n\r\n let components = new Array<string | Promise<string>>();\r\n if (Array.isArray(value)) {\r\n if (value.length === 0)\r\n return \"\";\r\n components = (value as Array<string | number>).map((c): string | Promise<string> => this.formatValue(c));\r\n } else {\r\n components = [this.formatValue(value.x), this.formatValue(value.y)];\r\n if (undefined !== (value as any).z)\r\n components.push(this.formatValue((value as any).z));\r\n }\r\n const hasAsyncComponents = components.some(isPromiseLike);\r\n if (hasAsyncComponents) {\r\n return Promise.all(components.map(async (c) => isPromiseLike(c) ? c : Promise.resolve(c))).then((c) => c.join(\", \"));\r\n }\r\n return components.join(\", \");\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n return this.constructPoint(value.split(\",\"));\r\n }\r\n protected abstract constructPoint(_values: Primitives.Point): ConvertedPrimitives.Point | undefined;\r\n\r\n protected abstract getVectorLength(point: Primitives.Point): number | undefined;\r\n\r\n public sortCompare(a: Primitives.Point, b: Primitives.Point, _ignoreCase?: boolean): number {\r\n const aLength = this.getVectorLength(a);\r\n const bLength = this.getVectorLength(b);\r\n\r\n if (aLength === bLength)\r\n return 0;\r\n if (aLength === undefined)\r\n return -1;\r\n if (bLength === undefined)\r\n return 1;\r\n\r\n return aLength - bLength;\r\n }\r\n}\r\n\r\n/**\r\n * Point2d type converter.\r\n * @public\r\n */\r\nexport class Point2dTypeConverter extends BasePointTypeConverter {\r\n\r\n public constructor(componentConverterName?: string) {\r\n super(componentConverterName);\r\n }\r\n\r\n protected getVectorLength(point: Primitives.Point): number | undefined {\r\n const derivedPoint = this.constructPoint(point);\r\n\r\n if (derivedPoint === undefined)\r\n return undefined;\r\n\r\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2));\r\n }\r\n\r\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point2d | undefined {\r\n if (Array.isArray(values)) {\r\n if (values.length !== 2 || isNaN(+values[0]) || isNaN(+values[1]))\r\n return undefined;\r\n return { x: +values[0], y: +values[1] };\r\n }\r\n return values;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Point2d, Point2dTypeConverter);\r\n\r\n/**\r\n * Point3d type converter.\r\n * @public\r\n */\r\nexport class Point3dTypeConverter extends BasePointTypeConverter {\r\n\r\n public constructor(componentConverterName?: string) {\r\n super(componentConverterName);\r\n }\r\n\r\n protected getVectorLength(point: Primitives.Point): number | undefined {\r\n const derivedPoint = this.constructPoint(point);\r\n\r\n if (derivedPoint === undefined)\r\n return undefined;\r\n\r\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2) + Math.pow(derivedPoint.z, 2));\r\n }\r\n\r\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point3d | undefined {\r\n if (Array.isArray(values)) {\r\n if (values.length !== 3 || isNaN(+values[0]) || isNaN(+values[1]) || isNaN(+values[2]))\r\n return undefined;\r\n return { x: +values[0], y: +values[1], z: +values[2] };\r\n }\r\n const z = (values as any).z;\r\n return { ...values, z: z ? z : 0 };\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Point3d, Point3dTypeConverter);\r\n"]}
1
+ {"version":3,"file":"PointTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/PointTypeConverter.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 TypeConverters\n */\n\nimport { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { isPromiseLike } from \"@itwin/core-react\";\nimport { TypeConverter } from \"./TypeConverter\";\nimport { TypeConverterManager } from \"./TypeConverterManager\";\nimport { ConvertedPrimitives } from \"./valuetypes/ConvertedTypes\";\n\n// cSpell:ignore valuetypes\n\n/**\n * Point type converter.\n * @public\n */\nexport abstract class BasePointTypeConverter extends TypeConverter {\n\n public componentConverterName: string;\n\n public constructor(componentConverterName: string = StandardTypeNames.Double) {\n super();\n this.componentConverterName = componentConverterName;\n }\n\n private formatValue(value: number | string): string | Promise<string> {\n if (typeof value === \"string\")\n value = parseFloat(value);\n return TypeConverterManager.getConverter(this.componentConverterName).convertToString(value);\n }\n\n public override convertToString(value?: Primitives.Point): string | Promise<string> {\n if (!value)\n return \"\";\n\n let components = new Array<string | Promise<string>>();\n if (Array.isArray(value)) {\n if (value.length === 0)\n return \"\";\n components = (value as Array<string | number>).map((c): string | Promise<string> => this.formatValue(c));\n } else {\n components = [this.formatValue(value.x), this.formatValue(value.y)];\n if (undefined !== (value as any).z)\n components.push(this.formatValue((value as any).z));\n }\n const hasAsyncComponents = components.some(isPromiseLike);\n if (hasAsyncComponents) {\n return Promise.all(components.map(async (c) => isPromiseLike(c) ? c : Promise.resolve(c))).then((c) => c.join(\", \"));\n }\n return components.join(\", \");\n }\n\n public override convertFromString(value: string) {\n return this.constructPoint(value.split(\",\"));\n }\n protected abstract constructPoint(_values: Primitives.Point): ConvertedPrimitives.Point | undefined;\n\n protected abstract getVectorLength(point: Primitives.Point): number | undefined;\n\n public sortCompare(a: Primitives.Point, b: Primitives.Point, _ignoreCase?: boolean): number {\n const aLength = this.getVectorLength(a);\n const bLength = this.getVectorLength(b);\n\n if (aLength === bLength)\n return 0;\n if (aLength === undefined)\n return -1;\n if (bLength === undefined)\n return 1;\n\n return aLength - bLength;\n }\n}\n\n/**\n * Point2d type converter.\n * @public\n */\nexport class Point2dTypeConverter extends BasePointTypeConverter {\n\n public constructor(componentConverterName?: string) {\n super(componentConverterName);\n }\n\n protected getVectorLength(point: Primitives.Point): number | undefined {\n const derivedPoint = this.constructPoint(point);\n\n if (derivedPoint === undefined)\n return undefined;\n\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2));\n }\n\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point2d | undefined {\n if (Array.isArray(values)) {\n if (values.length !== 2 || isNaN(+values[0]) || isNaN(+values[1]))\n return undefined;\n return { x: +values[0], y: +values[1] };\n }\n return values;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Point2d, Point2dTypeConverter);\n\n/**\n * Point3d type converter.\n * @public\n */\nexport class Point3dTypeConverter extends BasePointTypeConverter {\n\n public constructor(componentConverterName?: string) {\n super(componentConverterName);\n }\n\n protected getVectorLength(point: Primitives.Point): number | undefined {\n const derivedPoint = this.constructPoint(point);\n\n if (derivedPoint === undefined)\n return undefined;\n\n return Math.sqrt(Math.pow(derivedPoint.x, 2) + Math.pow(derivedPoint.y, 2) + Math.pow(derivedPoint.z, 2));\n }\n\n protected constructPoint(values: Primitives.Point): ConvertedPrimitives.Point3d | undefined {\n if (Array.isArray(values)) {\n if (values.length !== 3 || isNaN(+values[0]) || isNaN(+values[1]) || isNaN(+values[2]))\n return undefined;\n return { x: +values[0], y: +values[1], z: +values[2] };\n }\n const z = (values as any).z;\n return { ...values, z: z ? z : 0 };\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Point3d, Point3dTypeConverter);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StringTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/StringTypeConverter.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 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/** Operators for string types\r\n * @public\r\n */\r\nexport interface StringOperatorProcessor {\r\n /** Determines if one string starts with another string */\r\n startsWith(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string ends with another string */\r\n endsWith(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string contains another string */\r\n contains(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string does not contain another string */\r\n doesNotContain(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string is contained within another string */\r\n isContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if one string is not contained within another string */\r\n isNotContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\r\n /** Determines if a string is empty */\r\n isEmpty(a: string): boolean;\r\n /** Determines if a string is not empty */\r\n isNotEmpty(a: string): boolean;\r\n}\r\n\r\n/**\r\n * String Type Converter.\r\n * @public\r\n */\r\nexport class StringTypeConverter extends TypeConverter implements StringOperatorProcessor {\r\n public override convertToString(value?: Primitives.String) {\r\n return value ? value.toString() : \"\";\r\n }\r\n\r\n public override convertFromString(value: string) {\r\n return value;\r\n }\r\n\r\n public sortCompare(valueA: Primitives.String, valueB: Primitives.String, ignoreCase?: boolean): number {\r\n if (!this.checkArgTypes(valueA, valueB))\r\n return 0;\r\n if (ignoreCase)\r\n return valueA.toLocaleLowerCase().localeCompare(valueB.toLocaleLowerCase());\r\n else\r\n return valueA.localeCompare(valueB);\r\n }\r\n\r\n public override get isStringType(): boolean { return true; }\r\n\r\n public startsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n if (caseSensitive)\r\n return (valueA.substring(0, valueB.length) === valueB);\r\n\r\n return (valueA.toLocaleUpperCase().substring(0, valueB.length) === valueB.toLocaleUpperCase());\r\n }\r\n\r\n public endsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n const position = valueA.length - valueB.length;\r\n if (position < 0)\r\n return false;\r\n\r\n let lastIndex: number;\r\n if (caseSensitive)\r\n lastIndex = valueA.indexOf(valueB, position);\r\n else\r\n lastIndex = valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), position);\r\n\r\n return lastIndex !== -1 && lastIndex === position;\r\n }\r\n\r\n public contains(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\r\n return false;\r\n\r\n if (valueB.length > valueA.length)\r\n return false;\r\n\r\n if (caseSensitive)\r\n return valueA.indexOf(valueB, 0) !== -1;\r\n\r\n return valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), 0) !== -1;\r\n }\r\n\r\n public doesNotContain(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return !this.contains(valueA, valueB, caseSensitive);\r\n }\r\n\r\n public isContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return this.contains(valueB, valueA, caseSensitive);\r\n }\r\n\r\n public isNotContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\r\n return this.doesNotContain(valueB, valueA, caseSensitive);\r\n }\r\n\r\n public isEmpty(valueA: string): boolean {\r\n if (!this.checkArgTypes(valueA))\r\n return true;\r\n return valueA.length === 0;\r\n }\r\n\r\n public isNotEmpty(valueA: string): boolean {\r\n return !this.isEmpty(valueA);\r\n }\r\n\r\n private checkArgTypes(valueA: string, valueB?: string): boolean {\r\n if (typeof valueA !== \"string\")\r\n return false;\r\n if (valueB && typeof valueB !== \"string\")\r\n return false;\r\n return true;\r\n }\r\n}\r\n\r\nTypeConverterManager.registerConverter(StandardTypeNames.Text, StringTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.String, StringTypeConverter);\r\nTypeConverterManager.registerConverter(StandardTypeNames.URL, StringTypeConverter);\r\n"]}
1
+ {"version":3,"file":"StringTypeConverter.js","sourceRoot":"","sources":["../../../../src/components-react/converters/StringTypeConverter.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAwB9D;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpC,eAAe,CAAC,KAAyB;QACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAEe,iBAAiB,CAAC,KAAa;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,WAAW,CAAC,MAAyB,EAAE,MAAyB,EAAE,UAAoB;QAC3F,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,IAAI,UAAU;YACZ,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;;YAE5E,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAoB,YAAY,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAErD,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACtE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,IAAI,aAAa;YACf,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;QAEzD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACjG,CAAC;IAEM,QAAQ,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,QAAQ,GAAG,CAAC;YACd,OAAO,KAAK,CAAC;QAEf,IAAI,SAAiB,CAAC;QACtB,IAAI,aAAa;YACf,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;YAE7C,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvF,OAAO,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,QAAQ,CAAC;IACpD,CAAC;IAEM,QAAQ,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3D,OAAO,KAAK,CAAC;QAEf,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;YAC/B,OAAO,KAAK,CAAC;QAEf,IAAI,aAAa;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAEM,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QAC1E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACvD,CAAC;IAEM,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAEM,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QAC5E,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAEM,OAAO,CAAC,MAAc;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,UAAU,CAAC,MAAc;QAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,MAAe;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC;QACf,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACtC,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACpF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACtF,oBAAoB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,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/** Operators for string types\n * @public\n */\nexport interface StringOperatorProcessor {\n /** Determines if one string starts with another string */\n startsWith(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string ends with another string */\n endsWith(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string contains another string */\n contains(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string does not contain another string */\n doesNotContain(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string is contained within another string */\n isContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if one string is not contained within another string */\n isNotContainedIn(a: string, b: string, caseSensitive: boolean): boolean;\n /** Determines if a string is empty */\n isEmpty(a: string): boolean;\n /** Determines if a string is not empty */\n isNotEmpty(a: string): boolean;\n}\n\n/**\n * String Type Converter.\n * @public\n */\nexport class StringTypeConverter extends TypeConverter implements StringOperatorProcessor {\n public override convertToString(value?: Primitives.String) {\n return value ? value.toString() : \"\";\n }\n\n public override convertFromString(value: string) {\n return value;\n }\n\n public sortCompare(valueA: Primitives.String, valueB: Primitives.String, ignoreCase?: boolean): number {\n if (!this.checkArgTypes(valueA, valueB))\n return 0;\n if (ignoreCase)\n return valueA.toLocaleLowerCase().localeCompare(valueB.toLocaleLowerCase());\n else\n return valueA.localeCompare(valueB);\n }\n\n public override get isStringType(): boolean { return true; }\n\n public startsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n if (caseSensitive)\n return (valueA.substring(0, valueB.length) === valueB);\n\n return (valueA.toLocaleUpperCase().substring(0, valueB.length) === valueB.toLocaleUpperCase());\n }\n\n public endsWith(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n const position = valueA.length - valueB.length;\n if (position < 0)\n return false;\n\n let lastIndex: number;\n if (caseSensitive)\n lastIndex = valueA.indexOf(valueB, position);\n else\n lastIndex = valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), position);\n\n return lastIndex !== -1 && lastIndex === position;\n }\n\n public contains(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n if (!valueA || !valueB || !this.checkArgTypes(valueA, valueB))\n return false;\n\n if (valueB.length > valueA.length)\n return false;\n\n if (caseSensitive)\n return valueA.indexOf(valueB, 0) !== -1;\n\n return valueA.toLocaleUpperCase().indexOf(valueB.toLocaleUpperCase(), 0) !== -1;\n }\n\n public doesNotContain(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return !this.contains(valueA, valueB, caseSensitive);\n }\n\n public isContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return this.contains(valueB, valueA, caseSensitive);\n }\n\n public isNotContainedIn(valueA: string, valueB: string, caseSensitive: boolean): boolean {\n return this.doesNotContain(valueB, valueA, caseSensitive);\n }\n\n public isEmpty(valueA: string): boolean {\n if (!this.checkArgTypes(valueA))\n return true;\n return valueA.length === 0;\n }\n\n public isNotEmpty(valueA: string): boolean {\n return !this.isEmpty(valueA);\n }\n\n private checkArgTypes(valueA: string, valueB?: string): boolean {\n if (typeof valueA !== \"string\")\n return false;\n if (valueB && typeof valueB !== \"string\")\n return false;\n return true;\n }\n}\n\nTypeConverterManager.registerConverter(StandardTypeNames.Text, StringTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.String, StringTypeConverter);\nTypeConverterManager.registerConverter(StandardTypeNames.URL, StringTypeConverter);\n"]}