@itwin/imodel-components-react 4.0.0-dev.12 → 4.0.0-dev.13

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 (352) hide show
  1. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  2. package/lib/cjs/imodel-components-react/UiIModelComponents.js +75 -77
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  4. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  5. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +190 -186
  6. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +63 -63
  8. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  9. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +112 -108
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +90 -90
  12. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  13. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +78 -74
  14. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  15. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  16. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +149 -145
  17. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  18. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  19. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  20. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -139
  21. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  22. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +62 -62
  23. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  24. package/lib/cjs/imodel-components-react/color/HueSlider.js +203 -199
  25. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
  26. package/lib/cjs/imodel-components-react/color/HueSlider.scss +61 -61
  27. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  28. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +217 -213
  29. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
  30. package/lib/cjs/imodel-components-react/color/SaturationPicker.scss +35 -35
  31. package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
  32. package/lib/cjs/imodel-components-react/color/Swatch.js +64 -60
  33. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  34. package/lib/cjs/imodel-components-react/color/Swatch.scss +22 -22
  35. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  36. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
  37. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  38. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  39. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +155 -151
  40. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
  41. package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +18 -18
  42. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  43. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +164 -160
  44. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
  45. package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +16 -16
  46. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  47. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +100 -96
  48. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  49. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  50. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  51. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +272 -268
  52. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  53. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
  54. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  55. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +89 -85
  56. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  57. package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -48
  58. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  59. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +163 -159
  60. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  61. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +51 -52
  62. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  63. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +131 -127
  64. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  65. package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
  66. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  67. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  68. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +650 -638
  69. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  70. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
  71. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  72. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -653
  73. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  74. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
  75. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  76. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +103 -99
  77. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  78. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +59 -63
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +56 -53
  81. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  82. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  83. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +88 -84
  84. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  85. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  86. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +89 -86
  87. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  88. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  89. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +112 -109
  90. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  91. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  92. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
  93. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  94. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  95. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +187 -184
  96. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  97. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  98. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +149 -145
  99. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  100. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  101. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +63 -59
  102. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  103. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  104. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +51 -47
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +58 -54
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +52 -48
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +54 -50
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +62 -58
  117. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  118. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  119. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +51 -47
  120. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  121. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  122. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +60 -56
  123. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  124. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  125. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +98 -95
  126. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  127. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  128. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +123 -119
  129. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  130. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  131. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +143 -143
  132. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  133. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  134. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  135. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  136. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  137. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +85 -81
  138. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  139. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +26 -26
  140. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  141. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -95
  142. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  143. package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +28 -28
  144. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  145. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +195 -191
  146. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  147. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +105 -105
  148. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  149. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -428
  150. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  151. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +359 -359
  152. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  153. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +58 -54
  154. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  155. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  156. package/lib/cjs/imodel-components-react/timeline/Timeline.scss +164 -164
  157. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  158. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  159. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +398 -365
  160. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  161. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +178 -161
  162. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
  163. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  164. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  165. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
  166. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  167. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  168. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +276 -274
  169. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  170. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  171. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  172. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  173. package/lib/cjs/imodel-components-react.d.ts +82 -82
  174. package/lib/cjs/imodel-components-react.js +105 -101
  175. package/lib/cjs/imodel-components-react.js.map +1 -1
  176. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  177. package/lib/esm/imodel-components-react/UiIModelComponents.js +72 -73
  178. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  179. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  180. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  181. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
  182. package/lib/esm/imodel-components-react/color/AlphaSlider.scss +63 -63
  183. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  184. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -83
  185. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  186. package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +90 -90
  187. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  188. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  189. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  190. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  191. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
  192. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  193. package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  194. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  195. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -114
  196. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  197. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +62 -62
  198. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  199. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  200. package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
  201. package/lib/esm/imodel-components-react/color/HueSlider.scss +61 -61
  202. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  203. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  204. package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
  205. package/lib/esm/imodel-components-react/color/SaturationPicker.scss +35 -35
  206. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  207. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  208. package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
  209. package/lib/esm/imodel-components-react/color/Swatch.scss +22 -22
  210. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  211. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  212. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  213. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  214. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  215. package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
  216. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -18
  217. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  218. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  219. package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
  220. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -16
  221. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  222. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  223. package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  224. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  225. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  226. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -243
  227. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  228. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
  229. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  230. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  231. package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
  232. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -48
  233. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  234. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +134 -133
  235. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  236. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +51 -52
  237. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  238. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  239. package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
  240. package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
  241. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  242. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  243. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +620 -610
  244. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  245. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
  246. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  247. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -626
  248. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  249. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
  250. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  251. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  252. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  253. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +59 -63
  254. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  255. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +29 -30
  256. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  257. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  258. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -61
  259. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  260. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  261. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +62 -63
  262. package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  263. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  264. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +82 -83
  265. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  266. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  267. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +106 -110
  268. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  269. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  270. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +157 -158
  271. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  272. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  273. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
  274. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  275. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  276. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  277. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  278. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  279. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  280. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  281. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  282. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  283. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  284. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  285. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  286. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  287. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  288. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  289. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  290. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  291. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  292. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  293. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  294. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  295. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  296. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  297. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  298. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  299. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  300. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +68 -69
  301. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  302. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  303. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  304. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  305. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  306. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +139 -139
  307. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  308. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  309. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  310. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  311. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  312. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  313. package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  314. package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +26 -26
  315. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  316. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -68
  317. package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  318. package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +28 -28
  319. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  320. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  321. package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
  322. package/lib/esm/imodel-components-react/timeline/Scrubber.scss +105 -105
  323. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  324. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -402
  325. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  326. package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +359 -359
  327. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  328. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  329. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  330. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  331. package/lib/esm/imodel-components-react/timeline/Timeline.scss +164 -164
  332. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  333. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  334. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +368 -339
  335. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  336. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +178 -161
  337. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
  338. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  339. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  340. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
  341. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  342. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  343. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +249 -251
  344. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  345. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  346. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +96 -95
  347. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  348. package/lib/esm/imodel-components-react.d.ts +82 -82
  349. package/lib/esm/imodel-components-react.js +87 -87
  350. package/lib/esm/imodel-components-react.js.map +1 -1
  351. package/lib/public/locales/en/UiIModelComponents.json +139 -139
  352. package/package.json +21 -21
@@ -1,48 +1,52 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module QuantityFormat
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.StationSizeSelector = void 0;
30
- const React = __importStar(require("react"));
31
- const UiIModelComponents_1 = require("../../UiIModelComponents");
32
- const itwinui_react_1 = require("@itwin/itwinui-react");
33
- /** Component use to set Station size (number of digits from right until '+').
34
- * @internal
35
- */
36
- function StationSizeSelector(props) {
37
- const { value, disabled, onChange, ...otherProps } = props;
38
- const separatorOptions = React.useRef([
39
- { value: 2, label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.station_size.two") },
40
- { value: 3, label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.station_size.three") },
41
- ]);
42
- const handleOnChange = React.useCallback((newValue) => {
43
- onChange && onChange(newValue);
44
- }, [onChange]);
45
- return (React.createElement(itwinui_react_1.Select, { options: separatorOptions.current, disabled: disabled, value: value, onChange: handleOnChange, size: "small", ...otherProps }));
46
- }
47
- exports.StationSizeSelector = StationSizeSelector;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module QuantityFormat
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.StationSizeSelector = void 0;
34
+ const React = __importStar(require("react"));
35
+ const UiIModelComponents_1 = require("../../UiIModelComponents");
36
+ const itwinui_react_1 = require("@itwin/itwinui-react");
37
+ /** Component use to set Station size (number of digits from right until '+').
38
+ * @internal
39
+ */
40
+ function StationSizeSelector(props) {
41
+ const { value, disabled, onChange, ...otherProps } = props;
42
+ const separatorOptions = React.useRef([
43
+ { value: 2, label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.station_size.two") },
44
+ { value: 3, label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.station_size.three") },
45
+ ]);
46
+ const handleOnChange = React.useCallback((newValue) => {
47
+ onChange && onChange(newValue);
48
+ }, [onChange]);
49
+ return (React.createElement(itwinui_react_1.Select, { options: separatorOptions.current, disabled: disabled, value: value, onChange: handleOnChange, size: "small", ...otherProps }));
50
+ }
51
+ exports.StationSizeSelector = StationSizeSelector;
48
52
  //# sourceMappingURL=StationSizeSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StationSizeSelector.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/StationSizeSelector.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,iEAA8D;AAC9D,wDAA4D;AAW5D;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAyB;QAC5D,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE;QACpF,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE;KACvF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC5D,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,oBAAC,sBAAM,IAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAC,OAAO,KAAK,UAAU,GAAI,CACvI,CAAC;AACJ,CAAC;AAdD,kDAcC","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 QuantityFormat\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\r\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\r\n\r\n/** Properties of [[StationSizeSelector]] component.\r\n * @internal\r\n */\r\nexport interface StationSizeSelectorProps extends CommonProps {\r\n value: number;\r\n disabled: boolean;\r\n onChange: (value: number) => void;\r\n}\r\n\r\n/** Component use to set Station size (number of digits from right until '+').\r\n * @internal\r\n */\r\nexport function StationSizeSelector(props: StationSizeSelectorProps) {\r\n const { value, disabled, onChange, ...otherProps } = props;\r\n const separatorOptions = React.useRef<SelectOption<number>[]>([\r\n { value: 2, label: UiIModelComponents.translate(\"QuantityFormat.station_size.two\") },\r\n { value: 3, label: UiIModelComponents.translate(\"QuantityFormat.station_size.three\") },\r\n ]);\r\n\r\n const handleOnChange = React.useCallback((newValue: number) => {\r\n onChange && onChange(newValue);\r\n }, [onChange]);\r\n\r\n return (\r\n <Select options={separatorOptions.current} disabled={disabled} value={value} onChange={handleOnChange} size=\"small\" {...otherProps} />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StationSizeSelector.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/StationSizeSelector.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,iEAA8D;AAC9D,wDAA4D;AAW5D;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAyB;QAC5D,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE;QACpF,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE;KACvF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC5D,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,oBAAC,sBAAM,IAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAC,OAAO,KAAK,UAAU,GAAI,CACvI,CAAC;AACJ,CAAC;AAdD,kDAcC","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 QuantityFormat\n */\n\nimport * as React from \"react\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\n\n/** Properties of [[StationSizeSelector]] component.\n * @internal\n */\nexport interface StationSizeSelectorProps extends CommonProps {\n value: number;\n disabled: boolean;\n onChange: (value: number) => void;\n}\n\n/** Component use to set Station size (number of digits from right until '+').\n * @internal\n */\nexport function StationSizeSelector(props: StationSizeSelectorProps) {\n const { value, disabled, onChange, ...otherProps } = props;\n const separatorOptions = React.useRef<SelectOption<number>[]>([\n { value: 2, label: UiIModelComponents.translate(\"QuantityFormat.station_size.two\") },\n { value: 3, label: UiIModelComponents.translate(\"QuantityFormat.station_size.three\") },\n ]);\n\n const handleOnChange = React.useCallback((newValue: number) => {\n onChange && onChange(newValue);\n }, [onChange]);\n\n return (\n <Select options={separatorOptions.current} disabled={disabled} value={value} onChange={handleOnChange} size=\"small\" {...otherProps} />\n );\n}\n"]}
@@ -1,18 +1,18 @@
1
- /** @packageDocumentation
2
- * @module QuantityFormat
3
- */
4
- /// <reference types="react" />
5
- import { CommonProps } from "@itwin/core-react";
6
- /** Properties of [[ThousandsSelector]] component.
7
- * @internal
8
- */
9
- export interface ThousandsSelectorProps extends CommonProps {
10
- separator: string;
11
- disabled: boolean;
12
- onChange: (value: string) => void;
13
- }
14
- /** Component use to set Quantity Format thousand group separator.
15
- * @internal
16
- */
17
- export declare function ThousandsSelector(props: ThousandsSelectorProps): JSX.Element;
1
+ /** @packageDocumentation
2
+ * @module QuantityFormat
3
+ */
4
+ /// <reference types="react" />
5
+ import { CommonProps } from "@itwin/core-react";
6
+ /** Properties of [[ThousandsSelector]] component.
7
+ * @internal
8
+ */
9
+ export interface ThousandsSelectorProps extends CommonProps {
10
+ separator: string;
11
+ disabled: boolean;
12
+ onChange: (value: string) => void;
13
+ }
14
+ /** Component use to set Quantity Format thousand group separator.
15
+ * @internal
16
+ */
17
+ export declare function ThousandsSelector(props: ThousandsSelectorProps): JSX.Element;
18
18
  //# sourceMappingURL=ThousandsSelector.d.ts.map
@@ -1,57 +1,61 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module QuantityFormat
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ThousandsSelector = void 0;
30
- const React = __importStar(require("react"));
31
- const UiIModelComponents_1 = require("../../UiIModelComponents");
32
- const itwinui_react_1 = require("@itwin/itwinui-react");
33
- /** Component use to set Quantity Format thousand group separator.
34
- * @internal
35
- */
36
- function ThousandsSelector(props) {
37
- const { separator, disabled, onChange, ...otherProps } = props;
38
- const uomDefaultEntries = React.useRef([
39
- { value: ",", label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.thousand_separator.comma") },
40
- { value: ".", label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.thousand_separator.point") },
41
- ]);
42
- const handleOnChange = React.useCallback((newValue) => {
43
- onChange && onChange(newValue);
44
- }, [onChange]);
45
- const separatorOptions = React.useMemo(() => {
46
- const completeListOfEntries = [];
47
- // istanbul ignore next (only used if format already has a character that does not match standard options)
48
- if (undefined === uomDefaultEntries.current.find((option) => option.value === separator)) {
49
- completeListOfEntries.push({ value: separator, label: separator });
50
- }
51
- completeListOfEntries.push(...uomDefaultEntries.current);
52
- return completeListOfEntries;
53
- }, [separator]);
54
- return (React.createElement(itwinui_react_1.Select, { options: separatorOptions, disabled: disabled, value: separator, onChange: handleOnChange, size: "small", ...otherProps }));
55
- }
56
- exports.ThousandsSelector = ThousandsSelector;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module QuantityFormat
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.ThousandsSelector = void 0;
34
+ const React = __importStar(require("react"));
35
+ const UiIModelComponents_1 = require("../../UiIModelComponents");
36
+ const itwinui_react_1 = require("@itwin/itwinui-react");
37
+ /** Component use to set Quantity Format thousand group separator.
38
+ * @internal
39
+ */
40
+ function ThousandsSelector(props) {
41
+ const { separator, disabled, onChange, ...otherProps } = props;
42
+ const uomDefaultEntries = React.useRef([
43
+ { value: ",", label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.thousand_separator.comma") },
44
+ { value: ".", label: UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.thousand_separator.point") },
45
+ ]);
46
+ const handleOnChange = React.useCallback((newValue) => {
47
+ onChange && onChange(newValue);
48
+ }, [onChange]);
49
+ const separatorOptions = React.useMemo(() => {
50
+ const completeListOfEntries = [];
51
+ // istanbul ignore next (only used if format already has a character that does not match standard options)
52
+ if (undefined === uomDefaultEntries.current.find((option) => option.value === separator)) {
53
+ completeListOfEntries.push({ value: separator, label: separator });
54
+ }
55
+ completeListOfEntries.push(...uomDefaultEntries.current);
56
+ return completeListOfEntries;
57
+ }, [separator]);
58
+ return (React.createElement(itwinui_react_1.Select, { options: separatorOptions, disabled: disabled, value: separator, onChange: handleOnChange, size: "small", ...otherProps }));
59
+ }
60
+ exports.ThousandsSelector = ThousandsSelector;
57
61
  //# sourceMappingURL=ThousandsSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThousandsSelector.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/ThousandsSelector.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,iEAA8D;AAC9D,wDAA4D;AAW5D;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAyB;QAC7D,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,yCAAyC,CAAC,EAAE;QAC9F,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,yCAAyC,CAAC,EAAE;KAC/F,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC5D,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,MAAM,qBAAqB,GAA2B,EAAE,CAAC;QACzD,0GAA0G;QAC1G,IAAI,SAAS,KAAK,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE;YACxF,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;QACD,qBAAqB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,qBAAqB,CAAC;IAC/B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,oBAAC,sBAAM,IAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAC,OAAO,KAAK,UAAU,GAAI,CACnI,CAAC;AACJ,CAAC;AAxBD,8CAwBC","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 QuantityFormat\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\r\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\r\n\r\n/** Properties of [[ThousandsSelector]] component.\r\n * @internal\r\n */\r\nexport interface ThousandsSelectorProps extends CommonProps {\r\n separator: string;\r\n disabled: boolean;\r\n onChange: (value: string) => void;\r\n}\r\n\r\n/** Component use to set Quantity Format thousand group separator.\r\n * @internal\r\n */\r\nexport function ThousandsSelector(props: ThousandsSelectorProps) {\r\n const { separator, disabled, onChange, ...otherProps } = props;\r\n const uomDefaultEntries = React.useRef<SelectOption<string>[]>([\r\n { value: \",\", label: UiIModelComponents.translate(\"QuantityFormat.thousand_separator.comma\") },\r\n { value: \".\", label: UiIModelComponents.translate(\"QuantityFormat.thousand_separator.point\") },\r\n ]);\r\n\r\n const handleOnChange = React.useCallback((newValue: string) => {\r\n onChange && onChange(newValue);\r\n }, [onChange]);\r\n\r\n const separatorOptions = React.useMemo(() => {\r\n const completeListOfEntries: SelectOption<string>[] = [];\r\n // istanbul ignore next (only used if format already has a character that does not match standard options)\r\n if (undefined === uomDefaultEntries.current.find((option) => option.value === separator)) {\r\n completeListOfEntries.push({ value: separator, label: separator });\r\n }\r\n completeListOfEntries.push(...uomDefaultEntries.current);\r\n return completeListOfEntries;\r\n }, [separator]);\r\n\r\n return (\r\n <Select options={separatorOptions} disabled={disabled} value={separator} onChange={handleOnChange} size=\"small\" {...otherProps} />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ThousandsSelector.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/ThousandsSelector.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6CAA+B;AAE/B,iEAA8D;AAC9D,wDAA4D;AAW5D;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAyB;QAC7D,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,yCAAyC,CAAC,EAAE;QAC9F,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAkB,CAAC,SAAS,CAAC,yCAAyC,CAAC,EAAE;KAC/F,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC5D,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,MAAM,qBAAqB,GAA2B,EAAE,CAAC;QACzD,0GAA0G;QAC1G,IAAI,SAAS,KAAK,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE;YACxF,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;QACD,qBAAqB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,qBAAqB,CAAC;IAC/B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,oBAAC,sBAAM,IAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAC,OAAO,KAAK,UAAU,GAAI,CACnI,CAAC;AACJ,CAAC;AAxBD,8CAwBC","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 QuantityFormat\n */\n\nimport * as React from \"react\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\nimport { Select, SelectOption } from \"@itwin/itwinui-react\";\n\n/** Properties of [[ThousandsSelector]] component.\n * @internal\n */\nexport interface ThousandsSelectorProps extends CommonProps {\n separator: string;\n disabled: boolean;\n onChange: (value: string) => void;\n}\n\n/** Component use to set Quantity Format thousand group separator.\n * @internal\n */\nexport function ThousandsSelector(props: ThousandsSelectorProps) {\n const { separator, disabled, onChange, ...otherProps } = props;\n const uomDefaultEntries = React.useRef<SelectOption<string>[]>([\n { value: \",\", label: UiIModelComponents.translate(\"QuantityFormat.thousand_separator.comma\") },\n { value: \".\", label: UiIModelComponents.translate(\"QuantityFormat.thousand_separator.point\") },\n ]);\n\n const handleOnChange = React.useCallback((newValue: string) => {\n onChange && onChange(newValue);\n }, [onChange]);\n\n const separatorOptions = React.useMemo(() => {\n const completeListOfEntries: SelectOption<string>[] = [];\n // istanbul ignore next (only used if format already has a character that does not match standard options)\n if (undefined === uomDefaultEntries.current.find((option) => option.value === separator)) {\n completeListOfEntries.push({ value: separator, label: separator });\n }\n completeListOfEntries.push(...uomDefaultEntries.current);\n return completeListOfEntries;\n }, [separator]);\n\n return (\n <Select options={separatorOptions} disabled={disabled} value={separator} onChange={handleOnChange} size=\"small\" {...otherProps} />\n );\n}\n"]}
@@ -1,18 +1,18 @@
1
- /** @packageDocumentation
2
- * @module QuantityFormat
3
- */
4
- /// <reference types="react" />
5
- import { CommonProps } from "@itwin/core-react";
6
- import { FormatProps } from "@itwin/core-quantity";
7
- /** Properties of [[ThousandsSeparator]] component.
8
- * @internal
9
- */
10
- export interface ThousandsSeparatorProps extends CommonProps {
11
- formatProps: FormatProps;
12
- onChange?: (format: FormatProps) => void;
13
- }
14
- /** Component use to set Quantity Format thousand group separator.
15
- * @internal
16
- */
17
- export declare function ThousandsSeparator(props: ThousandsSeparatorProps): JSX.Element;
1
+ /** @packageDocumentation
2
+ * @module QuantityFormat
3
+ */
4
+ /// <reference types="react" />
5
+ import { CommonProps } from "@itwin/core-react";
6
+ import { FormatProps } from "@itwin/core-quantity";
7
+ /** Properties of [[ThousandsSeparator]] component.
8
+ * @internal
9
+ */
10
+ export interface ThousandsSeparatorProps extends CommonProps {
11
+ formatProps: FormatProps;
12
+ onChange?: (format: FormatProps) => void;
13
+ }
14
+ /** Component use to set Quantity Format thousand group separator.
15
+ * @internal
16
+ */
17
+ export declare function ThousandsSeparator(props: ThousandsSeparatorProps): JSX.Element;
18
18
  //# sourceMappingURL=ThousandsSeparator.d.ts.map
@@ -1,96 +1,99 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module QuantityFormat
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.ThousandsSeparator = void 0;
33
- const classnames_1 = __importDefault(require("classnames"));
34
- const React = __importStar(require("react"));
35
- const core_quantity_1 = require("@itwin/core-quantity");
36
- const itwinui_react_1 = require("@itwin/itwinui-react");
37
- const ThousandsSelector_1 = require("./ThousandsSelector");
38
- const UiIModelComponents_1 = require("../../UiIModelComponents");
39
- /** Component use to set Quantity Format thousand group separator.
40
- * @internal
41
- */
42
- function ThousandsSeparator(props) {
43
- var _a;
44
- const { formatProps, onChange } = props;
45
- const handleSetFormatProps = React.useCallback((newProps) => {
46
- onChange && onChange(newProps);
47
- }, [onChange]);
48
- const setFormatTrait = React.useCallback((trait, setActive) => {
49
- const traitStr = (0, core_quantity_1.getTraitString)(trait);
50
- let formatTraits = [traitStr];
51
- if (setActive) { // setting trait
52
- // istanbul ignore else
53
- if (formatProps.formatTraits) {
54
- const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
55
- formatTraits = [...traits, traitStr];
56
- }
57
- }
58
- else { // clearing trait
59
- // istanbul ignore else
60
- if (formatProps.formatTraits) {
61
- const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
62
- formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);
63
- }
64
- }
65
- const newFormatProps = { ...formatProps, formatTraits };
66
- handleSetFormatProps(newFormatProps);
67
- }, [formatProps, handleSetFormatProps]);
68
- const handleUseThousandsSeparatorChange = React.useCallback((e) => {
69
- setFormatTrait(core_quantity_1.FormatTraits.Use1000Separator, e.target.checked);
70
- }, [setFormatTrait]);
71
- const isFormatTraitSet = React.useCallback((trait) => {
72
- return core_quantity_1.Format.isFormatTraitSetInProps(formatProps, trait);
73
- }, [formatProps]);
74
- const handleThousandSeparatorChange = React.useCallback((thousandSeparator) => {
75
- let decimalSeparator = formatProps.decimalSeparator;
76
- // make sure 1000 and decimal separator do not match
77
- // istanbul ignore else
78
- if (isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator)) {
79
- if (thousandSeparator === ".")
80
- decimalSeparator = ",";
81
- else // thousandSeparator === ","
82
- decimalSeparator = ".";
83
- }
84
- const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };
85
- handleSetFormatProps(newFormatProps);
86
- }, [formatProps, isFormatTraitSet, handleSetFormatProps]);
87
- const useThousandSeparatorLabel = React.useRef(UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.labels.useThousandSeparatorLabel"));
88
- const thousandSeparatorLabel = React.useRef(UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.labels.thousandSeparatorLabel"));
89
- return (React.createElement(React.Fragment, null,
90
- React.createElement("span", { className: "uicore-label" }, useThousandSeparatorLabel.current),
91
- React.createElement(itwinui_react_1.Checkbox, { "data-testid": "use-thousands-separator", checked: isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator), onChange: handleUseThousandsSeparatorChange }),
92
- React.createElement("span", { className: (0, classnames_1.default)("uicore-label", !(isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator)) && "uicore-disabled") }, thousandSeparatorLabel.current),
93
- React.createElement(ThousandsSelector_1.ThousandsSelector, { "data-testid": "thousands-separator-selector", separator: (_a = formatProps.thousandSeparator) !== null && _a !== void 0 ? _a : ",", disabled: !isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator), onChange: handleThousandSeparatorChange })));
94
- }
95
- exports.ThousandsSeparator = ThousandsSeparator;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module QuantityFormat
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ThousandsSeparator = void 0;
37
+ const classnames_1 = __importDefault(require("classnames"));
38
+ const React = __importStar(require("react"));
39
+ const core_quantity_1 = require("@itwin/core-quantity");
40
+ const itwinui_react_1 = require("@itwin/itwinui-react");
41
+ const ThousandsSelector_1 = require("./ThousandsSelector");
42
+ const UiIModelComponents_1 = require("../../UiIModelComponents");
43
+ /** Component use to set Quantity Format thousand group separator.
44
+ * @internal
45
+ */
46
+ function ThousandsSeparator(props) {
47
+ const { formatProps, onChange } = props;
48
+ const handleSetFormatProps = React.useCallback((newProps) => {
49
+ onChange && onChange(newProps);
50
+ }, [onChange]);
51
+ const setFormatTrait = React.useCallback((trait, setActive) => {
52
+ const traitStr = (0, core_quantity_1.getTraitString)(trait);
53
+ let formatTraits = [traitStr];
54
+ if (setActive) { // setting trait
55
+ // istanbul ignore else
56
+ if (formatProps.formatTraits) {
57
+ const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
58
+ formatTraits = [...traits, traitStr];
59
+ }
60
+ }
61
+ else { // clearing trait
62
+ // istanbul ignore else
63
+ if (formatProps.formatTraits) {
64
+ const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
65
+ formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);
66
+ }
67
+ }
68
+ const newFormatProps = { ...formatProps, formatTraits };
69
+ handleSetFormatProps(newFormatProps);
70
+ }, [formatProps, handleSetFormatProps]);
71
+ const handleUseThousandsSeparatorChange = React.useCallback((e) => {
72
+ setFormatTrait(core_quantity_1.FormatTraits.Use1000Separator, e.target.checked);
73
+ }, [setFormatTrait]);
74
+ const isFormatTraitSet = React.useCallback((trait) => {
75
+ return core_quantity_1.Format.isFormatTraitSetInProps(formatProps, trait);
76
+ }, [formatProps]);
77
+ const handleThousandSeparatorChange = React.useCallback((thousandSeparator) => {
78
+ let decimalSeparator = formatProps.decimalSeparator;
79
+ // make sure 1000 and decimal separator do not match
80
+ // istanbul ignore else
81
+ if (isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator)) {
82
+ if (thousandSeparator === ".")
83
+ decimalSeparator = ",";
84
+ else // thousandSeparator === ","
85
+ decimalSeparator = ".";
86
+ }
87
+ const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };
88
+ handleSetFormatProps(newFormatProps);
89
+ }, [formatProps, isFormatTraitSet, handleSetFormatProps]);
90
+ const useThousandSeparatorLabel = React.useRef(UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.labels.useThousandSeparatorLabel"));
91
+ const thousandSeparatorLabel = React.useRef(UiIModelComponents_1.UiIModelComponents.translate("QuantityFormat.labels.thousandSeparatorLabel"));
92
+ return (React.createElement(React.Fragment, null,
93
+ React.createElement("span", { className: "uicore-label" }, useThousandSeparatorLabel.current),
94
+ React.createElement(itwinui_react_1.Checkbox, { "data-testid": "use-thousands-separator", checked: isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator), onChange: handleUseThousandsSeparatorChange }),
95
+ React.createElement("span", { className: (0, classnames_1.default)("uicore-label", !(isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator)) && "uicore-disabled") }, thousandSeparatorLabel.current),
96
+ React.createElement(ThousandsSelector_1.ThousandsSelector, { "data-testid": "thousands-separator-selector", separator: formatProps.thousandSeparator ?? ",", disabled: !isFormatTraitSet(core_quantity_1.FormatTraits.Use1000Separator), onChange: handleThousandSeparatorChange })));
97
+ }
98
+ exports.ThousandsSeparator = ThousandsSeparator;
96
99
  //# sourceMappingURL=ThousandsSeparator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThousandsSeparator.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/ThousandsSeparator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4DAAoC;AACpC,6CAA+B;AAE/B,wDAAyF;AACzF,wDAAgD;AAChD,2DAAwD;AACxD,iEAA8D;AAU9D;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAA8B;;IAC/D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAExC,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAqB,EAAE,EAAE;QACvE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAmB,EAAE,SAAkB,EAAE,EAAE;QACnF,MAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC,KAAK,CAAC,CAAC;QACvC,IAAI,YAAY,GAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,SAAS,EAAE,EAAC,gBAAgB;YAC9B,uBAAuB;YACvB,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxJ,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,CAAC,CAAC;aACtC;SACF;aAAM,EAAE,iBAAiB;YACxB,uBAAuB;YACvB,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxJ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;aACvE;SACF;QACD,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,CAAC;QACxD,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAExC,MAAM,iCAAiC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAsC,EAAE,EAAE;QACrG,cAAc,CAAC,4BAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAmB,EAAE,EAAE;QACjE,OAAO,sBAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,6BAA6B,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,iBAAyB,EAAE,EAAE;QACpF,IAAI,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;QACpD,oDAAoD;QACpD,uBAAuB;QACvB,IAAI,gBAAgB,CAAC,4BAAY,CAAC,gBAAgB,CAAC,EAAE;YACnD,IAAI,iBAAiB,KAAK,GAAG;gBAC3B,gBAAgB,GAAG,GAAG,CAAC;iBACpB,4BAA4B;gBAC/B,gBAAgB,GAAG,GAAG,CAAC;SAC1B;QACD,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;QAC/E,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE1D,MAAM,yBAAyB,GAAG,KAAK,CAAC,MAAM,CAAC,uCAAkB,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAChI,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,uCAAkB,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAE1H,OAAO,CACL;QACE,8BAAM,SAAS,EAAE,cAAc,IAAG,yBAAyB,CAAC,OAAO,CAAQ;QAC3E,oBAAC,wBAAQ,mBAAa,yBAAyB,EAAC,OAAO,EAAE,gBAAgB,CAAC,4BAAY,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,iCAAiC,GAAI;QACzJ,8BAAM,SAAS,EAAE,IAAA,oBAAU,EAAC,cAAc,EAAE,CAAC,CAAC,gBAAgB,CAAC,4BAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAG,sBAAsB,CAAC,OAAO,CAAQ;QAC7J,oBAAC,qCAAiB,mBAAa,8BAA8B,EAAC,SAAS,EAAE,MAAA,WAAW,CAAC,iBAAiB,mCAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,4BAAY,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,6BAA6B,GAAI,CACrN,CACJ,CAAC;AACJ,CAAC;AA5DD,gDA4DC","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 QuantityFormat\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { Format, FormatProps, FormatTraits, getTraitString } from \"@itwin/core-quantity\";\r\nimport { Checkbox } from \"@itwin/itwinui-react\";\r\nimport { ThousandsSelector } from \"./ThousandsSelector\";\r\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\r\n\r\n/** Properties of [[ThousandsSeparator]] component.\r\n * @internal\r\n */\r\nexport interface ThousandsSeparatorProps extends CommonProps {\r\n formatProps: FormatProps;\r\n onChange?: (format: FormatProps) => void;\r\n}\r\n\r\n/** Component use to set Quantity Format thousand group separator.\r\n * @internal\r\n */\r\nexport function ThousandsSeparator(props: ThousandsSeparatorProps) {\r\n const { formatProps, onChange } = props;\r\n\r\n const handleSetFormatProps = React.useCallback((newProps: FormatProps) => {\r\n onChange && onChange(newProps);\r\n }, [onChange]);\r\n\r\n const setFormatTrait = React.useCallback((trait: FormatTraits, setActive: boolean) => {\r\n const traitStr = getTraitString(trait);\r\n let formatTraits: string[] = [traitStr];\r\n if (setActive) {// setting trait\r\n // istanbul ignore else\r\n if (formatProps.formatTraits) {\r\n const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\\|/);\r\n formatTraits = [...traits, traitStr];\r\n }\r\n } else { // clearing trait\r\n // istanbul ignore else\r\n if (formatProps.formatTraits) {\r\n const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\\|/);\r\n formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);\r\n }\r\n }\r\n const newFormatProps = { ...formatProps, formatTraits };\r\n handleSetFormatProps(newFormatProps);\r\n }, [formatProps, handleSetFormatProps]);\r\n\r\n const handleUseThousandsSeparatorChange = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setFormatTrait(FormatTraits.Use1000Separator, e.target.checked);\r\n }, [setFormatTrait]);\r\n\r\n const isFormatTraitSet = React.useCallback((trait: FormatTraits) => {\r\n return Format.isFormatTraitSetInProps(formatProps, trait);\r\n }, [formatProps]);\r\n\r\n const handleThousandSeparatorChange = React.useCallback((thousandSeparator: string) => {\r\n let decimalSeparator = formatProps.decimalSeparator;\r\n // make sure 1000 and decimal separator do not match\r\n // istanbul ignore else\r\n if (isFormatTraitSet(FormatTraits.Use1000Separator)) {\r\n if (thousandSeparator === \".\")\r\n decimalSeparator = \",\";\r\n else // thousandSeparator === \",\"\r\n decimalSeparator = \".\";\r\n }\r\n const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };\r\n handleSetFormatProps(newFormatProps);\r\n }, [formatProps, isFormatTraitSet, handleSetFormatProps]);\r\n\r\n const useThousandSeparatorLabel = React.useRef(UiIModelComponents.translate(\"QuantityFormat.labels.useThousandSeparatorLabel\"));\r\n const thousandSeparatorLabel = React.useRef(UiIModelComponents.translate(\"QuantityFormat.labels.thousandSeparatorLabel\"));\r\n\r\n return (\r\n <>\r\n <span className={\"uicore-label\"}>{useThousandSeparatorLabel.current}</span>\r\n <Checkbox data-testid=\"use-thousands-separator\" checked={isFormatTraitSet(FormatTraits.Use1000Separator)} onChange={handleUseThousandsSeparatorChange} />\r\n <span className={classnames(\"uicore-label\", !(isFormatTraitSet(FormatTraits.Use1000Separator)) && \"uicore-disabled\")}>{thousandSeparatorLabel.current}</span>\r\n <ThousandsSelector data-testid=\"thousands-separator-selector\" separator={formatProps.thousandSeparator ?? \",\"} disabled={!isFormatTraitSet(FormatTraits.Use1000Separator)} onChange={handleThousandSeparatorChange} />\r\n </>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ThousandsSeparator.js","sourceRoot":"","sources":["../../../../../src/imodel-components-react/quantityformat/misc/ThousandsSeparator.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module QuantityFormat\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { Format, FormatProps, FormatTraits, getTraitString } from \"@itwin/core-quantity\";\nimport { Checkbox } from \"@itwin/itwinui-react\";\nimport { ThousandsSelector } from \"./ThousandsSelector\";\nimport { UiIModelComponents } from \"../../UiIModelComponents\";\n\n/** Properties of [[ThousandsSeparator]] component.\n * @internal\n */\nexport interface ThousandsSeparatorProps extends CommonProps {\n formatProps: FormatProps;\n onChange?: (format: FormatProps) => void;\n}\n\n/** Component use to set Quantity Format thousand group separator.\n * @internal\n */\nexport function ThousandsSeparator(props: ThousandsSeparatorProps) {\n const { formatProps, onChange } = props;\n\n const handleSetFormatProps = React.useCallback((newProps: FormatProps) => {\n onChange && onChange(newProps);\n }, [onChange]);\n\n const setFormatTrait = React.useCallback((trait: FormatTraits, setActive: boolean) => {\n const traitStr = getTraitString(trait);\n let formatTraits: string[] = [traitStr];\n if (setActive) {// setting trait\n // istanbul ignore else\n if (formatProps.formatTraits) {\n const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\\|/);\n formatTraits = [...traits, traitStr];\n }\n } else { // clearing trait\n // istanbul ignore else\n if (formatProps.formatTraits) {\n const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\\|/);\n formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);\n }\n }\n const newFormatProps = { ...formatProps, formatTraits };\n handleSetFormatProps(newFormatProps);\n }, [formatProps, handleSetFormatProps]);\n\n const handleUseThousandsSeparatorChange = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setFormatTrait(FormatTraits.Use1000Separator, e.target.checked);\n }, [setFormatTrait]);\n\n const isFormatTraitSet = React.useCallback((trait: FormatTraits) => {\n return Format.isFormatTraitSetInProps(formatProps, trait);\n }, [formatProps]);\n\n const handleThousandSeparatorChange = React.useCallback((thousandSeparator: string) => {\n let decimalSeparator = formatProps.decimalSeparator;\n // make sure 1000 and decimal separator do not match\n // istanbul ignore else\n if (isFormatTraitSet(FormatTraits.Use1000Separator)) {\n if (thousandSeparator === \".\")\n decimalSeparator = \",\";\n else // thousandSeparator === \",\"\n decimalSeparator = \".\";\n }\n const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };\n handleSetFormatProps(newFormatProps);\n }, [formatProps, isFormatTraitSet, handleSetFormatProps]);\n\n const useThousandSeparatorLabel = React.useRef(UiIModelComponents.translate(\"QuantityFormat.labels.useThousandSeparatorLabel\"));\n const thousandSeparatorLabel = React.useRef(UiIModelComponents.translate(\"QuantityFormat.labels.thousandSeparatorLabel\"));\n\n return (\n <>\n <span className={\"uicore-label\"}>{useThousandSeparatorLabel.current}</span>\n <Checkbox data-testid=\"use-thousands-separator\" checked={isFormatTraitSet(FormatTraits.Use1000Separator)} onChange={handleUseThousandsSeparatorChange} />\n <span className={classnames(\"uicore-label\", !(isFormatTraitSet(FormatTraits.Use1000Separator)) && \"uicore-disabled\")}>{thousandSeparatorLabel.current}</span>\n <ThousandsSelector data-testid=\"thousands-separator-selector\" separator={formatProps.thousandSeparator ?? \",\"} disabled={!isFormatTraitSet(FormatTraits.Use1000Separator)} onChange={handleThousandSeparatorChange} />\n </>\n );\n}\n"]}